/** ****************************************************************
 * Functiones globales de JavaSCript
 * 
 * @author Arturo Diaz
 * @copyright RuralGest
 * @version 1.0.0.0
 * @since 15/02/2010
 * 
 ***************************************************************** */

/**
 * Crea una capa en el documento con el nombre indicado
 * 
 * @param string nombre_capa
 * @return Objeto => La capa en cuestión
 */
function glb_CrearCapa(nombre_capa)
{
	if(!document.getElementById(nombre_capa))
	{
		capa=document.createElement('div');
		capa.id=nombre_capa;
		capa.name=nombre_capa;
		document.body.appendChild(capa);
	} else
		capa=document.getElementById(nombre_capa);
	
	return capa;
}

/**
 * Devuelve el HTML de "Cargando"
 * @param string ruta_raiz => ruta parcial hasta el raiz de SCR
 * @param solo_imagen => True=> solo devuelve la imagen
 * return string => HTML
 */
function glb_getHTMLCargando(ruta_raiz,solo_imagen,zona)
{
	if(solo_imagen)
		return '<img id="glb_capa_cargando_2010" src="'+ruta_raiz+'modulos/oficinas_turismo/images/ajax-loader.gif" title="Please Wait ...." border="0" align="absmiddle">';
	else if(zona=='CoreSearch')
		return '<div id="glb_capa_cargando_2010" style=" margin-top:50px; margin-left:50px;"><span style="font-family:Arial, Helvetica, sans-serif; font-size:20px; color:#0369c8;"><img src="'+ruta_raiz+'modulos/oficinas_turismo/images/ajax-loader.gif" title="Cargando ...." border="0" align="absmiddle">&nbsp;&nbsp;Please Wait .....</span></div>';
	else
		return '<span id="glb_capa_cargando_2010" style="font-family:Arial, Helvetica, sans-serif; font-size:11px; color:#0369c8;"><img src="'+ruta_raiz+'modulos/oficinas_turismo/images/ajax-loader.gif" title="Cargando ...." border="0" align="absmiddle">&nbsp;Please Wait .....</span>';
}

function glb_getHTMLCargando_CS(ruta_raiz,id_casa,P_ancho)
{
	ancho=870;
	if(P_ancho>0)
		ancho=P_ancho;
	return '<div id="glb_capa_cargando_'+id_casa+'" name="glb_capa_cargando_'+id_casa+'" class="glb_capa_cargando_'+id_casa+'" style="margin-top:35px; padding-top:50px; padding-left:50px; background-color:#FFF; height:100px; width:'+ancho+'px; position:absolute; left:0px; top:0px;"><span style="font-family:Arial, Helvetica, sans-serif; font-size:25px; color:#D3CFCF;"><b>Please Wait .....</b>&nbsp;&nbsp;<img src="'+ruta_raiz+'images/ajax-loader_cs.gif" title="Loading ...." border="0" align="absmiddle"></span></div>';
}

function EleccionServicios(id_cas,idiom,operado,puede_sel)
{
	//precios_v0_2.php?id_casa=<? echo($id_casa ."&". $Opera); ?>&idioma='+Globales.idioma;
	dir="./modulos/servicios/servicios.php?puede_sel="+puede_sel+"&id_casa="+id_cas+"&idioma="+idiom+"&operador="+operado;
	
	//alert(dir);
	window.open(dir,'condicionesreserva','scrollbars=yes,width=420,height=400,status=yes');
}

/**
 * Da formato a importes en JavaScript
 * @param float valor => Numero a formatear
 * @param int dec => numero de decimales
 * @param boolean miles => True pone separador de miles
 * @return string
 */
function FormatoPrecio(valor,dec,miles)
{
	var num = valor, signo=3, expr;
	var cad = ""+valor;
	var ceros = "", pos, pdec, i;
	for (i=0; i < dec; i++)
		ceros += '0';
	pos = cad.indexOf('.')

	if (pos < 0)
		cad = cad+"."+ceros;
	else
	{
		pdec = cad.length - pos -1;
		if (pdec <= dec)
		{
			for (i=0; i< (dec-pdec); i++)
			cad += '0';
		}
		else
		{
			num = num*Math.pow(10, dec);
			num = Math.round(num);
			num = num/Math.pow(10, dec);
			cad = new String(num);
		}
	}

	pos = cad.indexOf('.')
	if (pos < 0) pos = cad.lentgh
	if (cad.substr(0,1)=='-' || cad.substr(0,1) == '+') 
		signo = 4;
	if (miles && pos > signo)
	do
	{
		expr = /([+-]?\d)(\d{3}[\.\,]\d*)/;
		cad.match(expr);
		cad=cad.replace(expr, RegExp.$1+','+RegExp.$2);
	}
	while (cad.indexOf(',') > signo)
		if (dec<0)
			cad = cad.replace(/\./,'')
			
	cad=cad.replace(',','-');
	cad=cad.replace('.',',');
	cad=cad.replace('-','.');
	return cad;
}

	/**
	 * Clase para el control de texto escrito en campos numericos
	 * y control e tipo numerico pulsado, entero doble, nº de decimales
	 * 
	 * @author Arturo Díaz
	 * @since 20/09/2010
	 * @version 1.0.0.0
	 */
	TControlPulsacionNumerica = 
	{
	    // ---- Propiedades ----
	     
	    //Número de decimales en la caja de texto.
	    NumeroDeDecimales: "2",
	 
	    // ----- Métodos -----
	     
	    /**
	     * Controlador que solo permite escribir enteros
	     */
	    EnterosHandled: function(e) 
	    {
	        if (e.which >= 48 & e.which <= 57 | e.which == 8) 
	            return true;
	        else 
	            e.preventDefault();
	    },
	 
	    /**
	     * Controlador que permite escribir decimales
	     */
	    DecimalesHandled: function(e, text) 
	    {
	        var decimales = 0;
	 
	        if (TControlPulsacionNumerica.ContarPuntos(text) > 0) 
	            decimales = TControlPulsacionNumerica.CantidadDecimales(text);
	         
	        if (e.which >= 48 & e.which <= 57 & decimales < TControlPulsacionNumerica.NumeroDeDecimales | e.which == 8) 
	            return true;
	        else 
	        {
	            if (text != "" & e.which == 46 & TControlPulsacionNumerica.ContarPuntos(text) == 0)
	                return true;
	            else 
	                e.preventDefault();
	        }
	    },
	 
	    /**
	     * Controlador que solo permite escribir texto
	     */
	    SoloTextoHandled: function(e) 
	    {
	        if ((e.which >= 97 & e.which <= 122) | (e.which >= 65 & e.which <= 90) | e.which == 32 | e.which == 8) 
	            return true;
	        else 
	            e.preventDefault();
	    },
	 
	    /**
	     * Controlador que solo permite alfanumeríco
	     */
	    AlfanumericoHandled: function(e) 
	    {
	        if ((e.which >= 48 & e.which <= 57) | (e.which >= 97 & e.which <= 122) | (e.which >= 65 & e.which <= 90) | e.which == 32 | e.which == 8) 
	            return true;
	        else 
	            e.preventDefault();
	    },
	 
	    /**
	     * Cuenta el numero de puntos de una cadena, para los double
	     */
	    ContarPuntos: function(input) 
	    {
	        var cant = 0;
	        if (input != null) 
	        {
	            for (var i = 0; i < input.length; i++) 
	                if (input[i] == '.')
	                    cant += 1;
	        }
	        return cant;
	    },
	 
	    /**
	     * Control del numero de digitos despues del punto
	     */
	    CantidadDecimales: function(input) 
	    {
	        var cant = 0;
	        if (input.indexOf(".") != -1)
	            cant = input.substr(input.indexOf(".") + 1).length;
	        return cant;
	    }
	};
