String.prototype.Trim = function(){ return this.replace(/^\s+|\s+$/g,'') }

function isFloat(iNumber){
  var isOK = true;
  var iMinus = 0;
  var iComma = 0;
  if ((iNumber == null) ||(iNumber == "")){
    isOK = false;
    return isOK; 
  }
  for (j=0; j<iNumber.length; j++) {
    if ((iNumber.substring(j,j+1) != "0") &&
        (iNumber.substring(j,j+1) != "1") &&
        (iNumber.substring(j,j+1) != "2") &&
        (iNumber.substring(j,j+1) != "3") &&
        (iNumber.substring(j,j+1) != "4") &&
        (iNumber.substring(j,j+1) != "5") && 
        (iNumber.substring(j,j+1) != "6") &&
        (iNumber.substring(j,j+1) != "7") &&
        (iNumber.substring(j,j+1) != "8") &&
        (iNumber.substring(j,j+1) != "9") &&
        (iNumber.substring(j,j+1) != ".") &&
        (iNumber.substring(j,j+1) != "-")) {
       isOK = false
     }
     if (iNumber.substring(j,j+1) == "-" ) iMinus += 1;
     if (iNumber.substring(j,j+1) == "." ) iComma += 1;
  }
  if (iMinus>1) isOK = false;
  if (iComma>1) isOK = false;
  return isOK;
}

function isEmail(sValue){
  var isOK = true;
  var iLength = sValue.length;
  var iArr = 0;
  var iDot = 0;
  if (iLength < 6){
     isOK = false;
     return isOK;
  }
  for (j=0; j<iLength; j++){
    if((sValue.substring(j,j+1) == "'") ||
       (sValue.substring(j,j+1) == "*") ||
       (sValue.substring(j,j+1) == "%") ||
       (sValue.substring(j,j+1) == ",") ||
       (sValue.substring(j,j+1) == "&") ||
       (sValue.substring(j,j+1) == "/") ||
       (sValue.substring(j,j+1) == "$") ||
       (sValue.substring(j,j+1) == "=") ||
       (sValue.substring(j,j+1) == "#") ||
       (sValue.substring(j,j+1) == "?") ||
       (sValue.substring(j,j+1) == "¿") ||
       (sValue.substring(j,j+1) == "<") ||
       (sValue.substring(j,j+1) == ">") ||
       (sValue.substring(j,j+1) == "\"")) {
      isOK = false;
     }
     if (sValue.substring(j,j+1) == "@") iArr += 1;
     if (sValue.substring(j,j+1) == ".") iDot += 1;
  }
  if (iArr != 1) isOK = false;
  if (iDot < 1) isOK = false;
  return isOK;
}

function isInteger(iNumber, iSW){
  var isOK = true;
  var iMinus = 0;
  if ((iNumber == null) ||(iNumber == "")){
    isOK = false;
    return isOK; 
  }
  for (j=0; j<iNumber.length; j++) {
    if ((iNumber.substring(j,j+1) != "0") &&
        (iNumber.substring(j,j+1) != "1") &&
        (iNumber.substring(j,j+1) != "2") &&
        (iNumber.substring(j,j+1) != "3") &&
        (iNumber.substring(j,j+1) != "4") &&
        (iNumber.substring(j,j+1) != "5") && 
        (iNumber.substring(j,j+1) != "6") &&
        (iNumber.substring(j,j+1) != "7") &&
        (iNumber.substring(j,j+1) != "8") &&
        (iNumber.substring(j,j+1) != "9") &&
        (iNumber.substring(j,j+1) != "-")) {
       isOK = false
     }
     if (iNumber.substring(j,j+1) == "-" ) iMinus += 1;
  }
  if (iNumber.substring(0,1) == "0") isOK = false
  if (iMinus>1) { 
      isOK = false;   
  }else{
    if (iMinus == 1) {
       if (iNumber.substring(0,1) != "-") { 
            isOK = false;
       }else{
         if (!iSW) isOK = false;
       }
    }
  } 
  return isOK;
}


function isInteger2(iNumber, iSW){
  var isOK = true;
  var iMinus = 0;
  if ((iNumber == null) ||(iNumber == "")){
    isOK = false;
    return isOK; 
  }
  for (j=0; j<iNumber.length; j++) {
    if ((iNumber.substring(j,j+1) != "0") &&
        (iNumber.substring(j,j+1) != "1") &&
        (iNumber.substring(j,j+1) != "2") &&
        (iNumber.substring(j,j+1) != "3") &&
        (iNumber.substring(j,j+1) != "4") &&
        (iNumber.substring(j,j+1) != "5") && 
        (iNumber.substring(j,j+1) != "6") &&
        (iNumber.substring(j,j+1) != "7") &&
        (iNumber.substring(j,j+1) != "8") &&
        (iNumber.substring(j,j+1) != "9") &&
        (iNumber.substring(j,j+1) != "-")) {
       isOK = false
     }
     if (iNumber.substring(j,j+1) == "-" ) iMinus += 1;
  }
  //if (iNumber.substring(0,1) == "0") isOK = false
  if (iMinus>1) { 
      isOK = false;   
  }else{
    if (iMinus == 1) {
       if (iNumber.substring(0,1) != "-") { 
            isOK = false;
       }else{
         if (!iSW) isOK = false;
       }
    }
  } 
  return isOK;
}

function MoveSelToSel(s1,s2) {
  obj=document.getElementById(s1);
  if (obj.selectedIndex==-1) return;	
  for (i=0; opt=obj.options[i]; i++)
    if (opt.selected) {
    	valor=opt.value; // almacenar value
    	txt=obj.options[i].text; // almacenar el texto
    	obj.options[i]=null; // borrar el item si está seleccionado    
    	obj2=document.getElementById(s2);             		
    	opc = new Option(txt,valor);
    	eval(obj2.options[obj2.options.length]=opc);    	    	
     }	
}

function MoveSelToSelALL(s1,s2) {
  obj=document.getElementById(s1);
  var xALL = obj.length;
  for (i=0; i<xALL; i++){
        valor=obj.options[0].value; // almacenar value
    	txt=obj.options[0].text; // almacenar el texto
    	obj.options[0]=null; // borrar el item si está seleccionado    
    	obj2=document.getElementById(s2);             		
    	opc = new Option(txt,valor);
    	eval(obj2.options[obj2.options.length]=opc);    	    	
   }
}


function isLink(sValue){
  var isOK = true;
  var iLength = sValue.length;
  //var iArr = 0;
  var iDot = 0;
  if (iLength < 13){
     isOK = false;
     return isOK;
  }
  for (j=0; j<iLength; j++){
    /*if(
       (sValue.substring(j,j+1) == "'") ||
       (sValue.substring(j,j+1) == "*") ||
       (sValue.substring(j,j+1) == "%") ||
       (sValue.substring(j,j+1) == ",") ||
       (sValue.substring(j,j+1) == "&") ||
       (sValue.substring(j,j+1) == "/") ||
       (sValue.substring(j,j+1) == "$") ||
       (sValue.substring(j,j+1) == "=") ||
       (sValue.substring(j,j+1) == "#") ||
       (sValue.substring(j,j+1) == "?") ||
       (sValue.substring(j,j+1) == "¿") ||
       (sValue.substring(j,j+1) == "<") ||
       (sValue.substring(j,j+1) == ">") ||
       (sValue.substring(j,j+1) == "\"")) {
      isOK = false;
     }*/
     //if (sValue.substring(j,j+1) == "@") iArr += 1;
     if (sValue.substring(j,j+1) == ".") iDot += 1;
  }
  
  if (sValue.indexOf("http://") == 0 || sValue.indexOf("https://") == 0)
  { isOK = true;
  }
  else
  { isOK = false;
  }
  //if (iArr != 1) isOK = false;
  if (iDot < 1) isOK = false;
  return isOK;
}


function isEmailOfDomain(iemail,idomain)
{  var isOK = false;
   var mat = iemail.split("@");
   var lengthmat = mat.length;
   
   if (lengthmat == 2) 
   {
    var mat2=mat[1].split(".");
    var emailDomain= mat2[0];
    var xdomain=idomain.toUpperCase();
    var pos = xdomain.indexOf(emailDomain.toUpperCase());
    //alert(pos);
    if (pos >- 1) {isOK=true}
    else{isOK=false}
   }
   else
   { isOK=false;
   }
   
   
   return isOK;
}

function isIPAddress(IPvalue) {
errorString = "";
theName = "IPaddress";

var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
var ipArray = IPvalue.match(ipPattern);

if (IPvalue == "0.0.0.0")
errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
else if (IPvalue == "255.255.255.255")
errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
if (ipArray == null)
errorString = errorString + theName + ': '+IPvalue+' is not a valid IP address.';
else {
for (i = 0; i < 4; i++) {
thisSegment = ipArray[i];
if (thisSegment > 255) {
errorString = errorString + theName + ': '+IPvalue+' is not a valid IP address.';
i = 4;
}
if ((i == 0) && (thisSegment > 255)) {
errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
i = 4;
      }
   }
}
extensionLength = 3;
if (errorString == "")
  return true;
else
  return false;
}


// Formato de numero 333-333-3333

var patron = new Array(3,3,4)

function mascara(d,sep,pat,nums){
if(d.valant != d.value){
	val = d.value
	largo = val.length
	val = val.split(sep)
	val2 = ''
	for(r=0;r<val.length;r++){
		val2 += val[r]	
	}
	if(nums){
		for(z=0;z<val2.length;z++){
			if(isNaN(val2.charAt(z))){
				letra = new RegExp(val2.charAt(z),"g")
				val2 = val2.replace(letra,"")
			}
		}
	}
	val = ''
	val3 = new Array()
	for(s=0; s<pat.length; s++){
		val3[s] = val2.substring(0,pat[s])
		val2 = val2.substr(pat[s])
	}
	for(q=0;q<val3.length; q++){
		if(q ==0){
			val = val3[q]
		}
		else{
			if(val3[q] != ""){
				val += sep + val3[q]
				}
		}
	}
	d.value = val
	d.valant = val
	}
}


function ChangeTextareaCont(objTA, objContID, iMaxLen){
	if (objCont = document.getElementById(objContID)){
		var objTAValue = objTA.value.toString();
		var iLen = objTAValue.length;
		var iCont = iMaxLen - iLen;
		if (iCont >= 0){
			objCont.innerText = ""+iCont;
		}else{
			objTAValue = objTAValue.substring(0,iMaxLen);
			objTA.value = objTAValue;
		}
	}
}

function EnlargeImage(nImg){
	window.open("/EnlargeImage3.asp?Img=" + nImg,"","toolbar=no,menubar=0,resizable=0,scrollbars=no,width=200,height=200,top=200,left=200"); 
}




/*####################################################################################################*/
/*####################################################################################################*/


function IsValidEmail(xEmail){
	var patronRE = /(^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$/;
//	var patronRE = /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/;
	if (patronRE.test(xEmail)){
		return true;
	}else{
		return false;
	}
	var expreg = new RegExp (formulario.patronRE.value),     cadena=formulario.cadena.value;
}
function IsValidPassword(xPwd, kMin){
//	patronRE = /(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,10})$/		
//	de 6 a 10 chars al menos un digito, al menos una letra, no caracteres especiales
	if (kMin>0){
		patronRE = eval("/(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{" +kMin+ ",})$/")
	}else{
		patronRE = /(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{1,})$/
	}
	if (xPwd.match(patronRE)){
		return true;
	}else{
		return false;
	}
}

/*
function validar (formulario)
{
  var expreg = new RegExp (formulario.patron.value),
      cadena=formulario.cadena.value;
  
  if (expreg == "" || cadena == "") {
    window.alert("Introducir una expresión regular\n" +
                 "y una cadena a validar.");
		 
    return false;
  }
  
  formulario.cadena.focus();
 
  if (expreg.test(cadena) ) {
    window.alert("Aceptar: " + cadena + "\n\n" +  // subcadenas reconocidas
      (RegExp.$1==""?"":"RegExp.$1="+RegExp.$1+"\n")+
      (RegExp.$2==""?"":"RegExp.$2="+RegExp.$2+"\n")+
      (RegExp.$3==""?"":"RegExp.$3="+RegExp.$3+"\n")+
      (RegExp.$4==""?"":"RegExp.$4="+RegExp.$4+"\n")+
      (RegExp.$5==""?"":"RegExp.$5="+RegExp.$5+"\n")+
      (RegExp.$6==""?"":"RegExp.$6="+RegExp.$6+"\n")+
      (RegExp.$7==""?"":"RegExp.$7="+RegExp.$7+"\n")+
      (RegExp.$8==""?"":"RegExp.$8="+RegExp.$8+"\n")+
      (RegExp.$9==""?"":"RegExp.$9="+RegExp.$9));
      
    return false;
  }

  window.alert("¡ Error !\n\nRechazar: " + cadena);
  formulario.cadena.select();
  
  return false;
}
*/


function FilterInputFloatNumber(e){
	var keynum;
	var keychar;
	var patronRE = /[0-9.]/;
	if(window.event) // IE
	{keynum = e.keyCode}
	else if(e.which) /*Netscape/Firefox/Opera*/	{keynum = e.which}
	keychar = String.fromCharCode(keynum)
//	patronRE = /\d/;
	return patronRE.test(keychar)
}

function IsValidFloatNumber(kFloat){
	var patronIntegerRE = /^(?:\+|-)?\d+$/;
	var patronFloatRE = /^(?:\+|-)?\d+\.\d*$/;
	var out = patronIntegerRE.test(kFloat);
	if (!out){out = patronFloatRE.test(kFloat)}
	return out
}

function FilterInputOnlyNumbers(e){
	var keynum;
	var keychar;
	var patronRE;
	if(window.event) // IE
	{keynum = e.keyCode}
	else if(e.which) /*Netscape/Firefox/Opera*/	{keynum = e.which}
	keychar = String.fromCharCode(keynum)
	patronRE = /\d/;
	return patronRE.test(keychar)
}

function FilterInputAlphaNumeric(xObj, swAlpha, swNumeric, xExtra){
/*
patronRE = /\d/; // Solo acepta números
patronRE = /\w/; // Acepta números y letras
patronRE = /\D/; // No acepta números
patronRE =/[A-Za-zñÑ\s]/; // igual que el ejemplo, pero acepta también las letras ñ y Ñ
patronRE = /[ajt69]/;	//solo se acepte a, j, t, 6 y 9

patronRE =/[javierb]/; // acepta todo menos j,a,v,i,e,r,b
return !numcheck.test(keychar);

 onkeyup="FilterInputAlphaNumeric(this, false, true, '')"
*/
	var patronRE="";
	var val="";
	var newval="";
	var letra="";
	//var xExtra = ': ;\"\''	//acepta [:] [ ] [;] ["] [']
	if (swAlpha || swNumeric){
		if (swAlpha && swNumeric){
			patronRE = "/[A-Za-z0-9" +xExtra+ "]/";
		}else{
			if (swNumeric){
				patronRE = "/[0-9" +xExtra+ "]/";
			}else{
				patronRE = "/[A-Za-z" +xExtra+ "]/";
			}
		}
	}else{
		if (xExtra != ""){patronRE = "/[" +xExtra+ "]/";}
	}
	if (patronRE != ""){
		patronRE = eval(patronRE);
		if (xObj.valueold != xObj.value){
			val = xObj.value;
			for(z=0; z<val.length; z++){
				letra = val.charAt(z);
				//alert(letra + ':' + patronRE.test(letra))
				if (patronRE.test(letra)){newval+=letra}
			}
			xObj.value = newval
			xObj.valant = newval
		}
	}
}


function IsValidYear(kYear){
	patronRE = /^19\d{2}$/;
	return patronRE.test(kYear);
}

/*####################################################################################*/



function IsValidDate(mont, day, year){
	var out;
	var mont2 = parseInt(mont, 10);
	var day2 = parseInt(day, 10);
	var year2 = parseInt(year, 10);
	if (isNaN(mont2) || isNaN(day2) || isNaN(year2)){out=false}else{out=true}
//	alert(mont2+"-"+day2+"-"+year2);
	if (out && ((day2>0)&&(day2<=31)) && ((mont2>0)&&(mont2<=12)) && ((year2>=1900)&&(year2<2000))){
		out=true;
		if (mont2 == 2){
			if (EsBisiesto(year2)){
				if (day2>29){out=false}
			}else{
				if (day2>28){out=false}
			}
		}else{
			if (mont2==4 || mont2==6 || mont2==9 || mont2==11){
				if(day2>30){out=false}
			}else{
				if(day2>31){out=false}
			}
		}
	}else{
		out=false;
	}
//	alert(out);
	return out;
}
function EsBisiesto(anio){
	var BISIESTO;
	if(parseInt(anio)%4==0){
		if(parseInt(anio)%100==0){
			if(parseInt(anio)%400==0){
				BISIESTO=true;
			}else{
				BISIESTO=false;
			}
		}else{
			BISIESTO=true;
		}
	}else{
		BISIESTO=false;
	}
	return BISIESTO;
}

