	function createRequestObject() {
		var ro;
		var browser = navigator.appName;
		if(browser == "Microsoft Internet Explorer")
			ro = new ActiveXObject("Microsoft.XMLHTTP");
		else
			ro = new XMLHttpRequest();
		return ro;
	} 
	
	function sndReq(url,fcn,param) {
		var http = createRequestObject();
		var funcion = "vacio";
		var parametros = "";
		if(typeof(fcn) != "undefined")
			funcion = fcn;
		if(typeof(param) != "undefined")
			parametros = param;
	
		http.open('get', url);
        http.onreadystatechange = function handleResponse() {
			if((http.readyState == 4) && (http.status == 200)) {
				var response = unescape(http.responseText.replace(/\+/g,  " "));
				eval(funcion + "(response,'" + parametros + "')");
			}
		}
		http.send(null);
	}

	function vacio(valores) {
		return;
	}
	
	function evalParam(param) {
		salida = '';
		paramArray = param.split("&");
		for(i=0;i<paramArray.length;i++) {
			datos = paramArray[i].split('=');
			if(datos.length == 2)
				salida = salida + datos[0] + " = '" + datos[1] + "';";
		}
		return salida;
	}

	var fotosPag = 5; // Número de fotos que sale en la paginación.
	function galeria(id,num,numTotal) {
		fotosN = document.getElementsByTagName('div');
		fotoOn = 1;
		fotoExp = new RegExp(id + "-");
		for(i=0;i<fotosN.length;i++) {
			if(fotosN[i].id.indexOf(id) == 0) {
				fotoOn = parseInt(fotosN[i].id.replace(fotoExp, ""));
				if(fotosN[i].style.display == "") {
					if(num == '+') num = fotoOn + 1;
					if(num == '-') num = fotoOn - 1;
				}
				fotosN[i].style.display = 'none';
			}
		}
		if(num == 0) num = numTotal;
		if((num > numTotal) || isNaN(num)) num = 1;
		if(fotoN = document.getElementById(id + '-' + num)) fotoN.style.display = "";
		
		contenidoPag = '';
		if(pag = document.getElementById('pag-' + id)) {
			/* if(num == 1)
				contenidoPag = contenidoPag + '<img src="/img/atzera_off.gif"/>';
			else
				contenidoPag = contenidoPag + '<a href="JavaScript:galeria(\'' + id + '\',' + (num - 1) + ',' + numTotal + ');"><img src="/img/atzera.gif"/></a>'; */
			contenidoPag = contenidoPag + '<span class="pag">' + num + '</span> / ' + numTotal;
			/* if(num == numTotal)
				contenidoPag = contenidoPag + '<img src="/img/aurrera_off.gif"/>';
			else
				contenidoPag = contenidoPag + '<a href="JavaScript:galeria(\'' + id + '\',' + (num + 1) + ',' + numTotal + ');"><img src="/img/aurrera.gif"/></a>'; */
			pag.innerHTML = contenidoPag;
		}
	}
	
	function cargar_foto(respuesta,parametros) {
		eval(evalParam(parametros));
		if(foto = document.getElementById(id))
			foto.innerHTML = respuesta;
	}
	
	function contacto(mail,dominio) {
		window.location = 'mail' + 'to:' + mail + '@' + dominio;
	}
	
	/**
	*
	* URL encode / decode
	* http://www.webtoolkit.info/
	*
	**/

	var Url = {

	    // public method for url encoding
	    encode : function (string) {
	        return escape(this._utf8_encode(string));
	    },

	    // public method for url decoding
	    decode : function (string) {
	        return this._utf8_decode(unescape(string));
	    },

	    // private method for UTF-8 encoding
	    _utf8_encode : function (string) {
	        string = string.replace(/\r\n/g,"\n");
	        var utftext = "";

	        for (var n = 0; n < string.length; n++) {

	            var c = string.charCodeAt(n);

	            if (c < 128) {
	                utftext += String.fromCharCode(c);
	            }
	            else if((c > 127) && (c < 2048)) {
	                utftext += String.fromCharCode((c >> 6) | 192);
	                utftext += String.fromCharCode((c & 63) | 128);
	            }
	            else {
	                utftext += String.fromCharCode((c >> 12) | 224);
	                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
	                utftext += String.fromCharCode((c & 63) | 128);
	            }

	        }

	        return utftext;
	    },

	    // private method for UTF-8 decoding
	    _utf8_decode : function (utftext) {
	        var string = "";
	        var i = 0;
	        var c = c1 = c2 = 0;

	        while ( i < utftext.length ) {

	            c = utftext.charCodeAt(i);

	            if (c < 128) {
	                string += String.fromCharCode(c);
	                i++;
	            }
	            else if((c > 191) && (c < 224)) {
	                c2 = utftext.charCodeAt(i+1);
	                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
	                i += 2;
	            }
	            else {
	                c2 = utftext.charCodeAt(i+1);
	                c3 = utftext.charCodeAt(i+2);
	                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
	                i += 3;
	            }

	        }

	        return string;
	    }

	}
