//----------------------------------------------------------------------------------------
//                FUNCIONES - PRINCIPALES
//----------------------------------------------------------------------------------------
function cargaDatos(){
	var ajax = new objAjax();
	ajax.open("GET", "registro_.asp?op=recuperar", true);
	ajax.onreadystatechange=function() 
	{ 
		if (ajax.readyState==1)
		{
			//document.getElementById("mensaje").innerHTML="Cargando datos...";
		}
		if (ajax.readyState==4)
		{
			//depurar			
			//inicia_layer();
			//document.getElementById('mensaje').innerHTML=ajax.responseText;
			if(ajax.status == 200){			
				var vxml = ajax.responseXML.documentElement;		
					//cargamos la ciudad
			//	for(i=0; i < vxml.getElementsByTagName('ciudades')[0].childNodes.length; i++){
			//		var ciudades = vxml.getElementsByTagName('ciudades')[0];
			//		var ciudad = ciudades.childNodes[i].firstChild.data;
			//		var estado = ciudades.childNodes[i].getAttribute("estado");
			//		var opc=document.createElement("option"); 
			//		opc.value=ciudades.childNodes[i].getAttribute("id");
			//		opc.text=ciudad; opc.selected;
			//		document.getElementById('ciudad').options.add(opc);
			//		var indice = document.getElementById('ciudad').options.length - 1;
			//		if(estado == 1){document.getElementById('ciudad').options[indice].selected=true;}
			//	}
						
					//cargamos las regiones
				for(i=0; i < vxml.getElementsByTagName('regiones')[0].childNodes.length; i++){
					var ciudades = vxml.getElementsByTagName('regiones')[0];
					var ciudad = ciudades.childNodes[i].firstChild.data;
					var estado = ciudades.childNodes[i].getAttribute("estado");
					var opc=document.createElement("option"); 
					opc.value=ciudades.childNodes[i].getAttribute("id");
					opc.text=ciudad; opc.selected;
					document.getElementById('region').options.add(opc);
					var indice = document.getElementById('region').options.length - 1;
					if(estado == 1){document.getElementById('region').options[indice].selected=true;}
				}

				
					//cargamos las carreras
				for(i=0; i < vxml.getElementsByTagName('carreras')[0].childNodes.length; i++){
					var carreras = vxml.getElementsByTagName('carreras')[0];
					var carrera = carreras.childNodes[i].firstChild.data;
					var opc=document.createElement("option");
					opc.value=carreras.childNodes[i].getAttribute("id");
					opc.text=carrera; opc.selected;
					document.getElementById('carrera1').options.add(opc);
				}
					//cargamos las carreras
				for(i=0; i < vxml.getElementsByTagName('carreras')[0].childNodes.length; i++){
					var carreras = vxml.getElementsByTagName('carreras')[0];
					var carrera = carreras.childNodes[i].firstChild.data;
					var opc=document.createElement("option");
					opc.value=carreras.childNodes[i].getAttribute("id");
					opc.text=carrera; opc.selected;
					document.getElementById('carrera2').options.add(opc);					
				}
			//cargamos las preguntas
				for(i=0; i < vxml.getElementsByTagName('pregunta')[0].childNodes.length; i++){
					var preguntas = vxml.getElementsByTagName('pregunta')[0];
					var pregunta = preguntas.childNodes[i].firstChild.data;
					var opc=document.createElement("option");
					opc.value=preguntas.childNodes[i].getAttribute("id");
					opc.text=pregunta; opc.selected;
					document.getElementById('pregunta').options.add(opc);				
				}
			
			}
			termina_layer();//alert(ajax.responseText);
		}
	}
	ajax.send(null);
}

//var listadoSelects=new Array();
//listadoSelects[0]="ciudad";
//listadoSelects[1]="comuna";


var listadoSelects=new Array();
listadoSelects[0]="region";
listadoSelects[1]="comuna";
listadoSelects[2]="colegio";

function buscarEnArray(array, dato)
{
	var x=0;
	while(array[x])
	{
		if(array[x]==dato) return x;
		x++;
	}
	return null;
}

function cargaComuna(idSelectOrigen)
{	
	var posicionSelectDestino=buscarEnArray(listadoSelects, idSelectOrigen)+1;
	var selectOrigen=document.getElementById(idSelectOrigen);
	var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
	
	if(opcionSeleccionada==0)
	{
		var x=posicionSelectDestino, selectActual=null;
		while(listadoSelects[x])
		{
			selectActual=document.getElementById(listadoSelects[x]);
			selectActual.length=0;
			
			var nuevaOpcion=document.createElement("option"); 
			nuevaOpcion.value=0; 
			nuevaOpcion.innerHTML="Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	
			selectActual.disabled=true;
			x++;
		}
	}
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1])
	{
		var idSelectDestino=listadoSelects[posicionSelectDestino];
		var selectDestino=document.getElementById(idSelectDestino);		
		var ajax=objAjax();
		ajax.open("GET", "registro_.asp?select="+idSelectDestino+"&opcion="+opcionSeleccionada+"&op=cargaComuna", true);
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1)
			{
				selectDestino.length=0;
				var nuevaOpcion=document.createElement("option"); 
				nuevaOpcion.value=0; 
				nuevaOpcion.innerHTML="Cargando...";
				selectDestino.appendChild(nuevaOpcion);
				selectDestino.disabled=true;	
			}
			if (ajax.readyState==4)
			{
				selectDestino.parentNode.innerHTML=ajax.responseText;
			} 
		}
		ajax.send(null);
	}
}


function cargaColegio(idSelectOrigen)
{
	var posicionSelectDestino=buscarEnArray(listadoSelects, idSelectOrigen)+1;
	var selectOrigen=document.getElementById(idSelectOrigen);
	var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
	
    if(opcionSeleccionada==0)
	{
		var x=posicionSelectDestino, selectActual=null;
		while(listadoSelects[x])
		{
			selectActual=document.getElementById(listadoSelects[x]);
			selectActual.length=0;
			
			var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled=true;
			x++;
		}
	}
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1])
	{
		var idSelectDestino=listadoSelects[posicionSelectDestino];
		var selectDestino=document.getElementById(idSelectDestino);
			
		
		var ajax=objAjax();
		ajax.open("GET", "registro_.asp?select="+idSelectDestino+"&opcion="+opcionSeleccionada+"&op=cargaColegio", true);
		ajax.onreadystatechange=function() 
		{ 
			
			if (ajax.readyState==1)
			{
				selectDestino.length=0;
				var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled=true;	
			}
			if (ajax.readyState==4)
			{
			//	alert(ajax.responseText);
				selectDestino.parentNode.innerHTML=ajax.responseText;
			} 
		}
		ajax.send(null);
	}
}

function validarForm(){
	var msg="";
	
	if(document.getElementById('nombre').value == "") 
		msg += "<li> Debe ingresar su Nombre</li>";
		
	if(document.getElementById('apaterno').value == "") 
		msg += "<li> Debe ingresar su Apellido Paterno</li>";
		
	if(document.getElementById('amaterno').value == "") 
		msg += "<li> Debe ingresar su Apellido Materno</li>";
		
	if(document.getElementById('rut').value == "") 
		msg += "<li> Debe ingresar su R.U.T.</li>";
		
	if(validaRut(document.getElementById('rut')) == false)
		msg += "<li> El R.U.T. ingresado no es v&aacute;lido</li>";
		
	if(document.getElementById('telefono').value == "") 
		msg += "<li> Debe ingresar su Telefono</li>";
		
	if(document.getElementById('email').value == "")
		msg += "<li> Debe ingresar su E-Mail</li>";

	if(!isEmail(document.getElementById('email'))) 
		msg += "<li> Debe ingresar su E-Mail valido</li>";

	if(document.getElementById('email2').value == "")
		msg += "<li> Debe reescribir su E-Mail</li>";

	if(!isEmail(document.getElementById('email2'))) 
		msg += "<li> Debe reescribir un E-Mail valido</li>";

	if(document.getElementById('email').value != document.getElementById('email2').value)
		msg += "<li> No coinciden sus direcciones de E-Mail</li>";
		
//	if(document.getElementById('sexo').value != document.getElementById('sexo').value) IC 20/11/2009 11:30
//		msg += "<li> Debe ingresar el sexo del usuario </li>"; Se modificó preguntando por el Value
		
	if(document.getElementById('sexo').options[document.getElementById('sexo').selectedIndex].value == 0)
		msg += "<li> Debe ingresar el sexo del usuario </li>";
		
	if(document.getElementById('fecha_nac').value == "") 
		msg += "<li> Debe ingresar la Fecha de Nacimiento</li>";

	if(document.getElementById('domicilio').value == "") 
		msg += "<li> Debe ingresar su Domicilio</li>";
		
	if(document.getElementById('region').options[document.getElementById('region').selectedIndex].value == 0)
		msg += "<li> Debe seleccionar una region</li>";
		
	if(document.getElementById('comuna').options[document.getElementById('comuna').selectedIndex].value == 0)
		msg += "<li> Debe seleccionar una comuna</li>";	
		
	if(document.getElementById('colegio').value == "0") 
		msg += "<li> Debe ingresar su Colegio</li>";
		
//    if(document.getElementById('respuesta').value == "") 
//		msg += "<li> Debe ingresar su Respuesta</li>";		

// DESCOMENTAR PARA USAR
	if(document.getElementById('carrera1').options[document.getElementById('carrera1').selectedIndex].value == 0)
		msg += "<li> Debe seleccionar Carrera 1</li>";
	if(document.getElementById('carrera2').options[document.getElementById('carrera2').selectedIndex].value == 0)
		msg += "<li> Debe seleccionar Carrera 2</li>";		

	if(document.getElementById('usuario').value == "") 
		msg += "<li> Debe ingresar nick de Usuario</li>";

	if(document.getElementById('clave').value == "") 
		msg += "<li> Debe ingresar una Contrase&ntilde;a</li>";
		
	if(document.getElementById('clave2').value == "") 
		msg += "<li> Debe reingresar su Contrase&ntilde;a</li>";
		
	if(document.getElementById('clave').value != document.getElementById('clave2').value)
		msg += "<li> No coinciden sus contrase&ntilde;as</li>";

//	if(document.getElementById('pregunta').value == "") 
//		msg += "<li> Debe ingresar una Pregunta</li>";   IC 20/11/2009 11:30

	if(document.getElementById('pregunta').options[document.getElementById('pregunta').selectedIndex].value == 0)
		msg += "<li> Debe Seleccionar una Pregunta</li>";

	if(document.getElementById('respuesta').value == "") 
		msg += "<li> Debe ingresar una Respuesta</li>";


	if(msg != ""){
		inicia_layer();
		document.getElementById('mensaje').innerHTML="Se han detectado los siguientes errores:<br><ul>" + msg + "</ul>";
	}else{
		//
		// Realizamos la coneccion AJAX para validar del lado servidor
		//
		var ajax = new objAjax();
		var cadenaGET = "";
		cadenaGET += "&nombre=" + document.getElementById('nombre').value;
		cadenaGET += "&apaterno=" + document.getElementById('apaterno').value;
		cadenaGET += "&amaterno=" + document.getElementById('amaterno').value;
		cadenaGET += "&rut=" + document.getElementById('rut').value;
		cadenaGET += "&telefono=" + document.getElementById('telefono').value;
		cadenaGET += "&celular=" + document.getElementById('celular').value;
		cadenaGET += "&email=" + document.getElementById('email').value;
		cadenaGET += "&email2=" + document.getElementById('email2').value;
		
		cadenaGET += "&domicilio=" + document.getElementById('domicilio').value;
		
		cadenaGET += "\n&region=" + document.getElementById('region').options[document.getElementById('region').selectedIndex].value;
		
		cadenaGET += "&comuna=" + document.getElementById('comuna').options[document.getElementById('comuna').selectedIndex].value;
		cadenaGET += "&colegio=" + document.getElementById('colegio').value;
		cadenaGET += "&curso=" + getRadioButtonSelectedValue(document.form1.curso);
		cadenaGET += "&carrera1=" + document.getElementById('carrera1').options[document.getElementById('carrera1').selectedIndex].value;
		cadenaGET += "&carrera2=" + document.getElementById('carrera2').options[document.getElementById('carrera2').selectedIndex].value;
		cadenaGET += "&usuario=" + document.getElementById('usuario').value;
		cadenaGET += "&clave=" + document.getElementById('clave').value;
		cadenaGET += "&clave2=" + document.getElementById('clave2').value;
		cadenaGET += "&sexo=" + document.getElementById('sexo').options[document.getElementById('sexo').selectedIndex].value;
		cadenaGET += "&fecha_nac=" + document.getElementById('fecha_nac').value;
		
		cadenaGET += "&pregunta=" + document.getElementById('pregunta').value;
		
		cadenaGET += "&respuesta=" + document.getElementById('respuesta').value;

//alert('cadenaGET:'+cadenaGET);

		ajax.open("GET", "registro_.asp?op=guardaUsuario" + cadenaGET, true);
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1){
				inicia_layer();
				document.getElementById('mensaje').innerHTML="Espere... estamos validando sus datos";
			}
			if (ajax.readyState==4)
			{
				inicia_layer();
				//document.getElementById('mensaje').innerHTML=ajax.responseText;
				if(ajax.responseText=="2"){
					document.getElementById('mensaje').innerHTML="Lo sentimos, tu nick de usuario ya está registrado";
				}else{
					if(ajax.responseText=="3"){
						document.getElementById('mensaje').innerHTML="Bienvenido, has sido registrado";
						window.location="registrado.asp";
					}else{
						if(ajax.responseText=="0"){
							document.getElementById('mensaje').innerHTML="Lo sentimos, pero tu rut ya se encuentra registrado";
						}else{
							document.getElementById('mensaje').innerHTML=ajax.responseText;
						}
					}
				}
			} 
		}
//		alert('ajax.responseText:'+ajax.responseText);
		ajax.send(null);
	}
}
function valRutOnChange(obj_rut){
	var msg;
	if(validaRut(document.getElementById('rut')) == false){
		msg = "<li> El R.U.T. ingresado no es v&aacute;lido</li>";
		inicia_layer();
		document.getElementById('mensaje').innerHTML="Se han detectado los siguientes errores:<br><ul>" + msg + "</ul>";
	}
}

//----------------------------------------------------------------------------------------
//							FUNCIONES - UTILES
//----------------------------------------------------------------------------------------

function inicia_layer(){
	document.getElementById('light').style.display='block';
	document.getElementById('fade').style.display='block';
	//setTimeout("termina_layer()", 24000);
}

function termina_layer(){
	document.getElementById('light').style.display='none';
	document.getElementById('fade').style.display='none'
}

function objAjax()
{ 
	var xmlhttp=false;
	try
	{
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(E)
		{
			if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
		}
	}
	return xmlhttp; 
}

function validaRut(obj_rut){
	var texto;
  	texto = obj_rut.value;
  	var tmpstr = "";
  	for ( i=0; i < texto.length ; i++ )
    	if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
      		tmpstr = tmpstr + texto.charAt(i);
  	texto = tmpstr;
  	largo = texto.length;

  	if ( largo < 2 ){
        obj_rut.value = "";
    	obj_rut.focus();
    	return false;
  	}

  	for (i=0; i < largo ; i++ ){ 
		if ( texto.charAt(i) !="0" && texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" ){
      		obj_rut.focus();
          	obj_rut.value = "";
      		return false;
    	}
  	}

  	var invertido = "";

  	for ( i=(largo-1),j=0; i>=0; i--,j++ )
    	invertido = invertido + texto.charAt(i);
  	var dtexto = "";

  	dtexto = dtexto + invertido.charAt(0);
  	dtexto = dtexto + '-';
  	cnt = 0;
  	for ( i=1,j=2; i<largo; i++,j++ ){
    	if ( cnt == 3 ){
      		dtexto = dtexto + '';
      		j++;
      		dtexto = dtexto + invertido.charAt(i);
      		cnt = 1;
    	}else{ 
      		dtexto = dtexto + invertido.charAt(i);
      		cnt++;
    	}
  	}

	invertido = "";

  	for ( i=(dtexto.length-1),j=0; i>=0; i--,j++ )
    	invertido = invertido + dtexto.charAt(i);
    obj_rut.value = invertido;    
  	if (validaDV(texto,obj_rut))
    	return true;
  	return false;
}

function validaDV(crut,obj_rut)
{  
	largo = crut.length;
  	if ( largo < 7 ){
    	obj_rut.value = "";
    	obj_rut.focus();
    	return false;
  	}
  	if ( largo > 2 )
    	rut = crut.substring(0, largo - 1);
  	else
    	rut = crut.charAt(0);
	dv = crut.charAt(largo-1);
  	verificaDV(dv,obj_rut);
  	if ( rut == null || dv == null )
		return 0;
  	var dvr = '0';
  	suma = 0;
  	mul  = 2;
  	for (i= rut.length -1 ; i >= 0; i--){
	    suma = suma + rut.charAt(i) * mul;
    	if (mul == 7)
      		mul = 2;
	    else    
    		mul++;
  	}
  	res = suma % 11;
  	if (res==1)
    	dvr = 'k';
  	else if (res==0)
    	dvr = '0';
  	else{
    	dvi = 11-res;
   		dvr = dvi + "";
  	}
   	if ( dvr != dv.toLowerCase() ){
	    obj_rut.value = "";
    	obj_rut.focus();    
	    return false;
  	}
    return true;
}

function verificaDV( dvr,obj_rut )
{
  dv = dvr + "";
  if ( dv != '0' && dv != '1' && dv != '2' && dv != '3' && dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' && dv != 'k'  && dv != 'K')
  {
	obj_rut.value = "";
    obj_rut.focus();
    return false;
  }
  return true;
}
function getRadioButtonSelectedValue(ctrl)
{
    for(i=0;i<ctrl.length;i++)
        if(ctrl[i].checked) return ctrl[i].value;
}
function isEmail(theElement)
{
	var s = theElement.value;
	var filter=/^[A-Za-z][A-Za-z0-9_.-]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	if (s.length == 0 ) return true;
	if (filter.test(s)){
		return true;
	}else{
		theElement.focus();
		return false;
	}
}

function ValidarTextos(e) { 
    tecla = (document.all) ? e.keyCode : e.which; 
    if (tecla==8) return true; 
    patron =/^[a-zA-Z]$/;
	te = String.fromCharCode(tecla); 
	//alert(tecla);
	/*225, 193 = "áÁ"   233, 201 = "éÉ"   237, 205 = "íÍ"  243, 211 = "óÓ" 250, 218 = "úÚ" 241, 209 = "ñÑ" 32=espacio 0="TAB"*/
	var Caracteres = new Array("225","193","233","201","237","205","243","211","250","218","241","209","32","0");
	for (i=0;i<Caracteres.length;i++)
	{   
		if (tecla==Caracteres[i]){
			return true;	
		}
	}	
    return patron.test(te); 
} 
function ValidarNumero(e) { 
    tecla = (document.all) ? e.keyCode : e.which; 
    if (tecla==8) return true; 
    patron =/^[0-9]$/;
	te = String.fromCharCode(tecla); 
	//alert(tecla);
	/*0="TAB" 45="-"*/
	/*225, 193 = "áÁ"   233, 201 = "éÉ"   237, 205 = "íÍ"  243, 211 = "óÓ" 250, 218 = "úÚ" 241, 209 = "ñÑ" 32=espacio 0="TAB"*/
	var Caracteres = new Array("0","45");
	for (i=0;i<Caracteres.length;i++)
	{   
		if (tecla==Caracteres[i]){
			return true;	
		}
	}	
    return patron.test(te); 
} 
function ValidarNumeroTextos(e) { 
    tecla = (document.all) ? e.keyCode : e.which; 
    if (tecla==8) return true; 
    patron =/^[a-zA-Z0-9]$/;
	te = String.fromCharCode(tecla); 
	//alert(tecla);
	/*225, 193 = "áÁ"   233, 201 = "éÉ"   237, 205 = "íÍ"  243, 211 = "óÓ" 250, 218 = "úÚ" 241, 209 = "ñÑ" 32=espacio 0="TAB"*/
	var Caracteres = new Array("225","193","233","201","237","205","243","211","250","218","241","209","32","0");
	for (i=0;i<Caracteres.length;i++)
	{   
		if (tecla==Caracteres[i]){
			return true;	
		}
	}	
    return patron.test(te); 
}
function ValidarNumeroTextosPunto(e) { 
    tecla = (document.all) ? e.keyCode : e.which; 
    if (tecla==8) return true; 
    patron =/^[a-zA-Z0-9]$/;
	te = String.fromCharCode(tecla); 
	//alert(tecla);
	/*225, 193 = "áÁ"   233, 201 = "éÉ"   237, 205 = "íÍ"  243, 211 = "óÓ" 250, 218 = "úÚ" 241, 209 = "ñÑ" 32=espacio 0="TAB" 46="."*/
	var Caracteres = new Array("225","193","233","201","237","205","243","211","250","218","241","209","32","0","46");
	for (i=0;i<Caracteres.length;i++)
	{   
		if (tecla==Caracteres[i]){
			return true;	
		}
	}	
    return patron.test(te); 
}

function copyOff(e) {
    tecla = (document.all)?e.keyCode:e.which;
    if(tecla==86 && e.ctrlKey)
        return false;
}
document.oncontextmenu=function(){return false;}; 