/************************************************************************/
/* Control Form Script              			                        */
/* ============================================                         */
/*                                                                      */
/* Copyright (c) 2004 by Proactiweb S.C.P                               */
/* http://www.proactiweb.com                                            */
/*                                                                      */
/************************************************************************/
/*  		Ultima Revision: 25/03/2003 (v1.4)                          */
/************************************************************************/

	//-------------------------------------------------------------------------------------------------------
	// Valores para los colores de error
	//-------------------------------------------------------------------------------------------------------
	var iforecolorerror = '000000';
	var iforecolor = '000000';
	var ibackgroundcolorerror = 'F9FBCD';
	var ibackgroundcolor = 'F9FBCD';

	var temp;
	var cargado = false;
	
	var ie = (document.all)? true:false;
	var ns = (document.all)? false:true;
	//-------------------------------------------------------------------------------------------------------
	// Funcion que controla el Raton para descolorear un campo al clickear
	//-------------------------------------------------------------------------------------------------------
	function controlraton(e) {
	/*
		if(ie) {
			var tipos = new Array('text','textarea','checkbox','select-one','password');
			objeto = event.srcElement.name;
			formname = event.srcElement.form;
			if(formname) {
				var tipo = eval(formname.name + '.' + objeto + '.type');
				for(i=0;i<tipos.length;i++) {
					if(tipo==tipos[i]) {
						eval(formname.name + '.' + objeto + '.style.background = ibackgroundcolor');
						eval(formname.name + '.' + objeto + '.style.color = iforecolor');				
					}					
				}
			}
		}
	*/
	}
	//-------------------------------------------------------------------------------------------------------
	// Funcion para controlar la entrada de datos en el formulario
	//-------------------------------------------------------------------------------------------------------
	function controlteclado(e) {
		if(cargado) {			
			if(ie) {
				objeto = event.srcElement.name;
				codigo = window.event.keyCode;
				formname = event.srcElement.form;
			}
			if(ns) {
				objeto = e.target.name;
				codigo = e.which;
				formname = e.target.form;
				tipo = e.target.type;
				if(tipo) {
					for(i=0;i<document.layers.length;i++) {
						for(j=0;j<document.layers[i].document.forms.length;j++) {
							if(formname.name == document.layers[i].document.forms[j].name) {
								formname = eval('document.' + document.layers[i].name + '.document.' + formname.name);
							}
						}
					}
				}
			}
			letra = String.fromCharCode(codigo);
			if(objeto) {
				descolorea(objeto,formname);
				longitud = objeto.length;
				identificador = objeto.substring(longitud - 4, longitud);
				if(ie) valor = eval(formname.name + '.' + objeto + '.value');
				if(ns) valor = eval(formname).eval(objeto).value;
				if(codigo != 8) {
					switch(identificador)
					{
						case '_tel':
							var objRegExp  = /^[0-9]$/;
							if (valor.length==9) return false;
							if (!objRegExp.test(letra)) return false;
							return true;
						case '_neg':
							if(letra == '-') {
								temp = valor;
								temp = temp.substr(0,1);
									if(temp == '-') {
										temp = valor;
										temp = temp.substr(1);
										if(ie) eval(formname.name + '.' + objeto + '.value = "' + temp + '"');
										if(ns) eval(formname).eval(objeto).value = temp;
									} else {
										if(valor.length == 0) {
											return;
										}else{
											if(ie) eval(formname.name + '.' + objeto + '.value = -' + formname.name + '.' + objeto + '.value');
											if(ns) eval(formname).eval(objeto).value = '-' + eval(formname).eval(objeto).value;
										}
									}
								return false;
							}
							strValue = valor + letra;
							var objRegExp  = /(^-$|^-\d{1,}$|^\d{1,}$)/;
							return objRegExp.test(strValue);
						case '_num':
							var objRegExp  = /^[0-9]$/;
							if (!objRegExp.test(letra)) return false;
							return true;
						case '_fec':
							var barras = 0;
							var objRegExp  = /^[0-9]$/;
							if(valor.length==10) return false;
							if(letra!='/') { if(!objRegExp.test(letra)) return false; }
							else {
								if(valor.indexOf("/")!=-1){
									barras = 1;
									for(n=0;n<valor.length;n++) if(valor.substr(n,1)=='/') barras++;
									if(barras>2) return false;
								}
							}
							return true;						
						case '_hor':
							var objRegExp  = /^[0-9]$/;
							if(valor.length==5) return false;
							if(letra!=':') { if(!objRegExp.test(letra)) return false; }
							else { if(valor.indexOf(":")!=-1) return false; }
							return true;
						case '_cod':
							var objRegExp  = /^[0-9]$/;
							if (valor.length==5) return false;
							if (!objRegExp.test(letra)) return false;
							return true;
						case '_ema':
							if(letra=='@') { if(valor.indexOf("@")!=-1) return false; }
							return true;
						case '_eda':
							var objRegExp  = /^[0-9]$/;
							if (valor.length==2) return false;
							if (!objRegExp.test(letra)) return false;
							return true;
						case '_dec':
							var objRegExp  = /^[0-9]$/;
							if(letra!='.') { if(!objRegExp.test(letra)) return false; }
							else { if(valor.indexOf(".")!=-1) return false; }
							return true;
						case '_ned':
							if (letra=='.') {
								if(valor.indexOf(".")!=-1) return false;
							 	else return true;
							}
							if(letra == '-') {
								temp = valor;
								temp = temp.substr(0,1);
									if(temp == '-') {
										temp = valor;
										temp = temp.substr(1);
										if(ie) eval(formname.name + '.' + objeto + '.value = "' + temp + '"');
										if(ns) eval(formname).eval(objeto).value = temp;
									} else {
										if(valor.length == 0) {
											return true;
										}else{
											if(ie) eval(formname.name + '.' + objeto + '.value = -' + formname.name + '.' + objeto + '.value');
											if(ns) eval(formname).eval(objeto).value = '-' + eval(formname).eval(objeto).value;
										}
									}
								return false;
							}
							strValue = valor + letra;
							var objRegExp  = /[0-9]/;
							return objRegExp.test(letra);
						case '_dni':
							uletra = valor.substring(valor.length-1,valor.length);
							var objRegExp1 = /^[a-zA-Z]{1}$/;
							var letranif = objRegExp1.test(uletra);
		 					if(valor.length<8 || (valor.length<9 && letranif==true )) {
								var objRegExp  = /^[0-9]$/;
								return objRegExp.test(letra);
							}
							if(valor.length==8 && letranif==false) {
								var objRegExp  = /^[a-zA-Z]{1}$/;
								return objRegExp.test(letra);
							}
							return false;
					}
				}
			}
		}
	}
	//-------------------------------------------------------------------------------------------------------
	// Funcion que comprueba los datos en el submit
	//-------------------------------------------------------------------------------------------------------
	/*
	function comprueba(campo,formulario) {
		lon = campo.length;
		identificador = campo.substring(lon - 4, lon);
		if(identificador=='') { return true; }
		if(ie){
			valor = eval(formulario.name + '.' + campo + '.value');
			if(eval(formulario.name + '.' + campo + '.type')=='select-one') { return true; }
		}
		if(ns){
			valor = eval(formulario).eval(campo).value;
			if(eval(formulario).eval(campo).type=='select-one') { return true; }
		}
		longitud = valor.length;
		if (valor.length!=0) {
			switch(identificador)
			{
				case '_tel':
					var objRegExp  = /^[0-9]{9}$/;
					return objRegExp.test(valor);
				case '_num':
					var objRegExp  = /^[0-9]{1,}$/;
					return objRegExp.test(valor);
				case '_fec':
					var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
					if(!objRegExp.test(valor))
					{
						return false;
					}
					else
					{
						var mesOK = false;
						var diaOK = false;
						var strSeparator = valor.substring(2,3);
						var arrayDate = valor.split(strSeparator);
						var arrayDays = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
						var intDay = parseInt(arrayDate[0]);
						var intYear = parseInt(arrayDate[2]);
						var maxDays = arrayDays[parseInt(arrayDate[1])];
						if(parseInt(arrayDate[1]) > 0 && parseInt(arrayDate[1]) < 13)
						{
							if(arrayDate[1]!=2)
							{
								mesOK = true;
							}
							else
							{
								if(((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0)
								{
									mesOK = true;
								}
							}
						}
						if(parseInt(arrayDate[0]) <= maxDays) diaOK = true;
						if(diaOK && mesOK) return true;
					}
					return false;
				case '_hor':
					var objRegExp = /^([0-2][0-3]:[0-5][0-9])|([0-1][0-9]:[0-5][0-9])$/;
					return objRegExp.test(valor);			
				case '_cod':
					var objRegExp  = /^[0-9]{5}$/;
					return objRegExp.test(valor);			
				case '_ema':
					var objRegExp  = /(^[a-zA-Z0-9]([a-zA-Z0-9_\.]*)@([a-zA-Z0-9_\.]*)([.][a-zA-Z]{3})$)|(^[a-zA-Z0-9]([a-zA-Z0-9_\.]*)@([a-zA-Z0-9_\.]*)(\.[a-zA-Z]{3})(\.[a-zA-Z]{2})*$)|(^[a-zA-Z0-9]([a-z0-9_\.]*)@([a-zA-Z0-9_\.]*)(\.[a-zA-Z]{2})(\.[a-zA-Z]{2})*$)/i;
					return objRegExp.test(valor);
				case '_eda':
					var objRegExp  = /^[0-9]{1,2}$/;
					return objRegExp.test(valor);
				case '_dni':
					var objRegExpDNI  = /^[0-9]{8}[a-zA-Z]{1}$/;
					var objRegExpNIF  = /^[a-zA-Z]{1}[0-9]{8}$/;
					if(objRegExpDNI.test(valor)) return true;
					if(objRegExpNIF.test(valor)) return true;
					return false;
				case '_neg':
					var objRegExp  = /^-[0-9]{1,}$|^[0-9]{1,}$/;
					return objRegExp.test(valor);				
				case '_dec':
					var objRegExp = /^[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}$/;
					return objRegExp.test(valor);
				case '_ned':
					var objRegExp = /^-[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}$|^-[0-9]{1,}$/;
					return objRegExp.test(valor);
				default:
					return true;
			}
			
		}else{
			return true;
		}
	}
	*/
	//-------------------------------------------------------------------------------------------------------
	// Comprobar datos especificos
	//-------------------------------------------------------------------------------------------------------
	function compruebaTipo(valor,identificador)
	{
		if(identificador=='') { return false; }
		if(valor=='') { return true; }
		longitud = valor.length;
		if(valor.length!=0)
		{
			switch(identificador)
			{
				case 'tel':
					var objRegExp  = /^[0-9]{9}$/;
					return objRegExp.test(valor);
				case 'num':
					var objRegExp  = /^[0-9]{1,}$/;
					return objRegExp.test(valor);
				case 'fec':
					var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
					if(!objRegExp.test(valor))
					{
						return false;
					}
					else
					{
						var mesOK = false;
						var diaOK = false;
						var strSeparator = valor.substring(2,3);
						var arrayDate = valor.split(strSeparator);
						var arrayDays = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
						var intDay = parseInt(arrayDate[0],10);
						var intYear = parseInt(arrayDate[2],10);
						var maxDays = arrayDays[parseInt(arrayDate[1],10)];
						if(parseInt(arrayDate[1],10) > 0 && parseInt(arrayDate[1],10) < 13)
						{
							if(arrayDate[1]!=2)
							{
								mesOK = true;
							}
							else
							{
								if(((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0)
								{
									mesOK = true;
								}
							}
						}
						if(parseInt(arrayDate[0],10) <= maxDays) diaOK = true;
						if(diaOK && mesOK) return true;
					}
					return false;
				case 'hor':
					var objRegExp = /^([0-2][0-3]:[0-5][0-9])|([0-1][0-9]:[0-5][0-9])$/;
					return objRegExp.test(valor);			
				case 'cod':
					var objRegExp  = /^[0-9]{5}$/;
					return objRegExp.test(valor);			
				case 'ema':
					var objRegExp  = /(^[a-zA-Z0-9]([a-zA-Z0-9_\.-]*)@([a-zA-Z0-9_\.-]*)([.][a-zA-Z]{4})$)|(^[a-zA-Z0-9]([a-zA-Z0-9_\.-]*)@([a-zA-Z0-9_\.-]*)(\.[a-zA-Z]{3})(\.[a-zA-Z]{2})*$)|(^[a-zA-Z0-9]([a-z0-9_\.-]*)@([a-zA-Z0-9_\.-]*)(\.[a-zA-Z]{2})(\.[a-zA-Z]{2})*$)/i;
					return objRegExp.test(valor);
				case 'eda':
					var objRegExp  = /^[0-9]{1,2}$/;
					return objRegExp.test(valor);
				case 'dni':
					var objRegExp  = /^[0-9]{8}[a-zA-Z]{1}$/;
					return objRegExp.test(valor);
				case 'neg':
					var objRegExp  = /^-[0-9]{1,}$|^[0-9]{1,}$/;
					return objRegExp.test(valor);				
				case 'dec':
					var objRegExp = /^[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}$/;
					return objRegExp.test(valor);
				case 'ned':
					var objRegExp = /^-[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}$|^-[0-9]{1,}$/;
					return objRegExp.test(valor);
				default:
					return true;
			}
		}
		else
		{
			return false;
		}
	}
	//-------------------------------------------------------------------------------------------------------
	// Funcion que comprueba si un campo esta vacio
	//-------------------------------------------------------------------------------------------------------
	function vacio(campo,formulario) {
		if(ie){
			var tipo = eval(formulario.name + '.' + campo + '.type');
			var tipos = new Array('text','textarea','password');
			if(tipo=='checkbox') { if(eval(formulario.name + '.' + campo + '.checked')==false) return false; }
			for(i=0;i<tipos.length;i++){
				if(tipo==tipos[i]) { if(eval(formulario.name + '.' + campo + '.value.length')==0) return false; }
			}
		}
		if(ns){
			var tipo = eval(formulario).eval(campo).type;
			if(tipo=='text' || tipo=='textarea' || tipo=='password') { if(eval(formulario).eval(campo).value.length==0) return false; }
			if(tipo=='checkbox') { if(eval(formulario).eval(campo).checked==false) return false; }
		}
		return true;
	}
	//-------------------------------------------------------------------------------------------------------
	// Funcion para colorear un campo en caso de error
	//-------------------------------------------------------------------------------------------------------
	function colorea(campo, formulario) {
		if(ie) {
			if(formulario) {
				var tipo = eval(formulario.name + '.' + campo + '.type');
				if(tipo=='text' || tipo=='textarea' || tipo=='password' || tipo=='select-one' || tipo=='password' || tipo=='checkbox') { 
					eval(formulario.name + '.' + campo + '.style.background = ibackgroundcolorerror');
					eval(formulario.name + '.' + campo + '.style.color = iforecolorerror');
				}
			}
		}
	}
	//-------------------------------------------------------------------------------------------------------
	// Funcion que descolorea un campo
	//-------------------------------------------------------------------------------------------------------
	function descolorea(campo,formulario) {
		if(ie) {
			eval(formulario.name + '.' + campo + '.style.background = ibackgroundcolor');
			eval(formulario.name + '.' + campo + '.style.color = iforecolor');
		}
	}
	//-------------------------------------------------------------------------------------------------------
	// Eventos que capturamos
	//-------------------------------------------------------------------------------------------------------
	document.onkeypress = controlteclado;
	document.onclick = controlraton;
	if(ns) { document.captureEvents(Event.KEYPRESS); }
	
	//------------------------------------------------------------------------------------------
	// Funcion para abrir una ventana en modo popUp
	//------------------------------------------------------------------------------------------
	function OpenWin(page,w,h,scroll,name)
	{
		   var winl = (screen.width - w) / 2;
		   var wint = (screen.height - h) / 2;
		   window.open(page,name,'scrollbars='+scroll+',width='+w+',height='+h+',resizable=no,left='+winl+',top='+wint);
	}

	//------------------------------------------------------------------------------------------
	// Funcion para abrir una ventana en modo popUp
	//------------------------------------------------------------------------------------------
	function OpenWinExt(page,w,h,scroll,name,left,top)
	{
		   window.open(page,name,'scrollbars='+scroll+',width='+w+',height='+h+',resizable=no,left='+left+',top='+top);
	}
	
	//------------------------------------------------------------------------------------------
	// Funcion para abrir una ventana en modo popUp
	//------------------------------------------------------------------------------------------
	function OpenWinExtTotal(page,w,h,scroll,name,aditional)
	{
		   var winl = (screen.width - w) / 2;
		   var wint = (screen.height - h) / 2;
		   window.open(page,name,'scrollbars='+scroll+',width='+w+',height='+h+',resizable=no,left='+winl+',top='+wint+aditional);
	}		

	function administraFicheros()
	{
		window.open('admin/modules/adminfiles/adminFiles.asp?e=1','','width=600,height=400,resizable=yes,scrollbars=yes');
	}
	
	function seleccionaFichero(campo,tipo)
	{
		window.open('admin/modules/adminfiles/adminfiles.asp?c=' + campo + '&e=0&r='+tipo,'','width=600,height=400,resizable=yes,scrollbars=yes');
	} 
	
	//-----------------------------------------------------------------------------
	// Implementaciones
	//-----------------------------------------------------------------------------
	String.prototype.trim = function()
	{
		return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");
	}
		
	//-----------------------------------------------------------------------------
	// Abre una ventana con la imagen y la ajusta al tamaņo de la imagen
	//-----------------------------------------------------------------------------
	function viewImage(imagen)
	{
		if(imagen.trim() != '')
		{
			xWin = window.open('about:blank','','width=100,height=100');
			xHTML = '<html><body><center><img src="' + imagen + '" name="imageZoom"></center></body></html>';
			xWin.document.write(xHTML);
			xWin.resizeWindow = new function()
			{
				xWin.resizeTo(xWin.document.images["imageZoom"].width + 50, xWin.document.images["imageZoom"].height + 50);
			}
		}
		else
		{
			alert("No se ha especificado una imagen");
		}
	}