/********************************************************************************
Project		 : 	Production Pull Version 1.0 (Web Interface Module).

Date Created 	 : 	8th Jan 2002.

Author			 : 	Nandini,Mukund,Parag

Program Name 	 : 	validation.js.

Description	 : 	This is a javascript file written for performing some 
			validations of the fields on the screens.  

Called from  	 : 	WebrequestController.

********************************************************************************

Further Changes beyond this point:

Author		 :

Date changed :

Description  :

********************************************************************************/
function isnumber(strfn)
{	
//alert("strfn"+ strfn)
//var	arrfname=getarray(strfn);
if (!strfn == "")
	{
		arrfname = strfn.split(",");
		
	//arrfname1=getarray(strfn);
	}
else
	{
		//alert("eisblanelse");
		return true;
	}

	//alert("len=" + arrfname.length);
	for(var j=0;j< arrfname.length;j++)
	{
		//alert("j= " + arrfname[j]);
		var fieldobj = eval("window.document.forms[1]." + arrfname[j]);
		//alert("j=" + fieldobj.value );
		data = fieldobj.value;
		if (data != "")
			{
			data = trimspace(data);
			//alert("data"+data)
			 
			 
				if (data != "")
				{
				fieldobj.value=data;
				 if(isNaN(data)==true)
				     {
							
							alert("Please enter numeric value.");
							fieldobj.select();
							fieldobj.focus();
							return false;
					  }
				 }
				 else
				 {
				// alert("inside else");
				 fieldobj.value="";
				 }
				 
			}
		}
		return true;
}

function date(strfn)
{
//alert("fdsgfg" + strfn);

		var dateStr
		var datePat =/^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;

		// To require a 4 digit year entry, use this line instead:
		// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
		//************************
	
		if (!strfn == "")
			{
				arrfname = strfn.split(",");
			}
		//else
			//{
				//alert("eisblanelse");
				//return true;
			//}
		//alert("len=" + arrfname.length);
		for(var j=0;j< arrfname.length;j++)
		{
			//alert("j= " + arrfname[j]);
			var fieldobj = eval("window.document.forms[1]." + arrfname[j]);
		//	alert("j=" + fieldobj.value );
		//************************
		dateStr= fieldobj.value;
		var matchArray = dateStr.match(datePat); // is the format ok?
		
		if (matchArray == null) 
		{
      		fieldobj.select();
	    	fieldobj.focus();
		    alert ("Please enter the date in mm/dd/yyyy format.");
		    return false;
		}

		month = matchArray[1]; // parse date into variables
		day = matchArray[3];
		year = matchArray[4];
		if (month < 1 || month > 12) { // check month range

		alert("Month must be between 1 and 12.");
		fieldobj.select();
		fieldobj.focus();
		return false;
		}
		if (day < 1 || day > 31) {

		alert("Day must be between 1 and 31.");

		return false;
		}
		if (year < 1900 || year > 2095) {

		alert("Year must be between 1900 and 2095.");

		return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {

		alert("Month "+month+" doesn't have 31 days!")
				fieldobj.select();
				fieldobj.focus();
				
		return false;
		}
		if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {

		alert("February " + year + " doesn't have " + day + " days!.");
				fieldobj.select();
				fieldobj.focus();
		return false;
		   }
		}
}
return true;  // date is valid
}

function isBlank(strfn)
{
//alert("isblank"+strfn);
if (!strfn == "")
	{
		var arrfname
		arrfname1 = strfn.split(",");
	}
else
	{
		return true;
	}
	for(var j=0;j< arrfname1.length;j++)
	{
		var fieldobj = eval("window.document.forms[1]." + arrfname1[j]);
		//alert("j=" + fieldobj.value );
		s = fieldobj.value;
		if (s!= "")
		{
			s= trimspace(s);
			fieldobj.value = s;
		}
			var len=s.length;
		//	alert("len"+len);
	
			if ( len == 0 )
				{
					alert("Field cannot be left blank.");
					fieldobj.select();
					fieldobj.focus();
					return false;
				}
			else
				{
				//alert("ttttt");
				//return true;
				var flag = 3
				}
		
	}
	if (flag == 3)
	{
		return true;
	}
}


function containsinglequote()
{
	for(var j=0;j<window.document.forms(0).length;j++)
	{
		//alert("j= " + arrfname[j]);
		//var fieldobj = eval("window.document.forms(0)." + arrfname[j]);
		//alert("j=" + fieldobj.value );
		data = window.document.forms(0).elements[j].value;
		singlequotepos = data.indexOf("'");
		//alert("j=" + data);
		if(singlequotepos != -1)
		{
			alert("Please do not use single quotes.");
			window.document.forms(0).elements[j].select();
			window.document.forms(0).elements[j].focus();
			return false;
		}
	}
	return  true;
		
}

// Checks if the value is Numeric.

function isNotNumericVal(strfn)	{
    var valid = "0123456789";
    var temp;
var	arrfname=getarray(strfn);
	alert("len=" + arrfname.length);
	for(var j=0;j< arrfname.length;j++)
	{
		alert("j= " + arrfname[j]);
		var fieldobj = eval("window.document.frmdelv." + arrfname[j]);
		alert("j=" + fieldobj.value );
		val = fieldobj.value ;
		for (var i=0; i<val.length; i++)	{
		    temp = val.substring(i,i+1);
		    if (valid.indexOf(temp) == "-1")    {
		        return true;
		    }
		}
	}
    return false;
}



// Trims the whitespaces on either side of the data entered in the field.

function trim(fieldval)    {
    //fieldval = field.value;
    
    for (i=0; i<fieldval.length; i++)    {
        temp = fieldval.substring(i,i+1);
        if (temp != " ")    {
            break;
        }
    }
    fieldval = fieldval.substring(i,fieldval.length);
    fieldval = fieldval;
    for (i=fieldval.length; i>0; i--)    {
        temp = fieldval.substring(i-1,i);
        if (temp != " ")    {
            break;
        }
    }
    fieldval= fieldval.substring(0,i);
    return fieldval;
}


//*****************************************

 function checkvalidemail(fieldname)
    {   
		if (!fieldname == " ")
		 {     
        var fldobj = eval("window.document.forms[1]." + fieldname);
        var email = fldobj.value;
        //alert("emailval" + email);   
       if (fldobj.length!=0)
       {
	//	var email=fieldname		
		
		   if (!isEmail(email))
		   {
              alert('Your email address is not valid. Please Enter valid Email address.');
              fldobj.select();
			  fldobj.focus();
              return false;
            }
           else
           {
              return true;
            }
          
        }
          return true;
     }  
		
  }

//*****************************************

function isEmail (s)
{   
//if (isEmpty(s)) 
      // if (isEmail.arguments.length == 1) return defaultEmptyOK;
    //   else return (isEmail.arguments[1] == false);
   
    // is s whitespace?
//    if (isWhitespace(s)) return false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
	var k = 1; 
	var is_present=false;
    var sLength = s.length;

	//look for @ whether it is twice present in the string or not
	while(k < sLength)
	{
		if(s.charAt(k) == "@")
		{
			if(is_present == true)
			return false;
			is_present=true;
		}
		k++
	}
	// look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    //i=sLength;
	while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least two character after the .
    if ((i >= sLength - 2) || (s.charAt(i) != "."))     {
		return false;    }
    else
	{
		i+=1;
		while(i < sLength)
		{
			var c = s.charAt(i);
			if (!(((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z"))))
			{	
				if(s.charAt(i) == ".")
				{
					var j=(sLength-1)-i;
					if (i ==(sLength-1) || j< 2 )	return false;
				}
				else
					return false;
			}
			i++
		}
		return true;
	}
		
}

//*************************************************************
// whitespace characters
var whitespace = " \t\n\r";

function isWhitespace (s)
{   var i;

    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}


var strtrim;
function trimspace(str)
{
	var len= str.length;
	if (len != 0)
	{
	for (var i=0;i<len;i++)
	{
		if(str.indexOf(" ")==0)
			str=str.substring(1,len);
	}
	strtrim=str;
	return strtrim;
	}
	
}

function validatephoneno(strphone)
{
	if (!strphone == "")
	{
		arrphone = strphone.split(",");
		
	//arrfname1=getarray(strfn);
	}
	else
	{
		//alert("eisblanelse");
		return true;
	}
//alert("arrphone.length==" + arrphone.length);
//--------------------------------------------------------------

	for(var j=0;j<arrphone.length;j++)
	{
		//alert("j= " + arrfname[j]);
		var fieldobj = eval("window.document.forms[1]." + arrphone[j]);
		//alert("j=" + fieldobj.value );
		data = fieldobj.value;
		//alert(data);
		if (data != "")
		{
			data = trimspace(data);
			//alert("data"+data)
			if (data != "")
			{
				fieldobj.value=data;
				 
//---------------------------------------------------------------------
				//(502)426-8020
				//var phone=window.document.searchResult.txtphone1.value;
				if(phonenoindexof(data))
				{//alert(j);
					if (j==(arrphone.length)-1)
					{
						return true;
					}							
				}
				else
				{
					fieldobj.select();
				    fieldobj.focus();
					alert("Please enter proper phone number with format (502)426-8020 ");
					return false;
				}	
			}
		}	
	}
	return true;
}
function phonenoindexof(phone)
{
	if (phone.indexOf('(')==0 && phone.indexOf(')')==4 && (phone.indexOf('-')==8 || phone.indexOf('-')==9)) 
	{
		if(!(phonenosub(phone)))
		{
			return true;
		}
		else
		{
		 //alert("error in phonenosub");
		 return false;			
		 
		}
	}
	else
	{
		//alert("error in phonenoindexof");
		return false;
		
	}
}


function phonenosub(phone)
{
		var number1,number2,number3,number3leng;
		num=phone.substring(0,(phone.indexOf('-')+1));
		number=phone.length-num.length;
		number1=phone.substring(1,4);
		//number2=phone.substring(5,8);
		number2=phone.substring((phone.indexOf(')')+1),phone.indexOf('-'));
		if(number2.indexOf(' ')==0)
		{
		number2len=number2.length-1
		}
		else
		{
		number2len=number2.length
		}
//alert("number2len=="+number2len)
		//number3=phone.substring(9,14);
		number3=phone.substring((phone.indexOf('-')+1),14);
		//alert(number3);
		number3leng=number3.length;
		//alert(number3.length);
		//if((number3.length==4))
		if((number==4) && (number2len==3))
		{
			if ((isNaN(number1)==true) || (isNaN(number2)==true) || (isNaN(number3)==true))
			{
				//alert("please enter proper phone number in format (502)426-8020 ");
				//alert("number1==>" + number1 + "  number2==>" + number2 + "  number3==>" + number3);
				return true;
			}
		}
		else
		{
			return true;
		}
			
}

//***nandini****
//function to check whether the value in the select box is selected properly
function checkselect(strfn)
{
//alert("strfn"+ strfn);
	if (!strfn == "")
	{
		var arrfname
		arrfname1 = strfn.split(",");
	}
else
	{
		return true;
	}
	for(var j=0;j< arrfname1.length;j++)
	{
		var fieldobj = eval("window.document.forms[1]." + arrfname1[j]);
			var ind = fieldobj.selectedIndex;
			//alert("ind=" + ind);
		if (ind == 0 )
		{
			alert("Please select the proper option");
			fieldobj.selectedIndex =0 ;
			fieldobj.focus();
			return false;
		}
		else
			{
			//alert("ttttt");
			//return true;
			var flag = 3
			}
		
	}
	if (flag == 3)
	{
		return true;
	}
		
}
//nandini****
function comparedates(startdt,enddt,fnstartdt,fnenddt)
{
//alert("startdt=" + startdt);
//alert("enddt=" + enddt);
	var fieldobj = eval("window.document.forms[1]." + startdt);
	stdt = fieldobj.value;
	var fieldobjend = eval("window.document.forms[1]." + enddt);
	etdt = fieldobjend.value;
	if (Date.parse(stdt) > Date.parse(etdt))
	{
		//if (!((fnstartdt == "") || (fnenddt == "")))
		//{ 	
			alert("Please enter the " + fnstartdt + " smaller than " + fnenddt);
		//}
		fieldobj.select();
		fieldobj.focus();
		return false;
		
	}
	return true;
}

//******parag******88
// Function to check whether has enter Social Security Number in proper format.
    function isSSN(str)
    {
      var regexp = /^(\d{9}|\d{3}-\d{2}-\d{4})$/;
      return regexp.test(str);
     }
    
    function checkSSNValue(filedname)
    {
        var valid = true;
        //var ssn = window.document.searchResult.txtssn.value;
        //var ssn = eval("window.document.forms[1]." + filedname).value;
        var fldobj = eval("window.document.forms[1]." + filedname);
        var ssn = fldobj.value;
        //alert(ssn + fldobj);
       if (ssn.length!=0)
       {
		   if (!isSSN(ssn))
		   {
              window.alert("Please Enter Social Security Number in XXX - XX - XXXX format. i.e 322-34-2323");
              fldobj.select();
			  fldobj.focus();
              return false;
            }
           else
           {
              return true;
            }
        }
         return true;
     }  

