/************************************************************************************************************
(C) www.dhtmlgoodies.com, February 2006
************************************************************************************************************/	
	
// Patterns

var formValidationMasks = new Array();
formValidationMasks['email'] = /\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/gi;	// Email
formValidationMasks['numeric'] = /^[0-9]+$/gi;	// Numeric
formValidationMasks['zip'] = /^[0-9]{5}\-[0-9]{4}$/gi;	// Numeric

var formElementArray = new Array();

/* These two event functions are from http://ejohn.org/apps/jselect/event.html */

function addEvent( obj, type, fn ) { 
  if ( obj.attachEvent ) { 
    obj['e'+type+fn] = fn; 
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );} 
    obj.attachEvent( 'on'+type, obj[type+fn] ); 
  } else 
    obj.addEventListener( type, fn, false ); 
} 
function removeEvent( obj, type, fn ) { 
  if ( obj.detachEvent ) { 
    obj.detachEvent( 'on'+type, obj[type+fn] ); 
    obj[type+fn] = null; 
  } else 
    obj.removeEventListener( type, fn, false ); 
} 


function validateInput(e,inputObj)
{
	if(!inputObj)inputObj = this;		
	var inputValidates = true;
	
	if(formElementArray[inputObj.name]['required'] && inputObj.tagName=='INPUT' && inputObj.value.length==0)inputValidates = false;
	if(formElementArray[inputObj.name]['required'] && inputObj.tagName=='SELECT' && inputObj.selectedIndex==0){
		inputValidates = false;
	}
	if(formElementArray[inputObj.name]['mask'] && !inputObj.value.match(formValidationMasks[formElementArray[inputObj.name]['mask']]))inputValidates = false;

	if(formElementArray[inputObj.name]['freemask']){
		var tmpMask = formElementArray[inputObj.name]['freemask'];
		tmpMask = tmpMask.replace(/-/g,'\\-');
		tmpMask = tmpMask.replace(/S/g,'[A-Z]');
		tmpMask = tmpMask.replace(/N/g,'[0-9]');
		tmpMask = eval("/^" + tmpMask + "$/gi");
		if(!inputObj.value.match(tmpMask))inputValidates = false
	}	
	
	if(formElementArray[inputObj.name]['regexpPattern']){
		var tmpMask = eval(formElementArray[inputObj.name]['regexpPattern']);
		if(!inputObj.value.match(tmpMask))inputValidates = false
	}
	if(!formElementArray[inputObj.name]['required'] && inputObj.value.length==0 && inputObj.tagName=='INPUT')inputValidates = true;
	
	
	if(inputValidates){
		inputObj.parentNode.className='validInput';
	}else{
		inputObj.parentNode.className='invalidInput'
	}
}

function isFormValid()
{
	var divs = document.getElementsByTagName('DIV');
	for(var no=0;no<divs.length;no++){
		if(divs[no].className=='invalidInput')return false;
	}
	return true;	
}




function initFormValidation()
{
	var inputFields = document.getElementsByTagName('INPUT');
	var selectBoxes = document.getElementsByTagName('SELECT');
	
	var inputs = new Array();
	

	for(var no=0;no<inputFields.length;no++){
		inputs[inputs.length] = inputFields[no];
		
	}	
	for(var no=0;no<selectBoxes.length;no++){
		inputs[inputs.length] = selectBoxes[no];
		
	}
	
	for(var no=0;no<inputs.length;no++){
		var required = inputs[no].getAttribute('required');
		if(!required)required = inputs[no].required;		
		
		var mask = inputs[no].getAttribute('mask');
		if(!mask)mask = inputs[no].mask;
		
		var freemask = inputs[no].getAttribute('freemask');
		if(!freemask)freemask = inputs[no].freemask;
		
		var regexpPattern = inputs[no].getAttribute('regexpPattern');
		if(!regexpPattern)regexpPattern = inputs[no].regexpPattern;
		
		var div = document.createElement('DIV');
		div.className = 'invalidInput';
		inputs[no].parentNode.insertBefore(div,inputs[no]);
		div.appendChild(inputs[no]);
		div.style.width = inputs[no].offsetWidth + 'px';
		
		addEvent(inputs[no],'blur',validateInput);
		addEvent(inputs[no],'change',validateInput);
		addEvent(inputs[no],'paste',validateInput);
		addEvent(inputs[no],'keyup',validateInput);
		
	
		formElementArray[inputs[no].name] = new Array();
		formElementArray[inputs[no].name]['mask'] = mask;
		formElementArray[inputs[no].name]['freemask'] = freemask;
		formElementArray[inputs[no].name]['required'] = required;
		formElementArray[inputs[no].name]['regexpPattern'] = regexpPattern;

		validateInput(false,inputs[no]);
			
	}	
}

window.onload = initFormValidation;

//OCULTAR INFO EN STATUSBAR
function hidestatus(){
window.status=''
return true
}

if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT | Event.ONCLICK | Event.ONKEYPRESS)

document.onmouseover=hidestatus
document.onmouseout=hidestatus
document.onclick=hidestatus
document.onkeypress=hidestatus



function validaremail(str) {
	checkEmail =  str //formregistracion.correo.value
	var DivDestino2 = document.getElementById("DivDestino3");
	DivDestino2.innerHTML = "<div></div>";

	if ((checkEmail.indexOf('@') < 0) || ((checkEmail.charAt(checkEmail.length-4) != '.') && (checkEmail.charAt(checkEmail.length-3) != '.'))) 	{
//		alert("Ingrese un correo valido.");
	  var DivDestino2 = document.getElementById("DivDestino3");
	  DivDestino2.innerHTML = "<div><font style=color:red;>Ingrese un correo valido</font></div>";

		document.formregistracion.correo.value='';
		return false;
	} 
}

function validarpass() {
	var invalid = " "; // Invalid character is a space
	var minLength = 4; // Minimum length
	var pass1 = document.formregistracion.pass.value;
	var pass2 = document.formregistracion.pass2.value;
	// check for a value in both fields.
/*	if (pass1 == '' || pass2 == '') {
		alert('Por favor, reescriba su clave.');
		return false;
   }*/
  /* if (document.formregistracion.pass2.value.length < 1) {
		alert('Por favor, ingrese la misma clave en los campos requeridos.');
		return false;
   
   } */
	// check for minimum length
	var DivDestino2 = document.getElementById("DivDestino4");
	DivDestino2.innerHTML = "<div></div>";
	
	if (document.formregistracion.pass.value.length < minLength) {
//	alert('La clave debe tener minimo ' + minLength + ' caracteres. Intente nuevamente.');
	var DivDestino2 = document.getElementById("DivDestino4");
	DivDestino2.innerHTML = "<div><font style=color:red;>La clave debe tener minimo 4 caracteres. Intente nuevamente.</font></div>";
	return false;
	}
	// check for spaces
	if (document.formregistracion.pass.value.indexOf(invalid) > -1) {
//	alert("Perdon, ha ingresado un espacio.");
	var DivDestino2 = document.getElementById("DivDestino4");
	DivDestino2.innerHTML = "<div><font style=color:red;>Perdon, ha ingresado un espacio.</font></div>";
	return false;
	}
	else {
	if (pass1 != pass2) {
//	alert ("Por favor, ingrese la misma clave en ambos campos.");
	var DivDestino2 = document.getElementById("DivDestino4");
	DivDestino2.innerHTML = "<div><font style=color:red;>Por favor, ingrese la misma clave en ambos campos.</font></div>";

	return false;
	}
	else {
//	alert('Nice job.');
	return true;
		  }
	   }
}

function valida_envia(){ 
	//valido el dni 
	var dni = document.formregistracion.documento.value;
	if (!dni || !/[0-9]+/.test(dni)) {
                       alert((dni) ? 
		"DNI incorrecto" : 
		"Debe introducir su DNI");
                       return false;
                }
	var found = new Array(); 
	//delante de los punto va una barra invertida contraria a / el problema es que este foro elimina las barras 
	found = dni.match(/([0-9]{1,2})\.?([0-9]{3})\.?([0-9]{3})/);
	// si sería 3 significa que el número es menor a 1.000.000.. estan todos fiambres 
	//disculpa olvide el match completo son 4 los resultados  
	//alert(found.length)
	if (found.length == 4) {
		found.splice(0,1);
		document.formregistracion.documento.value=found.join(); //si lo descomento me pone los puntitos!
		return true; 
	} else { 
		alert("Numero de DNI incorrecto"); 
		document.formregistracion.documento.focus() 
		return false; 
	} 
} 

function getcategoria() 
{ 
   var categoria; 
   categoria = document.formregistracion.tipodoc.value; 
 
   switch(categoria) 
   { 
   case "1": 
      document.getElementById('showing').style.display='none';       
      document.getElementById('showing2').style.display='none'; 
	 break; 
   case "2": 
      document.getElementById('showing').style.display='block'; 
      document.getElementById('showing2').style.display='block'; 	  
      break; 
   case "3": 
      document.getElementById('showing').style.display='block'; 
      document.getElementById('showing2').style.display='block'; 	  
	break; 
   case "4": 
      document.getElementById('showing').style.display='none'; 
      document.getElementById('showing2').style.display='none'; 	  
      break; 
   case "5": 
      document.getElementById('showing').style.display='none'; 
      document.getElementById('showing2').style.display='none'; 	  
      break; 
   } 
    
} 

function puntitos(donde,caracter){
	pat = /[\*,\+,\(,\),\?,\,$,\[,\],\^]/
	valor = donde.value
	largo = valor.length
	crtr = true
	if(isNaN(caracter) || pat.test(caracter) == true){
		if (pat.test(caracter)==true){ 
			caracter = "\" + caracter"
		}
		carcter = new RegExp(caracter,"g")
		valor = valor.replace(carcter,"")
		donde.value = valor
		crtr = false
	}
	else{
		var nums = new Array()
		cont = 0
		for(m=0;m<largo;m++){
			if(valor.charAt(m) == "." || valor.charAt(m) == " ")
				{continue;}
			else{
				nums[cont] = valor.charAt(m)
				cont++
			}
		}
	}
	var cad1="",cad2="",tres=0
	if(largo > 3 && crtr == true){
		for (k=nums.length-1;k>=0;k--){
			cad1 = nums[k]
			cad2 = cad1 + cad2
			tres++
			if((tres%3) == 0){
				if(k!=0){
					cad2 = "." + cad2
				}
			}
		}
		donde.value = cad2
	}

	if (largo > 6) {
		var DivDestino = document.getElementById("DivDestino5");
		DivDestino.innerHTML = "<div id='error'></div>";

		return true
	}else{
		var DivDestino = document.getElementById("DivDestino5");
		DivDestino.innerHTML = "<div id='error'><font style=color:red;>Debe ingresar minimo 7 numeros</font></div>";
		return false
	}
}	



/*
*********************
*/

function createRequestObject(){
      var peticion;
      var browser = navigator.appName;
            if(browser == "Microsoft Internet Explorer"){
                  peticion = new ActiveXObject("Microsoft.XMLHTTP");
            }else{
                  peticion = new XMLHttpRequest();
}
return peticion;
}
var http = new Array();
function ObtDatos(url){
      var act = new Date();
      http[act] = createRequestObject();
      http[act].open('get', url);
      http[act].onreadystatechange = function() {
      if (http[act].readyState == 4) {
            if (http[act].status == 200 || http[act].status == 304) {
  		var texto
		texto = http[act].responseText
                    var DivDestino = document.getElementById("DivDestino");
                    DivDestino.innerHTML = "<div id='error'>"+texto+"</div>";                
}
}
}
http[act].send(null);
}
function compUsuario(Tecla) {
     Tecla = (Tecla) ? Tecla: window.event;
     input = (Tecla.target) ? Tecla.target : 
     Tecla.srcElement;
 	 patron =/^[\d\w]*$/; // 4
     if (!patron.test(input.value)) {
		alert('Solo se permiten letras')
		return false;
	 }else{

	//alert(input.value.length);
	  if (input.value.length > 3) {
		if (Tecla.type == "keyup") {
			  var DivDestino = document.getElementById("DivDestino");
			  DivDestino.innerHTML = "<div></div>";
			  if (input.value) {
				   ObtDatos("disp/chequeo.php?q=" + input.value);
			  } //if input.value
 		 } //if tecla.type=keyup
	   }else{
		  var DivDestino = document.getElementById("DivDestino");
          DivDestino.innerHTML = "<div id='error'><font style=color:red;>Debe ingresar minimo 4 caracteres (letras o numeros)</font></div>";
       }//if input.value.length
	 }//if !patron
}//if compUsuario


function createRequestObject2(){
      var peticion2;
      var browser2 = navigator.appName;
            if(browser2 == "Microsoft Internet Explorer"){
                  peticion2 = new ActiveXObject("Microsoft.XMLHTTP");
            }else{
                  peticion2 = new XMLHttpRequest();
}
return peticion2;
}
var http = new Array();
function ObtDatos2(url){
      var act2 = new Date();
      http[act2] = createRequestObject2();
      http[act2].open('get', url);
      http[act2].onreadystatechange = function() {
      if (http[act2].readyState == 4) {
            if (http[act2].status == 200 || http[act2].status == 304) {
  		var texto2
		texto2 = http[act2].responseText
                    var DivDestino = document.getElementById("DivDestino3");
                    DivDestino.innerHTML = "<div id='error'>"+texto2+"</div>";                
}
}
}
http[act2].send(null);
}

function comCorreo(Tecla) {
     Tecla = (Tecla) ? Tecla: window.event;
     input = (Tecla.target) ? Tecla.target : 
     Tecla.srcElement;

//	if (Tecla.type == "keyup") {
		  var DivDestino = document.getElementById("DivDestino3");
		  DivDestino.innerHTML = "<div></div>";
		  if (input.value) {
			   ObtDatos2("disp/chequeocorreo.php?q=" + input.value);
		  } //if input.value
	// } //if tecla.type=keyup
}//if compUsuario



//para recordar contraseña
function createRequestObject3(){
      var peticion3;
      var browser3 = navigator.appName;
            if(browser3 == "Microsoft Internet Explorer"){
                  peticion3 = new ActiveXObject("Microsoft.XMLHTTP");
            }else{
                  peticion3 = new XMLHttpRequest();
}
return peticion3;
}
var http = new Array();
function ObtDatos3(url){
      var act3 = new Date();
      http[act3] = createRequestObject3();
      http[act3].open('get', url);
      http[act3].onreadystatechange = function() {
      if (http[act3].readyState == 4) {
            if (http[act3].status == 200 || http[act3].status == 304) {
  		var texto3
		texto3 = http[act3].responseText
                    var DivDestino = document.getElementById("DivDestino8");
                    DivDestino.innerHTML = "<div id='error'>"+texto3+"</div>";                
}
}
}
http[act3].send(null);
}
function comCorreorec(Tecla) {
     Tecla = (Tecla) ? Tecla: window.event;
     input = (Tecla.target) ? Tecla.target : 
     Tecla.srcElement;

//	if (Tecla.type == "keyup") {
		  var DivDestino = document.getElementById("DivDestino8");
		  DivDestino.innerHTML = "<div></div>";
		  if (input.value) {
			   ObtDatos3("disp/chequeocorreorec.php?q=" + input.value);
		  } //if input.value
	// } //if tecla.type=keyup
}//if compUsuario



