var $j = jQuery;

function agregarFavoritos(Titulo,URL) { 
	if (navigator.appName=='Netscape') { 
		window.sidebar.addPanel(Titulo,URL,''); 
	}
	if (navigator.appName=='Microsoft Internet Explorer') {
		window.external.AddFavorite(URL,Titulo);
	}
}

function escribeMail( nom, dom, etiqueta){
	if ( !etiqueta ){
		etiqueta = nom+'@'+dom;
	}
    document.write( '<a hr'+'ef="mai'+'lto:'+nom+'@'+dom+'">'+etiqueta+'</a>' );
}

//Tratamiento de target_blank
function loadExternalUrl(){

    if( !document.getElementsByTagName ){
        return;
    }

    var links = document.getElementsByTagName( 'a' );
    for( var i=0; i<links.length; i++ ){
    	if( links[i].rel=="external" ){
			links[i].target="_blank";
        }
    }

}

//Función para redondear un número
function roundNumber(number,decimals) {
	var newString;// The new rounded number
	decimals = Number(decimals);
	if (decimals < 1) {
		newString = (Math.round(number)).toString();
	} else {
		var numString = number.toString();
		if (numString.lastIndexOf(".") == -1) {// If there is no decimal point
			numString += ".";// give it one at the end
		}
		var cutoff = numString.lastIndexOf(".") + decimals;// The point at which to truncate the number
		var d1 = Number(numString.substring(cutoff,cutoff+1));// The value of the last decimal place that we'll end up with
		var d2 = Number(numString.substring(cutoff+1,cutoff+2));// The next decimal, after the last one we want
		if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated
			if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point
				while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {
					if (d1 != ".") {
						cutoff -= 1;
						d1 = Number(numString.substring(cutoff,cutoff+1));
					} else {
						cutoff -= 1;
					}
				}
			}
			d1 += 1;
		} 
		if (d1 == 10) {
			numString = numString.substring(0, numString.lastIndexOf("."));
			var roundedNum = Number(numString) + 1;
			newString = roundedNum.toString() + '.';
		} else {
			newString = numString.substring(0,cutoff) + d1.toString();
		}
	}
	if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string
		newString += ".";
	}
	var decs = (newString.substring(newString.lastIndexOf(".")+1)).length;
	for(var i=0;i<decimals-decs;i++) newString += "0";
	//var newNumber = Number(newString);
	return newString;
}


//función que muestra la imagen de carga
function mostrarCargando() {
	//muestro el popup
	popUpCargando = true;
	var sombra = $j('#fondoOpaco');
	var popUp = $j('#cargando');
	sombra.fadeTo(0,0);
	sombra.css('display','block');                                   
	sombra.fadeTo(250,0.8);
	centraPopUp(popUp);
	popUp.fadeIn(250);
}

//función que muestra la imagen de carga
function mostrarPopUp(popUp) {
	//muestro el popup
	var sombra = $j('#fondoOpaco');
	var popUp = $j('#'+popUp);
	sombra.fadeTo(0,0);
	sombra.css('display','block');                                   
	sombra.fadeTo(250,0.8);
	centraPopUp(popUp);
	popUp.fadeIn(250);
}

//función que oculta el popup
function cierraPopUp(id) {
	var sombra = $j('#fondoOpaco');
	if (id) {
		$j('#'+id).fadeOut(250);
	} else {
		if ( popUpCantidad ) {
			$j('#popUpCantidad').fadeOut(250);
			popUpCantidad = false;
		}
		if ( popUpCargando ) {
			$j('#cargando').fadeOut(250);
			popUpCargando = false;
		}
	}
	sombra.fadeOut(250);
}

//Obtiene datos de una url y los carga en el objeto con el id que se le pasa
function carga(url,id,params) {
	var data = "";
	if ( params ) {
		data = params;
	}
	mostrarCargando();
	$j.ajax({
		type	: 'POST',
		url		: url,
		data	: data,
		success	: function(msg){
			cierraPopUp();
 			$("#"+id).html(msg);
		}
	});
}

//función para pasar de página en el paginador
function pasarPagina(pagActual, itemsPorPag, idContenedor, url) {
	var params = 'pagActual='+pagActual+'&itemsPorPagina='+itemsPorPag;
	carga(url, idContenedor, params);
}

//centra el popup en la ventana
function centraPopUp(popUp){

    //obtenemos el tamaño del contenido, el tamaño de la ventana y hacemos la propoción para centrarlo 
    var anchoPopUp = popUp.outerWidth();
    var altoPopUp = popUp.outerHeight();
    var anchoVentana = $j(window).width();
    var altoVentana = $j(window).height();
    var nuevoLeft = Math.floor((anchoVentana / 2) - (anchoPopUp / 2));
    var nuevoTop = Math.floor((altoVentana / 2) - (altoPopUp / 2));
    
    popUp.css('left', nuevoLeft);
    popUp.css('top', nuevoTop);
}

//Devuelve: 1 = NIF ok, 2 = CIF ok, 3 = NIE ok, -1 = NIF error, -2 = CIF error, -3 = NIE error, 0 = ??? error
function validaNifCifNie(a) 
{
	// Devolvemos ok por defecto ya que se han encontrado problemas con DNI no espanoles
	return true;
	
	var temp=a.toUpperCase();
	var cadenadni="TRWAGMYFPDXBNJZSQVHLCKE";
 
	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.charAt(2))+parseInt(a.charAt(4))+parseInt(a.charAt(6));
		for (i = 1; i < 8; i += 2)
		{
			temp1 = 2 * parseInt(a.charAt(i));
			temp1 += '';
			temp1 = temp1.substring(0,1);
			temp2 = 2 * parseInt(a.charAt(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.charAt(8) == String.fromCharCode(64 + n))
			{
				return 1;
			}
			else
			{
				return -1;
			}
		}
 
		//comprobacion de CIFs
		if (/^[ABCDEFGHJNPQRSUVW]{1}/.test(temp))
		{
			temp = n + '';
			if (a.charAt(8) == String.fromCharCode(64 + n) || a.charAt(8) == parseInt(temp.substring(temp.length-1, temp.length)))
			{
				return 2;
			}
			else
			{
				return -2;
			}
		}
 
		//comprobacion de NIEs
		//T
		if (/^[T]{1}[A-Z0-9]{8}$/.test(temp))
		{
			if (a.charAt(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.charAt(8) == cadenadni.substring(pos, pos + 1))
			{
				return 3;
			}
			else
			{
				return -3;
			}
		}
	}
 
	return 0;
}

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, p = position;
	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[p] = s[p].split(f[j]).join(ra ? r[j] || '' : r[0]), ++j in f){};
		}
	};

	return sa ? s : s[0];
}

$j(document).ready(function() {

	//cerrar el popUp al apretar 'Esc'
	$j(document).keyup(function(event){
        //Esc
        if (event.keyCode == 27) {
        	cierraPopUp('politicaPrivacidad');
        }
	});
	
	$j('#politicaPrivacidad').click(function () { 
		cierraPopUp('politicaPrivacidad');
    });

	$j('#fondoOpaco').click(function () { 
		cierraPopUp('politicaPrivacidad');
    });
	
});
