
var errState = false ;
var defaultEmptyOK = false ;


var mPrefix = "You did not enter a value into the "; 
var mSuffix = " field. This is a required field. Please enter it now." ;
var whitespace = "\ \t\n\r" ;
var iEmail = " must be a valid email address (like name@domain.com). Please re-enter it now."
var iUSPhone = " must be a 10 digit U.S. phone number (like 123-456-7890). Please re-enter.";
var phoneNumberDelimiters = "()- ";
var iZipCode=" Zip field must be a 5 digit U.S. ZIP Code (like 94043). Please re-enter.";
var serverZone=5 // Eastern:5; Central:6; Mountain:7; Western:8; 

window.onerror = null;
var bName = navigator.appName;
var bVer = parseInt(navigator.appVersion);
var NS4 = (bName == "Netscape" && bVer >= 4);
var IE4 = (bName == "Microsoft Internet Explorer" && bVer >= 4);
var NS3 = (bName == "Netscape" && bVer < 4);
var IE3 = (bName == "Microsoft Internet Explorer" && bVer < 4);
var blink_speed=700;
var i=0;

////        var keyPressed = ""; //Variable to store which key was pressed
////        var dataChanged = false;
////        var currentElement = "";
////        //Function called when the browser is closed.
////        function HandleOnClose(evt) { 
////            if (currentElement == "" || (!(currentElement.getAttribute("tag")=="DonotCallSaveonLoad"))){
////                var objconfirm = confirm("Would you like to close Browser?")
////                 if (objconfirm == true) {
////                    FunctiontoCallSaveData();
////                 }
////             }
////        }

////       function FunctiontoCallSaveData()
////       {
////                document.getElementById("<%=hdtoCloseBrowser.ClientID %>").value="PageClosed";
////                document.forms[0].submit();           
////       }

 
if (NS4 || IE4) 
{
    if (navigator.appName == "Netscape") 
    {
        layerStyleRef="layer.";
        layerRef="document.layers";
        styleSwitch="";
    }
    else
    {
        layerStyleRef="layer.style.";
        layerRef="document.all";
        styleSwitch=".style";
    }
}

//BLINKING
function Blink(layerName)
{
    if (NS4 || IE4) 
    {
        if(i%2==0)
        {
            eval(layerRef+'["'+layerName+'"]'+
            styleSwitch+'.visibility="visible"');
        }
        else
        {
            eval(layerRef+'["'+layerName+'"]'+
            styleSwitch+'.visibility="hidden"');
        }
    } 
    if(i<1)
    {
        i++;
    } 
    else
    {
        i--
    }
    setTimeout("Blink('"+layerName+"')",blink_speed);
}

function getServerTime() {
	theDate=new Date();
	theDate=theDate.toGMTString();
	theDate=theDate.substring(17,25);
	theHours=theDate.substring(0,2);
	if(theHours.substring(1,2)==":") {
		theHours=theHours.substring(0,1);
	}
	theHours=Math.abs(theHours-serverZone);
	if(theHours>11) {
		theAP="p.m.";
	}
	else {
		theAP="a.m.";
	}
	if(theHours>12) {
		theHours=Math.abs(theHours-12);
	}
	otherTime=theDate.substring(2,8);
	serverTime=(theHours+otherTime+" "+theAP);
	document.clock.face.value=serverTime;
	setTimeout("getServerTime()",1000);
}


function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}

function ltrim(argvalue) {

  while (1) {
    if (argvalue.substring(0, 1) != " ")
      break;
    argvalue = argvalue.substring(1, argvalue.length);
  }

  return argvalue;
}

function rtrim(argvalue) {

  while (1) {
    if (argvalue.substring(argvalue.length - 1, argvalue.length) != " ")
      break;
    argvalue = argvalue.substring(0, argvalue.length - 1);
  }

  return argvalue;
}

function trim(argvalue) {
  var tmpstr = ltrim(argvalue);

  return rtrim(tmpstr);

}

function isEmpty(s)
{  if ((s.value)=="") 
       return true ;
   else
      return false ;  
    
}





function isWhitespace(s)

{   var i;
   
    if (isEmpty(s)) return true;
    else
     for (i = 0; i < s.length; i++)
       {   
       
        var c = s.charAt(i);

        if ((whitespace.indexOf(c)>= 0) ||(whitespace.indexOf(c)<= 3)) 
          { 
            return true;
           }
      }
   
    return false;
}

function isNumber ()
{   
    var n;
    
    n = event.keyCode;
    if ( (n < 48) || (n > 57))
        return false;
    else
        return true;
}


function isInteger (s)

{   var i;
 //    stat = true ;
  
    for (i = 0; i < s.length; i++)
    {   // Check that current character is number.
        var c = s.charAt(i);
        if  ((c < "0") || (c > "9"))
           // stat = false ;
          return false ;
        
     }
     return true ;
}



function isPositiveInt(Fld)
 {
   if (isNaN(Fld.value))
      { alert("Please enter only Numeric Value") ;
        Fld.focus() ;
        return false ;
       }
   else
     { if (Fld.value < 0)
        { alert("Please enter only Numeric Value") ;
          Fld.focus() ;  
          return false;
        }
       else
         return true;       
     }
 }      



function promptEntry (s)
{   window.status = pEntryPrompt + s
     return true;
}
function promptEmpty()
  { window.status=' ';
    true ;
}
function warnEmpty (theField, s)
{   alert(mPrefix + s + mSuffix);
	theField.focus();
	
    return false ;
}
function warnInvalid (theField, s)
{   alert(s)
	// theField.focus();
    
    return false ;
}

function stripCharsInBag (s, bag)

{   var i;
    var returnString = "";

    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

function reformat (s)

{   var arg;
    var sPos = 0;
    var resultString = "";

    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) resultString += arg;
       else {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}


function checkUSPhone (theField, fldName)
{   
     var s = stripCharsInBag(theField.value, phoneNumberDelimiters)
     //s = theField.value ;
     // fldName = 'Pm Phone number '
       if (isEmpty(s)) 
          { alert("Phone number cannot be empty");
            return false ;
           }
	 else if ((s.length !=10) || (!isInteger(s)))
         {
		   warnInvalid(theField,fldName + iUSPhone);
		   return false;
		 }
       else 
       {  // if you don't want to reformat as (123) 456-789, comment next line out
         // theField.value = reformatUSPhone(s)
            theField.value = s ;
          return true ;
       }
    
} 



function reformatUSPhone (USPhone)
{   return (reformat (USPhone, "(", 3, ") ", 3, "-", 4))
}

// if empty allowed like fax etc.

function chkPHONE(Fld,fldName)
 {  
    if (isEmpty(Fld))
         return true ;
    else     
       { if  (!(checkUSPhone(Fld,fldName)))
           { // warnInvalid(Fld,iUSPhone);
             return false;
           }  
         else
           return true ;
       }
  }         

  
        
function warnNotMatch(theField)
  { alert("Both password fields must match");
    theField.focus();
    theField.select();
    return false ; 
  }
  
function checkEmail(myEmail,msg)
 { 
  
  myString = myEmail.value ;
  if (!isEmail(myString))
    { warnInvalid(myEmail,msg + iEmail);
      return  false ;
    } 
   else
       return  true ;
    
 }  

function isEmail(myString) 
{  
   var newString = myString.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
   if (myString.indexOf('\'') > 0)
    return false;
   if (!newString) 
     return false ;
   else {
      return true ;
   }
}
 

    
//function isEmail (s)
//{   if (isEmpty(s) || isWhitespace(s)) return false;
  //  var i = 1;
  //  var sLength = s.value.length;
   // var s1 = s.value ;
   // while ((i < sLength) && (s1.charAt(i) != "@"))
   // { i++;
   // }
   // if ((i >= sLength) || (s1.charAt(i) != "@")) return false;
   // else i += 2;

  //  while ((i < sLength) && (s1.charAt(i) != "."))
  //  { i++
  //  }

   
  //  if ((i >= sLength - 1) || (s1.charAt(i) != ".")) return false;
 //   else return true;
//}


 
function validNameCheck(Fld,FldName)
{var vld = true ;
 for (i = 0; i < Fld.value.length; i++)
   {  
        var c = Fld.value.charAt(i);
              
        if ((i == 0) && (!(isLetter(c) )))
           vld = false ;
        else   
          if ((!(isLetterOrDigit(c))) &&  (c != "_"))
             vld = false ;
                   
    }
   if (vld==false)
      alert(FldName + " must begin with a letter and \nmay consist letters,numbers or underscore. ");
   return vld ;
 
 }
 
 function equalorNot(fld1, fld2)
  { 
   if (trim(fld1.value) != trim(fld2.value))
      return false ;
   else return true;
  }
 
 function validPassword(pwd,sUSPassword,pwd1)
 {  if (pwd.value != pwd1.value)																										
	     {  warnNotMatch(pwd)
	        return false ;
	      }  
	else 
	   { if (!(validUsername(pwd,sUSPassword)))
	        return false ;  
	     else 
   	   	    return true ;
   	    }   
       	
}  
function validUsername(Fld,FldName)
 {
  
  if (Fld.value.length < 5) 
    { alert (FldName + " must contain minmium 5 characters and \n must begin with an alphabet and \n may contain alphabets, digits and underscore only. ");
      return false ;
      }
  else
    return validNameCheck(Fld,FldName) ;
     
    
 }
 
function regisZipCode(s)
 {  alert("zip");
     if (isEmpty(s)) 
        return true;
     else
      { if  (isInteger(s.value) && (s.value.length == 5))
          return true ;
       else
         return warnInvalid(s,iZipCode);
          
      }
 } 
function checkZipCode(s)
 { 
     if (isEmpty(s)) 
        return true;
     else
      { if  (isInteger(s.value) && (s.value.length == 5))
          return true ;
       else
         return warnInvalid(s,iZipCode);
          
      }
 }
     



function isValidDate(dateStr)

   {
          // Checks for the following valid date formats:
          // MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY

         var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

         var matchArray = dateStr.match(datePat); // is the format ok?
       if (matchArray == null)
        {
           alert(dateStr + " Date is not in a valid 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.");
          return false;
        }
       if (day < 1 || day > 31)
        {
          alert("Day must be between 1 and 31.");
          return false;
        }
       if ((month==4 || month==6 || month==9 || month==11) && day==31) 
        {
           alert("Month "+month+" doesn't have 31 days!")
           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!");
               return false;
            }
         }
      return true;
   }
   
   
function isCorrectDate(Dt)
 { if (isValidDate(Dt.value))
     return true ;
   else
     
     return false ;
 }
 
function notearlythan1970(d1)
{
   date1 = new Date("January 01, 1970");
   date2 = new Date(d1.value);
   //alert(date1.getDate() + " " + date1.getMonth() + " " + date1.getYear());
   var diff = date2.getTime() - date1.getTime()  ;
   // < 0 means before 1970 
   if (diff < 0) 
    { alert("Date cannot be eariler than January,1970. re-enter.");
      d1.focus() ;
      return false;
     } 
   else 
     return true;
} 
function checkdatesDiff(d1,d2)
 {
   date1 = new Date();
   date2 = new Date();
   diff  = new Date();
	
   
   if (isValidDate(d1.value))
    { // Validates first date 
      date1temp = new Date(d1.value);
      date1.setTime(date1temp.getTime());
    }
   else 
     return false; // otherwise exits

   if (isValidDate(d2.value))
     { // Validates second date 
       date2temp = new Date(d2.value);
       date2.setTime(date2temp.getTime());
      }
   else 
     return false; // otherwise exits

// sets difference date to difference of first date and second date



//diff.setTime(Math.abs(date1.getTime() - date2.getTime()));

   var diff = date1.getTime() - date2.getTime()  ;
   
   if (diff >= 0)  
      return true ;                  // posi
   else
    { alert("Finish date must be a later than start date. re-enter.");
      //d1.focus();
      return false;    // nega
    }
  
}  


function returndatesDiff(d1,d2)
 {
   date1 = new Date();
   date2 = new Date();
   diff  = new Date();
	
   
   if (isValidDate(d1.value))
    { // Validates first date 
      date1temp = new Date(d1.value);
      date1.setTime(date1temp.getTime());
    }
   else 
     return false; // otherwise exits

   if (isValidDate(d2.value))
     { // Validates second date 
       date2temp = new Date(d2.value);
       date2.setTime(date2temp.getTime());
      }
   else 
     return false; // otherwise exits

// sets difference date to difference of first date and second date



//diff.setTime(Math.abs(date1.getTime() - date2.getTime()));

   var diff = date1.getTime() - date2.getTime()  ;
   
   
   return diff ;                  // posi
   
}  

function chkFinishDate(dt1,dt2)
{ if (isEmpty(dt1))
    return true ;
  else
     return (checkdatesDiff(dt1,dt2))  ;
}     

function chkFinishDate1(dt1,dt2,msg)
{ if ((isEmpty(dt2)) || (isEmpty(dt1)))
    return true ;
  else
     return (checkdatesDiff1(dt1,dt2,msg))  ;
}     

function checkdatesDiff1(d1,d2,msg)
 {
   date1 = new Date();
   date2 = new Date();
   diff  = new Date();
   //alert(d1);	
   if (isValidDate(d1.value))
    { // Validates first date 
      date1temp = new Date(d1.value);
      date1.setTime(date1temp.getTime());
    }
   else 
     return false; // otherwise exits

   if (isValidDate(d2.value))
     { // Validates second date 
       date2temp = new Date(d2.value);
       date2.setTime(date2temp.getTime());
      }
   else 
     return false; // otherwise exits

// sets difference date to difference of first date and second date

//diff.setTime(Math.abs(date1.getTime() - date2.getTime()));

   var diff = date1.getTime() - date2.getTime()  ;
   
   if (diff >= 0)  
      return true ;                  // posi
   else
    { alert(msg);
      //d2.focus();
      return false;    // nega
    }
  
} 
function checkdatesDiff2(d1,d2,msg)
 {
   date1 = new Date();
   date2 = new Date();
   diff  = new Date();

   if (isValidDate(d1.value) && isValidDate(d2.value))
    { // Validates first date 
      date1temp = new Date(d1.value);
      date1.setTime(date1temp.getTime());
      date2temp = new Date(d2.value);
      date2.setTime(date2temp.getTime());
    }
   else 
     return false; // otherwise exits

   

// sets difference date to difference of first date and second date

 

   var diff = date1.getTime() - date2.getTime()  ;
   if (diff > 0)  
      return true ;                  // posi
   else
    { alert(msg);
      return false;    // nega
    }
  
} 

function chkFinishDate2(dt1,dt2,msg)
{ if ((isEmpty(dt2)) || (isEmpty(dt1)))
    return true ;
  else
     return (checkdatesDiff2(dt1,dt2,msg))  ;
     dt1.focus();
}     

function checkdatesDiff3(d1,d2,msg)
 {
   date1 = new Date();
   date2 = new Date();
   diff  = new Date();
   	
   //alert(d1);	
   if((d1.value=="f_----")||(d1.value=="----"))
   {
   	date1.setTime(new Date());
   	date1.setYear(date1.getYear()+10);
   }   else if (isValidDate(d1.value))
    { // Validates first date 
      date1temp = new Date(d1.value);
      date1.setTime(date1temp.getTime());
    }
   else 
     return false; // otherwise exits
     
    if((d2.value=="f_----")||(d2.value=="----"))
    {
    	date2.setTime(new Date());
    	date2.setYear(date1.getYear()+10);
   
    }	
   else if (isValidDate(d2.value))
     { // Validates second date 
       date2temp = new Date(d2.value);
       date2.setTime(date2temp.getTime());
      }
   else 
     return false; // otherwise exits

// sets difference date to difference of first date and second date

//diff.setTime(Math.abs(date1.getTime() - date2.getTime()));

   var diff = date1.getTime() - date2.getTime()  ;
   
   if (diff >= 0)  
      return true ;                  // posi
   else
    { alert(msg);
      //d2.focus();
      return false;    // nega
    }
  
} 


function checkField(pwd,msg,len)
 { 
   if (isWhitespace(pwd))
    { warnEmpty(pwd,msg);
      return false;
     }
   else
    {if (pwd.value==" ")
       { alert(" can't be blank");
         pwd.focus();
	    return false;
	    }
	else    
     if (parseInt(pwd.value.length) > len)
      { 
        alert(msg + " can't be more than " + len + " characters");
        return false;
     }
     else
      return true;
   }   
}

 



 

function validationCheckingTime(frm)
 { if ((finalTime(frm) == true) && checkSize(frm.eComments,"Empl.Comments" , 350) && checkSize(frm.iWork,"Work done",50))
    { 
    // alert (frm.resultTime.value + " " + frm.InTime.value + frm.OutTime.value) ;
    // frm.eComments.value = encodeComment(frm.eComments);
   //  frm.iWork.value = encodeComment(frm.iWork);
     return true;
     }
    else
      return false ;
 }  




  
function finalTime(frm)
{ 
  var val, resHours, resMins, resTime ;
  StartTime = new Date();
  EndTime   = new Date() ;
  StartTime.setHours(frm.inHrs.value);
  StartTime.setMinutes(frm.inMinutes.value);
   
  EndTime.setHours(frm.outHrs.value);
  EndTime.setMinutes(frm.outMinutes.value);
  if ((frm.inHrs.value == 0) &&(frm.inMinutes.value == 0) && (frm.outHrs.value == 0) && (frm.outMinutes.value == 0))
   { alert("Please select In and Out Timings ");
     return false ;
    } 
  else 
   if (EndTime.getTime() < StartTime.getTime())
   { alert("In-Time  can't be later than Out-Time");
     return false ;
    }
   else
    {     
		var hrs1= StartTime.getHours(), hrs2= EndTime.getHours()   ;
		var min1 = StartTime.getMinutes() ,min2 =EndTime.getMinutes()  ;
                 if (min2 < min1)
			{ resMins = (60 + min2)- min1 ;
			  resHours = hrs2 - (hrs1 + 1) ; 
			}
		else
			{ resMins = min2 - min1 ;
			  resHours = hrs2 - hrs1 ;
			} 
        resTime = resHours + (resMins/100);
        if (resTime == 0)  
         { alert("Both In-Time and Out-Time cann't be the same");   
           return false ;
           }
        else
         {   
             frm.resultTime.value = resTime ;
             frm.InTime.value = hrs1 + (min1/100) ;
             frm.OutTime.value = hrs2 + (min2/100) ;
             return true ;
          }   
    }
  
  } 





function IsNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }

function winpop(loc)
{
		
hvar='width=300,height=200,resizable=no,screenX=0,screenY=0,left=0,top=0,status,scrollbars=yes';
		
wnd = window.open(loc,"cart",'width=300,height=200,resizable=no');
}

function winpop1(loc)
{
		
hvar='width=400,height=300,resizable=yes,screenX=0,screenY=0,left=0,top=0,status,scrollbars=yes';
		
wnd = window.open(loc,"cart",'width=400,height=300,resizable=no,scrollbars=yes');
}


 function IsPhoneNumber(num1,num2,num3,flag)
 {
 if (flag==0) 
 	str="phone";
 else str="fax";
 if(IsNumeric(num1)&&IsNumeric(num2)&&IsNumeric(num3))
 {
  if(num1<3)
  	{
  	alert("Please enter proper "+ str +" number" )
  	return false;
  	}
  else if(num2<3)
  	{alert("Please enter proper "+ str +" number" )
       	 return false;
  	}
  else if(num1<4)
	{ 
 	alert("Please enter proper "+ str +" number" )
 	return false;
  	}
  else return true;
 }else{
 	alert("Please enter numeric phone number")
 	return false;
  	}
 
 }
 
function checkrequiredNew(which,arr) 
{
    var pass=true;
    for (i=0;i<arr.length;i++) 
    {	
        
        var tempobj=which.elements[arr[i][1]];
        if (( (tempobj.type=="text"||tempobj.type=="textarea" || tempobj.type=="password") && tempobj.value.trim() =='') || (tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==0) ) 
        {
            pass=false;
            break;
        }
    }
    if (!pass)
    {
        alert("Please make sure the [" + arr[i][2] + "] field was properly completed.");
        tempobj.focus();
        return false;
    }
    else
        return true;
}
function getObj(name)
{
    if (document.getElementById) // test if browser supports document.getElementById
    {
        this.obj = document.getElementById(name);
        this.style = document.getElementById(name).style;
    }
    else if (document.all) // test if browser supports document.all
    {
        this.obj = document.all[name];
        this.style = document.all[name].style;
    }
    else if (document.layers) // test if browser supports document.layers
    {
        this.obj = document.layers[name];
        this.style = document.layers[name].style;
    }
}

function showMsg( passMsg )
{
    alert( passMsg );
    return true;
}

function displayStatus( passMsg, passDisplay )
{
    if (passDisplay == true)
    {
        document.getElementById("lblStatus").innerHTML="<img src='images/ajax-loader.gif'> <font color='green'>" + passMsg + '</font>';
    }
    else
    {
        document.getElementById("lblStatus").innerHTML="";
    }
}

// Formats the text as the following phone format:
// ddd-ddd-dddd
function AutoPhone(e)
{
	var dl = e.value.length
	switch (dl)
	{
		case 3:
			e.value +=  "-"		
			break
		
		case 7:
			e.value +=  "-"
			break
	}
}

function setValidateControlBackgroundColor( obj )
{
    if (obj.substr(0,2) == "dd")
    {
        document.forms[0][obj].style.backgroundColor='#ffcccc';
    }
    else
    {
        document.forms[0].elements[obj].style.backgroundColor='#ffcccc';
    }
}

