// function sets up the year and month controls.

// this function uses the regular expression for the checking the field to accept only "0-9()-" --- VK
function checkphone(field)
{
	// this is returning the TRUE values as per the Sachin's and Avi's suggestion.
var value=field.value;
//9474/RA.Begin.Inser the phone number validation in us format xxx-xxx-xxxx or 
//xxxxxxxxxx or xxx xxx xxxx or (xxx)xxx-xxxx 
var pat1 = /^\d{10}$/;// xxxxxxxxxx
var pat2 = /^\s*\(\s*\d{3}\s*\)\s*\d{3}\s*-\s*\d{4}\s*$/;//(xxx) xxx-xxxx
var pat3 = /^\s*\d{3}\s*-\s*\d{3}\s*-\s*\d{4}s*/;//xxx-xxx-xxxx
var pat4 = /^\s*\d{3}\s*\d{3}\s*\d{4}s*/;//xxx xxx xxxx
if(pat2.test(value) || pat1.test(value)|| pat3.test(value)|| pat4.test(value)){
		
	}
	else 	{
		alert ("Sorry,  Telephone Number  is invalid.\nAllowed formats are xxxxxxxxxx or (xxx)xxx-xxxx or xxx-xxx-xxxx or xxx xxx xxxx \n ");
		field.focus();
		field.select();
		return false;
	}
	return true;
	//9474/RA.End.Insert
}

function setyears(yrf,yrt,objyear,objmonth,objday)
{
 	ctr=0;
	for (var i = 0; i < objyear.length; i++)
	{
		objyear.options[0] = null;
	}
	timeC = new Date();
	currYear = timeC.getFullYear();
	for (var i=yrf,j=0; i <= yrt; i++,j++)
	{
		objyear.options[j] = new Option(i);
	}
	objyear.options[objyear.options.length-1].selected=true;
	if(objmonth.options.length>0)
	{
		objmonth.options[0] = null;	
	}
	objmonth.options[0] = new Option('January',1);
	objmonth.options[1] = new Option('February',2);
	objmonth.options[2] = new Option('March',3);
	objmonth.options[3] = new Option('April',4);
	objmonth.options[4] = new Option('May',5);
	objmonth.options[5] = new Option('June',6);
	objmonth.options[6] = new Option('July',7);
	objmonth.options[7] = new Option('August',8);
	objmonth.options[8] = new Option('September',9);
	objmonth.options[9] = new Option('October',10);
	objmonth.options[10] = new Option('November',11);
	objmonth.options[11] = new Option('December',12);
	objmonth.options[0].selected=true;
	populate(objyear,objmonth,objday);
}

function populate(objyear,objmonth,objday)
{

	obj_Day = objday.options[objday.selectedIndex].text;
	obj_Month = objmonth.options[objmonth.selectedIndex].value;

	timeA = new Date(objyear.options[objyear.selectedIndex].text, objmonth.options[objmonth.selectedIndex].value,1);
	timeDifference = timeA - 86400000;
	timeB = new Date(timeDifference);
	var daysInMonth = timeB.getDate();
	if(objday.options.length>0)
	{
		for (var i = 0; i < objday.length; i++)
		{
			objday.options[0] = null;
		}
	}
	for (var i = 0; i < daysInMonth; i++)
	{
		if(i<9)
		{
			objday.options[i] = new Option(i+1, '0'+(i+1)+'');
		}
		else
		{
			objday.options[i] = new Option(i+1,i+1);
		}
		
		if(obj_Day == (i+1))
		{
			objday.options[(i)].selected = true;
		}
	}
//	objday.options[0].selected = true;
}

function Trim(S)
{
	reg=/\s/ig;
	var c=new String();
	var D = new String();
	D = S;
	var newstring=new String("");
	for (i=1; i<=D.length; i++)
	{
		c=D.charAt(i-1);
		if (c.search(reg) == "-1")
		{
			newstring=newstring.concat(c);
		}
	}
	return newstring;
}

//checks for the empty fields
//parameters to be passed are formname,fieldname and message.

function checkempty(formName,fieldName,msg)
{
	if(eval("document."+formName+"."+fieldName+".value")==0)
	{
		alert(msg);	
		eval("document."+formName+"."+fieldName+".focus()");	
		return false;
	}
	else
	{
		return true;
	}
}


// function for validationg mail and mail field is compulsory.
function checkmail(formName,fieldName,flgCompulsory)
{
	mailid = eval("document."+formName+"."+fieldName+".value")
	if(Trim(mailid)=='' && flgCompulsory.toLowerCase()=='y')
	{
		alert('Email cannot be left blank');
		eval("document."+formName+"."+fieldName+".focus()");
		return false;
	}	
	else
	{
		stri = new String(mailid);
		if(!(Trim(stri)==""))
		{		
			flag1=0;
			flag2=0;
			
			for(i=0;i<stri.length;i++)
			{
				if(stri.substr(i,1)=="@")
					flag1++;
				if(stri.substr(i,1) ==".")
					flag2++;
				if(flag1 > 0 && flag2 > 0) break;
			}
			if(flag1==0 || flag2 == 0)
			{
				alert("Email address seems to be invalid.");
				eval("document."+formName+"."+fieldName+".focus()");
				return false;
			}
			return true;
		}	
	}
	return true;
}
//parameters to be passed are formname,fieldname,y/n for compulsion and message.
function checkmailcustom(formName,fieldName,flgCompulsory,msg)
{
	// 8323/RA.Delete.Begin
	// 8323/RA.Delete.End
	// 8323/RA.INSERT.BEGIN
	var str=eval("document."+formName+"."+fieldName+".value");
    //15596/RA Modification Start
	str = Trim(str);
	var tmp =eval("document."+formName+"."+fieldName+".value='"+str+"'");
	//15596/RA Modification end
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    if (filter.test(str))
	return true;
    else
	{
	  alert(msg);
	  eval("document."+formName+"."+fieldName+".focus()");
	  return false;
    }
    // 8323/RA.INSERT.END
}

//check for numeric
function chkNumeric()
{
	if (event.keyCode < 45 || event.keyCode > 57)
	{
	alert("Only digits to be entered");
	event.returnValue = false;
	}
}

//check for int
function chkInt()
{
	if (event.keyCode < 45 || event.keyCode > 57 || event.keyCode == 46)
	{
	alert("Only digits to be entered");
	event.returnValue = false;
	}
}

// Single select, one option has to be selected
function selectOptSingle(formName,fieldName,msg)
{
	var val = eval("document."+formName+"."+fieldName+"."+"selectedIndex");
	var formfield = eval("document."+formName+"."+fieldName);
	if(val==0)
	{
		alert(msg);
		formfield.focus();
		return false;
	}
	return true;
}
// Multi select, one option has to be selected
function selectMultSingle(formName,fieldName,msg)
{
	var val = eval("document."+formName+"."+fieldName+"."+"selectedIndex");
	var formfield = eval("document."+formName+"."+fieldName);
	if(val==-1)
	{
		alert(msg);
		formfield.focus();		
		return false;
	}
	return true;
}

//check box validation... atleast one checkbox must be selected.
//parameters: formname,fieldname,flgConfirm
function checkBox(formName,fieldName,flgConfirm)
{
	var val = eval("document."+formName+".elements.length")
	d=0;
	for(var i=0;i<val;i++)
	{
		if(eval("document."+formName+".elements["+i+"].type=='checkbox'"))
		{
			if(eval("document."+formName+".elements["+i+"].checked"))
			{
				d=1;
				break;
			}
		}
	}
	if(d==0)
	{
		alert("Please select any one of the checkboxes.");
		return false;
	}
	else
	{
		if(flgConfirm=='y')
		{
			if(confirm('Do You Wish To Delete All Selected Records ?'))
			{
				return true;
			}
			else
				return false;
		}	
	}
	return true;
}

//Up & Down for the set order
function setarr(s,l)
{
l.value='';
for(i=0;i<s.length;i++)
	l.value=l.value+s.options[i].value+',';
}

function Up(s)
{
	sel=s.options.selectedIndex;
	if(sel>0)
	{
	val=s.options[sel-1].value;
	txt=s.options[sel-1].text;
	s.options[sel-1].value=s.options[sel].value;
	s.options[sel-1].text=s.options[sel].text;
	s.options[sel].value=val;	
	s.options[sel].text=txt;	
	s.options[sel-1].selected=true;	
	}
}
function Down(s)
{
	sel=s.options.selectedIndex;
	ctr=sel+1;
	if(s.length>ctr)
	{
	val=s.options[sel+1].value;
	txt=s.options[sel+1].text;
	s.options[sel+1].value=s.options[sel].value;
	s.options[sel+1].text=s.options[sel].text;
	s.options[sel].value=val;	
	s.options[sel].text=txt;	
	s.options[sel+1].selected=true;	
	}
}
function imgExtValid(formName,fieldName)
{
	var a = eval("document."+formName+"."+fieldName+".value.toLowerCase()");   
    if( a != "" )
	{
    	if (a.indexOf(".jpg") < 0 && a.indexOf(".gif") < 0  && a.indexOf(".png") < 0)
	  	{
	 		alert ("Please enter a valid Image file.");
			eval("document."+formName+"."+fieldName+".focus()"); 
		 	return false;
	     }	
	}
	return true;
}

function DateCompare(formName,fromYear,fromMonth,fromDay,toYear,toMonth,toDay)
{
	var fromYr=eval("document."+formName+"."+fromYear+".value");
	var fromMn=eval("document."+formName+"."+fromMonth+".value");
	var fromDay=eval("document."+formName+"."+fromDay+".value");
	var fromDate = new Date(fromYr, fromMn, fromDay)
	
	var toYr=eval("document."+formName+"."+toYear+".value");
	var toMn=eval("document."+formName+"."+toMonth+".value");
	var toDay=eval("document."+formName+"."+toDay+".value");
	var toDate = new Date(toYr, toMn, toDay)
	
	if(fromDate>toDate)
	{
		alert('Start-date should be less than end-date');
		return false;
	}	
	else	
	return true;
}	
//Checks for integer value 	
function isInteger(num){
	var new_msg = true
	inputStr = num.toString()
	for (var i = 0; i < inputStr.length; i++){
		var oneChar = inputStr.charAt(i)			
		if ((oneChar < "0" || oneChar > "9") && oneChar != "/"){
				new_msg = false;
				break;
		}
	}
	return (new_msg)
}
function isNumeric(frm,field){
	var val = eval("document."+frm+"."+field+".value")
	if(isNaN(val)){
		alert("Please enter a numeric value.");
		eval("document."+frm+"."+field+".value=''")
		eval("document."+frm+"."+field+".focus();")
		return false;
	}	
	else
		return true;		
}
//this method asks for confirmation before deleting the record
function delConfirm(pageName,msg){
	if(confirm(msg))
		window.location=pageName
}

//check for compulsory characters
function includeChars(frmName,fieldName,exChars,msg){
	var val = eval("document."+ frmName +"."+ fieldName +".value")
	chars = exChars.split(",");
	for(var i=0;i<chars.length;i++){
		if(val.indexOf(Trim(chars[i]))==-1){
			alert(msg);
			return false;			
		}	
	}
	return true;
}

//check for excluding characters
function excludeChars(frmName,fieldName,exChars,msg){
	var val = eval("document."+ frmName +"."+ fieldName +".value")
	chars = exChars.split(",");
	for(var i=0;i<chars.length;i++){
		if(!(val.indexOf(Trim(chars[i]))==-1)){
			alert(msg);
			return false;			
		}	
	}
	return true;
}

function calculate(yearfr,monthfr,dayfr) 
{
	var month = monthfr;
	var day = dayfr;
	var year = yearfr;

	var oyear=year

	var dob = " "+ year +", "+month + ",  "+day;
	var thenx = new Date(dob);

	var year=thenx.getYear();
	if (year<100) 
		year="19" + thenx.getYear();
	else 
		year=thenx.getYear();

	if (year > 1969) 
		wyear=year;
	else 
	{
		if (oyear<1900) 
		{
			if (oyear>1800) 
			{
				wrelyear= (eval(oyear)-1801)%(28);
				wyear = wrelyear+1981;
			}
			else 
				wyear = 1970 
		}
		else
			if (oyear>1900) 
			{	
				wrelyear= (eval(oyear)-1901)%(28); 
				wyear= wrelyear+1985
			}
			else 
			if (oyear==1900) 
			{
					wyear= 1990;
			}              
	}

	var thenx = new Date(wyear,month,day);
	var theday = thenx.getDay()+1;
	var date=thenx.getDate();

	var weekday = new Array(6);
	weekday[1]="S";
	weekday[2]="M";
	weekday[3]="T";
	weekday[4]="W";
	weekday[5]="T";
	weekday[6]="F";
	weekday[7]="S";

	if (day != date) 
		return -1;
	else 
	{
		dayborn = weekday[theday];
		return 	weekday[theday];	
   }
}

function checkzip(frmname,fieldname1,fieldname2)
{
	var form1 = eval("document."+frmname+"."+fieldname1);
	valzip = form1.value;
	if (valzip == "" || valzip == null)
	{
		alert("Please enter your zip code.");
		form1.select();
		return false;	
	}
	else
	{
		if (valzip.length != 5)
		{
			alert("Please enter valid zip code.");
			form1.select();
			return false;
		}
	}
	return true;
}


function checkfax(frmname,fieldname1,fieldname2,fieldname3)
{
		var form1 = eval("document."+frmname+"."+fieldname1);
		val = form1.value;
		
		if (val == "" || val == null)
		{
			alert("Please enter your fax no.");
			form1.select();
			return false;	
		}
		else
		{
			if (val.length != 3)
			{
				alert("Please enter valid fax no.");
				form1.select();
				return false;
			}
		}
		
		var form2 = eval("document."+frmname+"."+fieldname2);
		val = form2.value;
		if (val == "" || val == null)
		{
			alert("Please enter your fax no.");
			form2.select();
			return false;		
		}
		else
		{
			if (val.length != 3)
			{
				alert("Please enter valid fax no.");
				form2.select();
				return false;
			}
		}

		var form3 = eval("document."+frmname+"."+fieldname3);
		val = form3.value;
		if (val == "" || val == null)
		{
			alert("Please enter your fax no.");
			form3.select();
			return false;		
		}
		else
		{
			if (val.length != 4)
			{
				alert("Please enter valid fax no.");
				form3.select();
				return false;
			}
		}
		
	return true;
}

function checkCombo(frmName,fieldName)
{
	var myForm = eval("document."+frmName+"."+fieldName);	
	if(myForm.value == null || myForm.value == '')
	{		
			myForm.focus();
			return false;			
	}
	return true;
}

//9037/RA.Begin.Insert the password checking function 
function checkpwd(formName,fieldName1,fieldName2,msg)
{
	var invalid = " "; // Invalid character is a space
	var minLength = 8; // Minimum length
	pwd1 = eval("document."+formName+"."+fieldName1+".value");
	pwd2 = eval("document."+formName+"."+fieldName2+".value");
	var myRegxp = /^([a-zA-Z0-9]{8,})$/; 
  if(myRegxp.test(pwd1)==false) 
  { 
  	alert('Your password must be at least ' + minLength + ' characters and allow alphanumeric only. Try again'); 
  	return false;
  } 
	if (eval("document."+formName+"."+fieldName1+".value.indexOf(invalid)") > -1) 
	{
		alert("Sorry, spaces are not allowed.");
		return false;
	}
	if (pwd1 != pwd2)
	{
		alert ("Please check password and re-enter password field. Both must be similar.");
		return false;
	}
	else
	{
		return true;
	}
}
//9037/RA.End.Insert the password checking function 

//9767/RA.Begin.Insert
//check for URL validation
function customURL(frmName,fieldName,msg){
		 var val = eval("document."+ frmName +"."+ fieldName +".value")
     var tomatch = /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2}/
     var tomatch1= /https:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2}/
     var tomatch2= /ftp:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2}/
    /* 	9853/RA Modify.Begin. 	*/
	var tomatch3=/^((http|https|ftp):\/\/)?([\-\w]+\.)+\w{2,3}(:\d{2,4})?(\/[~1-9A-Za-z_\-.]+)*((\/)|\/\w+\.\w{2,4})?((\??)|([\-0-9a-zA-Z_]+=[\w+-:\s]+&)*([\-0-9a-zA-Z_]+=[\w+-:\s]*&?)?)*$/
     /* 9853/RA Modify.End. 	*/
     if(tomatch.test(val) || tomatch1.test(val) || tomatch2.test(val) || tomatch3.test(val))
     {
				return true;
     }
     else{
     	   alert(msg);
         return false; 
     }
	return true;
}
//9767/RA.End.Insert