//validation code by srinivas starts
function RemoveContents(field) {
  if (field) {
    field.options.length=0;
    opt = new Option("Click to Select", "NONE", false, false);
    field.options[0] = opt;
    field.options[0].selected = true;
  }
}



function MM_openBrWindow(theURL,winName,features) { 
  window.open(theURL,winName,features);
}

function trimFld(field)    {
  if (field) {
    fieldval = field.value;
    var nReturn = 0;
    for (i=0; i<field.value.length; i++)    {
        temp = field.value.substring(i,i+1);
        if (temp != " ")    {
          if (temp == "\r") {
            if (nReturn == 0) nReturn++;
            else { i--; break; }
          }
          else if (temp == "\n") {
            if (nReturn == 1) nReturn = 0;
            else { i--; break; }
          }
          else break;
        }
    }
    field.value = fieldval.substring(i,fieldval.length);
    fieldval = field.value;
    nReturn = 0;
    for (i=field.value.length; i>0; i--)    {
        temp = field.value.substring(i-1,i);
        if (temp != " ")    {
          if (temp == "\n") {
            if (nReturn == 0) nReturn++;
            else { i++; break; }
          }
          else if (temp == "\r") {
            if (nReturn == 1) nReturn = 0;
            else { i++; break; }
          }
          else break;
        }
    }
    field.value = fieldval.substring(0,i);
  }
}

function isAlphaNumeric(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var valid = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-.& ";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1")    {
          alert("Please do not enter special characters");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function isAlphabetIncludingSeparator(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,. -";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1")    {
          alert("Please enter only aphabets and use only -/space/./, as separators");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function isAlphabet(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1")    {
          alert("Please enter only aphabets");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function validateAddress(field,bSubmit) {
 if (field) {
   trimFld(field);
   if (bSubmit && (field.value.length < 2 || field.value == ""))  {
     alert("Please enter the address");
     field.focus();
     return false;
   }
   else if (!isQuote(field,false)) {
     return false;
   }
 }
 return true;
}

function validateCity(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit && (field.value.length < 2 || field.value == ""))  {
      alert("Please enter the city");
      field.focus();
      return false;
    }
    else if (!isQuote(field,false)) {
      return false;
    }
  }
  return true;
}

function verifyResume(field) {
  if (field) {
    trimFld(field);
    if(field.value.length < 500) {
      alert("Please enter a minimum of 500 characters in the resume");
      field.focus();
      return false;
    }
    //30*1024 = 30720
    if(field.value.length > 30720) {
      alert("Resume should not exceed 30k");
      field.focus();
      return false;
    }
  }
  return true;
}

function isEmailID(field,bSubmit) {
  trimFld(field);
  emailStr = field.value
  var emailPat=/^(.+)@(.+)$/
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
  var validChars="\[^\\s" + specialChars + "\]"
  var quotedUser="(\"[^\"]*\")"
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom=validChars + '+'
  var word="(" + atom + "|" + quotedUser + ")"
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
  //changed now
  var valid = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-.@";
  var temp;
  for (var i=0; i<field.value.length; i++){
    temp = field.value.substring(i,i+1);
    if (valid.indexOf(temp) == "-1")    {
      alert("Please do not enter space or characters like +*()%& in Email Address");
      field.select();
      field.focus();
      return false;
    }
  }
  
  //changed now
  //alert("bool="+bSubmit);
  if(bSubmit!=true && (field.length == 0 || field.value =="")) {
    return true;
  }
  if(field.length == 0 || field.value =="") {
    alert("Please do not leave the field empty");
    field.select();
    field.focus();
    return false;
  }
  
  var matchArray=emailStr.match(emailPat)
  if(matchArray==null) {
    alert("Please enter a valid EmailID");
    field.focus();
    field.select();
    return false  
  }
  var user=matchArray[1];
  var domain=matchArray[2];
  
  if (user.match(userPat)==null) {
    // user is not valid
    alert("The username in Email Address doesn't seem to be valid.")
    field.focus();
    field.select();
    return false
  }
  
  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null) {
    // this is an IP address
    for (var i=1;i<=4;i++) {
      if (IPArray[i]>255) {
        alert("Destination IP address in EmailID is invalid!");
        field.focus();
        field.select();
        return false
      }
    }
    return true
  }
  
  var domainArray=domain.match(domainPat)
  if (domainArray==null) {
    alert("The domain name in EmailID doesn't seem to be valid.");
    field.focus();
    field.select();
    return false
  }
  
  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  var len=domArr.length
  if (domArr[domArr.length-1].length<2||domArr[domArr.length-1].length>3) {
    // the address must end in a two letter or three letter word.
    alert("The Email address must end in a three-letter domain, or two letter country.");
    field.focus();
    field.select();
    return false
  }
  
  if (len<2) {
    var errStr="The Email address is missing a hostname!"
    alert(errStr)
    field.focus();
    field.select();
    return false
  }
  return true;
  
}

function isQuote(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var invalid = "'\"";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (invalid.indexOf(temp) != "-1")    {
          alert("Please do not enter single/double quotes");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function checkValidDate(dayfield,monthfield,yearfield) {
  trimFld(dayfield);
  trimFld(monthfield);
  trimFld(yearfield);
  if(dayfield.value==""||dayfield.value.length==0||isNaN(parseInt(dayfield.value))) {
    alert("Please enter correct Day ");
    dayfield.select();dayfield.focus();
    return false;
  }
  if(monthfield.value==""||monthfield.value.length==0||isNaN(parseInt(monthfield.value))) {
    alert("Please enter correct Month ");
    monthfield.select();monthfield.focus();
    return false;
  }
  if(yearfield.value==""||yearfield.value.length==0||isNaN(parseInt(yearfield.value))) {
    alert("Please enter correct Year");
    yearfield.select();yearfield.focus();
    return false;
  }
  var day=dayfield.value;
  var month=monthfield.value;
  var year=yearfield.value;
  if (year == 0) {
    alert("Please enter correct Year");
    yearfield.select();yearfield.focus();
    return false;
  }
  if(day<1 || day > 31) {
    alert("Please enter correct Day ");
    dayfield.select();dayfield.focus();
    return false;
  }
  if(month<1 || month > 12) {
    alert("Please enter correct Month ");
    monthfield.select();monthfield.focus();
    return false;
  }
  if(month==2 && day>29) {
    alert("This month does not have these many days");	
    monthfield.select();monthfield.focus();
    return false;
  }
  // leap year check
  if ( !((year % 4 == 0) && (!(year % 100 == 0) || (year % 400 == 0) ) ) && (month == 2) && (day > 28)) {
    alert("This is not a leap year");	
    monthfield.select();monthfield.focus();
    return false;
  }
  if((month==4 || month==6 || month==9 || month==11) &&  ( day > 30)) {
    alert("This month does not have these many days");
    monthfield.select();monthfield.focus();
    return false;
  }
  if( isNaN(day) || isNaN(month) || isNaN(year)) {
    alert("Enter only numeric value for date");
    if (isNaN(day))   { dayfield.select();dayfield.focus(); }
    if (isNaN(month)) { monthfield.select();monthfield.focus(); }
    if (isNaN(year))  { yearfield.select();yearfield.focus(); }
    return false;
  }
  return true;
}


function compareDatewrtSysdate(fieldDD1,fieldMM1,fieldYY1,PresentDate,PresentMonth,PresentYear) {
  var date1 = new Date(fieldYY1.value,fieldMM1.value-1,fieldDD1.value);
  var date2 = new Date(PresentYear.value,PresentMonth.value-1,PresentDate.value);
  var difference = date2 - date1;
  if (difference >= 0) {
    return true;
  }
  else {
    return false;
  }
}

function validateDate(DayField,MonthField,YearField,PresentDate,PresentMonth,PresentYear) {
  if (!checkValidDate(DayField,MonthField,YearField)) return false;
  if (!compareDatewrtSysdate(DayField,MonthField,YearField,PresentDate,PresentMonth,PresentYear)) {
    alert("Please enter correct Date");
    YearField.focus();
    return false;
  }
  if (YearField.value < 1900) {
    alert("Please enter correct Year");
    YearField.focus();
    return false;
  }
  return true;
}

function validateDateGreater(DayField,MonthField,YearField,PresentDate,PresentMonth,PresentYear) {
  if (!checkValidDate(DayField,MonthField,YearField)) return false;
  if (compareDatewrtSysdate(DayField,MonthField,YearField,PresentDate,PresentMonth,PresentYear)) {
    alert("Date should be atleast greater than sysdate");
    YearField.focus();
    return false;
  }
  return true;
}

function isNumber(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var valid = "0123456789.";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1")    {
          alert("Please enter a valid number");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function isNumberWithoutDecimal(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var valid = "0123456789";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1")    {
          alert("Please enter a valid number");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function isNumberPhone(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var valid = "0123456789,. -;";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1")    {
          alert("Please enter only numbers and use comma/hyphen/space/dot/semicolon as separator");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function checkForClick(field) {
  if (field) {
    if ( field.selectedIndex == -1 || field.selectedIndex == 0) {
      alert("Please select any value");
      field.focus();
      return false;
    }
  }
  return true;
}

function checkMaxSelection(field,bIncludeFirst,nCount,strLabel,bAtleastOneRequired) {
  if (field) {
    if (bAtleastOneRequired) {
      if (field.selectedIndex == -1) {
        alert("Please select any value of "+strLabel);
        field.focus();
        return false;
      }
    }
    if (!bIncludeFirst) {
      if (field.options[0].selected == true) {
        alert("Please de-select Click to Select of "+strLabel);
        field.focus();
        return false;
      }
    }
    var nSelectedCount = 0;
    for (var i=0;i<field.options.length;i++) {
      if (field.options[i].selected == true) {
        if (nSelectedCount < nCount) {
          nSelectedCount++;
        }
        else {
          alert("Please select maximum of "+nCount+" "+strLabel);
          for (var j=i;j<field.options.length;j++) {
            field.options[j].selected = false;
          }
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function checkOthers(field,othersfield,strLabel) {
  if (field) {
    for (var i=0;i<field.options.length;i++) {
      if (field.options[i].selected == true) {
        if ((field.options[i].text).toUpperCase() == "OTHERS") {
          trimFld(othersfield);
          if (othersfield) {
            if (othersfield.value == "" || othersfield.value.length == 0) {
              alert("Please enter description of other "+strLabel);
              othersfield.focus();
              return false;
            }
            else if ((othersfield.value).toUpperCase() == "NONE") {
              alert("Please enter description of other "+strLabel);
              othersfield.focus();
              return false;
            }
            else if ((othersfield.value).toUpperCase() == "ENTER VALUE FOR OTHERS") {
              alert("Please enter description of other "+strLabel);
              othersfield.focus();
              return false;
            }
          }
        }
      }
    }
  }
  if (othersfield) {
    if (othersfield.value.length > 0) {
      if (!isQuote(othersfield,false)) {
        return false;
      }
    }
  }
  return true;
}

function validateFieldForPercentage(field,bSubmit) {
  if (field) {
    if (!isFloat(field,bSubmit)) return false;
    if (!validatePercentage(field,bSubmit)) return false;
  }
  return true;
}

function isFloat(field,bSubmit) {
  if (field) {
    trimFld(field);
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var valid = "0123456789.";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1")    {
          alert("Please enter a valid number");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function validatePercentage(field,bSubmit) {
  if (field) {
    if (!bSubmit && (field.value.length==0 || field.value=="" )) return true;   
    var fieldValue  = parseFloat(field.value);
    var fieldLength = field.value.length;
    if (fieldValue > 100 || fieldValue < 0) {
      alert("Value can range between 0 and 100");
  	  field.select();field.focus();
  	  return false;
    }
    var i = field.value.indexOf(".");
    var j = field.value.lastIndexOf(".");
    if (i != j) {
      alert("Please enter only one decimal point");
      field.select();field.focus();
      return false;
    }  
    if (i != -1) {
      var temp = fieldLength-i;
      if (temp > 3) {
        alert("Please enter only 2 digits after the decimal");
        field.select();field.focus();
        return false;  		
      }
    }
  }
	return true;
}
//validation code by srinivas ends

//Rajesh
  function validateForAmountDecimal(field,bSubmit)
  {
  	if(field)
	{
		if (!bSubmit && (field.value.length==0 || field.value=="" )) return true;  
	  	if(!isNumber(field,bSubmit))
	  	{
	  		return false;
	  	}
	  	var vAmountValue = field.value;
	        var vAmountValueLength = field.value.length;
	        if(vAmountValueLength  > 0)
		{
	  	var vAmountElements = vAmountValue.split(".");
	  	//alert("The vAmountElements is : " + vAmountElements.length);
	  	if(vAmountElements.length > 2)
	  	{
	  	  alert("Please enter only one decimal.");
	          field.select();field.focus();
	          return false;  		
	  	}
	  	if(vAmountElements.length > 1)
	  	{
		   if(vAmountElements[0].length > 8)
		   {
		  	alert("Integer part of the amount should not be more than 8 digits");
		        field.select(); field.focus();
		        return false;  		
		  }
		  if(vAmountElements[1].length > 2)
		  {
		  	alert("please enter only 2 digits after the decimal");
		        field.select(); field.focus();
		        return false;  		
		  }
		}
	   	if(vAmountElements.length == 1)
	  	{
	  	   if(vAmountElements[0].length > 8)
		   {	
		  	  alert("Integer part of the amount should not be more than 8 digits");
		          field.select(); field.focus();
		          return false;  		
		  }
	    	}
	    }//End of the if for length greater than zero.
	    if(vAmountValue==".")
	    	field.value="0.0";
	}	  	
	return true; 
  }

  function countResumeTextLength(resumeTextField,countField)
  {
    countField.value = resumeTextField.value.length;
  }
  function validateDynamicDDOuter(field)
  {
      field.selectedIndex = 0;
  }
  function isNumberWithoutDecimalAndZero(field,bSubmit,bZeroRequired) {
  if (field) {
    trimFld(field);
    if(bZeroRequired)
    {
       if(field.value*1 == 0 && field.value.length > 0)  
	{
            alert("Please do not enter zero");
     	    field.select();
            field.focus();
            return false;
	}
    }
    if (bSubmit==true && (field.value.length == 0||field.value==""))    {
      alert("Please do not leave the field empty");
      field.select();
      field.focus();
      return false;
    }
    else {
      var valid = "0123456789";
      var temp;
      for (var i=0; i<field.value.length; i++) {
        temp = field.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1")    {
          alert("Please enter a valid number");
          field.select();
          field.focus();
          return false;
        }
      }
    }
  }
  return true;
}

function checkMinAndMaxSelection(field,bIncludeFirst,nMinCount,nMaxCount,strLabel,bAtleastOneRequired) 
{
  if (field) {
    if (bAtleastOneRequired) {
      if (field.selectedIndex == -1) {
        alert("Please select any value of "+strLabel);
        field.focus();
        return false;
      }
    }
    if (!bIncludeFirst) {
      if (field.options[0].selected == true) {
        alert("Please de-select Click to Select of "+strLabel);
        field.focus();
        return false;
      }
    }
    var vCounter = 0;
    var vDummyCounter = 0;
     for (var i=0;i<field.options.length;i++) 
     {
       if (field.options[i].selected == true) 
       {
          vCounter++;
       }
     }
     if(vCounter < nMinCount)
     {
       alert("Please select minimum of "+nMinCount+" "+strLabel);
       field.focus();
       return false;
     }
    if(vCounter  > nMaxCount)
     {
       alert("Please select maximum of "+nMaxCount+" "+strLabel);
       for(a=(field.options.length-1);a>=0;a--)
       {
         if(field.options[a].selected == true)
         {
           vDummyCounter++;
	   field.options[a].selected = false;
	   if(vDummyCounter*1 == (vCounter*1-nMaxCount*1))
           {
              field.focus();
              return false;
           }//End of the dummy Counter if.
         }//End of the true selected
       }//End of the for loop
     }//End of the if for the vCounter greater
   }//End of the if for the field
  return true;
}
 //Rajesh
