//---------------------- Check Data and return error ----------------------------------------------

function popUp(URL, Ancho, Alto) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width="+Ancho+",height="+Alto+"');");
}

//**************************************************
//*************Validaciones***************************
function ValImageExtension(form, file)
{

	extArray = new Array(".gif", ".jpg");
	allowSubmit = false;
	if (!file) return;
	while (file.indexOf("\\") != -1)
	file = file.slice(file.indexOf("\\") + 1);
	ext = file.slice(file.indexOf(".")).toLowerCase();
	for (var i = 0; i < extArray.length; i++) {
	if (extArray[i] == ext) { allowSubmit = true; break; }
	}
	if (allowSubmit) form.submit();
	else
	alert("Se permiten �nicamente archivos con la extenci�n: " 
	+ (extArray.join("  ")) + "\nPor favor, seleccione otro archivo "
	+ "e intente de nuevo.");

}
function showErrors(errorMsg){
	if (errorMsg != '') {
		alert ("Please check the following errors:\n\n" + errorMsg);
		return false
	} else return true
}

function isValidDataSize( allowNull, fieldName, fieldValue, dataType, size){
	
	if (fieldValue.length > size)
		return "- El campo '" + fieldName + "' no cumple con el tama�o adecuado\n";
	else
		return isValidData( allowNull, fieldName, fieldValue, dataType);
	return '';
}
function isValidData( allowNull, fieldName, fieldValue, dataType){
	if (fieldValue == '') {
		if (!allowNull) return "- Field '" + fieldName + "' can\'t be empty\n";
	} else if (dataType=="int") {
		if (!isInt(fieldValue)) return "- El campo '" + fieldName + "' debe ser un n�mero v�lido.\n";
	} else if (dataType=="float"){
	  if (!isFloat(fieldValue)) return "- El campo '" + fieldName + "' debe ser un n�mero valido.\n";
	} else if (dataType=="email"){
		if (!isEmail(fieldValue)) return "- El campo '" + fieldName + "' no es una direccion v�lida .\n";
	} else if (dataType=="digits"){
		if (!isDigit(fieldValue)) return "- El campo '" + fieldName + "' contiene digitos no v�lidos.\n";
	} else if (dataType=="ci"){
		if (!isCI(fieldValue)) return "- El campo '" + fieldName + "' tiene que contener 11 digitos.\n"; 
	} else if (dataType=="rut"){
		if (!isRUT(fieldValue)) return "- El campo '" + fieldName + "' tiene que contener 10 caracteres.\n"; 
	} else if (dataType=="fecha"){
		if (!valFecha(fieldValue)) return "- Field '" + fieldName + "' not is a valid date.\n";
	}	
	return '';	
}

// ----------------------- Clean Data -------------------------------------

function  UCaseTrim(fieldObj){
  var target = trimField(fieldObj).toUpperCase();
  fieldObj.value = target;
  return target;
}


function  trimField(fieldObj){
	//alert(fieldObj.name);
	var cleaned =	trim(fieldObj.value);
	fieldObj.value = cleaned;
	return cleaned;
}

function trim(strParam){
  target = strParam;
  while( (target.length > 0) && (target.indexOf(' ') == 0) ){
	  target = target.substr(1, target.length - 1);
	}
  while( (target.length > 0) && (target.lastIndexOf(' ') == target.length - 1) ){
	  target = target.substr(0, target.length - 1);
	}
	return(target)
}

function maskQuote(strToClean){
  Masked= strToClean;
  QuotePos= strToClean.indexOf("'");
  if (QuotePos>=0){
    LeftStr= strToClean.substring(0,QuotePos);
    RightStr= strToClean.substring(QuotePos + 1,strToClean.length);
    Masked= LeftStr + "''" + MaskQuote(RightStr)  // recursividad
   }
  return Masked
}
//-------------------- Validate Data Types --------------------------------------------
function validDate(aYear, aMonth, aDay){
  var actualDate = new Date(parseInt(aYear), parseInt(aMonth) - 1, parseInt(aDay));
  return( parseInt(aDay) == parseInt(actualDate.getDate()) );
}

function isEmail(email){
   p=email.indexOf('@');
   return  !(p<1 || p==(email.length-1))
}

function isInt(number){
  num = parseInt(number);
  return (number == '' + num)
}

function isDigit(number){
  var ValidDigits= new String("01234567890");
  for (i=0;i<number.length;i++){
    if (ValidDigits.indexOf(number.charAt(i))==-1) return false
  }
  return true
}

function isCI(fieldCI){
  var carnet = fieldCI;
  if (carnet.length < 11){ return false }
  return true
}

function isRUT(fieldRUT){
  var rut = fieldRUT;

  if ((rut.length != 10) || (rut.indexOf('-')==-1)){ return false }
  return true
}

function trimZeros(strNum){
	var lastNum= strNum.charAt(strNum.length-1);
	if (lastNum=='.'){
		return strNum.substr(0,strNum.length-1);
	} else if (lastNum!='0') {
		return strNum
	} else {
		var newNum= strNum.substr(0,strNum.length-1);
		return trimZeros(newNum);
	}	
}

function isFloat(number){
	var frmNum = number;
	if  (frmNum.charAt(0) == '.') frmNum = '0' + frmNum // start with . example .50
	var lastPoint = frmNum.lastIndexOf('.');
	if ( lastPoint>=0) { 
		var otherPoint = frmNum.lastIndexOf('.',lastPoint-1);
		if (otherPoint>=0) return false;	// another point, error!
		frmNum= trimZeros(frmNum);  // trim al trailing zeros
	}	
	//-------------------------------------------------------
	var strNum = '' + parseFloat(number);
	var i
	for (i=strNum.length;i<frmNum.length;i++) strNum += '0' // case the user type 0000
	return (frmNum == strNum)
}

function isPassword(pass1, pass2)
{
	if (pass1 == pass2)
		return true;
	return false
}
//--------------------------------------------------------------------------------------
//Funciones para validar un campo fecha
//---------------------------------------------------------------------------------------
function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}

function finMes(oTxt){
var nMes =  parseInt(oTxt.value.substr(3, 2), 10);
//alert('nMEs'+nMes)
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}

function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}

function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}

function valFecha(oTxt){
	var bOk = true;
	
	if (oTxt.value != "")
	{
		bOk = bOk && (valAno(oTxt));
		bOk = bOk && (valMes(oTxt));
		bOk = bOk && (valDia(oTxt));
		bOk = bOk && (valSep(oTxt));
		
		return bOk;
	}
}
//Funciones de acciones 
function SubmitForm(form)
{
	 form.submit();
}

// ----------------------- Clean Data -------------------------------------
function getFieldValue(FieldName)
{
	var cleaned =	window.document.all[FieldName].value;
	return cleaned;
}
function setFocus(FieldName)
{
	window.document.all[FieldName].focus();
}
function setFieldValue(FieldName, Valor)
{
	window.document.all[FieldName].value = Valor;
}	

function set_color(obj, Valor)
{
	obj.bgColor = Valor;
}
function SetColor(objName, Valor)
{
	window.document.all[objName].bgColor = Valor;
	
}

function ConcatenaValor(objValue,name)
{
	
	var value = getFieldValue(name).split(':');
	if (objValue.name.substr(0,1) == 'H')
		value[0] = objValue.value;
	else if (objValue.name.substr(0,1) == 'M')
		value[1] = objValue.value;
	else
		value[2] = objValue.value;
	setFieldValue(name,value.join(':'));
	
}

function Navega(Direccion)
{
	window.location = Direccion;
}

function Navegar(Direccion, querystring, hasquerystring)
{
	var adr = Direccion;
	if (querystring != "")
		(hasquerystring) ? adr += "&"+querystring : adr += "?" + querystring; 
	adr = adr.replace("&&", "&");
	window.location = adr;
}

