//////////////////////validation for E mail////////////////////

var remail=/^([_&a-zA-Z0-9-]+(\.[_&a-zA-Z0-9-]+)*@[&a-zA-Z0-9-]+\.+[&a-zA-Z0-9-]+)/;
function checkEmail(fieldvalue){
	if(remail.test(fieldvalue))
			return false;
		else
			return true;
}

function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}

/////////////////////////Function to block alphabets ad speacial characters////////////////////////////////////

function blockNumbers(e)
{

	var key;
	var keychar;
	var reg;
	
	if(window.event) {
		// for IE, e.keyCode or window.event.keyCode can be used
		key = e.keyCode;
	}
	else if(e.which) {
		// netscape
		key = e.which;
	}
	else {
		// no event, so pass through
		return true;
	}

	keychar = String.fromCharCode(key);
	//alert(key);
	if ( (key>=48 &&  key<=57) || (key==46) || (key==34) || (key==39) || (key==32) || (key == 8))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/////////////////////////Function to check Zipcode////////////////////////////////////
function Zcodecheck(){
	formObj	=	document.forms.frmIndex;
	zipcode	=	trim(formObj.txtZcode.value);
	if(zipcode==""){
		alert("Please enter the zipcode");
		formObj.txtZcode.focus();
		return false;
	} else if((zipcode.length!=5)&&(zipcode!=0)){
		alert("Please enter valid zipcode");
		formObj.txtZcode.focus();
		return false;
	} else {
		return true;
	}
}

/////////////////////////Function to trim spaces////////////////////////////////////

function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}
/*
function Userinfo(frmUser){

    var errMsg  = "Please correct the following item(s):\n\n";
	var errNum  = 0;
	var fldName = "";

	if(trim(frmUser.txtName.value)=="") {
		if( !errNum ) fldName = "txtName"; 
		errMsg += ++errNum + ". Name cannot be blank.\n";
	}
	if(trim(frmUser.txtEmail.value)=="") {
		if( !errNum ) fldName = "txtEmail"; 
		errMsg += ++errNum + ". Email cannot be blank.\n";
	} 
	if(trim(frmUser.txtEmail.value)!="" && checkEmail(trim(frmUser.txtEmail.value))) {
		if( !errNum ) fldName = "txtEmail"; 
		errMsg += ++errNum + ". Email Address should be valid.\n";
	} 
	if(trim(frmUser.txtAddress.value)=="") {
		if( !errNum ) fldName = "txtAddress"; 
		errMsg += ++errNum + ". Address cannot be blank.\n";
	}
	if(trim(frmUser.txtCity.value)=="") {
		if( !errNum ) fldName = "txtCity"; 
		errMsg += ++errNum + ". City cannot be blank.\n";
	}
	if(trim(frmUser.txtState.value)=="") {
		if( !errNum ) fldName = "txtState"; 
		errMsg += ++errNum + ". State cannot be blank.\n";
	}
	if(trim(frmUser.txtCountry.value)=="") {
		if( !errNum ) fldName = "txtCountry"; 
		errMsg += ++errNum + ". Country cannot be blank.\n";
	}
	if(trim(frmUser.txtZip.value)=="") {
		if( !errNum ) fldName = "txtZip"; 
		errMsg += ++errNum + ". Zipcode cannot be blank.\n";
	}if(trim(frmUser.txtPhone.value)=="") {
		if( !errNum ) fldName = "txtPhone"; 
		errMsg += ++errNum + ". Phone cannot be blank.\n";
	}
	if(trim(frmUser.selCard.value)=="00") {
		if( !errNum ) fldName = "selCard"; 
		errMsg += ++errNum + ". Card Type cannot be blank.\n";
	}
	if(trim(frmUser.txtCardnum.value)=="") {
		if( !errNum ) fldName = "txtCardnum"; 
		errMsg += ++errNum + ". Card Number cannot be blank.\n";
	}
	if(trim(frmUser.selMonth.value)=="00") {
		if( !errNum ) fldName = "selMonth"; 
		errMsg += ++errNum + ". Month cannot be blank.\n";
	}if(trim(frmUser.selYear.value)=="00") {
		if( !errNum ) fldName = "selYear"; 
		errMsg += ++errNum + ". Year cannot be blank.\n";
	}if(trim(frmUser.txtScode.value)=="") {
		if( !errNum ) fldName = "txtScode"; 
		errMsg += ++errNum + ". Security code cannot be blank.\n";
	}
	if(trim(frmUser.txtChname.value)=="") {
		if( !errNum ) fldName = "txtChname"; 
		errMsg += ++errNum + ". Name on card cannot be blank.\n";
	}
	if ( (frmUser.txtCardnum.value!='') && (frmUser.selMonth.value!='') && (frmUser.selYear.value!='') && (frmUser.txtScode.value!='') && (trim(frmUser.txtChname.value)!=''))  {
		if( !errNum ) fldName = "txtCardnum"; 
	    return validateCard(frmUser.txtCardnum.value,frmUser.selCard.value,frmUser.selMonth.value,frmUser.selYear.value)
	} 
	if(errNum)
	{
		alert(errMsg);
		return false;
	} else{
		return true;
	}
}*/
function Userinfo(frmUser){
	
	card = trim(frmUser.txtCardnum.value);
	if(trim(frmUser.txtName.value)==""){
		alert("Name can not be blank.");
		frmUser.txtName.value ='';
		frmUser.txtName.focus();
		return false;
	} else if(trim(frmUser.txtEmail.value)==""){
		alert("Email cannot be blank..");
		frmUser.txtEmail.value = ''
		frmUser.txtEmail.focus();
		return false;
	} else if(checkEmail(trim(frmUser.txtEmail.value)) ) {
		alert("Email Address should be valid.");
		frmUser.txtEmail.value = ''
		frmUser.txtEmail.focus();
		return false;
	} else if(trim(frmUser.txtAddress.value)==""){
		alert("Address cannot be blank.");
		frmUser.txtAddress.value = ''
		frmUser.txtAddress.focus();
		return false;
	} else if(frmUser.txtCity.value==""){
		alert("City cannot be blank.");
		frmUser.txtCity.value = ''
		frmUser.txtCity.focus();
		return false;
	} else if(frmUser.txtState.value==""){
		alert("State cannot be blank.");
		frmUser.txtState.value = ''
		frmUser.txtState.focus();
		return false;
	} else if(frmUser.txtCountry.value==""){
		alert("Country cannot be blank.");
		frmUser.txtCountry.value = ''
		frmUser.txtCountry.focus();
		return false;
	}else if(trim(frmUser.txtZip.value)==""){
		alert("Zipcode cannot be blank.");
		frmUser.txtZip.value = ''
		frmUser.txtZip.focus();
		return false;
	} else if(trim(frmUser.txtPhone.value)==""){
		alert("Phone Number cannot be blank.");
		frmUser.txtPhone.value = ''
		frmUser.txtPhone.focus();
		return false;
	} else if(frmUser.selCard.value== 0){
		alert("Card Type cannot be blank.");
		frmUser.selCard.focus();
		return false;
	} else if(frmUser.txtCardnum.value == "")	{
		alert("Card Number cannot be blank.");
		frmUser.txtCardnum.value = ''
		frmUser.txtCardnum.focus();
		return false;
	}else if(frmUser.selMonth.selectedIndex=='00')
	{
		alert("Card Expiry Month cannot be blank.");
		frmUser.selMonth.focus();
		return false;
	
	}else if(frmUser.selYear.selectedIndex=='00')
	{
		alert("Card Expiry Year cannot be blank.");
		frmUser.selYear.focus();
		return false;
	
	}else if(trim(frmUser.txtScode.value) == "")	{
		alert("Card Verification code cannot be blank.");
		frmUser.txtScode.value = ''
		frmUser.txtScode.focus();
		return false;
	} else if(trim(frmUser.txtChname.value) == ""){
		alert("Card Holder name cannot be blank.");
		frmUser.txtChname.value = ''
		frmUser.txtChname.focus();
		return false;
	} else if(frmUser.txtCardnum.value.value!=''){
	    return validateCard(frmUser.txtCardnum.value,frmUser.selCard.value,frmUser.selMonth.value,frmUser.selYear.value)
	} else{
		return true;
	}
}

/////////////////////////////////Sort option//////////////////////////
function fnSort(formNm,val,sortOption)
{
	formNm.sortby.value = val;
	if(sortOption=='')
		formNm.sortOption.value = 'asc';
	else if(sortOption=='asc')
		formNm.sortOption.value = 'desc';
	else if(sortOption=='desc')
		formNm.sortOption.value = 'asc';
	formNm.submit();
}

 //////////////////////////////////////////////////credit card validation//////////////////////////////////////////////////////
 
 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 false;
                    			}
                    			var prefix = parseInt( cardNumber.substring(0,2));
                        		if( prefix != 34 && prefix != 37 ) {
                        				alert("Please enter a valid American Express Card number.");
                        				return false;
                        		}
                        		break;
                        case 'd':
                                if( length != 16 ) {
                                    alert("Please enter a valid Discover Card number.");
                            		return false;
                          		}
                            	var prefix = parseInt( cardNumber.substring(0,4));
          		                if( prefix != 6011 ) {
                               		alert("Please enter a valid Discover Card number.");
                                	return false;
                               }
                               break;
                        case 'm':
                               if( length != 16 ) {
                                   alert("Please enter a valid MasterCard number.");
                                   return false;
                               }
                               var prefix = parseInt( cardNumber.substring(0,2));
                    		   if( prefix < 51 || prefix > 55) {
                                   alert("Please enter a valid MasterCard Card number.");
                                   return false;
                               }
                               break;
                        case 'v':
                               if( length != 16 && length != 13 ) {
                                    alert("Please enter a valid Visa Card number.");
                                    return false;
                               }
                               var prefix = parseInt( cardNumber.substring(0,1));
                    		   if( prefix != 4 ) {
                                   alert("Please enter a valid Visa Card number.");
                                   return false;
                               }
                               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;
							}
                           	return true; // at this point card has not been proven to be invalid
                    }
	
	
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function loadLinks(catId,searchIndex,self) {
  var linksURL = "pagingProcess.php?action=display&cid="+catId+"&s="+searchIndex;
  if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
  } else if(window.ActiveXObject) {
    xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
  }
  xmlhttp.open("GET",linksURL,true);
  xmlhttp.send(null);
  xmlhttp.onreadystatechange = UpdateLinks
}

function UpdateLinks () {
  if (xmlhttp.readyState == "4") {
    document.getElementById('searchLinks').innerHTML = xmlhttp.responseText;
  } else {
    document.getElementById('searchLinks').innerHTML = "<img src='images/loading.gif'>";
  }
}


