function HelpWin(URL,w,h){ window.open(URL,"","width="+w+",height="+h);}

function isRUT(rut) {
	//quitar puntos y guion
	var clnrut = "";
	for (i=0; i < rut.length; i++) {
		 if ((rut.charAt(i) != ".") && (rut.charAt(i) != "-")) clnrut= clnrut + rut.charAt(i);
    }
    rut=clnrut;
  
	//quitar ceros anteriores
	clnrut = "";
    i=0;
    while (rut.charAt(i) == "0") {i++;}
	for (j=i; j < rut.length; j++)  { clnrut= clnrut + rut.charAt(j) }
	rut = clnrut;

	//validar rut
	var drut=rut.charAt((rut.length-1));
	var dvr = '0';
	sum = 0;
	mul  = 2;
	for (i= rut.length -2 ; i >= 0; i--) {
		sum = sum + rut.charAt(i) * mul;
        if (mul == 7) mul = 2;
        else mul++;
    }
	res = sum % 11
  
    if (res==1) dvr = 'k';
	else if (res==0) dvr = '0';
	else {
      dvi = 11-res;
      dvr = dvi + "";
    }
	
	if (dvr != drut.toLowerCase()) return false;
	else return true;
}


function isEmail(str) {
       
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)(\.)(\w)+$/.test(str))                 
	return true;       
else                 
	return false;                     

/*  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
*/
}


  
  

function checkAll(theForm) {
    for (i=0,n=theForm.elements.length;i<n;i++)
        if (theForm.elements[i].name.indexOf('chk') !=-1)
            theForm.elements[i].checked = true;
}

function uncheckAll(theForm) {
    for (i=0,n=theForm.elements.length;i<n;i++)
        if (theForm.elements[i].name.indexOf('chk') !=-1)
            theForm.elements[i].checked = false;
}


function Trim(strTxt) {
	pos1 = 0;
	pos2 = strTxt.length-1;
	for (i=0; i<strTxt.length; i++)	{
		if (strTxt.charAt(i) == ' ') pos1 = pos1 + 1;
		else break;	}
	if (pos1 != (pos2+1))
		for (i=strTxt.length-1; i>0; i--) {
			if (strTxt.charAt(i) == ' ') pos2 = pos2 - 1
			else break;	}
	return strTxt.substring(pos1,pos2+1);
}

function chkFor(chkArray, chkValue, chkType, withTrim) {
	valForCheck = '';
	for (obj in chkArray)
	{	
	  valForCheck = eval("document.f." + obj + ".value");
		if (withTrim) valForCheck = Trim(valForCheck)
		if (chkType == "IDENT")	{
			if (valForCheck == chkValue) {
				alert('Por favor, ingrese ' + chkArray[obj]);
				eval("document.f." + obj + ".focus()"); 
				
				return false;}	}
		else if (chkType == "NOIDENT")	{
			if (valForCheck != chkValue) {
				alert('Por favor, ingrese ' + chkArray[obj]);
				eval("document.f." + obj + ".focus()");
				return false;}	}
	}
	return true;
}


function chkUA() {
    var UA = navigator.appName;
    var UAver = parseFloat(navigator.appVersion);
    var IEua = (UA == "Microsoft Internet Explorer");
    var NSua = (UA == "Netscape");
    var curIE = parseFloat("5.0");
    var curNS = parseFloat("4.5");
    var IEurl='http://www.microsoft.com/windows/ie';
    var NSurl='http://www.netscape.com/download';
    var URL=IEurl;
    var warn=false;
    
    if (IEua) {
        if (navigator.appVersion.indexOf("MSIE") != -1)  {
			IEmajorStart = navigator.appVersion.indexOf("MSIE") + 4;
			IEmajorEnd = (IEmajorStart + 5);
			UAver = navigator.appVersion.substring(IEmajorStart, IEmajorEnd);
		}
		if (isNaN(UAver)) {	UAver = UAver.substring(0, (UAver.length - 1)); }
		UAver=Trim(UAver);
    }

    msg = 'ADVERTENCIA: Su navegador no es totalmente compatible con este sitio.\n\n'
    msg = msg + 'Actualmente utiliza '+ UA + ' ' + UAver + '. Para mayor compatibilidad\nle recomendamos actualizarlo a ';
    
    if ( (IEua)&&(UAver<curIE) ) {
		warn=true;
		msg = msg + UA + ' ' + curIE + '.\n\n';
        msg = msg+ 'Puede descargarlo desde ' + IEurl +'.\n\n';
	}
	else if ((NSua)&&(UAver<curNS)) {
		warn=true;
		msg = msg + UA + ' ' + curNS + '.\n\n';
        msg = msg+ 'Puede descargarlo desde ' + NSurl +'.\n\n';
        URL=NSurl;
    }
    else if ((!NSua)&&(!IEua)){ 
		warn=true;
		msg = msg + 'Microsoft Internet Explorer ' + curIE + '.\n\n';
        msg = msg+ 'Puede descargarlo desde ' + IEurl + '.\n\n';
    }
	
	if (warn) {   
		msg = msg + '¿Desea descargarlo ahora?';
		if (confirm(msg)) {window.location.href=URL; }
	}
    
}

function isFECHA(field){
   var checkstr = "0123456789";
   var DateField = field;
   var Datevalue = "";
   var DateTemp = "";
   var seperator = "/";
   var day;
   var month;
   var year;
   var leap = 0;
   var err = 0;
   var i;
   err = 0;
   DateValue = DateField.value;
   /* Borra todos los caracteres excepto 0..9 */
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;
   /* Siempre cambia la fecha a una de 8 digitos*/
   /* si el año se entra como 2 digitos, asumir 20xx */
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;}
   /* el año es incorrecto si es = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* validar mes */
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* validar dia */
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* validar bisiesto */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* validar otros meses */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* si es entrado 00 no hay error, y borrar la entrada */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }

   /* si no hay error, escribir la fecha completa (e.g. 30/11/2002) */
   if (err == 0) {
      DateField.value = day + seperator + month + seperator + year;
      return true;
   }
   /* mensaje de error if err != 0 */
   else {
      //alert("Fecha incorrecta. Por favor, ingrese nuevamente.");
      //DateField.select();
	  //DateField.focus();
	  return false;
   }
}

function trim(variable)
{
	largo=variable.length;
	m=0;
	while (m<largo)
	{
		caracter=variable.substring(m,m+1);
		if (caracter != " ")	
		{
			break;
		}
		m++;
	}
	if (m==largo)
	{
		return "";
	}
	n=0;
	while (n<largo)
	{
		caracter=variable.substring(largo-n-1,largo-n);
		if (caracter != " ")	
		{
			break;
		}
		n++;
	}
	variable=variable.substring(m,largo-n);
	return variable;
}

function validate(){
	var arrStrObjs = new Array();
	var arrFec=new Array();

//	var regFono = new RegExp("^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$");
        var regFono = new RegExp("^([0-9\s\+\-])+$");
//	var regFono = new RegExp("^(\d{2})?(\(\d{2})\)(\d{3}|\d{4})-\d{4}$");
//	var regUrl = new RegExp("^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$");
//	var regUrl = new RegExp("^(http|https)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$"); 
	var regUrl = new RegExp("^(http://|https://|)\[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$"); 
	var regNom = new RegExp("^(http://|https://|)\[a-zA-Z\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z]*)?/?([a-zA-Z\-\._\?\,\'/\\\+&%\$#\=~])*$"); 
        //var regNom = new RegExp("^([a-zA-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$")
        var regDir = new RegExp("^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$")
        //var regDir  = new RegExp("^(http://|https://|)\[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$"); 
        
	arrStrObjs["dg_sus_nombre"] = "Nombres";
	arrStrObjs["dg_sus_apepat"] = "Apellido Paterno";
	arrStrObjs["dg_sus_apemat"] = "Apellido Materno";
	arrStrObjs["dg_sus_email"] = "E-mail";	
	arrStrObjs["dg_sus_empcargo"] = "Actividad o Cargo";
	arrStrObjs["dg_sus_empnombre"] = "Institución o Empresa";

	if (!chkFor(arrStrObjs,'',"IDENT",true)) {
		return false;
	}

	if (trim(document.f.dg_sus_nombre.value)!="" && !regNom.test(trim(document.f.dg_sus_nombre.value))) {
		alert('Nombre no válido. Ingresela nuevamente.'); 
		return false;
	}	

	if (trim(document.f.dg_sus_apepat.value)!="" && !regNom.test(trim(document.f.dg_sus_apepat.value))) {
		alert('Apellido Paterno no válido. Ingresela nuevamente.'); 
		return false;
	}	
	if (trim(document.f.dg_sus_apemat.value)!="" && !regNom.test(trim(document.f.dg_sus_apemat.value))) {
		alert('Apellido Materno no válido. Ingresela nuevamente.'); 
		return false;
	}	


	if (!isEmail(document.f.dg_sus_email.value)) {
		alert('E-mail no válido. Ingrese nuevamente.'); 
		return false;
	}

	if (trim(document.f.dg_sus_empcargo.value)!="" && !regNom.test(trim(document.f.dg_sus_empcargo.value))) {
		alert('Nombre de Cargo no válido. Ingresela nuevamente.'); 
		return false;
	}	
	if (trim(document.f.dg_sus_empnombre.value)!="" && !regNom.test(trim(document.f.dg_sus_empnombre.value))) {
		alert('Nombre de la empresa no válido. Ingresela nuevamente.'); 
		return false;
	}	


	if (trim(document.f.dg_sus_empurl.value)!="" && !regUrl.test(trim(document.f.dg_sus_empurl.value))) {
		alert('Dirección Web no válida. Ingresela nuevamente.'); 
		return false;
	}

	if (trim(document.f.dg_sus_empdir.value)!="" && !regDir.test(trim(document.f.dg_sus_empdir.value))) {
		alert('Dirección no válida. Ingresela nuevamente.'); 
		return false;
	}

	if (trim(document.f.dg_sus_empciudad.value)!="" && !regUrl.test(trim(document.f.dg_sus_empciudad.value))) {
		alert('Ciudad no válida. Ingresela nuevamente.'); 
		return false;
	}



/*	if (document.f.dg_sus_emppais.options[document.f.dg_sus_emppais.selectedIndex].value=='' ) {
		alert('Debe seleccionar un país.'); 
		return false;
	}

	if (document.f.dg_sus_emppais.options[document.f.dg_sus_emppais.selectedIndex].value=='997' && 
	    document.f.dg_sus_empcomuna.selectedIndex==0 ) {
		alert('Al indicar país CHILE debe elegir la Comuna.'); 
		return false;
	}

	if (document.f.dg_sus_emppais.options[document.f.dg_sus_emppais.selectedIndex].value=='997' && 
	    document.f.dg_sus_empciudad.selectedIndex==0) {
		alert('Al indicar país CHILE debe elegir la Ciudad.'); 
		return false;
	}
	document.f.dg_sus_empfono.value=trim(document.f.dg_sus_empfono.value);

	alert(regFono.test(document.f.dg_sus_empfono.value));
*/	
	if (document.f.dg_sus_empfono.value!="" && !regFono.test(document.f.dg_sus_empfono.value)) {
		alert('Teléfono no válido.')// Ejemplos validos son \n\n55(21)123-4567 \n(11)1234-5678 \n55(71)4562-2234'); 
		return false;
	}

	if (trim(document.f.dg_sus_empfax.value)!="" && !regFono.test(trim(document.f.dg_sus_empfax.value))) {
		alert('Fax no válido.')// Ejemplos validos son \n\n55(21)123-4567 \n(11)1234-5678 \n55(71)4562-2234'); 
		return false;
	}


	document.f.submit();	
}

