<!-- Begin
function MM_findObj(n, d) { //v4.01
	var p,i,x;  
	if(!d) d=document; 
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
	    d=parent.frames[n.substring(p+1)].document; 
		n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n]; 
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}
	
function MM_validateForm() { //v3.0
  var i,p,q,nm,test,label,num,min,max,errors='',args=MM_validateForm.arguments;
  
  for (i=0; i<(args.length-2); i+=3) { 
    test=args[i+2]; 
	val=MM_findObj(args[i]);
	label=args[i+1];
		
    if (val) { 
	  nm=val.name; 
	  if ((val=val.value)!="") {

        if (test.indexOf('isEmail')!=-1) { 
	      p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+label+' must contain a valid e-mail address. (ex: me@ideafit.com)\n';
        } 
		else if (test.indexOf('compareEmails')!=-1) { 
          if (val!=document.getElementById(label).value) errors+='- Email and Confirmation Email must be the same.\n';
        } 
	    else if (test.charAt(0)!='R') { 
		     //process radio buttons
		     if (test.charAt(0) == 'E'){
			   
			   var varname=args[i]
			   var len=eval('document.myForm.' + varname + '.length'); 
			   var rcounter=0;
			   for (j=0; j<len; j++){
    		     rcounter+= (eval('document.myForm.' + varname + '[' + j + '].checked')?1:0);
			   }	
               if (rcounter==0) errors+= '- '+label+' is required.\n'; 
			 } 
			 else if (test.charAt(0) == 'C'){
               if (!isValidCreditCard(document.getElementById(label).value, val)) errors+= '- Credit Card Number is not valid.\n'; 
			 } 
			 else if (test.charAt(0) == 'X'){
               if (!isValidExpDate(val, val.length)) errors+= '- Credit Card Expiration is not valid.\n'; 
			 } 
			 else {
		       num = parseFloat(val);
               if ((val!=''+num)&&(parseFloat(val)!=''+num)) errors+='- '+label+' must contain a number.\n';
               if (test.indexOf('inRange') != -1) { 
	             p=test.indexOf(':');
                 min=test.substring(8,p); max=test.substring(p+1);
                 if (num<min || max<num) errors+='- '+label+' must contain a number between '+min+' and '+max+'.\n';
               } 
		     }
	     } 
	  } 
	  else if (test.charAt(0) == 'R') 
	    if (nm=='MBZIP' || nm=='MBSTATE'){
			if((Number(document.getElementById('MBCOUNTRY').value) == 456) && (document.getElementById('MBCOUNTRY').value > ''))
			  	errors += '- '+label+' is required.\n'; 
		}
		else if (nm=='CCZip' || nm=='CCState'){
			if((Number(document.getElementById('CCCountry').value) == 456) && (document.getElementById('CCCountry').value > ''))
			  	errors += '- '+label+' is required.\n'; 
		}
		else if (nm=='card-zip' || nm=='card-state'){
			if((Number(document.getElementById('card-country').value) == 456) && (document.getElementById('card-country').value > ''))
			  	errors += '- '+label+' is required.\n'; 
		}
		else if (nm=='taxstate'){
			if((Number(document.getElementById('country').value) == 456) && (document.getElementById('country').value > ''))
			  	errors += '- '+label+' is required.\n'; 
		}
		else
		  	errors += '- '+label+' is required.\n'; 
	  else if (test.charAt(0) == 'N') {
	  	 num = parseFloat(val);
         if ((val!=''+num)&&(parseFloat(val)!=''+num)) errors+='- '+label+' must contain a number.\n';
         if (test.indexOf('inRange') != -1) { 
	        p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+label+' must contain a number between '+min+' and '+max+'.\n';
         } 
	  }
	}  // end if (val)
  } // end for
	  
  //check for primaryuses not empty
  //var counter=0;
  //for (i=0; i<document.myForm.primaryuses.length; i++) { 
  //  counter+= (document.myForm.primaryuses[i].checked&&document.myForm.primaryuses[i].value>''?1:0);
 /// }
  //if (counter==0 && document.myForm.primaryuses_other.value=="") errors+= '- Please enter your primary internet use.\n'; 
 // 
 if (errors) alert('The following error(s) occurred:\n'+errors);
 	document.MM_returnValue = (errors == '');
}//end function

function isValidCreditCard(type, ccnum) {
   if (type == "Visa") {
      // Visa: length 16, prefix 4, dashes optional.
      var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "MasterCard") {
      // Mastercard: length 16, prefix 51-55, dashes optional.
      var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "Discover") {
      // Discover: length 16, prefix 6011, dashes optional.
      var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "AmericanExpress") {
      // American Express: length 15, prefix 34 or 37.
      var re = /^3[4,7]\d{13}$/;
   } else if (type == "Diners") {
      // Diners: length 14, prefix 30, 36, or 38.
      var re = /^3[0,6,8]\d{12}$/;
   }
   if (!re.test(ccnum)) return false;
   // Checksum ("Mod 10")
   // Add even digits in even length strings or odd digits in odd length strings.
   var checksum = 0;
   for (var i=(2-(ccnum.length % 2)); i<=ccnum.length; i+=2) {
      checksum += parseInt(ccnum.charAt(i-1));
   }
   // Analyze odd digits in even length strings or even digits in odd length strings.
   for (var i=(ccnum.length % 2) + 1; i<ccnum.length; i+=2) {
      var digit = parseInt(ccnum.charAt(i-1)) * 2;
      if (digit < 10) { checksum += digit; } else { checksum += (digit-9); }
   }
   if ((checksum % 10) == 0) return true; else return false;
}

function isValidExpDate(formValue,len)
{
	var result = true;

 	if (result && (len>0))
 	{
 		var elems = formValue.split("/");
 		
 		result = (elems.length == 2); // should be two components
 		var expired = false;
 		
 		if (result)
 		{
 			var month = parseInt(elems[0],10);
 			var year = parseInt(elems[1],10);
 			
 			if (elems[1].length == 2)
 				year += 2000;
 			
 			var now = new Date();
 			
 			var nowMonth = now.getMonth() + 1;
 			var nowYear = now.getFullYear();
 			
 			expired = (nowYear > year) || ((nowYear == year ) && (nowMonth > month));
 			if (expired) 
				result=false;
			else
				result = allDigits(elems[0]) && (month > 0) && (month < 13) && allDigits(elems[1]) && ((elems[1].length == 2) || (elems[1].length == 4));
 		}
  		//if (!result)
 		//{
 		//	alert('Please enter a date in the format MM/YY for the "' + fieldLabel +'" field.');
		//	formField.focus();
		//}
		//else if (expired)
		//{
 		//	result = false;
 		//	alert('The date for "' + fieldLabel +'" has expired.');
		//	formField.focus();
		//}
	} 
	return result;
}
function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;
	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}
//  End -->
