<!--
function validate(validationType, isMandatory, objToValidate, nameToShow, aux1, aux2, aux3) {
  objToValidate.value = Trim(objToValidate.value);
  if (isMandatory && objToValidate.type=="select-multiple" && objToValidate.length==0) {
    alert("El listado de " + nameToShow + " tiene que contener algún elemento.\nDebe completarlo para continuar.");
		return false;
  } else if (isMandatory && objToValidate.type=="select-multiple" && objToValidate.length>0) {
    return true;
  }
  
  if (isMandatory && objToValidate.type=="select-one" && objToValidate.selectedIndex==0) {
    alert("El " + nameToShow + " es obligatorio.\nDebe completarlo para continuar.");
		objToValidate.focus();
		return false;
  } else if (isMandatory && objToValidate.type=="select-one" && objToValidate.selectedIndex>0){
    return true;
  }

  if (isMandatory && (objToValidate.value.length<1 || validationType=="date" && objToValidate.value=="dd/mm/aaaa")) {
		alert("El " + nameToShow + " es obligatorio.\nDebe completarlo para continuar.");
		objToValidate.focus();
		objToValidate.select();
		return false;
	}

	if (!isMandatory && (objToValidate.value.length<1 || validationType=="date" && objToValidate.value=="dd/mm/aaaa")) {
		return true;
	}

	switch (validationType) {
	  case ("bankAccount") :
	    return validateBankAccount(objToValidate,aux1/*obj sucursal*/,aux2/*obj control*/,aux3/*obj cuenta*/);
		case ("date") :
			return validateDate(objToValidate);
		case ("eMail") :
			return validateEMail(objToValidate);
		case ("zipCode") :
			return validateZipCode(objToValidate, aux1/*obj identificador de la provincia*/);
		case ("phoneNumber") :
		  return validatePhoneNumber(objToValidate, aux1/*tipo de teléfono: "F", "M", "FAX", "NOSE"*/);
		case ("document") :
			return validateDocument(objToValidate, aux1/*tipo de documento: "CIF", "NIF", "TARJETA RESIDENCIA", "NOSE"*/);
	}
  return true;
}

function isLeapYear(intYear) {
	if (intYear % 100 == 0) {
		if (intYear % 400 == 0) {
			return true;
		}
	} else {
		if ((intYear % 4) == 0) {
			return true;
		}
	}
	return false;
}

function isNumber (valor) {
  return !(isNaN(valor));
}

function isValidZipCode(objZC, objLocId) {
	var strZCLocId;
	var intZCLocId;
	if (objZC.value.substring(0,1)=="0") {
		strZCLocId = objZC.value.substring(1,2);
	} else {
		strZCLocId = objZC.value.substring(0,2);
	}
	intZCLocId = parseInt(strZCLocId,10);
	if (intZCLocId > 52) {
		return false;
	}

	if (objLocId.value!= intZCLocId) {
	  return false;
	}

	return true;
}

function validateBankAccount(banco,sucursal,ctrl,cuenta) {

	// Validaciones previas
	if (banco.value.length < 4 || !isNumber(banco.value)) {
		alert("El código del banco del número de cuenta debe contener 4 digitos numéricos.\nDebe corregirlo para continuar.");
		banco.focus();
		banco.select();
		return false;
	}
	if (sucursal.value.length < 4 || !isNumber(sucursal.value)) {
		alert("El código de la sucursal del número de cuenta debe contener 4 digitos numéricos.\nDebe corregirlo para continuar.");
		sucursal.focus();
		sucursal.select();
		return false;
	}
	if (ctrl.value.length < 2 || !isNumber(ctrl.value)) {
		alert("El código de control del número de cuenta debe contener 2 digitos numéricos.\nDebe corregirlo para continuar.");
		ctrl.focus();
		ctrl.select();
		return false;
	}
	if (cuenta.value.length < 10 || !isNumber(cuenta.value)) {
		alert("El código de cuenta debe contener 10 digitos numéricos.\nDebe corregirlo para continuar.");
		cuenta.focus();
		cuenta.select();
		return false;
	}
	if (parseInt(banco.value,10) == 0
			&& parseInt(sucursal.value,10) == 0
			&& parseInt(ctrl.value,10) == 0
			&& parseInt(cuenta.value,10) == 0 ) {
			alert("El número de cuenta 0000 0000 00 0000000000 no es valido.\nDebe corregirlo para continuar.");
			banco.focus();
			banco.select();
			return false;
	}

	// ctrl
	var suma=0;
	var numero;
	var peso= new Array (6,3,7,9,10,5,8,4,2,1);
	var ctrl1;
  var ctrl2;

  var bancoYsucursal=banco.value+sucursal.value;
	for(i=0; i<bancoYsucursal.length; i++) {
		numero = bancoYsucursal.charAt(bancoYsucursal.length-i-1);
		suma = suma + parseInt(numero,10)*peso[i];
	}
	if ((suma % 11)!=0) {
		ctrl1 = 11-(suma % 11);
	} else {
		ctrl1 = 0;
	}

	suma=0;
	for(i=0; i<cuenta.value.length; i++) {
					numero = cuenta.value.charAt(cuenta.value.length-i-1);
					suma = suma + parseInt(numero,10)*peso[i];
	}
	if ((suma % 11)!=0) {
		ctrl2 = 11-(suma % 11);
	} else {
		ctrl2 = 0;
	}

	if (ctrl.value!=(String(ctrl1).charAt(0)+String(ctrl2).charAt(0))){
		alert("El número de cuenta no es valido.\nDebe corregirlo para continuar.");
		banco.focus();
		banco.select();
		return false;
	}

	return true;
}

function validateEMail (emailObj) {

	var emailStr = emailObj.value;
	/* Separamos el nombre de usuario del dominio. */
	var emailPat=/^(.+)@(.+)$/;
	/* Caracteres especiales permitidos en la dirección de correo
		 electrónico ( ) < > @ , ; : \ " . [ ]    */
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	/* Caracteres permitidos dentro del nombre de usuario y dominio. */
	var validChars="\[^\\s" + specialChars + "\]";
	/* En el caso de encontrarnos con una dirección formado por un nombre de
		 usuario no tenemos restricciones (todo está permitido).Por ejemplo
		 "jiminy cricket"@disney.com es una dirección correcta. */
	var quotedUser="(\"[^\"]*\")";
	/* Aplicamos esta plantilla para aquellos dominios que son direcciones IP,
		 en lugar de nombre simbólicos.  E.g. joe@[123.124.233.4] es una dirección
		 electrónica legal. NOTA: Los corchetes son obligatorios. */
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	/* Esta variable representa caracteres válidos. */
	var atom=validChars + "+";
	/* Esta variable representa una palabra en el nombre de usuario.
		 Por ejemplo, en john.doe@somewhere.com, john y doe son words.*/
	var word="(" + atom + "|" + quotedUser + ")";
	// Esta plantilla refleja la estructura del usuario
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	/* Esta plantilla representa la estructura de un dominio simbólico normal. */
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

	/* Fraccionamos la dirección de email. */
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		/* Too many/few @'s or something; basically, this address doesn't
			 even fit the general mould of a valid e-mail address. */
		alert("La dirección de correo electrónico no es válida.\nDebe corregirla para continuar.")
		emailObj.focus();
		emailObj.select();
		return false;
	}

	var user=matchArray[1];
	var domain=matchArray[2];

	// Comprobamos que el nombre de usuario es correcto
	if (user.match(userPat)==null) {
			// Usuario NO válido
		alert("La dirección de correo electrónico no es válida.\nDebe corregirla para continuar.")
		emailObj.focus();
		emailObj.select();
		return false;
	}

	/* Si la dirección electrónica es una direción IP la validamos. */
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("La dirección de correo electrónico no es válida.\nDebe corregirla para continuar.")
				emailObj.focus();
				emailObj.select();
				return false;
			}
		}
		return true;
	}

	// El dominio es un nombre simbólico
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("La dirección de correo electrónico no es válida.\nDebe corregirla para continuar.")
		emailObj.focus();
		emailObj.select();
		return false;
	}

	/* Validamos que el dominio acaba adecuadamente (com, edu, gov, es, uk, nl). */
	/* Para ello necesitamos partirlo en caracteres. */
	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) {
		alert("La dirección de correo electrónico no es válida.\nDebe corregirla para continuar.")
		emailObj.focus();
		emailObj.select();
		return false;
	}

	// Nos aseguramos que el nombre del servidor precede al dominio.
	if (len<2) {
		alert("La dirección de correo electrónico no es válida.\nDebe corregirla para continuar.")
		emailObj.focus();
		emailObj.select();
		return false;
	}

	// Todo es correcto.
	return true;
}

function validateDate(objDate) {

	var strDate = objDate.value;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intDay;
	var intMonth;
	var intYear;
	var strSeparator = "/";

	if (strDate.indexOf(strSeparator) != -1) {
			strDateArray = strDate.split(strSeparator);
			if (strDateArray.length != 3) {
				alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
				objDate.focus();
				objDate.select();
				return false;
			} else {
				strDay = strDateArray[0];
				if(strDay.length != 2){
					alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
					objDate.focus();
					objDate.select();
					return false;
				}
				strMonth = strDateArray[1];
				if(strMonth.length != 2) {
					alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
					objDate.focus();
					objDate.select();
					return false;
				}
				strYear = strDateArray[2];
				if(strYear.length != 4) {
					alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
					objDate.focus();
					objDate.select();
					return false;
				}
			}

	} else {
		alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
		objDate.focus();
		objDate.select();
		return false;
	}

	intDay = parseInt(strDay, 10);
	intMonth = parseInt(strMonth, 10);
	intYear = parseInt(strYear, 10);
	if (isNaN(intDay) || isNaN(intMonth) || isNaN(intYear)) {
		alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
		objDate.focus();
		objDate.select();
		return false;alert(5);
	}
	if (intMonth>12 || intMonth<1) {
		alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
		objDate.focus();
		objDate.select();
		return false;alert(6);
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intDay > 31 || intDay < 1)) {
		alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
		objDate.focus();
		objDate.select();
		return false;alert(7);
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intDay > 30 || intDay < 1)) {
		alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
		objDate.focus();
		objDate.select();
		return false;alert(8);
	}
	if (intMonth == 2) {
  	if (intDay < 1) {
  		alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
  		objDate.focus();
  		objDate.select();
  		return false;alert(9);
  	}
  	if (isLeapYear(intYear) == true) {
  		if (intDay > 29) {
  			alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
  			objDate.focus();
  			objDate.select();
  			return false;alert(10);
  		}
  	} else {
  		if (intDay > 28) {
  			alert("El formato de la fecha no es válido.\nDebe corregirlo para continuar.\nFormato correcto: dd/mm/aaaa");
  			objDate.focus();
  			objDate.select();
  			return false;alert(11);
  		}
	 }
  }

	return true;
}

function validatePhoneNumber(objPhoneNumber, kind) {

  var alertText;
  
  if (kind == "M") {
    alertText = "teléfono móvil";
  } else if (kind == "F") {
    alertText = "teléfono fijo";
  } else if (kind == "FAX") {
    alertText = "FAX";
  } else {
    alertText = "teléfono";
  }

  // Móvil
	if (kind == "M") {
		if (objPhoneNumber.value.charAt(0) != "6") {
			alert("El número de " + alertText + " introducido no es válido.\nDebe corregirlo para continuar.");
			objPhoneNumber.focus();
			objPhoneNumber.select();
			return false;
		}
	}

	// Fijo/Fax
	if (kind == "F" || kind == "FAX") {
		if ((objPhoneNumber.value.charAt(0) != "8")&&(objPhoneNumber.value.charAt(0) != "9")) {
			alert("El número de " + alertText + " introducido no es válido.\nDebe corregirlo para continuar.");
			objPhoneNumber.focus();
			objPhoneNumber.select();
			return false;
		}
	}

	 // Longitud
   if (objPhoneNumber.value.length != 9 || !isNumber(objPhoneNumber.value)) {
			alert("El número de " + alertText + " debe contener 9 dígitos numéricos.\nDebe corregirlo para continuar.");
			objPhoneNumber.focus();
			objPhoneNumber.select();
			return false;
   }

  // Prefijos
/*  var prefijos = new Array (
   "822", "824", "828",
   "843", "848",
   "856", "858",
   "868",
   "871", "872", "873", "876", "877",
   "881", "886",
   "912", "913", "914", "915", "916", "917", "918",
   "920", "921", "922", "923", "924", "925", "926", "927", "928",
   "932", "933", "934", "935", "936", "937", "938", "940",
   "941", "942", "943", "944", "945", "946", "947", "948", "949",
   "950", "951", "952", "953", "954", "955", "956", "957", "958", "959",
   "961", "962", "963", "964", "965", "966", "967", "968", "969",
   "971", "972", "973", "974", "975", "976", "977", "978", "979",
   "980", "981", "982", "983", "984", "985", "986", "987", "988",
   "999",
   "600", "605", "606", "607", "608", "609",
   "610", "615", "616", "617", "618", "619",
   "620", "622", "625", "626", "627", "628", "629",
   "630", "635", "636", "637", "639",
   "640", "646", "647", "649",
   "650", "651", "652", "653", "654", "655", "656", "657", "658", "659",
   "660", "661", "662", "666", "667", "669", "665",
   "670", "676", "677", "678", "679",
   "680", "686", "687", "689",
   "690", "696", "697", "699");

   var prefijo = objPhoneNumber.value.substring(0,3);
   var i=0;
   while((prefijos[i] != prefijo) && (i<prefijos.length)) {
     i++;
   }

   if (i==prefijos.length) {
			alert("El prefijo del " + alertText + " introducido no es válido.\nDebe corregirlo para continuar.");
			objPhoneNumber.focus();
			objPhoneNumber.select();
			return false;
   }
*/
   return true;
}

function validateZipCode(objZC, objLocId) {
  var strZC = objZC.value;
	if (strZC.length != 5 || !isNumber(objZC.value)) {
		alert("El código postal debe ser un número de 5 dígitos.\nDebe corregirlo para continuar.");
		objZC.focus();
		objZC.select();
		return false;
	}

	if (objLocId) {
		if (objLocId.selectedIndex<1) {
			alert("Si completa el código postal, también es necesario que escoja una provincia.");
			objLocId.focus();
			return false;
		}
	
		if (!isValidZipCode(objZC, objLocId))	{
			alert("El código postal no pertenece a la provincia seleccionada.\nDebe corregirlo para continuar.");
			objZC.focus();
			objZC.select();
			return false;
		}
	}
	return true;
}

function validateTarjetaResidencia(objDocument) {
  var strDocument = objDocument.value.toUpperCase();

	if(strDocument.charAt(0).toUpperCase()!="X" || strDocument.length<10) {
		alert("La tarjeta de residencia introducida no es correcta.\nDebe corregirla para continuar.\nNo introduzca espacios ni guiones.");
		objDocument.focus();
		objDocument.select();
		return false;
	} else {
	  var strLetters = "TRWAGMYFPDXBNJZSQVHLCKE";
		var numero = strDocument.substr(1,strDocument.length-2)
		var letra = strDocument.charAt(strDocument.length-1);

		if (numero.length>8) {
			alert("La tarjeta de residencia introducida no es correcta.\nDebe corregirla para continuar.\nNo introduzca espacios ni guiones.");
			objDocument.focus();
			objDocument.select();
			return false;
    }

    var n = (parseInt(numero.toString(), 10)%23);
		if (strLetters.charAt(n) != letra.toUpperCase()) {
			alert("La tarjeta de residencia introducida no es correcta.\nDebe corregirla para continuar.\nNo introduzca espacios ni guiones.");
			objDocument.focus();
			objDocument.select();
			return false;
		}

		return true;
	}
}

function validateNIF(objDocument) {
   var nif = objDocument.value.toUpperCase();
   var strLetters = "TRWAGMYFPDXBNJZSQVHLCKE";
   var numero = nif.substr(0,nif.length-1);
   var letra = nif.charAt(nif.length-1);

   if (numero.length>8) {
		alert("El NIF introducido no es correcto.\nDebe corregirlo para continuar.\nNo introduzca espacios ni guiones.");
		objDocument.focus();
		objDocument.select();
		return false;
   }

   var n = (parseInt(numero.toString(), 10)%23);
   if (strLetters.charAt(n) != letra.toUpperCase()) {
		alert("El NIF introducido no es correcto.\nDebe corregirlo para continuar.\nNo introduzca espacios ni guiones.");
		objDocument.focus();
		objDocument.select();
		return false;
   }
   return true;
}

function validateCIFNIE(objDocument, cifnie) {
  var strCIF = objDocument.value.toUpperCase();
  var firstChar = strCIF.charAt(0);
  var lastChar = strCIF.charAt(8);
  var firstLetters = "ABCDEFGHKLMNPQSXZ";

  if (strCIF.length!=9 || !isNumber(strCIF.substr(1,7))) {
		alert("El "+cifnie+" introducido no es correcto.\nDebe corregirlo para continuar.\nNo introduzca espacios ni guiones..");
		objDocument.focus();
		objDocument.select();
		return false;
  }

  if (firstLetters.indexOf(firstChar)!=-1) {

    if (lastChar == "A" || lastChar == "B" || lastChar == "C" || lastChar == "D" ||
			  lastChar == "E" || lastChar == "F" || lastChar == "G" || lastChar == "H" ||
				lastChar == "I" || lastChar == "J") {
      if(lastChar == getCIFCtrl(strCIF.substr(1,7),1)) {
        return true;
      } else {
				alert("El "+cifnie+" introducido no es correcto.\nDebe corregirlo para continuar.\nNo introduzca espacios ni guiones...");
				objDocument.focus();
				objDocument.select();
				return false;
      }
    } else if (lastChar == "1" || lastChar == "2" || lastChar == "3" || lastChar == "4" ||
							 lastChar == "5" || lastChar == "6" || lastChar == "7" || lastChar == "8" ||
							 lastChar == "9" || lastChar == "0") {
      if (parseInt(lastChar,10)==getCIFCtrl(strCIF.substr(1,7),0)) {
        return true;
      } else {
      	alert("El "+cifnie+" introducido no es correcto.\nDebe corregirlo para continuar.\nNo introduzca espacios ni guiones....");
				objDocument.focus();
				objDocument.select();
				return false;
      }
    } else {
			alert("El "+cifnie+" introducido no es correcto.\nDebe corregirlo para continuar.\nNo introduzca espacios ni guiones.....");
			objDocument.focus();
			objDocument.select();
			return false;
		}
  } else {
		alert("El "+cifnie+" introducido no es correcto.\nDebe corregirlo para continuar.\nNo introduzca espacios ni guiones......");
		objDocument.focus();
		objDocument.select();
		return false;
  }
}

function getCIFCtrl(strNum, ctrl) {
  var suma=0;
  var strLetters = "JABCDEFGHI";

	for (i=0; i<7; i++) {
		if ((i%2)==0) {
			if (parseInt(strNum.charAt(i),10) > 4) {
				strSuma = parseInt(strNum.charAt(i),10) * 2;
        suma += parseInt(String(strSuma).charAt(0), 10) + parseInt(String(strSuma).charAt(1), 10);
			}	else {
				suma += parseInt(strNum.charAt(i),10) * 2;
			}
		} else {
			suma += parseInt(strNum.charAt(i), 10);
		}
	}

  var strSuma = String(suma);
  var lastDigit = strSuma.charAt(strSuma.length-1);
  var ctrlDigit = (10 - parseInt(lastDigit, 10)) % 10;

	if (ctrl == 0) {
		return ctrlDigit;
	}	else {
		return strLetters.charAt(ctrlDigit);
	}
}

function validateDocument(objDocument, type) {

	switch (type) {
    case "NIE":
			return true;//validateCIFNIE(objDocument,"NIE");
		case "CIF":
			return validateCIFNIE(objDocument,"CIF");
		case "NIF":
			return validateNIF(objDocument);
		case "TARJETA RESIDENCIA":
			return true;//validateTarjetaResidencia(objDocument);
		case "NOSE":
		  if (getDocumentType(objDocument)=="SIGOSINSABER") {
				alert("El documento introducido no es correcto.\nDebe corregirlo para continuar.\nNo introduzca espacios ni guiones.\nTipos de documento admitidos: CIF, NIE, NIF y Tarjeta de residencia.");
				objDocument.focus();
				objDocument.select();
				return false;
			} else {
				return validateDocument(objDocument, getDocumentType(objDocument));
			}
	}

  return true;
}

function getDocumentType(objDocument) {

	switch (objDocument.value.length) {
		case 9:
			var firstChar = objDocument.value.toUpperCase().charAt(0);
      if(isNumber(firstChar)){
		    return("NIF");
			}	else if ("X"==firstChar) {
        return ("NIE");
      } else {
		   return("CIF");
			}
		case 10:
      if ("X"==objDocument.value.toUpperCase().charAt(0)) {
			  return "TARJETA RESIDENCIA";
			}
	}
	return "SIGOSINSABER";
}


/////////////////////////////////////////////////
function TitleCase(STRING){var Exceptions = "About/about|Above/above|Across/across|After/after|Against/against|Around/around|At/at|Before/before|Behind/behind|Below/below|Beneath/beneath|Beside/beside|Besides/besides|Between/between|Beyond/beyond|By/by|Down/down|During/during|Except/except|For/for|From/from|In/in|Inside/inside|Into/into|Like/like|Near/near|Of/of|Off/off|On/on|Out/out|Outside/outside|Over/over|Since/since|Through/through|Throughout/throughout|Till/till|To/to|Toward/toward|Under/under|Until/until|Up/up|Upon/upon|With/with|Without/without";var arrExceptions = Exceptions.split("|");STRING = PCase(STRING);var arrExValues;

for(var iEx = 0; iEx < arrExceptions.length;iEx++){
arrExValues = arrExceptions[iEx].split("/");
var SearchThisValue = " " + arrExValues[0] + " ";
var ReplaceThisValue = " " + arrExValues[1] + " ";
while(STRING.indexOf(SearchThisValue)>-1){
STRING = STRING.replace(SearchThisValue,ReplaceThisValue);
}

}

return STRING;
} //End Function

function Eval(STRING){
eval(STRING);
}

function GetDate(FORMAT){
var m_TODAY = new Date();
var m_Day = m_TODAY.getDate();
var m_Month = (m_TODAY.getMonth()+1)
var MY_DATE = m_Day + "/" + m_Month + "/" + m_TODAY.getYear();

if(!FORMAT){
FORMAT = "mm/dd/yyyy";
MY_DATE = m_Month + "/" + m_Day + "/" + m_TODAY.getYear();
}
MY_DATE = FormatDate(MY_DATE,FORMAT);
return MY_DATE;
}


function strComp(STRING1,STRING2,COMPARE){
if(IsNull(COMPARE)){
COMPARE = 1;
}
if(CBool(COMPARE)){
STRING1 = STRING1.toLowerCase();
STRING2 = STRING2.toLowerCase();
}

if(STRING1==STRING2){
return true;
}else
{
return false;
}
}


function IsNull(ITEM){
if(ITEM == null || ITEM == undefined){
return true;
}
return false;
}


function IsArray(MY_ARRAY){
MY_ARRAY = MY_ARRAY.constructor.toString();
if(InStr(MY_ARRAY,"Array") > 0){
return true;
}
else{
return false;
}
}


function CreateObject(STRING){
var MY_OBJECT = new ActiveXObject(STRING);
return MY_OBJECT
}


function FormatPercent(NUMBER,PLACES){
NUMBER = NUMBER * 100
if(PLACES){
NUMBER = Round(NUMBER,PLACES);
}
else{
NUMBER = Round(NUMBER,2);
NUMBER = FormatCurrency(NUMBER);
}

NUMBER += "%";
return NUMBER;
}


function PCase(STRING){
var strReturn_Value = "";
var iTemp = STRING.length;
if(iTemp==0){
return"";
}
var UcaseNext = false;
strReturn_Value += STRING.charAt(0).toUpperCase();
for(var iCounter=1;iCounter < iTemp;iCounter++){
if(UcaseNext == true){
strReturn_Value += STRING.charAt(iCounter).toUpperCase();
}
else{
strReturn_Value += STRING.charAt(iCounter).toLowerCase();
}
var iChar = STRING.charCodeAt(iCounter);
if(iChar == 32 || iChar == 45 || iChar == 46){
UcaseNext = true;
}
else{
UcaseNext = false
}
if(iChar == 99 || iChar == 67){
if(STRING.charCodeAt(iCounter-1)==77 || STRING.charCodeAt(iCounter-1)==109){
UcaseNext = true;
}
}


} //End For

return strReturn_Value;

}


function Now(){
var NOW = new Date().toString();
var arrNOW = NOW.split("UTC")
NOW = arrNOW[0];
return NOW;
}

function FormatCurrency(FIGURE){
if(!FIGURE||FIGURE==""){
return "0.00";
}
var strTemp = FIGURE.toString();
while(strTemp.indexOf(",") > -1){
strTemp = strTemp.replace(",","");
}

strTemp = parseFloat(strTemp);

FIGURE = Round(FIGURE,2);
FIGURE = FIGURE.toString();
var Place = FIGURE.indexOf(".");
if(Place >-1){
	if((FIGURE.length - Place) == 2){
	FIGURE += "0";
	}
}
else{
FIGURE += ".00";
}

if(FIGURE=="0.00"){
return"";
}

return FIGURE;

}



function Round(NUMBER,PLACES){
if(!IsNumeric(NUMBER)){
return "0";
}
NUMBER = CStr(NUMBER);
arrNUMBER = NUMBER.split(".");
if(arrNUMBER.length==1){return NUMBER;}
if(PLACES){
NUMBER = Math.round(NUMBER*Math.pow(10,PLACES))/Math.pow(10,PLACES);
}
else{
NUMBER = Math.round(NUMBER);
}
return NUMBER;
}


function Join(ARRAY,DELIMITER){
ARRAY = ARRAY.toString();
if(DELIMITER){
ARRAY = Replace(ARRAY,",",DELIMITER);
}
else{
ARRAY = Replace(ARRAY,","," ");
}

return ARRAY;
}


function FormatDate(DateToFormat,FormatAs){
if(DateToFormat==""){return"";}
if(!FormatAs){FormatAs="dd/mm/yyyy";}

var strReturnDate;
FormatAs = FormatAs.toLowerCase();
DateToFormat = DateToFormat.toLowerCase();
var arrDate
var arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var strMONTH;
var Separator;

while(DateToFormat.indexOf("st")>-1){
DateToFormat = DateToFormat.replace("st","");
}

while(DateToFormat.indexOf("nd")>-1){
DateToFormat = DateToFormat.replace("nd","");
}

while(DateToFormat.indexOf("rd")>-1){
DateToFormat = DateToFormat.replace("rd","");
}

while(DateToFormat.indexOf("th")>-1){
DateToFormat = DateToFormat.replace("th","");
}

if(DateToFormat.indexOf(".")>-1){
Separator = ".";
}

if(DateToFormat.indexOf("-")>-1){
Separator = "-";
}


if(DateToFormat.indexOf("/")>-1){
Separator = "/";
}

if(DateToFormat.indexOf(" ")>-1){
Separator = " ";
}

arrDate = DateToFormat.split(Separator);
DateToFormat = "";
	for(var iSD = 0;iSD < arrDate.length;iSD++){
		if(arrDate[iSD]!=""){
		DateToFormat += arrDate[iSD] + Separator;
		}
	}
DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
arrDate = DateToFormat.split(Separator);

if(arrDate.length < 3){
return "";
}

var DAY = arrDate[0];
var MONTH = arrDate[1];
var YEAR = arrDate[2];




if(parseFloat(arrDate[1]) > 12){
DAY = arrDate[1];
MONTH = arrDate[0];
}

if(parseFloat(DAY) && DAY.toString().length==4){
YEAR = arrDate[0];
DAY = arrDate[2];
MONTH = arrDate[1];
}


for(var iSD = 0;iSD < arrMonths.length;iSD++){
var ShortMonth = arrMonths[iSD].substring(0,3).toLowerCase();
var MonthPosition = DateToFormat.indexOf(ShortMonth);
	if(MonthPosition > -1){
	MONTH = iSD + 1;
		if(MonthPosition == 0){
		DAY = arrDate[1];
		YEAR = arrDate[2];
		}
	break;
	}
}

var strTemp = YEAR.toString();
if(strTemp.length==2){

	if(parseFloat(YEAR)>40){
	YEAR = "19" + YEAR;
	}
	else{
	YEAR = "20" + YEAR;
	}

}


	if(parseInt(MONTH)< 10 && MONTH.toString().length < 2){
	MONTH = "0" + MONTH;
	}
	if(parseInt(DAY)< 10 && DAY.toString().length < 2){
	DAY = "0" + DAY;
	}
	switch (FormatAs){
	case "dd/mm/yyyy":
	return DAY + "/" + MONTH + "/" + YEAR;
	case "mm/dd/yyyy":
	return MONTH + "/" + DAY + "/" + YEAR;
	case "dd/mmm/yyyy":
	return DAY + " " + arrMonths[MONTH -1].substring(0,3) + " " + YEAR;
	case "mmm/dd/yyyy":
	return arrMonths[MONTH -1].substring(0,3) + " " + DAY + " " + YEAR;
	case "dd/mmmm/yyyy":
	return DAY + " " + arrMonths[MONTH -1] + " " + YEAR;	
	case "mmmm/dd/yyyy":
	return arrMonths[MONTH -1] + " " + DAY + " " + YEAR;
	}

return DAY + "/" + strMONTH + "/" + YEAR;;


}




function IsDate(DateToCheck){
if(DateToCheck==""){return true;}
var m_strDate = FormatDate(DateToCheck);
if(m_strDate==""){
return false;
}
var m_arrDate = m_strDate.split("/");
var m_DAY = m_arrDate[0];
var m_MONTH = m_arrDate[1];
var m_YEAR = m_arrDate[2];
if(m_YEAR.length > 4){return false;}
m_strDate = m_MONTH + "/" + m_DAY + "/" + m_YEAR;
var testDate=new Date(m_strDate);
if(testDate.getMonth()+1==m_MONTH){
return true;
} 
else{
return false;
}
}//end function



function IsNumeric(VALUE){
for(var ivA = 0; ivA < VALUE.length;ivA ++){
if(VALUE.charCodeAt(ivA) < 48 || VALUE.charCodeAt(ivA) > 57){
	if(VALUE.charCodeAt(ivA) != 46 && VALUE.charCodeAt(ivA) != 32 && VALUE.charAt(ivA) != ","){
	return false;
	}
}																					
}
return true;
}



function Asc(CHARACTER){

return CHARACTER.charCodeAt(0)

}


function Chr(CHARACTER_CODE){

return String.fromCharCode(CHARACTER_CODE);

}


function CInt(NUMBER){
return parseInt(NUMBER);
}


function CStr(VALUE){
return VALUE.toString();
}


function CSng(NUMBER){
return parseFloat(NUMBER);
}

function CDbl(NUMBER){
return parseFloat(NUMBER);
}

function CBool(VALUE){
VALUE = new String(VALUE);
VALUE = VALUE.toLowerCase();
if(VALUE== "1" || VALUE=="-1" || VALUE=="true" || VALUE == "yes"){
return true;
}
else{
return false;
}
}


function InStr(STRING,SUBSTRING,COMPARE,START){
if(START){
STRING = STRING.substring(START,STRING.length);
}
if(CBool(COMPARE) || COMPARE ==undefined){
STRING = STRING.toLowerCase();
SUBSTRING = SUBSTRING.toLowerCase();
}
if(STRING.indexOf(SUBSTRING) > -1){
return STRING.indexOf(SUBSTRING)
}
else{
return 0;
}
}


function LCase(STRING){
return STRING.toLowerCase();
}


function Left(STRING,CHARACTER_COUNT){
return STRING.substring(0,CHARACTER_COUNT);
}


function Len(STRING){
return STRING.length;
}


function Mid(STRING,START,END){
if(!START){START=0};
if(!END || END > STRING.length){END=STRING.length};
if(END!=STRING.length){END = START + END};
return STRING.substring(START,END);
}


function Replace(STRING,REPLACE_THIS,REPLACE_WITH){
while(STRING.indexOf(REPLACE_THIS) > -1){
STRING = STRING.replace(REPLACE_THIS,REPLACE_WITH);
}
return STRING;
}


function Right(STRING,CHARACTER_COUNT){

return STRING.substring((STRING.length - CHARACTER_COUNT),STRING.length);

}


function Split(STRING,CHARACTER){
return STRING.split(CHARACTER);
}


function Sqr(NUMBER){
return NUMBER * NUMBER
}


function Trim(STRING){
STRING = LTrim(STRING);
return RTrim(STRING);
}

function RTrim(STRING){
while(STRING.charAt((STRING.length -1))==" "){
STRING = STRING.substring(0,STRING.length-1);
}
return STRING;
}


function LTrim(STRING){
while(STRING.charAt(0)==" "){
STRING = STRING.replace(STRING.charAt(0),"");
}
return STRING;
}


function UBound(ARRAY){
if(IsArray(ARRAY)){
return ARRAY.length;
}
else{
return;
}
}


function UCase(STRING){
return STRING.toUpperCase();
}


function UNESCAPE(U_VALUE){
U_VALUE = unescape(U_VALUE);
while(U_VALUE.indexOf("+") > -1){
U_VALUE = U_VALUE.replace("+", " ");
}
return U_VALUE;
}

var vbCrLf = String.fromCharCode(13) + String.fromCharCode(10);
var vbTab = "	";
//-->
