/*
	
	 #############################################################################
	 #		File Name     : Validations.js										 #
	 #		Functionality : This javascript file contains common functions		 #	
 	 #		Last Modified : 													 #	  
	 #		Author        : 													 #	
 	 #############################################################################
		
*/
// initialize variables 
var ppcIE=((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)));
var ppcNN6=((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5));
//var ppcIE=(navigator.appName == "Microsoft Internet Explorer");
var ppcNN=((navigator.appName == "Netscape")&&(document.layers));

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_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_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.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 trim(strInput)
{
// for trimLeft
	var strTemp = strInput
	while(strTemp.charAt(0)==" ")
	{
		strTemp = strTemp.slice(1);
	}
// for TrimRight
	var iLength = strTemp.length;
	iLength--;// accounts for zero based index
	while(strTemp.charAt(iLength)==" ")
	{
		strTemp = strTemp.slice(0,iLength--);
	}
	return strTemp;
}

function isEmail (s)
{
   var reEmail = /^.+\@.+\..+$/
   if (isEmpty(s))
	   return false;
    else {
       return reEmail.test(s)
    }
}

//This function returns true if string will check the given string is a Empty string
function isEmpty(s)
{
   return ((s == null) || (s.length == 0))
}

function isUSPhoneNumber(s)
{	
	reDigit=/\(\d{3}\)\d{3}\-\d{4}$/
	
	if (reDigit.test(s) == true)
	{
		return true;
	}
	else 
	{
		return false;
	}
	 
}

//function to validate phone numbers
function ValidatePhone(objPhone)
{
	var sPhone=objPhone.value;
	
	var sValidPhone="";
	var sFormatPhone="";
	var sRegExp="";
	sRegExp=/\(|\)|-/g
	sValidPhone=trim(sPhone.replace(sRegExp,""));
	
	if (sValidPhone > 0)	
	{
		if (isUSPhoneNumber(sPhone) == false)
		{
			
			if (sValidPhone.length!=10)
			{
				alert("Please enter a valid Phone Number of 10 digits");
				objPhone.value="";
				objPhone.focus();
				return false;
			}
			if (isNaN(sValidPhone)==true)
			{
				alert("Please enter a valid Phone Number of 10 digits");
				objPhone.value="";
				objPhone.focus();
				return false;
			}
			if ((sValidPhone.indexOf(".") == -1) || (sValidPhone.indexOf("'") == -1) || (sValidPhone.indexOf('"') == -1))
			{
				alert("Please enter a valid Phone Number of 10 digits");
				objPhone.value="";
				objPhone.focus();
				return false;
			}
			return true;
		}
	}
	else
	{
		alert ("Please enter a valid Phone Number of 10 digits");
		objPhone.value="";
		objPhone.focus();
		return false;
	}
}

function FormatPhone(objPhone)
{
	var sPhone=objPhone.value;
		
	if (isUSPhoneNumber(sPhone) == false)
	{
		var sValidPhone="";
		var sFormatPhone="";
		var sRegExp="";
		sRegExp=/\(|\)|-/g
		sValidPhone=trim(sPhone.replace(sRegExp,""));
	
		if (sValidPhone.length==10)
		{
			sFormatPhone="(" + sValidPhone.substring(0,3) + ")"
			sFormatPhone=sFormatPhone + sValidPhone.substring(3,6) + "-" + sValidPhone.substring(6)
					
		}
		else
		{
			sFormatPhone=sPhone;
		}
		objPhone.value=sFormatPhone;
		return true;
	}
	
		
}

/* *** Function to display the message/tooltip in the status bar *** */
function DisplayStatusMessage(sMessage)
{		
	window.status=sMessage;
	return true;
}

function maskIt(fldVal,objField)
{
   var isNamedFone;	
   var tmpStr = "(";
   keyCount = fldVal.length;
   keyEntered =fldVal.substring(keyCount-1,keyCount);
	
   if (keyCount <= 1)   isNamedFone = false;
   if (!isNamedFone)    
     
   keyCount++;
   switch (keyCount)
   {
	  case 2: 
         tmpStr +=  fldVal;
        objField.value = tmpStr;
         break;
      case 5:
         objField.value += ")" ;
         break;
      case 9:
         objField.value += "-" ;
         break;
   }     
}

function maskZip(fldVal,objField)
{
	var isNamedFone;	
	var tmpStr = "";
	keyCount = fldVal.length;
	keyEntered =fldVal.substring(keyCount-1,keyCount);
			
	if (keyCount <= 1)   isNamedFone = false;
	if (!isNamedFone)    
				
	keyCount++;
	switch (keyCount)
	{
		case 2: 
			tmpStr +=  fldVal;
			objField.value = tmpStr;
			break;
		case 6:
			objField.value += "-" ;
			break;
	}     
}
/*******************************************************************/
//Auto set CardType with the CardNumber provided by the User
/*******************************************************************/
function set_CardType(objCardNum,objCardType)
{
	var CardNumber=objCardNum.value;
	var fstCardNum;
	var CardType;
	
	fstCardNum=CardNumber.slice(0,1);
	
	if(parseInt(fstCardNum) < 4)
	{
		fstCardNum=CardNumber.slice(0,2);
	}
	
	switch(parseInt(fstCardNum))
	{
		case 4:
			CardType='Visa';
			break;
		case 5:
			CardType='MasterCard';
			break;
		case 6:
			CardType='Discover';
			break;
		case 30:
			CardType='Diners Club';
			break;
		case 34:
			CardType='American Express';
			break;
		default:
			if(!fstCardNum=='')
			{
				alert("Invalid CardNumber");
				objCardNum.value="";
				objCardNum.focus();
			}
			break;
	}

	for(i=0;i<objCardType.length;i++)
	{
		if(objCardType.options[i].value==CardType)
		{
			objCardType.options[i].selected=true;
			break;
		}
	}
}

//function to validate ZipCode Number
function ValidateZip(objZipCode)
{
	var sZipCode=objZipCode.value;	
	if(sZipCode!="")
	{
		var sValidZip="";
		sValidZip=trim(sZipCode.replace('-',''));
	
			if (isNaN(sValidZip)==true)
			{
				/*alert("Please enter a valid Zip Code of 9 digits");
				objZipCode.value="";
				objZipCode.focus();*/
				return false;
			}
			return true;
	}
}
function ValidateShiptoBilltoZip(objZipCode)
{
	var sZipCode=objZipCode.value;	
	if(sZipCode!="")
	{
		var sValidZip="";
		sValidZip=trim(sZipCode.replace('-',''));
	
			if (isNaN(sValidZip)==true)
			{
				alert("Please enter a valid Zip Code of 9 digits");
				objZipCode.value="";
				objZipCode.focus();
				return false;
			}
			return true;
	}
}
function CheckKeyCode(objEvent)
{
	var Obj, keyvalue;
	if(document.all)
		keyvalue=window.event.keyCode;
		
	if(document.layers)
		keyvalue=objEvent.which;
	
	if (ppcNN6)
		keyvalue = (window.Event) ? objEvent.which : objEvent.keyCode;
	

	if(keyvalue<=46 || keyvalue>57 || (keyvalue==47))
	{
		if (keyvalue != 8)
		{
			if(document.all)
				window.event.keyCode=0;
				return false;
			if (ppcNN6)
				return false;
		}
	} 

	return true;
}

function maskZip(fldVal,objField)
{
var isNamedFone;	
var tmpStr = "";
keyCount = fldVal.length;
keyEntered =fldVal.substring(keyCount-1,keyCount);
			
	if (keyCount <= 1)   isNamedFone = false;
	if (!isNamedFone)    
		        
	keyCount++;
	switch (keyCount)
	{
		case 2: 
			tmpStr +=  fldVal;
			objField.value = tmpStr;
			break;
		case 6:
			objField.value += "-" ;
			break;
	}     
}



