
//************************************************************************************
//	FUNCION : INICIALIZAR
//		- Para resto funciones DHTML, debe ser invocada siempre desde el evento ONLOAD de la página
//************************************************************************************
	var navegador_Netscape;
	
	function inicializar()
	{
		navegador_Netscape = false;	navegador_IE = false;
		if (window.document.layers)	navegador_Netscape = true; 
		else navegador_IE = true;					
		if (navegador_Netscape)	{
			prefijo_objeto = "window.document."
			cte_style = ""
			cte_visible ="show"
			cte_postop = ".y"
			cte_postop2 = ".y"
			cte_posleft = ".x"
			cte_alto = ".Offsetheight"
			cte_mousetop = "e.pageY"
			cte_mouseleft = "e.pageX" 
			cte_mouseboton ="e.which"}
		if (navegador_IE) {
			prefijo_objeto = "window.document.all."				
			cte_style = ".style"
			cte_visible = "visible"
			cte_postop = ".top"
			cte_postop2 = ".top.replace(/px/, '')"
			cte_posleft = ".left" 
			cte_alto = ".offsetHeight"
			cte_mousetop = "event.y+document.body.scrollTop"
			cte_mouseleft = "event.x+document.body.scrollLeft"
			cte_mouseboton ="event.button"}
			
		// codigo para funciones "DRAG & DROP"
	
			sw_arrastrar_sc=false;sw_arrastrar_capa2=false; // DEFINIR UN SW POR CADA CAPA "ARRASTRABLE"
		
		
		document.onmousedown = mouseDown;document.onmousemove = mouseMove;document.onmouseup = mouseUp
		if (navegador_Netscape) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
	}		
//*************************************************************************************
//	FUNCION : MOSTRAR_CAPA
//************************************************************************************	
	function mostrar_capa(nombre_capa) { 
	if (sw_capas_cargadas == true)
        	eval(prefijo_objeto + nombre_capa + cte_style + ".visibility = '" + cte_visible + "'")}
//************************************************************************************
//	FUNCION : OCULTAR_CAPA
//************************************************************************************	
	function ocultar_capa(nombre_capa) {
	if (sw_capas_cargadas == true)
       		eval(prefijo_objeto + nombre_capa + cte_style + ".visibility='hidden'") }
//************************************************************************************
//	FUNCION : MOVER_CAPA
//************************************************************************************	
	function mover_capa(nombre_capa, top_fin, left_fin, retardo, velocidad, aceleracion) 
	{
		var top_ini =  parseInt(eval(prefijo_objeto + nombre_capa + cte_style + cte_postop))
		var left_ini = parseInt(eval(prefijo_objeto + nombre_capa + cte_style + cte_posleft))
		
        var objeto = prefijo_objeto + nombre_capa + cte_style
        acel_x = velocidad; acel_y = velocidad
        movimiento(objeto, top_ini, left_ini, top_fin, left_fin, retardo, aceleracion);        
    }
	function movimiento(objeto, top_ini, left_ini, y_fin, x_fin, ret, acel) 
	{
		top_ini == y_fin ? incr_y = 0 : (top_ini < y_fin ? incr_y = acel_y : incr_y = acel_y * -1);
		left_ini == x_fin ? incr_x = 0 : (left_ini < x_fin ? incr_x = acel_x : incr_x = acel_x * -1);
		top_ini = top_ini + incr_y;				
		left_ini = left_ini + incr_x
		
		eval(objeto + ".top = +" + top_ini)		
		eval(objeto + ".left = +" + left_ini)
		
		if (top_ini == y_fin && left_ini == x_fin)
			return;
			
		y_ini = top_ini; x_ini = left_ini; r = ret; 
		if (acel > 0) {
			acel_x = acel_x + acel; acel_y = acel_y + acel } 
			
		top_ini	 < y_fin ? dif_y = y_fin - top_ini : dif_y = top_ini - y_fin
		left_ini < x_fin ? dif_x = x_fin - left_ini : dif_x = left_ini - x_fin
		if (acel_x > dif_x) acel_x = dif_x;
		if (acel_y > dif_y) acel_y = dif_y;
			
		if (acel < 0) {
			if (acel_x > 1) {
				acel_x = acel_x -1
				acel_y = acel_y -1 }
			else
				r = r + (acel * -1); }
		obj = objeto;xfin=x_fin;a=acel;yfin=y_fin
		setTimeout("movimiento(obj, y_ini, x_ini, yfin, xfin, r, a)", ret)
	}       
//************************************************************************************
//	FUNCION : SCROLL
//************************************************************************************	
	function scroll(scroll_nombre_capa, scroll_top_fin, scroll_retardo) 
	{	
		sw_fin_scroll=false;scroll_incremento_y=0;
		var scroll_top_ini = parseInt(eval(prefijo_objeto + scroll_nombre_capa + cte_style + cte_postop2))
		if (scroll_top_fin < scroll_top_ini) scroll_incremento_y = -3;
		if (scroll_top_fin > scroll_top_ini) scroll_incremento_y = 3;
        var scroll_objeto = prefijo_objeto + scroll_nombre_capa + cte_style
        var scroll_ret=scroll_retardo; scroll_y_fin=scroll_top_fin;
        mvto_scroll(scroll_objeto, scroll_top_ini, scroll_y_fin, scroll_ret)
    }
	function mvto_scroll(scroll_objeto, scroll_top_ini, scroll_y_fin, scroll_ret) 
	{
		scroll_top_ini = scroll_top_ini + scroll_incremento_y;
		if ((scroll_incremento_y < 0 && scroll_top_ini <= scroll_y_fin) || (sw_fin_scroll)) return;
		if ((scroll_incremento_y > 0 && scroll_top_ini >= scroll_y_fin) || (sw_fin_scroll)) return;
		if (scroll_top_ini != scroll_y_fin) 
		{
			eval(scroll_objeto + ".top = +" + scroll_top_ini)
			clip_top	= extrae_datos_clip(scroll_objeto, "t") + (scroll_incremento_y * -1)
			clip_bottom = extrae_datos_clip(scroll_objeto, "b") + (scroll_incremento_y * -1)
			clip_right	= extrae_datos_clip(scroll_objeto, "r")
			if (navegador_Netscape)	
			{
					eval(scroll_objeto + ".clip.top='" + clip_top +"'");
					eval(scroll_objeto + ".clip.bottom='" + clip_bottom +"'");	
			}
			else	eval(scroll_objeto + ".clip = 'rect(" + clip_top + "," + clip_right + "," + clip_bottom + ",0)'");	
		}	
		
		scroll_y_ini = scroll_top_ini;scroll_r = scroll_ret;scroll_obj = scroll_objeto
		setTimeout("mvto_scroll(scroll_obj, scroll_y_ini, scroll_y_fin, scroll_r)", scroll_ret)
	}
//************************************************************************************
//	FUNCION : EXTRAE DATOS CLIP
//************************************************************************************	
	function extrae_datos_clip(obj_clip, vertice)
	{	
		if (navegador_Netscape) {
			if (vertice=="t") return eval(obj_clip + ".clip.top");
			if (vertice=="r") return eval(obj_clip + ".clip.right");
			if (vertice=="b") return eval(obj_clip + ".clip.bottom");
			if (vertice=="l") return eval(obj_clip + ".clip.left"); }
		else  {
			var coord_clip = eval(obj_clip + ".clip") 
			coord_clip = coord_clip.split("rect(")[1].split(")")[0].split("px")
			if (vertice=="t") return Number(coord_clip[0])
			if (vertice=="r") return Number(coord_clip[1])
			if (vertice=="b") return Number(coord_clip[2])
			if (vertice=="l") return Number(coord_clip[3]) }
    } 
//************************************************************************************
//	FUNCION : PARA_SCROLL
//************************************************************************************	
	function para_scroll() {
       sw_fin_scroll = true; }	
//************************************************************************************
//	FUNCION : MOUSEDOWN (DRAG & DROP)
//************************************************************************************		
	function mouseDown(e) 
	{
		if (eval(cte_mouseboton + "!=1")) return true; //solo lo hacemos si pulsan boton izqdo.
		var x = eval(cte_mouseleft);
		var y = eval(cte_mousetop);
	
		// se definira un bloque como el siguiente por cada 'CAPA ARRASTRABLE"
		//ej. sc ****** SUSTITUIR TODOS LOS LITERALES sc POR NOMBRE CAPA
		//	sc_y_ini = parseInt(eval(prefijo_objeto + "sc" + cte_style + cte_postop))
		//	sc_y_fin = sc_y_ini + 100					//***** SUSTITUIR NUMERO POR ALTO DE LA CAPA
		//	sc_x_ini = parseInt(eval(prefijo_objeto + "sc" + cte_style + cte_posleft))
		//	sc_x_fin = sc_x_ini + 100					//***** SUSTITUIR NUMERO POR ANCHO DE LA CAPA
		//	if (x >= sc_x_ini && x <= sc_x_fin && y >= sc_y_ini && y <=sc_y_fin) sw_arrastrar_sc = true;
	
		//ej. capa2 ****** SUSTITUIR TODOS LOS LITERALES capa2 POR NOMBRE CAPA
		//	capa2_y_ini = parseInt(eval(prefijo_objeto + "capa2" + cte_style + cte_postop))
		//	capa2_y_fin = capa2_y_ini + 50					//***** SUSTITUIR NUMERO POR ALTO DE LA CAPA
		//	capa2_x_ini = parseInt(eval(prefijo_objeto + "capa2" + cte_style + cte_posleft))
		//	capa2_x_fin = capa2_x_ini + 150					//***** SUSTITUIR NUMERO POR ANCHO DE LA CAPA
		//	if (x >= capa2_x_ini && x <= capa2_x_fin && y >= capa2_y_ini && y <=capa2_y_fin) sw_arrastrar_capa2 = true;
	
		return true;
	}
//************************************************************************************
//	FUNCION : MOUSEMOVE (DRAG & DROP)
//************************************************************************************		
	function mouseMove(e) 
	{
		mouse_y = eval(cte_mousetop)
		if (sw_arrastrar_sc) {
			if (mouse_y < 200) mouse_y = 200; if (mouse_y > 360) mouse_y = 360;
			eval(prefijo_objeto + "sc" + cte_style + ".top = +" + mouse_y)		
			scroll('capa3',-250, 5) 
		}
		if (sw_arrastrar_capa2){
			eval(prefijo_objeto + "capa2" + cte_style + ".top = +" + eval(cte_mousetop))
			eval(prefijo_objeto + "capa2" + cte_style + ".left = +" + eval(cte_mouseleft)) }
	}
//************************************************************************************
//	FUNCION : MOUSEUP (DRAG & DROP)
//************************************************************************************		
	function mouseUp(e) 
	{
		if (sw_arrastrar_sc) { 	
			sw_arrastrar_sc = false;
			para_scroll(); }
		if (sw_arrastrar_capa2)	sw_arrastrar_capa2 = false;
	}



//comprueba que el email es correcto
function bool_CompruebaMail(campo, idioma){
	if (campo.value != "")
	{
		var bueno=true;
		var textoEsp="";
		var textoFra="";
		var textoIng="";		
		var texto="";
		var posultimopunto=campo.value.lastIndexOf('.');
		var posarroba=campo.value.indexOf('@')	;
		if(posarroba==-1){
			bueno=false;
			//texto="Valor incorrecto. La dirección de e-mail debe contener el caracter '@'.";
			textoEsp="El e-mail no tiene @";
			textoIng="Your e-mail address lacks the @";
			textoFra="Votre adresse électronique n'a pas de @";			
		}
		else if(posultimopunto>campo.value.length-3 || posultimopunto<campo.value.length-4){
			bueno=false;
			//texto="Valor incorrecto. El dominio debe tener 2 ó 3 caracteres";
			textoEsp="Valor incorrecto. El dominio sólo puede tener 2 ó 3 caracteres";
			textoIng="Your e-mail domain can only contain 2 or 3 characters";
			textoFra="Le domaine de votre adresse électronique ne peut contenir que 2 ou 3 caractères";			
		}
		else if(campo.value.substr(posarroba+1).indexOf("@")!=-1){
			bueno=false;
			//texto="Valor incorrecto. La dirección de e-mail tiene más de un caracter '@'";
			textoEsp="El e-mail tiene más de una @";
			textoIng="Your e-mail address has more than one @";
			textoFra="Votre adresse électronique a plus d'un @";
		}
		else if(campo.value.charAt(posarroba-1)=="."){
			bueno=false;
			//texto="No puede haber un punto delante de la @";
			textoEsp="No puede haber un punto delante de la @";
			textoIng="The @ in your e-mail address cannot be preceded by a dot";
			textoFra="Il ne peut pas y avoir un point devant le @ de votre adresse électronique";
		}
		else if(campo.value.indexOf(".")==0){
			bueno=false;
			//texto="El e-mail no puede empezar por un punto";
			textoEsp="El e-mail no puede empezar por un punto";
			textoIng="Your e-mail address cannot begin with a dot";
			textoFra="Votre adresse électronique ne peut pas commencer par un point";
		}
		for(var i=0;i<campo.value.length;i++){
			if(campo.value.charAt(i)=="." && campo.value.charAt(i+1)=="."){
				bueno=false;
				//texto="No puede haber dos puntos seguidos en el e-mail";
				textoEsp="No puede haber dos puntos seguidos en el e-mail";
				textoIng="Your e-mail address cannot contain two dots in succession";
				textoFra="Votre adresse électronique ne peut pas contenir deux points consécutifs";
				break;
			}
		}
		
		//idioma:
		//	=1	==>español;
		//	=2	==>inglés;
		//	=3	==>francés;
		if(!bueno){
			if(idioma==1){
				texto=textoEsp;
			}else if(idioma==2){
				texto=textoIng;
			}else if(idioma==3){
				texto=textoFra;
			}
			alert(texto);
			return false;
		}else{
			return true
		}	
		
	}
}



//comprueba que el email es correcto (para evento onBlur)
function CompruebaMail(campo,idioma){
	if(campo.value!=""){
		var bueno=true;
		var textoEsp="";
		var textoFra="";
		var textoIng="";
		var texto="";
		var posultimopunto=campo.value.lastIndexOf('.');
		var posarroba=campo.value.indexOf('@')	;
		if(posarroba==-1){
			bueno=false;
			textoEsp="El e-mail no tiene @";
			textoIng="Your e-mail address lacks the @";
			textoFra="Votre adresse électronique n'a pas de @";
		}
		else if(posultimopunto>campo.value.length-3 || posultimopunto<campo.value.length-4){
			bueno=false;
			textoEsp="El dominio sólo puede tener 2 ó 3 caracteres";
			textoIng="Your e-mail domain can only contain 2 or 3 characters";
			textoFra="Le domaine de votre adresse électronique ne peut contenir que 2 ou 3 caractères";
		}
		else if(campo.value.substr(posarroba+1).indexOf("@")!=-1){
			bueno=false;
			textoEsp="El e-mail tiene más de una @";
			textoIng="Your e-mail address has more than one @";
			textoFra="Votre adresse électronique a plus d'un @";
		}
		else if(campo.value.charAt(posarroba-1)=="."){
			bueno=false;
			textoEsp="No puede haber un punto delante de la @";
			textoIng="The @ in your e-mail address cannot be preceded by a dot";
			textoFra="Il ne peut pas y avoir un point devant le @ de votre adresse électronique";
		}
		else if(campo.value.indexOf(".")==0){
			bueno=false;
			textoEsp="El e-mail no puede empezar por un punto";
			textoIng="Your e-mail address cannot begin with a dot";
			textoFra="Votre adresse électronique ne peut pas commencer par un point";
		}
		for(var i=0;i<campo.value.length;i++){
			if(campo.value.charAt(i)=="." && campo.value.charAt(i+1)=="."){
				bueno=false;
				textoEsp="No puede haber dos puntos seguidos en el e-mail";
				textoIng="Your e-mail address cannot contain two dots in succession";
				textoFra="Votre adresse électronique ne peut pas contenir deux points consécutifs";
				break;
			}
		}
		
		//idioma:
		//	=1	==>español;
		//	=2	==>inglés;
		//	=3	==>francés;
		if(!bueno){
			if(idioma==1){
				texto=textoEsp;
			}else if(idioma==2){
				texto=textoIng;
			}else if(idioma==3){
				texto=textoFra;
			}
			alert(texto);
			campo.focus();
		}	
	}
}

//analiza la cadena obj y determina si alguno de sus caracteres no es numérico
function ComprobarDatosNoNumericos(obj, nombre, strIdio){
	var numerico=true;
	var sms="";
    for(var i=0; i<obj.length; i++){
		if((isNaN(obj.charAt(i))== true)&&(obj.charAt(i)!='-')&&(obj.charAt(i)!='+')){
			    	numerico = false;
			    	break;
		}
    }
    if (!numerico){
		if(strIdio=="ingles"){
			sms = "This field will only accept numerical data";
		}else if(strIdio=="frances"){
			sms = "Ce champ n'accepte que des données numériques";
		}else{
			sms = "Este campo sólo admite datos numéricos";
		}
		alert(sms);
		//eval("document.frmDatos." + nombre + ".value=''");
		eval("document.frmDatos." + nombre + ".focus()");
    }
}

//analiza la cadena obj y determina si alguno se sus caracteres es numérico
function ComprobarDatosNumericos(obj, nombre, strIdio){
	var numerico=false;
	var sms="";
	for(var i=0; i<obj.length; i++){
		if((isNaN(obj.charAt(i))==true)||(obj.charAt(i)==' ')||(obj.charAt(i)=='-')||(obj.charAt(i)=='´')){
			numerico = false;
		}else{
			numerico = true;
			break;
		}
	}
	if(numerico==true){
		if(strIdio=="ingles"){
			sms = "This field does not accept numbers";
		}
		else if(strIdio=="frances"){
			sms = "Ce champ n'accepte pas les numéros";
		}
		else{
			sms = "Este campo no admite números";
		}
		alert(sms);
		//eval("document.frmDatos." + nombre + ".value=''");
		eval("document.frmDatos." + nombre + ".focus()");
	}
}

/*function printit(){  
	if (window.print) {
	    window.print() ;  
	} else {
	    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
	document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
	    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
	}
}*/

//analiza la versión del navegador
function Imprimir(){
	//version = parseInt(navigator.appVersion);
		
	/*if((version==4 && navigator.appVersion.indexOf('MSIE 5')>=0)||(navigator.appName=="Netscape")){
		self.print();
	}*/
	if (window.print) {
	    window.print() ;
	}
}

