function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

/*------------------------------------------------------------------------------------------*/
function LTrim(str)
 /***
  PURPOSE : Remove leading blanks from (str).
  IN      : str - the string to be LTrimed

  RETVAL: An LTrimmed string
 ***/
 {
  var whitespace = new String(" \t\n\r");

  var s = new String(str);

  if (whitespace.indexOf(s.charAt(0)) != -1) {
    // We have a string with leading blank(s)...
    var j=0, i = s.length;

    // Iterate from the far left of string until we
    // don't have any more whitespace...
    while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
                  j++;

    // Get the substring from the first non-whitespace
    // character to the end of the string...
    s = s.substring(j, i);
  }

  return s;
 }
/*------------------------------------------------------------------------------------------*/
 function RTrim(str)
  /***
  PURPOSE: Remove trailing blanks from (str).
  IN     : str - the string to be RTrimed
  RETVAL: An RTrimmed string
  ***/
  {
  // We don't want to trip JUST spaces, but also tabs,
  // line feeds, etc.  Add anything else you want to
  // "trim" here in Whitespace
  var whitespace = new String(" \t\n\r");
  var s = new String(str);
  if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
   // We have a string with trailing blank(s)...
   
   var i = s.length - 1;       // Get length of string
   
   // Iterate from the far right of string until we
   // don't have any more whitespace...
   while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
                        i--;
    
   // Get the substring from the front of the string to
   // where the last non-whitespace character is...
   s = s.substring(0, i+1);
  }

  return s;
 }

/*------------------------------------------------------------------------------------------*/
 function Trim(str)
  /***
  PURPOSE: Remove trailing and leading blanks from (str).
  IN     : str - the string to be Trimed
  RETVAL: A Trimmed string
  ***/
  {
   return RTrim(LTrim(str));
  }
  
/*------------------------------------------------------------------------------------------*/  
function isEmptyTextField (FieldName) {
  var objField = MM_findObj(FieldName);
  if ( Trim(objField.value) == "" ){
    return true;
  }else {
    return false;
  }  
}
/*------------------------------------------------------------------------------------------*/  

// **BEGIN GENERIC VALIDATION FUNCTIONS**
// general purpose function to see if an input value 
// has been entered at all
function isEmpty(inputStr) {
  if (Trim(inputStr) == "" || inputStr == null) {
    return true
  }
  return false
}

// function to determine if value is in acceptable range 
//for this application
function inRange(inputStr, lo, hi) {
  var num = parseInt(inputStr, 10)
  if (num < lo || num > hi) {
    return false
  }
  return true
}
// **END GENERIC VALIDATION FUNCTIONS**



/*----------------------------------------------------------------------------------------*/
function CompareCurrentDate (smonth, sday, syear, emonth, eday, eyear)
{
	var objsmonth = smonth;
	var objsday = sday;
	var objsyear = syear;
	var objemonth = emonth;	
	var objeday = eday;
	var objeyear = eyear;

	var ldate = new Date(objsmonth.value  + '/' + objsday.value  + '/' + objsyear.value );
	var edate = new Date(objemonth.value  + '/' + objeday.value  + '/' + objeyear.value );
	if ( ldate > edate )
	{
	alert ('Date must be less than current date')
		return false
	}
	return true
}

/*----------------------------------------------------------------------------------------*/
function CompareEntryDate (smonth, sday, syear, emonth, eday, eyear)
{	
	var objsmonth = MM_findObj(smonth);
	var objsday = MM_findObj(sday);
	var objsyear = MM_findObj(syear);	
	
	var ldate = new Date(objsmonth.value  + '/' + objsday.value  + '/' + objsyear.value );
	var edate = new Date(emonth + '/' + eday + '/' + eyear);	
	if ( ldate < edate )
	{
		alert ('Date must be greater than declaration form date')
		return false
	}
	return true
}



function validateMonth(field, bypassUpdate) {
  var input = field.value
  if (isEmpty(input)) {
    alert("Be sure to enter a month value.")
    select(field)
    return false
  } else {
    input = parseInt(field.value, 10)
    if (isNaN(input)) {
      alert("Entries must be numbers only.")
      select(field)
      return false
    } else {
      if (!inRange(input,1,12)) {
         alert("Enter a number between 1 (January) and 12 (December).")
         select(field)
         return false
      }
    }
  }
  if (!bypassUpdate) {
     // calcDate()
  }
  return true
}

function validateDate(dateField,monthField,yearField) {
  var objdateField = MM_findObj(dateField);
  var objmonthField = MM_findObj(monthField);
  var objyearField = MM_findObj(yearField);
  
  var objCdateField = MM_findObj('CurrentDay');
  var objCmonthField = MM_findObj('CurrentMonth');
  var objCyearField = MM_findObj('CurrentYear');
  
  var input = objdateField.value
  
  if (isEmpty(input)) {
    alert("Be sure to enter a date value.")
    select(objdateField)
    return false
  } else {
    input = parseInt(objdateField.value, 10)
    if (isNaN(input)) {
      alert("Entries must be numbers only.")
      select(objdateField)
      return false
    } 
    else {if (! validateYear(objyearField)) return false
      var month = objmonthField
      if (!validateMonth(month, true)) return false
      var monthVal = parseInt(month.value, 10)
      var monthMax = new Array(31,31,28,31,30,31,30,31,
                               31,30,31,30,31)
      var top = monthMax[monthVal]
      if( (monthVal == 2) && (objyearField.value % 4 == 0) ) { //special case
        top = 29
      }  
      if (!inRange(input,1,top)) {
        alert("Enter a number between 1 and " + top + ".")
        select(objdateField)
        return false
      }
    }
  }
  
  
  if (!CompareCurrentDate(objmonthField,objdateField,objyearField,objCmonthField,objCdateField,objCyearField)) {
	select(objdateField)
	return false;
  }
  
  return true
}

function validateYear(field) {
  var input = field.value
  if (isEmpty(input)) {
    alert("Be sure to enter a year value.")
    select(field)
    return false
  } else {
    input = parseInt(field.value, 10)
    if (isNaN(input)) {
      alert("Entries must be numbers only.")
      select(field)
      return false
    } else {
      if (!inRange(input,1900,2030)) {
        alert("Enter a valid year value (number between 1900 and 2030).")
        select(field)
        return false
      }
    }
  }

  return true
}

function select(field) {
  //var objField = field
  field.focus()
  //field.select()
}

function IsValidEmailAddress(src) {
			email = MM_findObj(src);
			emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[a-zA-Z]$"
			var regex = new RegExp(emailReg);
			return regex.test(Trim(email.value));	
}

/*---------------------------------------------------------------------------------------*/
function openw(page,width,height){
     window.open(page,'Window','width='+width+',height='+height+',top=100,left=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=yes');
     return;
    }
    
/*----------------------------------------------------------------------------------------*/
function SubmitLanguage(language) {
	  document.MainForm.Language.value = language;	      
      document.MainForm.submit();
    }    
    

/*----------------------------------------------------------------------------------------*/
function CompareBirthDate (smonth, sday, syear, emonth, eday, eyear)
{
	var objsmonth = MM_findObj(smonth);
	var objsday = MM_findObj(sday);
	var objsyear = MM_findObj(syear);
	var objemonth = MM_findObj(emonth);
	var objeday = MM_findObj(eday);
	var objeyear = MM_findObj(eyear);
	
	var ldate = new Date(objsmonth.value  + '/' + objsday.value  + '/' + (parseInt(objsyear.value) + 18) );
	var edate = new Date(objemonth.value  + '/' + objeday.value  + '/' + objeyear.value );
	
	if ( ldate > edate )
	{
		alert ('You should be more than 18 years old to register');
		return false;
	}
	return true;
}

/*----------------------------------------------------------------------------------------*/
function CompareDate (smonth, sday, syear, emonth, eday, eyear)
{
	var objsmonth = MM_findObj(smonth);
	var objsday = MM_findObj(sday);
	var objsyear = MM_findObj(syear);
	var objemonth = MM_findObj(emonth);
	var objeday = MM_findObj(eday);
	var objeyear = MM_findObj(eyear);

	var ldate = new Date(objsmonth.value  + '/' + objsday.value  + '/' + objsyear.value );
	var edate = new Date(objemonth.value  + '/' + objeday.value  + '/' + objeyear.value );
	if ( ldate > edate )
	{
	alert ('End date must be greater than start date')
		return false
	}
	return true
}

/*----------------------------------------------------------------------------------------*/
function CompareLessDate (smonth, sday, syear, emonth, eday, eyear)
{
	var objsmonth = MM_findObj(smonth);
	var objsday = MM_findObj(sday);
	var objsyear = MM_findObj(syear);
	var objemonth = MM_findObj(emonth);
	var objeday = MM_findObj(eday);
	var objeyear = MM_findObj(eyear);

	var ldate = new Date(objsmonth.value  + '/' + objsday.value  + '/' + objsyear.value );
	var edate = new Date(objemonth.value  + '/' + objeday.value  + '/' + objeyear.value );
	if ( ldate >= edate )
	{
		alert ('Valid date must be greater than current date')
		return false
	}
	return true
}


/*----------------------------------------------------------------------------------------*/

function CompareDate1 (smonth, sday, syear, emonth, eday, eyear, txtfrom, txtto)
{
	var objsmonth = MM_findObj(smonth);
	var objsday = MM_findObj(sday);
	var objsyear = MM_findObj(syear);
	var objemonth = MM_findObj(emonth);
	var objeday = MM_findObj(eday);
	var objeyear = MM_findObj(eyear);

	var ldate = new Date(objsmonth.value  + '/' + objsday.value  + '/' + objsyear.value );
	var edate = new Date(objemonth.value  + '/' + objeday.value  + '/' + objeyear.value );
	if ( ldate > edate )
	{
	alert ('"' + txtto + '"' + ' must be greater than ' + '"' + txtfrom + '"')
		return false
	}
	return true
}


/*----------------------------------------------------------------------------------------*/
function CompareTripleDate (smonth, sday, syear, emonth, eday, eyear, cmonth, cday, cyear)
{
	var objsmonth = MM_findObj(smonth);
	var objsday = MM_findObj(sday);
	var objsyear = MM_findObj(syear);
	var objemonth = MM_findObj(emonth);
	var objeday = MM_findObj(eday);
	var objeyear = MM_findObj(eyear);
	var objcmonth = MM_findObj(cmonth);
	var objcday = MM_findObj(cday);
	var objcyear = MM_findObj(cyear);

	var ldate = new Date(objsmonth.value  + '/' + objsday.value  + '/' + objsyear.value );
	var edate = new Date(objemonth.value  + '/' + objeday.value  + '/' + objeyear.value );
	var cdate = new Date(objcmonth.value  + '/' + objcday.value  + '/' + objcyear.value );
	
	if ( ldate > edate )
	{
		alert ('Analyzed date must be greater than Received date')
		select(MM_findObj(eday));
		return false
	}
	if ( ldate > cdate )
	{
		alert ('Completed date must be greater than Received date')
		select(MM_findObj(cday));
		return false
	}
	if ( edate > cdate )
	{
		alert ('Completed date must be greater than Analyzed date')
		select(MM_findObj(cday));
		return false
	}
	
	return true
}






function DecFormID() 
{
alert("Please First Select a Declaration Form From The Search Page");
}



function validateExpiryDate(dateField,monthField,yearField) {
  var objdateField = MM_findObj(dateField);
  var objmonthField = MM_findObj(monthField);
  var objyearField = MM_findObj(yearField);
  
  var objCdateField = MM_findObj('CurrentDay');
  var objCmonthField = MM_findObj('CurrentMonth');
  var objCyearField = MM_findObj('CurrentYear');
  
  var input = objdateField.value
  
  if (isEmpty(input)) {
    alert("Be sure to enter a date value.")
    select(objdateField)
    return false
  } else {
    input = parseInt(objdateField.value, 10)
    if (isNaN(input)) {
      alert("Entries must be numbers only.")
      select(objdateField)
      return false
    } 
    else {if (! validateYear(objyearField)) return false
      var month = objmonthField
      if (!validateMonth(month, true)) return false
      var monthVal = parseInt(month.value, 10)
      var monthMax = new Array(31,31,28,31,30,31,30,31,
                               31,30,31,30,31)
      var top = monthMax[monthVal]
      if( (monthVal == 2) && (objyearField.value % 4 == 0) ) { //special case
        top = 29
      }  
      if (!inRange(input,1,top)) {
        alert("Enter a number between 1 and " + top + ".")
        select(objdateField)
        return false
      }
    }
  }
  
  return true
}

 function ValueParser(StrValue) {  
	var ResultStr,ResultString;
	var Results;
	
	ResultString=new String(StrValue);
	ResultStr=ResultString.split("'");
	Results=""
  
	for(var i=0;i<ResultStr.length;i++) { 
		if (i == ResultStr.length-1)
			Results=Results + ResultStr[i];
		else
			Results=Results + ResultStr[i] + "\\'";
	}
	
	return Results;	
  }
