
//***************function for email-id validation*********************
function valid_email(eml)
{
	//declare the required variables
	var mint_len;
	var mstr_eml=eml;
	var mint_at=0;
	var mint_atnum=0;
	var mint_dot=0;
	var mint_dotnum=0;
	
	mint_len=eml.length; //takes the length of the email address entered
	
	//checking for the symbol single quote. If found replace it with its html code
	if (mstr_eml.indexOf("'")!=-1)
	{
		mstr_eml=mstr_eml.replace("'","&#39;");
	}
	
	//checking for the (@) & (.) symbol
	for(var iloop=0;iloop<mint_len;iloop++)
	{
		if(mstr_eml.charAt(iloop)=="@")
		{
			mint_at=iloop+1;
			mint_atnum=mint_atnum+1;
		}
		if(mstr_eml.charAt(iloop)==".")
		{
			mint_dot=iloop+1;
			mint_dotnum=mint_dotnum+1;
		}
	}
	
	//if nothing entered in the field
	if (mstr_eml=="")
	{
		return false
	}
	
	//if @ entered more than once & dot (.) entered more than 4 times
	else if((mint_atnum!=1)||(mint_dotnum>4)||((mint_dot-mint_at)<2)||((mint_len-mint_dot)<2)||(mint_at<3))
	{
		return false;
	}
	
	//if any blank space is entered in the email address
	else if (mstr_eml.indexOf(" ")!=-1)
	{
		return false;
	}
}


//***********fuction for date validation******************

function valid_date(datevalue)
{
	var input_date = new String(datevalue);
	var dat;
	var count = 0;
	
	for (var m=0;m<input_date.length;m++)
	{
		if ((input_date.charAt(m)=="/")||(input_date.charAt(m)=="."))
		{
			count=count+1;
		}
	}
	if ((input_date.indexOf(" ")!=-1)||(count!=2))
	{
		return false;
	}
	if (input_date.indexOf("/")!=-1)
	{
		dat=input_date.split("/");
	}
	else if (input_date.indexOf(".")!=-1)
	{
		dat=input_date.split(".");
	}
	
	/////validations for month
	
	if (isNaN(dat[0]))
	{
		return false;
	}
	else if ((dat[0]<1)||(dat[0])>12)
	{
		return false;
	}

	//validations for days
	
	if (isNaN(dat[1]))
	{
		return false;
	}
	else if ((dat[0]=="1")||(dat[0]=="3")||(dat[0]=="5")||(dat[0]=="7")||(dat[0]=="8")||(dat[0]=="10")||(dat[0]=="12"))
	{
		if ((dat[1]<1)||(dat[1]>31))
		{
			return false;
		}
	}	
	else if ((dat[0]=="4")||(dat[0]=="6")||(dat[0]=="9")||(dat[0]=="11"))
	{
		if ((dat[1]<1)||(dat[1]>30))
		{
			return false;
		}
	}
	else if (dat[0]==2)
	{
		if ((dat[2] % 4)==0)
		{
			if ((dat[1]<1)||(dat[1]>29))
			{
				return false;
			}
		}
		else
		{
			if((dat[1]<1)||(dat[1]>28))
			{
				return false;
			}
		}	
	}

	//validation for year
	
	if (isNaN(dat[2]))
	{
		return false;
	}
	else if ((dat[2].length!=2)&&(dat[2].length!=4))
	{
		return false;
	}
	return true;
}

//*****************function for checking blank field*******************
function checkBlankField(txt)
{
	var mint_txt=txt.length; //Takes the total length of the value entered
	var mstr_txt=txt;
	var mint_count=0;
	
	//checking with each character for space
	for(var iloop=0;iloop<mint_txt;iloop++)
	{
		if(mstr_txt.charAt(iloop)==" ")
		{
			mint_count=mint_count+1;
		}
	}
	
	//if nothing entered in the field
	if (txt=="")
	{
		return false;
	}
	
	//if only spaces are entered
	else if (mint_count==mint_txt)
	{
		return false;
	}
}

//************/////////Compare two dates(2nd Date not more than 1st Date)/////////********************************

function compareDates(date1,date2)
{
	//date1 < date2
	// Ex. 12/1/2001 - 1/1/2001
	var input_date1=new String(date1);
	var input_date2=new String(date2);
	var dat1;
	var dat2;
	var count1=0;
	var count2=0;
	var dates1=new Date(date1);
	var dates2=new Date(date2);
	var year1=dates1.getFullYear();
	var year2=dates2.getFullYear();
	
	
	//split date1
	for (var m=0;m<input_date1.length;m++)
	{
		if ((input_date1.charAt(m)=="/")||(input_date1.charAt(m)=="."))
		{
			count1=count1+1;
		}
	}
	if ((input_date1.indexOf(" ")!=-1)||(count1!=2))
	{
		return false;
	}
	if (input_date1.indexOf("/")!=-1)
	{
		dat1=input_date1.split("/");
	}
	else if (input_date1.indexOf(".")!=-1)
	{
		dat1=input_date1.split(".");
	}
	
	//split date2
	for (var m=0;m<input_date2.length;m++)
	{
		if ((input_date2.charAt(m)=="/")||(input_date2.charAt(m)=="."))
		{
			count2=count2+1;
		}
	}
	if ((input_date2.indexOf(" ")!=-1)||(count2!=2))
	{
		return false;
	}
	if (input_date2.indexOf("/")!=-1)
	{
		dat2=input_date2.split("/");
	}
	else if (input_date2.indexOf(".")!=-1)
	{
		dat2=input_date2.split(".");
	}
	
	
	////compare years
	
	//if (parseInt(dat2[2])>parseInt(dat1[2]))
	if (parseInt(Math.abs(year2))>parseInt(Math.abs(year1)))
	{		
		return false;
	}
	if 	(parseInt(dat2[2])==parseInt(dat1[2]))
	{
		if (parseInt(Math.abs(dat2[0]))>parseInt(Math.abs(dat1[0])))
		{
			return false;
		}
	}
	if((parseInt(Math.abs(dat2[2]))==parseInt(Math.abs(dat1[2])))&& (parseInt(Math.abs(dat2[0]))==parseInt(Math.abs(dat1[0]))))
	{
	 	if (parseInt(Math.abs(dat2[1]))>parseInt(Math.abs(dat1[1])))
		{
			return false;
		}
	}
}

//**************************Function to check Positive Integer****************************
function checkPositiveInteger(val)
{
	if (isNaN(val)==true)
    {
		return false;
    }
    var mystring=new String(val)
	var x=mystring.indexOf(".")
    if (x!="-1")
    {
		return false;
    }
    if (val<0)
    {
		return false;
    }    
}

//******************////////////////validations for PhoneNumber fields //////////******************
//Phone Format <STD-Number>, <(STD)-NUMBBER>, <STD,NUMBER>
function checkPhoneNumber(num)
{
	var mint_num=num;
	var mint_len=num.length;
	var mstr_ph;
	var mint_nm=0;
	
	for (var m=0;m<mint_len;m++)
	{
		mstr_ph=mint_num.charAt(m)
		if(mstr_ph==" ")
		{
			mint_nm=mint_nm+1;
		}
		if (isNaN(mstr_ph))
		{
			if ((mstr_ph!="-")&&(mstr_ph!=",")&&(mstr_ph!="(")&&(mstr_ph!=")"))
			{			
				mint_nm=mint_nm+1;
			}					
		}
	}
	if((mint_num=="")||(mint_nm!=0))
	{
		return false;
	}
}

//************************** function to check price format *******************************
// 4500.50

function checkPrice(num)
{
	var mint_dot = 0;
	var mstr_char = new String(num);
	mint_position = 0;
	for(var mint_char=0;mint_char<mstr_char.length;mint_char++)
	{
		//if not digits
		if(mstr_char.charAt(mint_char)!="0" && mstr_char.charAt(mint_char)!="1" && mstr_char.charAt(mint_char)!="2" && mstr_char.charAt(mint_char)!="3" && mstr_char.charAt(mint_char)!="4" && mstr_char.charAt(mint_char)!="5" && mstr_char.charAt(mint_char)!="6" && mstr_char.charAt(mint_char)!="7" && mstr_char.charAt(mint_char)!="8" && mstr_char.charAt(mint_char)!="9" && mstr_char.charAt(mint_char)!=".")
		{
			return false;
		}
		if(mstr_char.charAt(mint_char)==".")
		{
			mint_dot = mint_dot + 1
			mint_position = mstr_char.indexOf(".");
		}
	}
	//if number of dots is more than one
	if(mint_dot>1)
	{
		return false;
	}
	//check no. of characters after dot mark
	if(mint_dot != 0)
	{
		if((parseInt(mstr_char.length)-1)-parseInt(mint_position)>2)
		{
			return false;
		}
	}
}

//**************************** trimming a variable ***************************************
function trimSpaces(pass)
{    
  str = pass
	
  while(str.charAt(0) == " ")
  {
    str=str.substring(1,str.length)
  }
    
  while(str.charAt(str.length-1) == " ")
  {
    str=str.substring(0,str.length-1)
  }
    
  return (str);
}
//***************************** function for valid pin number ************************function checkZip(num)
{
	var mint_zip=num;
	var mint_len=num.length;
	var mstr_zip;
	var mstr_zipcode
	
	for (var m=0;m<mint_len;m++)
	{
		mstr_zip=mint_zip.charAt(m)
		if ((isNaN(mstr_zip))||(mstr_zip==" "))
		{
			mstr_zipcode="invalid" 					
		}
	}
	if ((mstr_zipcode=="invalid")||(mint_zip=="")||(mint_len!=6))
	{
		return false;
	}
}

//***************************************Validations for Check Box**************************

function checkCheckbox(chbx)
{
	var mint_len= chbx.length;
	var mstr_txt=0;
	
	if((chbx.checked)==true)
	{
		return true;
	}
	for(var iloop=0;iloop<mint_len;iloop++)
	{
		if (chbx[iloop].checked)
		{
			mstr_txt=mstr_txt+1 ;
		}
	}
	if (mstr_txt==0)
	{
		return false;
	}
}

//************* Validations for populating Customers for the Region Selected *****************

function callRegion(type)
{
	var regionid=document.frm_search.sct_region[document.frm_search.sct_region.selectedIndex].value;
	//Reset Customers list
	for (i=document.frm_search.sct_customer.length;i>0;i--)
	{
		document.frm_search.sct_customer.options[0] = null;
	}
	document.frm_search.sct_customer.size=1;
	document.frm_search.sct_customer.options[0]=new Option("Select Client","0");
	
	for (var i=0;i<=document.frm_search.length-1;i++)
	{
		if ("hid_"+regionid==document.frm_search.elements[i].name)
		{
			var mstr_customers=new String(document.frm_search.elements[i].value)
			if (mstr_customers!="")
			{
				var mstr_custarrjs=mstr_customers.split("^")
				document.frm_search.sct_customer.options.length=mstr_custarrjs.length+1;
				for(var iloop=0;iloop<=mstr_custarrjs.length-1;iloop++)
				{
					var mstr_customerarr =mstr_custarrjs[iloop].split("_");
					var valOption = new Option(mstr_customerarr[1],mstr_customerarr[0]);
					document.frm_search.sct_customer.options[iloop+1]=valOption;
				}	
			}
			else
			{
				alert("No Client Exist in the Selected Region");
			}					
		}
	}	
}
