
// Desescapa els simbols XML que s'han escapat en el fitxer php de la peticio
function xml_unescape(str)
{
	str = str.replace(/&quot;/g, '"');
	str = str.replace(/&apos;/g, "'");
	str = str.replace(/&lt;/g	 , '<');
	str = str.replace(/&gt;/g  , '>');
	str = str.replace(/&amp;/g , '&');
	return str;
}

// Desescapa els simbols HTML que s'han escapat en el fitxer php de la peticio amb la funció htmlentities()
function html_unescape(str)
{
	if (str.indexOf('&') == -1) return str;    

	var html_enc = new Array('&amp;','&lt;','&gt;','&quot;','&#039;','&euro;','&Agrave;','&Aacute;','&Acirc;','&Atilde;','&Auml;','&Aring;','&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;','&Euml;','&Igrave;','&Iacute;','&Icirc;','&Iuml;','&ETH;','&Ntilde;','&Ograve;','&Oacute;','&Ocirc;','&Otilde;','&Ouml;','&Oslash;','&Ugrave;','&Uacute;','&Ucirc;','&Uuml;','&Yacute;','&THORN;','&szlig;','&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&ouml;','&oslash;','&ugrave;','&uacute;','&ucirc;','&uuml;','&yacute;','&thorn;','&yuml;','&ordf;','&ordm;','&shy;','&iexcl;','&cent;','&pound;','&curren;','&yen;','&brvbar;','&sect;','&uml;','&copy;','&laquo;','&not;','&reg;','&macr;','&deg;','&plusmn;','&sup2;','&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;','&sup1;','&raquo;','&frac14;','&frac12;','&frac34;','&iquest;','&divide;');
	var html_dec = new Array('&','<','>','"','\\\'','€','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','þ','ÿ','ª','º','','¡','¢','£','¤','¥','¦','§','¨','©','«','¬','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','»','¼','½','¾','¿','÷');

	var n = html_dec.length;
	for (var i=0; i<n; i++)
	{
		eval("str = str.replace(/"+html_enc[i]+"/g , '"+html_dec[i]+"');");	
	}
	return str;
}


// Rep un item XML i retorna el valor "data" si pot, si no retorna "";
function xml_consultaDada(item)
{
	var ret = "";
	if (!item) return "";
	if (!item.childNodes) return "";
	for (var i=0; i < item.childNodes.length; i++){
		if (item.childNodes[i].data) ret += item.childNodes[i].data;
	}
	return ret;
}




//***************************************
// AJAX
//***************************************
var http_request = false;
var b_http_request = false;

function unloadHttpRequest()
{
	var esborra = false;
	try{
		if (http_request != false) 	{
			esborra = true;
		}
	}
	catch(e){
		esborra = true;
	}
	if (esborra == true)
	{
		try{
			delete(http_request);
		}catch(e){}
		http_request = false;
	}
}

function buscaActiveX()
{
//	try{ return new ActiveXObject("Msxml2.XMLHTTP.6.0") }catch(e){}
//	try{ return new ActiveXObject("Msxml2.XMLHTTP.3.0") }catch(e){}
	try{ return new ActiveXObject("Msxml2.XMLHTTP") 		}catch(e){}
	try{ return new ActiveXObject("Microsoft.XMLHTTP")	}catch(e){}
	return false;
}

var buffURL = [];
var buffValors = [];
var timOut = 0;
function buffer(url, valors)
{
	buffURL.push(url);	
	buffValors.push(valors);
	if (timOut == 0) timOut = setTimeout("esperaConsultaHttp()", 100);
}
function esperaConsultaHttp()
{
	if (b_http_request == false)
	{
		var url = buffURL.shift();
		var valors = buffValors.shift();
		consultaHttp(url, valors);
	}
	if (buffURL.length > 0) 		timOut = setTimeout("esperaConsultaHttp()", 100);
	else timOut = 0;
}

function consultaHttp(url,valors)
{
	if (valors == undefined) valors = "";
	
	// Si http_request està ocupat, ens esperem
	if (b_http_request != false) {
		buffer(url, valors);//alert("Petición en curso. Si persiste este mensaje intenta recargar la página o contacta con barcelona-dance.com");//disabled cause this breaks buffer
		return false;
	}

	b_http_request = true;
	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		http_request = buscaActiveX();
	}	
	if (!http_request) {
		alert('Error :( No es posible crear una instancia XMLHTTP');
		return false;
	}

	http_request.onreadystatechange = alertContents;
	if (valors == undefined || valors == '')
	{
		http_request.open('GET', url, true);
		http_request.send(null);
	}
	else
	{
		// Enviem els valors per POST
		http_request.open ('POST', url, true);
		http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		http_request.send(valors);
	}
	
	return true;
}


function alertContents() 
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			// alert(http_request.responseText);
			var xmldoc = http_request.responseXML;	
			
			var tipusConsulta = xmldoc.getElementsByTagName('tipusConsulta').item(0);
			if (tipusConsulta.firstChild.data == "frm1_dadesUsuari") 							omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "comprovaUsuari") 					comprovaUsuariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm2_dadesEscola") 				omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm2_esborrarFoto") 				esborrarFotoResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm2_llistatEscoles")			actualitzaLlistatEscolesResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm2_escolesPromocionades")consultaEscolesPromocionadesResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm3_dadesEvent") 					omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm3_esborrarLogo")				esborrarLogoResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm3_cercar")							omplirLista(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm4_dadesCurs") 					omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm4_cercar")							omplirLista(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm6_dadesShow") 					omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm6_esborrarFoto") 				esborrarFotoResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm4_esborrarFoto") 				esborrarFotoResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm7_dadesOferta") 				omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm7_esborrarFoto") 				esborrarFotoResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm7_llistatOfertes")			actualitzaLlistatOfertesResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm7_escolesPromocionades")			consultaOfertesPromocionadesResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm8_dadesBeca") 				omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm8_esborrarFoto") 				esborrarFotoResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm8_llistatBeca")				actualitzaLlistatBecasResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm9_dadesCasting") 				omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm9_esborrarFoto") 				esborrarFotoResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm9_llistatCasting")			actualitzaLlistatAudicionessResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm10_dadesProducte")			omplirFormulariResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm10_esborrarFoto")				esborrarFotoResp(xmldoc);
			else if (tipusConsulta.firstChild.data == "frm10_cercar")					omplirLista(xmldoc); // IMPLEMENTADA per JT
			else if (tipusConsulta.firstChild.data == "calendariEvents") 				calendariEventsResp(xmldoc);
//alert("end of ajax reply");
			http_request = false;
			b_http_request = false;

		}
		else
		{
			alert('Hi ha hagut problemes amb la peticio.');
		}
	}
}

