function MM_reloadPage(init) {  //Updated by PVII. Reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function tmt_findObj(n){
	var x,t; if((n.indexOf("?"))>0&&parent.frames.length){t=n.split("?");
	x=eval("parent.frames['"+t[1]+"'].document.getElementById('"+t[0]+"')");
	}else{x=document.getElementById(n)}return x;
}

function MM_showHideLayers() { //v3.0A Modified by Al Sparber and Massimo Foti for NN6 Compatibility
  var i,p,v,obj,args=MM_showHideLayers.arguments;if(document.getElementById){
   for (i=0; i<(args.length-2); i+=3){ obj=tmt_findObj(args[i]);v=args[i+2];
   v=(v=='show')?'visible':(v='hide')?'hidden':v;
   if(obj)obj.style.visibility=v;}} else{
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function submitForm() {
// this function is to redirect the user to the coordinates

var loc 			= "product/usr/bin/perl -w?";
var product			= "product=";
var cor_product 		= document.form1.coordinate_product_id.value;
var cart			= "&cart_id=";
var cart_id			= document.form1.cart_id.value;
loc += product += cor_product += cart += cart_id;
location.href = loc;
}
function submit_cat(){
var loc 	= "cat/usr/bin/perl -w?";
var cart	= "cart_id=";
var cart_id	= document.form1.cart_id.value;
loc += cart += cart_id;
location.href = loc;
}
function tester()
{

  /*check through all the fields*/
  name_testlength = document.formtest.name.value.length;
  address_testlength = document.formtest.address.value.length  ;
  postcode_testlength = document.formtest.postcode.value.length  ;
  country_testlength = document.formtest.country.value.length  ;
  tel_testlength = document.formtest.tel.value.length  ;
  e_mail_testlength = document.formtest.email.value.length  ;
  
 
  if(eval(name_testlength) < 1)
  {
  alert("please enter your name");
   document.formtest.name.focus();
  return (false);
  }

  if(eval(address_testlength) < 1)
  {
  alert("please enter your billing address");
  document.formtest.address.focus();
  return (false);
  }
  
  if(eval(postcode_testlength) < 1)
  {
  alert("please enter your postcode number");
  document.formtest.postcode.focus();
  return (false);
  }
  
  if(eval(country_testlength) < 1)
  {
  alert("please enter your country");
  document.formtest.country.focus();
  return (false);
  }

  if(eval(tel_testlength) < 1)
  {
  alert("please enter your telephone number");
  document.formtest.tel.focus();
  return (false);
  }



   if (document.formtest.email.value == "")
      {
        alert("Please enter a value for the \"email\" field.");
        document.formtest.email.focus();
        return (false);
     }
  
    if (!isEmailAddr(document.formtest.email.value))
        {
          alert("Please enter a complete email address in the form: yourname@yourdomain.com");
          document.formtest.email.focus();
          return (false);
     }
     
     if (document.formtest.email.value.length < 3)
     {
       alert("Please enter at least 3 characters in the \"email\" field.");
       document.formtest.email.focus();
       return (false);
    }

  /*********end check*************/
}
function tester1()
{

  /*check through all the fields*/
  name_testlength = document.formtest.name.value.length;
  address_testlength = document.formtest.address.value.length  ;
  postcode_testlength = document.formtest.postcode.value.length  ;
  country_testlength = document.formtest.country.value.length  ;
  tel_testlength = document.formtest.tel.value.length  ;
  e_mail_testlength = document.formtest.email.value.length  ;
  
 
  if(eval(name_testlength) < 1)
  {
  alert("please enter your name");
   document.formtest.name.focus();
  return (false);
  }

  if(eval(address_testlength) < 1)
  {
  alert("please enter your billing address");
  document.formtest.address.focus();
  return (false);
  }
  
  if(eval(postcode_testlength) < 1)
  {
  alert("please enter your postcode number");
  document.formtest.postcode.focus();
  return (false);
  }
  
  if(eval(country_testlength) < 1)
  {
  alert("please enter your country");
  document.formtest.country.focus();
  return (false);
  }

  if(eval(tel_testlength) < 1)
  {
  alert("please enter your telephone number");
  document.formtest.tel.focus();
  return (false);
  }



   if (document.formtest.email.value == "")
      {
        alert("Please enter a value for the \"email\" field.");
        document.formtest.email.focus();
        return (false);
     }
  
    if (!isEmailAddr(document.formtest.email.value))
        {
          alert("Please enter a complete email address in the form: yourname@yourdomain.com");
          document.formtest.email.focus();
          return (false);
     }
     
     if (document.formtest.email.value.length < 3)
     {
       alert("Please enter at least 3 characters in the \"email\" field.");
       document.formtest.email.focus();
       return (false);
    }
    var fulldetails;
    fulldetails =+ document.formtest.name.value +'|'+ document.formtest.address.value +'|'+ document.formtest.postcode.value +'|'+ document.formtest.country.value +'|'+ document.formtest.country.value +'|'+ document.formtest.tel.value +'|'+ document.formtest.email.value;
    document.pal.custom.value = fulldetails;
  /*********end check*************/
}

 function isEmailAddr(email)
 {
   var result = false
   var theStr = new String(email)
   var index = theStr.indexOf("@");
   if (index > 0)
   {
     var pindex = theStr.indexOf(".",index);
     if ((pindex > index+1) && (theStr.length > pindex+1))
 	result = true;
   }
   return result;
 }


function test(name) {

	var c = getAnchorPosition(name);



	alert("X = "+c.x+" , Y = "+c.y);



	}

function test2(name) {

	var c = getAnchorWindowPosition(name);



	alert("X = "+c.x+" , Y = "+c.y);

	}
	
function hiLiteButton(item, hexcolor) {
      if(navigator.appName == 'Microsoft Internet Explorer') {
        item.style.background = hexcolor;
      }
    }	
    
    
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,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]);
    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+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' 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+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
function testfield(){
alert(document.form1.name.value);
if(document.form1.name.value == ""){
alert("Please enter your name");
return false;
}

}
function validatechar()
	{
	var myString = document.form1.cart_name.value;
	var inThere = myString.match(/'/g);
	var inThere1 = myString.match(/\//g);
	if (inThere) {
	   alert("The cart name must not have a ( ' ) charactor");
	   {return false;}
	}
	var inThere1 = myString.match(/\//g);
	if(inThere1){
	alert("The cart name must not have a ( / ) charactor");
	   {return false;}
	}
	var inThere2 = myString.match(/\\/g);
		if(inThere2){
		alert("The cart name must not have a ( /\ ) charactor");
		   {return false;}
		}


	// Make sure none of the required fields are empty
	var isFull = checkforblanks(document.form1.cart_name.value, "Enter A name for you saved cart ");
	if (!isFull)
		{return false;}
	}
	
	
	function checkforblanks()
		{
		for (var i = 0; i < arguments.length; i += 2)
			{
			if (!arguments[i])
				{alert("Please " + arguments[i+1] + ".");return false;}
			}
		return true;
	}
	
	
	
	function mod10( cardNumber ) { // LUHN Formula for validation of credit card numbers.
		var ar = new Array( cardNumber.length );
		var i = 0,sum = 0;
	
	
	    	for( i = 0; i < cardNumber.length; ++i ) {
	    		ar[i] = parseInt(cardNumber.charAt(i));
	    	}
	    	for( i = ar.length -2; i >= 0; i-=2 ) { // you have to start from the right, and work back.
	    		ar[i] *= 2;							 // every second digit starting with the right most (check digit)
	    		if( ar[i] > 9 ) ar[i]-=9;			 // will be doubled, and summed with the skipped digits.
	    	}										 // if the double digit is > 9, add those individual digits together 
	
	
	        	for( i = 0; i < ar.length; ++i ) {
	        		sum += ar[i];						 // if the sum is divisible by 10 mod10 succeeds
	        	}
	        	return (((sum%10)==0)?true:false);	 	
	    }
	
	
	        function expired( month, year ) {
	        	var now = new Date();							// this function is designed to be Y2K compliant.
	        	var expiresIn = new Date(year,month,0,0,0);		// create an expired on date object with valid thru expiration date
	        	expiresIn.setMonth(expiresIn.getMonth()+1);		// adjust the month, to first day, hour, minute & second of expired month
	        	if( now.getTime() < expiresIn.getTime() ) return false;
	        	return true;									// then we get the miliseconds, and do a long integer comparison
	    }
	
	
	        function validateCard(cardNumber,cardType,cardMonth,cardYear) {
	        	if( cardNumber.length == 0 ) {						//most of these checks are self explanitory
	        		alert("Please enter a valid card number.");
	        		return false;				
	        	}
	        	for( var i = 0; i < cardNumber.length; ++i ) {		// make sure the number is all digits.. (by design)
	        		var c = cardNumber.charAt(i);
	
	
	            		if( c < '0' || c > '9' ) {
	            			alert("Please enter a valid card number. Use only digits. Do not use spaces or hyphens.");
	            			return false;
	            		}
	            	}
	            	var length = cardNumber.length;			//perform card specific length and prefix tests
	
	
	                	switch( cardType ) {
	                		case 'a':
	
	
	                    			if( length != 15 ) {
	                    				alert("Please enter a valid American Express Card number.");
	                    				return;
	                    			}
	                    			var prefix = parseInt( cardNumber.substring(0,2));
	
	
	                        			if( prefix != 34 && prefix != 37 ) {
	                        				alert("Please enter a valid American Express Card number.");
	                        				return;
	                        			}
	                        			break;
	                        		case 'd':
	
	
	                            			if( length != 16 ) {
	                            				alert("Please enter a valid Discover Card number.");
	                            				return;
	                            			}
	                            			var prefix = parseInt( cardNumber.substring(0,4));
	
	
	                                			if( prefix != 6011 ) {
	                                				alert("Please enter a valid Discover Card number.");
	                                				return;
	                                			}
	                                			break;
	                                		case 'm':
	
	
	                                    			if( length != 16 ) {
	                                    				alert("Please enter a valid MasterCard number.");
	                                    				return;
	                                    			}
	                                    			var prefix = parseInt( cardNumber.substring(0,2));
	
	
	                                        			if( prefix < 51 || prefix > 55) {
	                                        				alert("Please enter a valid MasterCard Card number.");
	                                        				return;
	                                        			}
	                                        			break;
	                                        		case 'v':
	
	
	                                            			if( length != 16 && length != 13 ) {
	                                            				alert("Please enter a valid Visa Card number.");
	                                            				return;
	                                            			}
	                                            			var prefix = parseInt( cardNumber.substring(0,1));
	
	
	                                                			if( prefix != 4 ) {
	                                                				alert("Please enter a valid Visa Card number.");
	                                                				 document.MM_returnValue = (errors == '');
	                                                				return;
	                                                			}
	                                                			break;
	                                                	}
	                                                	if( !mod10( cardNumber ) ) { 		// run the check digit algorithm
	                                                		alert("Sorry! This is not a valid credit card number.");
	                                                		return false;
	                                                	}
	                                                	if( expired( cardMonth, cardYear ) ) {							// check if entered date is already expired.
	                                                		alert("Sorry! The expiration date you have entered would make this card invalid.");
	                                                		return false;
	                                                	}
	                                                	
	                                                	tester(); // at this point card has not been proven to be invalid
                                            }
                                            
                                            
                                            
                                            
                                            
                                            
                                            
function MM_validateForm100() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm100.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    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+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' 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+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}                                            
