var file_prefix = '';

function GE(el)
{
   return document.getElementById(el);	
}

function addFilterCol(html)
{
   var td = document.createElement('td');
   td.innerHTML = html;
   return td;
}

function checkRegFormFields()
{  
  var formObj = document.regForm;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  
  var fieldsArr = eval('({"email":"email address", "password":"password", "first_name":"first name", "last_name":"last name", "telephone":"telephone", "address1":"address line 1", "city":"city", "zip":"ZIP", "country":"country"})');
    
  with(formObj)
  {

     for(var ind in fieldsArr)
     {
               
       if(eval(ind).value == '')
       {
     	   alert('Please enter ' + fieldsArr[ind]);      	   
     	   eval(ind).focus();
     	   return false;
       }
       else if(ind == 'username')
       {
          if(eval(ind).value.length < 5)
          {
             alert('Username should be atleast 5 character long');
             username.focus();
             return false;	          	
          }   	
       }	
       else if(ind == 'password')
       {
          if(eval(ind).value != confirm_password.value)
          {
             alert('Password and confirm password should be equal');
             confirm_password.focus();
             return false;	
          }
          		
       }
       else if(ind == 'email')
       {
          if(filter.test(eval(ind).value))
          {
             ;	
          }
          else
          {
            alert('Please enter a valid email address');		
     	      eval(ind).focus();
     	      return false;
          }   		
       }
       else if(ind == 'telephone')
       {
          if(!isUSPhoneNumber(eval(ind).value))
          {
            alert('Please enter a valid telephone number');		
     	      eval(ind).focus();
     	      return false;             	
          }	
       }
       else if(ind == 'zip')
       {
          if(!validateZIP(eval(ind).value))
          {
             alert('Please enter a valid zipcode');      	   
             eval(ind).focus();
             return false;           	
          }		
       }       
     }
 
     var state_input = GE('state_input').value;     
     var state_val = eval(state_input.value).value;
     
     if(eval(state_input).value!='other_state' && state_val == '')
     {
        alert("Please select a state");
        eval(state_input.value).focus();
        return false;	
     }
         
  }
  
   
  return true;	

}//EO Fn

function checkProfileFormFields()
{  
  var formObj = document.profileForm;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  
  var fieldsArr = eval('({"first_name":"first name", "last_name":"last name", "telephone":"telephone", "email":"email address", "address1":"address line 1", "city":"city", "zip":"ZIP"})');
    
  with(formObj)
  {

     for(var ind in fieldsArr)
     {
               
       if(eval(ind).value == '')
       {
     	   alert('Please enter ' + fieldsArr[ind]);      	   
     	   eval(ind).focus();
     	   return false;
       }
       else if(ind == 'email')
       {
          if(filter.test(eval(ind).value))
          {
             ;	
          }
          else
          {
            alert('Please enter a valid email address');		
     	      eval(ind).focus();
     	      return false;
          }   		
       }
       else if(ind == 'telephone')
       {
          if(!isUSPhoneNumber(eval(ind).value))
          {
            alert('Please enter a valid telephone number');		
     	      eval(ind).focus();
     	      return false;             	
          }	
       }
       else if(ind == 'zip')
       {
          if(!validateZIP(eval(ind).value))
          {
             alert('Please enter a valid zipcode');      	   
             eval(ind).focus();
             return false;           	
          }		
       }       
     }

     var state_input = GE('state_input').value;     
     var state_val = eval(state_input.value).value;
     
     if(eval(state_input).value!='other_state' && state_val == '')
     {
        alert("Please select a state");
        eval(state_input.value).focus();
        return false;	
     }
     
  }
  
  return true;	

}//EO Fn

function checkUsername()
{
   var username = document.getelementById('username').value;	
}

function checkFields()
{  
  var formObj = document.contactForm;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  
  var fieldsArr = eval('({"company_name":"Company Name", "contact_name":"Contact Name", "phone_number":"Phone Number", "email":"Email Address"})');
    
  with(formObj)
  {

     for(var ind in fieldsArr)
     {
               
       if(eval(ind).value == '')
       {
     	   alert('Please Enter ' + fieldsArr[ind]);      	   
     	   eval(ind).focus();
     	   return false;
       }
       else if(ind == 'email')
       {
          if(filter.test(eval(ind).value))
          {
             ;	
          }
          else
          {
            alert('Please enter a valid email address');		
     	      eval(ind).focus();
     	      return false;
          }   		
       }
       
     }
  }
  
  return true;	

}//EO Fn

function checkLoginFields()
{  
  var formObj = document.loginForm;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  
  var fieldsArr = eval('({"username":"Username", "password":"Password"})');
    
  with(formObj)
  {

     for(var ind in fieldsArr)
     {
               
       if(eval(ind).value == '')
       {
     	   alert('Please Enter ' + fieldsArr[ind]);      	   
     	   eval(ind).focus();
     	   return false;
       }       
     
     }
  }
  
  return true;	

}//EO Fn

function checkFPFields()
{  
  var formObj = document.fpForm;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  
  var fieldsArr = eval('({"email":"Email Address"})');
    
  with(formObj)
  {

     for(var ind in fieldsArr)
     {
               
       if(eval(ind).value == '')
       {
     	   alert('Please Enter ' + fieldsArr[ind]);      	   
     	   eval(ind).focus();
     	   return false;
       }
       else if(ind == 'email')
       {
          if(filter.test(eval(ind).value))
          {
             ;	
          }
          else
          {
            alert('Please enter a valid email address');		
     	      eval(ind).focus();
     	      return false;
          }   		
       }
       
     }
  }
  
  return true;	

}//EO Fn

function openPopup(url, w, h)
{
	var win = window.open(url,"_blank", "status=yes,toolbar=no,width="+w+",height="+h);
	
	// if popup blocker stops window from being created
	if (win != null)
	{
	    win.opener = window;
	    win.focus();
	}
}

function addToCart(cat_id, pid, sku_id)
{
   var idval = 'prod_' + pid + '_' + sku_id;
   var qty = GE(idval);
   
   if(qty.value == '')
   {
      alert('Please enter a quantity');
      qty.focus();
      return false;	
   }
   else if(IsNumeric(qty.value))
   {
      if(qty.value < 1)
      {
         alert('Quantity should be one or more');
         qty.focus();
         return false;	      	
      }
      else
      {	
         window.location.href = file_prefix + 'add2cart.php?cat_id='+cat_id+'&pid=' + pid + '&sku_id=' + sku_id + '&qty=' + qty.value;
         return true;
      }
   }
   else
   {	
      alert("Please enter a number");
      return false;
   }
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }
   
   return IsNumber;
   
}

   
   function checkSearchField()
   {
      with(document.searchForm)
      {
         if(search_key.value.length < 3)
         {
            alert('Please use atleast 3 letters in search');
            search_key.focus();            
            return false;	
         }	
                  
      }      
      
      return true;
      	
   }

function selectCard()
{

	var win = window.open('select_card.php',"_blank", "scrollbars=yes,resizable=yes,width=300,height=200,top=100,left=500");
	
	// if popup blocker stops window from being created
	if (win != null)
	{
	    win.opener = window;
	    win.focus();
	}
      	
}

function checkECOFormFields()
{  
  var formObj = document.checkoutForm;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  
  var fieldsArr = eval('({"sh_first_name":"first name", "sh_last_name":"last name", "sh_address1":"address line 1", "sh_city":"city", "sh_state":"state", "sh_zip":"ZIP", "sh_telephone":"telephone", "email":"email", "address1":"billing address line 1", "city":"billing city", "state":"billing state", "zip":"billing Zip", "telephone":"billing phone"})');
    
  for(var ind in fieldsArr)
  {
            
    if(GE(ind).value == '')
    {
  	   alert('Please enter ' + fieldsArr[ind]);      	   
  	   GE(ind).focus();
  	   return false;
    }
    else if(ind == 'email')
    {
       if(filter.test(GE(ind).value))
       {
          ;	
       }
       else
       {
          alert('Please enter a valid email address');		
  	      GE(ind).focus();
  	      return false;
       }   		
    }
    else if(ind == 'telephone' || ind == 'sh_telephone')
    {
       if(!isUSPhoneNumber(GE(ind).value))
       {
         alert('Please enter a valid telephone number');		
         GE(ind).focus();
         return false;             	
       }	
    }
    else if(ind == 'sh_zip' || ind == 'zip')
    {
       if(!validateZIP(GE(ind).value))
       {
          alert('Please enter a valid zipcode');      	   
          GE(ind).focus();
          return false;           	
       }		
    }
    else if((ind == 'name_on_card' || ind == 'card_type' || ind == 'card_number') && (GE('payment_method') == 'Credit Card'))
    {
    	if(GE(ind).value == '')
    	{
  	  	 	alert('Please enter ' + fieldsArr[ind]);      	   
  	   		GE(ind).focus();
  	   		return false;
    	}
    }
  }

  if(!testCreditCard2() && (GE('payment_method') == 'Credit Card'))
  {
     alert('Please enter a valid credit card number');
     GE('card_number').focus();
     return false;      	
  }
    
  return true;	

}//EO Fn


function checkPromoCode()
{
   var formObj = document.promoForm;
   
   with(formObj)
   {
      if(promo_code.value == '')
      {
         alert('Please enter promo code');
         promo_code.focus();
         return false;	
      }	
   }
   
   return true;	
}

 function trueEmail(email)
 {
 
 	  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 			
 	  if (filter.test(email))
 	  {
 	     return true;	
 	  }
 	
 	  return false;
 	
 }

function checkContactFormFields()
{  
  var formObj = document.contactForm;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  
  var fieldsArr = eval('({"name":"your name", "street_address":"street address", "city":"city", "state":"state", "phone":"phone number", "email":"email address", "comments":"comments/suggestions/questions"})');
    
  with(formObj)
  {
     for(var ind in fieldsArr)
     {
               
       if(eval(ind).value == '')
       {
     	   alert('Please enter ' + fieldsArr[ind]);      	   
     	   eval(ind).focus();
     	   return false;
       }
       else if(ind == 'email')
       {
          if(filter.test(eval(ind).value))
          {
             ;	
          }
          else
          {
            alert('Please enter a valid email address');		
     	      eval(ind).focus();
     	      return false;
          }   		
       }
       
     }
  }
  
  return true;	

}//EO Fn

function testCreditCard() 
{
   myCardNo   = document.getElementById('CardNumber').value;
   myCardType = document.getElementById('CardType').value;
   
   if(checkCreditCard(myCardNo,myCardType)) 
   {
      return true;
   } 
   else 
   {  	    
	    return false;
   }
   
}//EO Fn

function testCreditCard2() 
{
   myCardNo   = document.getElementById('card_number').value;
   myCardType = document.getElementById('card_type').value;
   
   if(checkCreditCard(myCardNo,myCardType)) 
   {
      return true;
   } 
   else 
   {  	    
	    return false;
   }
   
}//EO Fn

function isUSPhoneNumber(str){
  var re = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/
  return re.test(str);
}

function validateZIP(field) 
{
   var valid = "0123456789-";
   var hyphencount = 0;
   
   if (field.length!=5 && field.length!=10) {
   //alert("Please enter your 5 digit or 5 digit+4 zip code.");
   return false;
   }
   for (var i=0; i < field.length; i++) {
   temp = "" + field.substring(i, i+1);
   if (temp == "-") hyphencount++;
   if (valid.indexOf(temp) == "-1") {
   //alert("Invalid characters in your zip code.  Please try again.");
   return false;
   }
   if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
   //alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
   return false;
      }
   }
   return true;
}
