// JavaScript Document

function ponestatus()
{
	window.status="GESTION DE SERVICIOS";
}
function SoloTlfn(){
//Propósito:	Evitar que se escriban letras en los campos de teléfonos.
//Efectos:		Si se pulsa una tecla de texto que no sea alguno de estos caracteres ( ) . ' - +  no ocurrira nada
	if (event.keyCode!=13&&event.keyCode!=32&&event.keyCode!=8&&event.keyCode!=127&&event.keyCode!=0&&
		(event.keyCode<39||event.keyCode>41)&&
		event.keyCode!=43&&event.keyCode!=45&&
		event.keyCode!=46&&(event.keyCode<48||event.keyCode>57)){
		
			event.keyCode=0;
	}
}

function CambiaComilla(){
//Propósito:	Substuir la comilla simple por el acento.
//Efectos:		Si se pulsa la comilla['] se reemplazará por el acento[´].
	if (event.keyCode==39){
		event.keyCode=180;
	}
}

function NoComilla(evento){
//Propósito:	Evitar que se escriba la comilla simple en el formulario, pq hace fallar las querys.
//Efectos:		Si se pulsa la comilla no ocurrirá nada.

		if ((event.keyCode==39)||(event.keyCode==180))
		{
			event.keyCode=0;
		}
}

function nocomillaok(e)
{
	if ((((document.all)?e.keyCode:e.which)==39)||(((document.all)?e.keyCode:e.which)==180))
	{
		e.preventDefault? e.preventDefault() : e.returnValue = false;		
	}
}
function SoloNum()
{
//Propósito:	Evitar que se escriban letras en los campos numéricos.
//Efectos:		Si se pulsa una tecla de texto no ocurrirá nada.
	if (event.keyCode!=13&&(event.keyCode<48||event.keyCode>57)&&(event.keyCode!=11)&&(event.keyCode!=9)&&(event.keyCode!=127)&&(event.keyCode!=8))
		event.keyCode=0;
}
function SoloNumG(e)
{
//Propósito:	Evitar que se escriban letras en los campos numéricos.
//Efectos:		Si se pulsa una tecla de texto no ocurrirá nada.
// 13=enter
// 0=nulo
// 9 y 11 tab horizontal y vertical
// 127 borrar
// 71 y 103 g y G
	if (
			(((document.all)?e.keyCode:e.which)!=13)
			&&
			(((document.all)?e.keyCode:e.which)!=0)
			&&
			(((document.all)?e.keyCode:e.which)!=9)
			&&
			(((document.all)?e.keyCode:e.which)!=11)
			&&
			(((document.all)?e.keyCode:e.which)!=127)
			&&
			(((document.all)?e.keyCode:e.which)!=8)
			&&
			(((document.all)?e.keyCode:e.which)!=71)
			&&
			(((document.all)?e.keyCode:e.which)!=103)
			&&
			(    
				(((document.all)?e.keyCode:e.which)<48)||(((document.all)?e.keyCode:e.which)>57)   
			)     
		)
	{
		e.preventDefault? e.preventDefault() : e.returnValue = false;		
	}
	
}
function SoloNumAFS(e)
{
//Propósito:	Evitar que se escriban letras en los campos numéricos.
//Efectos:		Si se pulsa una tecla de texto no ocurrirá nada.
// 13=enter
// 0=nulo
// 9 y 11 tab horizontal y vertical
// 127 borrar
	if (
			(((document.all)?e.keyCode:e.which)!=13)
			&&
			(((document.all)?e.keyCode:e.which)!=0)
			&&
			(((document.all)?e.keyCode:e.which)!=9)
			&&
			(((document.all)?e.keyCode:e.which)!=11)
			&&
			(((document.all)?e.keyCode:e.which)!=127)
			&&
			(((document.all)?e.keyCode:e.which)!=8)
			&&
			(    
				(((document.all)?e.keyCode:e.which)<48)||(((document.all)?e.keyCode:e.which)>57)   
			)     
		)
	{
		e.preventDefault? e.preventDefault() : e.returnValue = false;		
	}
	
}
function max250(nombreElemento){
//Propósito:	Evitar que se escriban mas de 250 caracteres.
//Efectos:		Si se pulsa una tecla de texto pasados esos caracteres no ocurrirá nada.
	sElemento=document.forms[0].elements[nombreElemento].value;
	if (sElemento.length>=249)
	{
		event.keyCode=0;
	}
}

function maxtitle250(nombreElemento,e){
//Propósito:	Evitar que se escriban mas de 250 caracteres.
//Efectos:		Si se pulsa una tecla de texto pasados esos caracteres no ocurrirá nada.
	
	sElemento=document.getElementById(nombreElemento).value;
	if(((document.all)?e.keyCode:e.which)!=8)
	{
		if (sElemento.length>=249)
		{
			e.preventDefault? e.preventDefault() : e.returnValue = false;
		}
	}
}
function max150(nombreElemento){
//Propósito:	Evitar que se escriban mas de 250 caracteres.
//Efectos:		Si se pulsa una tecla de texto pasados esos caracteres no ocurrirá nada.
	sElemento=document.forms[0].elements[nombreElemento].value;
	if (sElemento.length>=149)
	{
		event.keyCode=0;
	}
}

function max1000(nombreElemento){
//Propósito:	Evitar que se escriban mas de 250 caracteres.
//Efectos:		Si se pulsa una tecla de texto pasados esos caracteres no ocurrirá nada.
	sElemento=document.forms[0].elements[nombreElemento].value;
	if (sElemento.length>=999)
	{
		event.keyCode=0;
	}
}
function max1800(nombreElemento){
//Propósito:	Evitar que se escriban mas de 250 caracteres.
//Efectos:		Si se pulsa una tecla de texto pasados esos caracteres no ocurrirá nada.
	sElemento=document.forms[0].elements[nombreElemento].value;
	if (sElemento.length>=1799)
	{
		event.keyCode=0;
	}
}

function max900(nombreElemento){
//Propósito:	Evitar que se escriban mas de 250 caracteres.
//Efectos:		Si se pulsa una tecla de texto pasados esos caracteres no ocurrirá nada.
	sElemento=document.forms[0].elements[nombreElemento].value;
	if (sElemento.length>=899)
	{
		event.keyCode=0;
	}
}

function max400(nombreElemento){
//Propósito:	Evitar que se escriban mas de 250 caracteres.
//Efectos:		Si se pulsa una tecla de texto pasados esos caracteres no ocurrirá nada.
	sElemento=document.forms[0].elements[nombreElemento].value;
	if (sElemento.length>=399)
	{
		event.keyCode=0;
	}
}

function max600(nombreElemento){
//Propósito:	Evitar que se escriban mas de 250 caracteres.
//Efectos:		Si se pulsa una tecla de texto pasados esos caracteres no ocurrirá nada.
	sElemento=document.forms[0].elements[nombreElemento].value;
	if (sElemento.length>=599)
	{
		event.keyCode=0;
	}
}

function CambiaComillaPegado(NombreForm){
//Propósito:	Substuir la comilla simple por el acento cuando pegan en todos los campos del formulario.
//Efectos:		Si se pega la comilla['] se reemplazará por el acento[´].

	var iNumCampos = document.forms[NombreForm].length-1
	for (i=0;i<=iNumCampos;i++)
	{
		sTexto=document.forms[NombreForm].elements[i].value;
		while (sTexto.search("'") != -1 || sTexto.search("\"") != -1)
		{
			sTexto=sTexto.replace("'", "´");
			sTexto=sTexto.replace("\"", "´");
		}
		if(document.forms[NombreForm].elements[i].type!="select-multiple")
		{
			document.forms[NombreForm].elements[i].value=sTexto;
		}
	}
}
function autoComplete2 (field, select, property, forcematch) {
	var found = false;
	for (var i = 0; i < select.options.length; i++) {
	if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
		found=true; break;
		}
	}
	if (found) { select.selectedIndex = i; }
	else { select.selectedIndex = -1; }
	if (field.createTextRange) {
		if (forcematch && !found) {
			field.value=field.value.substring(0,field.value.length-1); 
			return;
			}
		var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
		if (cursorKeys.indexOf(event.keyCode+";") == -1) {
			var r1 = field.createTextRange();
			var oldValue = r1.text;
			var newValue = found ? select.options[i][property] : oldValue;
			if (newValue != field.value) {
				field.value = newValue;
				var rNew = field.createTextRange();
				rNew.moveStart('character', oldValue.length) ;
				rNew.select();
				}
			}
		}
	}

function autoComplete3 (field, select, property, forcematch) {
	var found = false;
	for (var i = 0; i < select.options.length; i++) {
	if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
		found=true; break;
		}
	}
	if (found) { select.selectedIndex = i; }
	else { select.selectedIndex = -1; }
	if (field.createTextRange) {
		if (forcematch && !found) {
			field.value=field.value.substring(0,field.value.length-1); 
			return;
			}
		var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
		if (cursorKeys.indexOf(event.keyCode+";") == -1) {
			var r1 = field.createTextRange();
			var oldValue = r1.text;
			var newValue = found ? select.options[i][property] : oldValue;
			if (newValue != field.value) {
				field.value = newValue;
				var rNew = field.createTextRange();
				rNew.moveStart('character', oldValue.length) ;
				rNew.select();
				}
			}
		}
	}

function compruebaemail()
{
	pos_arroba=campos_txt[i].value.indexOf("@");
	if(pos_arroba<1) // Chequea la @
	{
		alert("El valor introducido en el campo " + nombre_campo + " no es correcto. Por favor revisa el prefijo y luego coloca el simbolo '@'.");
		campos_txt[i].focus();
		return false
	}
	cadena=campos_txt[i].value.substring(pos_arroba+1,campos_txt[i].value.length); // Obtiene la cadena que hay despues de la arroba
	if(cadena.indexOf("@")!=-1) // Chequea la si hay más de una @
	{
		alert("El valor introducido en el campo " + nombre_campo + " no es correcto. Por favor revisa que no has escrito más de una '@'.");
		campos_txt[i].focus();
		return false
	}
	if(((campos_txt[i].value.indexOf(".")-pos_arroba)<=1) || ((campos_txt[i].value.indexOf(".")+1)==campos_txt[i].value.length) || (((campos_txt[i].value.length)-(campos_txt[i].value.indexOf(".")+1))<2)) // chequea que entre la @ y el . haya al menos un carécter, que haya un . y que haya al menos un caracter de servidor
	{ 
		alert("El valor introducido en el campo " + nombre_campo + " no es correcto. Por favor revisa el nombre del servidor, el punto '.' y el sufijo que esta despues del simbolo '@'."); 
		campos_txt[i].focus();
		return false
	} 
}
	
//Retorna: 1 = NIF ok, 2 = CIF ok, 3 = NIE ok, -1 = NIF error, -2 = CIF error, -3 = NIE error, 0 = ??? error
function valida_nif_cif_nie(a) 
{
	var temp=a.toUpperCase();
	var cadenadni="TRWAGMYFPDXBNJZSQVHLCKE";
	var w=99
	if(w==0) //no quiero que valide nada
	{
 
		if (temp!==''){
			//si no tiene un formato valido devuelve error
			if ((!/^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$/.test(temp) && !/^[T]{1}[A-Z0-9]{8}$/.test(temp)) && !/^[0-9]{8}[A-Z]{1}$/.test(temp))
			{
				return 0;
			}
	 
			//comprobacion de NIFs estandar
			if (/^[0-9]{8}[A-Z]{1}$/.test(temp))
			{
				posicion = a.substring(8,0) % 23;
				letra = cadenadni.charAt(posicion);
				var letradni=temp.charAt(8);
				if (letra == letradni)
				{
					return 1;
				}
				else
				{
					return -1;
				}
			}
	 
			//algoritmo para comprobacion de codigos tipo CIF
			suma = parseInt(a[2])+parseInt(a[4])+parseInt(a[6]);
			for (i = 1; i < 8; i += 2)
			{
				temp1 = 2 * parseInt(a[i]);
				temp1 += '';
				temp1 = temp1.substring(0,1);
				temp2 = 2 * parseInt(a[i]);
				temp2 += '';
				temp2 = temp2.substring(1,2);
				if (temp2 == '')
				{
					temp2 = '0';
				}
	 
				suma += (parseInt(temp1) + parseInt(temp2));
			}
			suma += '';
			n = 10 - parseInt(suma.substring(suma.length-1, suma.length));
	 
			//comprobacion de NIFs especiales (se calculan como CIFs)
			if (/^[KLM]{1}/.test(temp))
			{
				if (a[8] == String.fromCharCode(64 + n))
				{
					return 1;
				}
				else
				{
					return -1;
				}
			}
	 
			//comprobacion de CIFs
			if (/^[ABCDEFGHJNPQRSUVW]{1}/.test(temp))
			{
				temp = n + '';
				if (a[8] == String.fromCharCode(64 + n) || a[8] == parseInt(temp.substring(temp.length-1, temp.length)))
				{
					return 2;
				}
				else
				{
					return -2;
				}
			}
	 
			//comprobacion de NIEs
			//T
			if (/^[T]{1}/.test(temp))
			{
				if (a[8] == /^[T]{1}[A-Z0-9]{8}$/.test(temp))
				{
					return 3;
				}
				else
				{
					return -3;
				}
			}
	 
			//XYZ
			if (/^[XYZ]{1}/.test(temp))
			{
				pos = str_replace(['X', 'Y', 'Z'], ['0','1','2'], temp).substring(0, 8) % 23;
				if (a[8] == cadenadni.substring(pos, pos + 1))
				{
					return 3;
				}
				else
				{
					return -3;
				}
			}
		}
 
		return 0;
	}
	return 1;
}

function str_replace(search, replace, subject) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
 
    var f = search, r = replace, s = subject;
    var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
 
    while (j = 0, i--) {
        if (s[i]) {
            while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
        }
    };
 
    return sa ? s : s[0];
}

 


	
//var message="";
//function clickIE() {if (document.all) {(message);return false;}}
//function clickNS(e) {if 
//(document.layers||(document.getElementById&&!document.all)) {
//if (e.which==2||e.which==3) {(message);return false;}}}
//if (document.layers) 
//{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
//else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
//document.oncontextmenu=new Function("return false")
// --> 


