/********************
The following are the regular expressions used in CleanInputFunctions.asp
*********************/
NameRegExpression							=	/^[a-zA-Z0-9'\s\-\.,]{1,}$/;
AddressRegExpression						=	/^[0-9a-zA-Z\s'\-\.,#]{1,500}$/;
OptionalAddressRegExpression		=	/^[0-9a-zA-Z\s'\-\.,#]{0,500}$/;
ZipRegExpression 								= /^[0-9]{5}$/;
USPhoneNumberRegExpression 	= /^[0-9]{10}$/;
PhoneNumberRegExpression			=	/^[0-9]{1,50}$/;
OneCharacterRegExpression 			=	/^[a-zA-Z]{1}$/;
/*************************
The following functions will take CONTROLS as parameters:
*/
function validateName(control)
{
	var text =  control.value;
	var result = nameIsValid(text);
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	if(result == true)
	{
		errorBox.style.display = "none";
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * Value is not valid! We allow only alphabetical characters in addition to Space, dash, dot, single quote and comma.";
		control.focus();	
	}
	return result;
}

function validateNameOptional(control)
{
	var text =  control.value;	
	var result = nameIsValid(text)||(text=="");
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	if(result == true)
	{
		errorBox.style.display = "none";
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * Value is not valid! We allow only alphabetical characters in addition to Space, dash, dot, single quote and comma.";
		control.focus();	
	}
	return result;
}

function validateOnceCharacterOptional(control)
{
	var text =  control.value;	
	var result = isOneAlphabeticalChar(text)||(text=="");
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	if(result == true)
	{
		errorBox.style.display = "none";
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * Value is not valid! Please use only alphabetical characters.";
		control.focus();	
	}
	return result;
}

function validateZip(control)
{
	var text =  control.value;
	var result = IsZip(text);
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	if(result == true)
	{
		errorBox.style.display = "none";
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * Value is not valid! Use only 5 digits for US zip or alpha-numeric characters for other countries.";
		control.focus();		
	}
	return result;
}

function validateZipOptional(control)
{
	//accepts empty value for Zip codes
	var text =  control.value;
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	var result = false;
	if(text == "")
	{
		result = true;
	}
	else
	{
		result = IsZip(text);
	}
	if(result == true)
	{
		errorBox.style.display = "none";
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * Value is not valid! Use only 5 digits for US zip or alpha-numeric characters for other countries.";
		control.focus();		
	}
	return result;
}


function validateAddressOptional(control)
{
	var address = control.value;
	var result =  IsAddressOptional(address);
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	if (result==true)
	{
		errorBox.style.display = "none";
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * The value is not valid! You may use digits and alphabetical characters for this field in addition to Space, Single quote, dash, dot, comma, and the number sign #.";
		control.focus();		
	}
	return result;
}

function validateAddress(control)
{
	var address = control.value;
	var result =  IsAddress(address);
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);

	if (result==true)
	{
		errorBox.style.display = "none";
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * The value is not valid! You may use digits and alphabetical characters for this field in addition to Space, Single quote, dash, dot, comma, and the number sign #.";
		control.focus();		
	}
	return result;
}


function validatePromotionCodeOptional(control)
{
	var code = control.value;
	var result = false;
	var participateStickyProgramFlag="NO";
	var Tcustomerid=document.getElementById("TcustomerID");
	var customerid=Tcustomerid.value;
	//alert("Tcustomerid:"+customerid); 
	var what=1;
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	//Since we have some special cases where the promotion code has weired chars, we hardcode those codes and hence we need to convert the code to lower case to avoid
	code = code.toLowerCase();
	if (code != "")
	{
			result	   = 	promotionCodeRegExp.test(code);
	}
	else
	{
		result = true;
	}	

	if (result==true)
	{
		errorBox.style.display = "none";
		if (code != "")
		{///alert("get you"+code);
		
			///check if this user participate a sticky discount program
			participateStickyProgramFlag=checkUserparticipateStickyProgram(customerid);
			///alert("participateStickyProgramFlag: " +participateStickyProgramFlag);
			if (participateStickyProgramFlag=="YES")
			{
				what=showdialogewindow(control);
			}
			
			
			//result = 	false;
		}
		
		
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * The promotion code you entered is not valid, please check it and try again.";
		control.focus();		
	}
	
	
	
	return result;
}

function showdialogewindow(PromotionTBX)
{
	var Rvalue=10;
	
	
	
	$("#dialogP1").dialog({
				  modal: true,
				  autoOpen: true ,
				  draggable:true ,
				  resizable:true,
				  width: 480,
				  position:'center',
				 // height:200,
				  show: 'blind',
				  /// show:'slide',
				  hide: 'explode',
				 
				  title: 'Notification' ,
				  buttons: {
					  "Yes": function() 
					  {
						   //Rvalue=1;
						  // alert("Yes");
						  $(this).dialog("close"); 
						  ///return Rvalue;
						 
					  }, 
					  "No": function() 
					  {
						   //Rvalue=0;
						  // alert("No");
						   
						  
						  $(this).dialog("close"); 
						  //// clearn the text in promotion code field.
						  PromotionTBX.value="";
						  
						 /// return Rvalue;
						 
					  } 
				  }
									  
			  });
	
	//if (Rvalue!=10)
	//{return Rvalue;}
	
	///$("#dialogP1").dialog("open");
	
	
	
}



function validateCvv(control)
{
	var cvvCode = control.value;
	var result = (IsCVV(cvvCode));		
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	if(result)
	{
		errorBox.style.display = "none";		
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * 3 or 4 digits on your credit card.Please try again";
		control.focus();		
	}
	return result;
}


function validateEmployerCode(control)
{
	var code = control.value;
	var result 		   = 	employerCodeRegExp.test(code);	
	var errorBoxID = control.id+ "ErrorBox";
	var errorBox = document.getElementById(errorBoxID);
	if(result == true)
	{
		errorBox.style.display = "none";
	}
	else
	{
		errorBox.style.display = "";
		errorBox.innerHTML = " * Special characters are not allowed! Please try again.";
		control.focus();		
	}
	return result;
}

/*************************
The following functions will take values as parameters:
*/
function IsCVV(myVar)
{
	var myRegExpression		=	/^[0-9]{3,4}$/;
	var m 		   = 	myRegExpression.test(myVar);
	return m;	
}

function IsNumber(myVar)
{
	var myRegExpression		=	/^[0-9]{16}$/;
	var m 		   = 	myRegExpression.test(myVar);
	return m;
}

function isPhoneNumber(myVar)
{
	var myRegExpression		=	PhoneNumberRegExpression;
	var m 		   = 	myRegExpression.test(myVar);
	return m;
}

function isUSPhoneNumber(myVar)
{
	var myRegExpression		=	USPhoneNumberRegExpression;
	var m 		   = 	myRegExpression.test(myVar);
	return m;
}


function IsZip(myVar)
{
	var myRegExpression		=	ZipRegExpression;
	var m 		   = 	myRegExpression.test(myVar);
	return m;
}

function IsAddress(myVar)
{
	var myRegExpression		=	AddressRegExpression;
	var m 		   = 	myRegExpression.test(myVar);
	return m;
}

function IsAddressOptional(myVar)
{
	var myRegExpression		=	OptionalAddressRegExpression;
	var m 		   = 	myRegExpression.test(myVar);
	return m;
}

function nameIsValid(myVar)
{
	var myRegExpression		=	NameRegExpression;
	var m 		   = 	myRegExpression.test(myVar);
	return m;
}

function isOneAlphabeticalChar(myVar)
{
	var myRegExpression		=	OneCharacterRegExpression;
	var m 		   = 	myRegExpression.test(myVar);
	return m;
}


function checkUserparticipateStickyProgram(thisuserid)
	{	
		var RetureValue="NO";
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		  return RetureValue; 	
		} 
		  		  
		  
			  var url	=	"../common/checkUserParticpateStickyProgramWrapper.asp?Userid=" + thisuserid;  
			  url		=	url	+	"&sid="+Math.random();
			  xmlHttp.onreadystatechange=stateChanged;
			  xmlHttp.open("GET",url,false);
			  xmlHttp.send(null);	
			  result	=	xmlHttp.responseText;
		 
			  if(result=="YES")
			  {			  
				  RetureValue="YES";
			  }
			  else
			  {
				 RetureValue="NO";
			  }
		  		  
		  
		  return RetureValue;
	}
