//--------------------------------------------------------------------------
// main.js
//--------------------------------------------------------------------------
// Javascript amb les funcions pel Restaurant La Riereta
// Autor: Daniel Mondria
// Data: 30 - SETEMBRE - 2009
//--------------------------------------------------------------------------

//<![CDATA[
	
	// Funció que carrega una pàgina html dins un div (fent servir un iFrame)
	// @param div El ID del div on es vol carregar la pàgina
	// @param html El fitxer html a carregar
	function loadDivHtml( div, html ) {
		var tDiv = document.getElementById(div);
		//var strHtml = "<iframe src ='" + html + "' width='750' height='500' frameborder='0'></iframe>";
		var strHtml = "<iframe src ='" + html + "' width='800' height='500' frameborder='0'></iframe>";
		tDiv.innerHTML = strHtml;
	}

	function loadDivHtmlMenuGrup( div, html ) {
		var tDiv = document.getElementById(div);
		html += "?dummy="+Math.random();
		var strHtml = "<iframe src ='" + html + "' width='500' height='830' frameborder='0'></iframe>";
		tDiv.innerHTML = strHtml;
	}
	
	function loadDivHtmlMenuEspecial( div, html ) {
		var tDiv = document.getElementById(div);
		var strHtml = "<iframe src ='" + html + "' width='750' height='480' frameborder='0'></iframe>";
		tDiv.innerHTML = strHtml;
	}

	// Funció que carrega el contingut d'una sseció de XML donadda dins un div
	// Fa servir 1 funció genérica per fer la càrrega del xml i 2 funcions pròpies per fer el parseig
	// @param div El ID del div on es vol carregar la pàgina
	// @param xmlFile El fitxer XML a carregar
	// @param seccio La seccio del xml q es vol parsejar. Si la secció és "vins" es fa servir la funció
	// que parseja els vins, 'parseXmlStringVins', q parseja els diferents típus de vins i caves. Si no,
	// es fa servir la funció 'parseXmlString que parseja tots els típus de plats (tots igual).
	function loadDivXml( div, xmlFile, seccio ) {
		var strXmlHtml="";
		var tDiv = document.getElementById(div);
		var strXmlFileContent = loadXml( xmlFile );
		if ( strXmlFileContent != null ) {
			if ( seccio == "vins" ) {
				strXmlHtml =  parseXmlStringVins( strXmlFileContent );
				posarFotoSeccio( seccio );
			}
			else if ( ( seccio == "dilluns" ) || ( seccio == "dimarts" ) || ( seccio == "dimecres" ) || ( seccio == "dijous" ) || ( seccio == "divendres" ) ||
								( seccio == "menu1" ) || ( seccio == "menu2" ) || ( seccio == "menu3" ) )
				strXmlHtml =  parseXmlStringMenu( strXmlFileContent, seccio, true );
			else if ( seccio == "setmana" ) {
				strXmlHtml +=  parseXmlSetmanaMenu( strXmlFileContent );
				strXmlHtml +=  parseXmlStringMenu( strXmlFileContent, "dilluns", false );
			}
			else if ( seccio == "events" )
				strXmlHtml =  parseXmlStringEvents( strXmlFileContent );
			else
				strXmlHtml = parseXmlStringCarta( strXmlFileContent, seccio );
		}
		tDiv.innerHTML = strXmlHtml;
	}

	
	function parseXmlSetmanaMenu( strXmlFileContent ) {
		var strHtmlReturn = "";
		// Posem la setmana del menú
		var seccioSetmanaXml = strXmlFileContent.getElementsByTagName("menu");
		if ( seccioSetmanaXml.length > 0 ) {
			var strSetmana = seccioSetmanaXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strSetmana + "</p>";
		}
		return strHtmlReturn;
	}
	
	// Funció que carrega un fitxer xml a memòria i el retorna en un string
	// @param xmlFile El fitxer XML a carregar
	// @return Un String amb el contingut del XML (o null si no s'ha pogut carergar el fitxer)
	function loadXml( xmlFile ) {
		xmlFile += "?dummy="+Math.random();
		var isIE = /*@cc_on!@*/false;
		if ( isIE ) {
			// IE 5 and IE 6 and IE 7
			var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async=false;
			xmlDoc.load(xmlFile);
			return xmlDoc.documentElement;
		}
		else {
			// Mozilla FF & Chrome
			var xmlDoc = new window.XMLHttpRequest();
			xmlDoc.open("GET",xmlFile,false);
			xmlDoc.send("");
			return xmlDoc.responseXML;
		}
	}

	// Funció que parseja una secció (de plats, no de vins) i la retorna en un string formatada per html
	// @param strXmlFileContent Un String amb el contingut del fitxer XML a parsejar
	// @param seccio La seccio a parsejar del XML
	// @return Un String amb el contingut del XML (o "" si no s'ha pogut carergar el fitxer)
	function parseXmlStringCarta( strXmlFileContent, seccio ) {
		var strHtmlReturn = "";
		// Posem la desc del tipus de menjar
		var seccioXml = strXmlFileContent.getElementsByTagName(seccio);
		if ( seccioXml.length > 0 ) {
			var strTipus = seccioXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strTipus + "</p>";
		}
		// Posem els palts del tipus passat
		strHtmlReturn += "<p class='classePlatsMenu'>";
		var seccioXml = strXmlFileContent.getElementsByTagName(seccio);
		if ( seccioXml.length > 0 ) {
			var plats = seccioXml[0].getElementsByTagName("plat");
			for ( var i = 0; i < plats.length; i++ ) {
				var desc = plats[i].getAttribute("desc");
				strHtmlReturn += "<img src='../img/punt.gif'> " + desc + "<br>";
			}
		}
		strHtmlReturn += "</p>";
		posarFotoSeccio( seccio );
		return strHtmlReturn;
	}
	
	function posarFotoSeccio( seccio ) {
		if ( seccio == "entrants" ) {
			var tDiv = document.getElementById("divFotoPetitaCuina");
			var strHtml = "<img src='../img/cuina_foto_entrants.jpg'>";
			tDiv.innerHTML = strHtml;
		}
		else if ( seccio == "amanides" ) {
			var tDiv = document.getElementById("divFotoPetitaCuina");
			var strHtml = "<img src='../img/cuina_foto_amanides.jpg'>";
			tDiv.innerHTML = strHtml;
		}
		else if ( seccio == "segons" ) {
			var tDiv = document.getElementById("divFotoPetitaCuina");
			var strHtml = "<img src='../img/cuina_foto_1.jpg'>";
			tDiv.innerHTML = strHtml;
		}
		else if ( seccio == "postres" ) {
			var tDiv = document.getElementById("divFotoPetitaCuina");
			var strHtml = "<img src='../img/cuina_foto_postres.jpg'>";
			tDiv.innerHTML = strHtml;
		}
		else if ( seccio == "vins" ) {
			var tDiv = document.getElementById("divFotoPetitaCuina");
			var strHtml = "<img src='../img/cuina_foto_1.jpg'>";
			tDiv.innerHTML = strHtml;
		}
		else {
			var tDiv = document.getElementById("divFotoPetitaCuina");
			var strHtml = "<img src='../img/cuina_foto_1.jpg'>";
			tDiv.innerHTML = strHtml;
		}
	}

	// Funció que parseja la secció vins i la retorna en un string formatada per html
	// @param strXmlFileContent Un String amb el contingut del fitxer XML a parsejar
	// @param seccio La seccio a parsejar del XML
	// @return Un String amb el contingut del XML (o "" si no s'ha pogut carregar el fitxer)
	function parseXmlStringVins( strXmlFileContent ) {
		var strHtmlReturn = "";
		var tipusViXml = "";
		// Blancs
		tipusViXml = strXmlFileContent.getElementsByTagName("blancs");
		if ( tipusViXml.length > 0 ) {
			var strTipus = tipusViXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strTipus + "</p>";
		}
		strHtmlReturn += "<p class='classePlatsMenu'>";
		strHtmlReturn += parseXmlStringTipusVi( strXmlFileContent, "blancs" );
		strHtmlReturn += "</p>";
		// Rosats
		tipusViXml = strXmlFileContent.getElementsByTagName("rosats");
		if ( tipusViXml.length > 0 ) {
			var strTipus = tipusViXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strTipus + "</p>";
		}
		strHtmlReturn += "<p class='classePlatsMenu'>";
		strHtmlReturn += parseXmlStringTipusVi( strXmlFileContent, "rosats" );
		strHtmlReturn += "</p>";
		// Negres
		tipusViXml = strXmlFileContent.getElementsByTagName("negres");
		if ( tipusViXml.length > 0 ) {
			var strTipus = tipusViXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strTipus + "</p>";
		}
		strHtmlReturn += "<p class='classePlatsMenu'>";
		strHtmlReturn += parseXmlStringTipusVi( strXmlFileContent, "negres" );
		strHtmlReturn += "</p>";
		// Caves
		tipusViXml = strXmlFileContent.getElementsByTagName("caves");
		if ( tipusViXml.length > 0 ) {
			var strTipus = tipusViXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strTipus + "</p>";
		}
		strHtmlReturn += "<p class='classePlatsMenu'>";
		strHtmlReturn += parseXmlStringTipusVi( strXmlFileContent, "caves" );
		strHtmlReturn += "</p>";
		return strHtmlReturn;
	}
	
	// Funció que parseja els vins d'una de les seves subseccions (blancs, rosats, negres o caves)
	// @param strXmlFileContent Un String amb el contingut del fitxer XML a parsejar
	// @param seccio La subseccio de vi a parsejar del XML
	// @return Un String amb el contingut del XML (o "" si no s'ha pogut carergar el fitxer)
	function parseXmlStringTipusVi( strXmlFileContent, tipusVi ) {
		var strHtmlVinsReturn = "";
		var seccioXml = strXmlFileContent.getElementsByTagName(tipusVi);
		if ( seccioXml.length > 0 ) {
			var vins = seccioXml[0].getElementsByTagName("vi");
			for ( var i = 0; i < vins.length; i++ ) {
				var nom = vins[i].getAttribute("nom");
				var desc = vins[i].getAttribute("desc");
				//strHtmlVinsReturn += "<img src='../img/punt.gif'>" + nom + "<br>&nbsp&nbsp " + desc + "<br>";
				strHtmlVinsReturn += "<table><tr><td width='20' valign='top'><img src='../img/punt.gif'></td><td><p class='classePlatsMenu'>" + nom + "<br>" + desc + "</p></td></tr></table>";
			}
		}
		return strHtmlVinsReturn;
	}
	
	// Funció que parseja la secció vins i la retorna en un string formatada per html
	// @param strXmlFileContent Un String amb el contingut del fitxer XML a parsejar
	// @param seccio La seccio a parsejar del XML
	// @return Un String amb el contingut del XML (o "" si no s'ha pogut carergar el fitxer)
	function parseXmlStringMenu( strXmlFileContent, seccioDia, bPosarDia ) {
		var strHtmlReturn = "";
		// Posem el dia del menú
		var seccioDiaXml = strXmlFileContent.getElementsByTagName(seccioDia);
		if ( seccioDiaXml.length > 0 ) {
			var strDia = seccioDiaXml[0].getAttribute("descDia") + " " + seccioDiaXml[0].getAttribute("dia");
			if ( bPosarDia )
				strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strDia + "</p>";
		}
		
		// Primers
		// Posem la desc del típus d plat
		var descTipusPlatXml = strXmlFileContent.getElementsByTagName("primers");
		if ( descTipusPlatXml.length > 0 ) {
			var strDescTipusPlat = descTipusPlatXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strDescTipusPlat + "</p>";
		}
		else {	// No ha d'entrar al else!!!
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>Primers</p>";
		}
		strHtmlReturn += "<p class='classePlatsMenu'>";
		strHtmlReturn += parseXmlStringMenuPlat( strXmlFileContent, seccioDia, "primers" );
		strHtmlReturn += "</p>";
		// Segons
		// Posem la desc del típus d plat
		var descTipusPlatXml = strXmlFileContent.getElementsByTagName("segons");
		if ( descTipusPlatXml.length > 0 ) {
			var strDescTipusPlat = descTipusPlatXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strDescTipusPlat + "</p>";
		}
		else {	// No ha d'entrar al else!!!
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>Segons</p>";
		}
		strHtmlReturn += "<p class='classePlatsMenu'>";
		strHtmlReturn += parseXmlStringMenuPlat( strXmlFileContent, seccioDia, "segons" );
		strHtmlReturn += "</p>";
		// Postres
		// Posem la desc del típus d plat
		var descTipusPlatXml = strXmlFileContent.getElementsByTagName("postres");
		if ( descTipusPlatXml.length > 0 ) {
			var strDescTipusPlat = descTipusPlatXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>" + strDescTipusPlat + "</p>";
		}
		else {	// No ha d'entrar al else!!!
			strHtmlReturn += "<p class='classeTipusPlatsMenu'>Postres</p>";
		}
		strHtmlReturn += "<p class='classePlatsMenu'>";
		strHtmlReturn += parseXmlStringMenuPlat( strXmlFileContent, seccioDia, "postres" );
		strHtmlReturn += "</p>";
		strHtmlReturn += "</td>";
		strHtmlReturn += "</table>";
		
		/*
		// Si estem fent el menú diari, afegim el que inclou i el preu (agafat del XML!!!).
		if ( ( seccioDia == "dilluns" ) || ( seccioDia == "dimarts" ) || ( seccioDia == "dimecres" ) || ( seccioDia == "dijous" ) || ( seccioDia == "divendres" ) ) {
			var detallsMenuXml = strXmlFileContent.getElementsByTagName("menu");
			if ( detallsMenuXml.length > 0 ) {
				var strPreu = detallsMenuXml[0].getAttribute("preu");
				var strInclou = detallsMenuXml[0].getAttribute("inclou");
				alert( "strPreu="+strPreu+" strInclou="+strInclou );
				strHtmlReturn += "<p class='classeTipusPlatsMenu'>";
				strHtmlReturn += strPreu + "<br>";
				strHtmlReturn += strInclou;
				strHtmlReturn += "</p>";
			}
		}
		*/

		// Si estem fent el menú diari, afegim el que inclou i el preu (agafat del XML!!!).
		if ( ( seccioDia == "dilluns" ) || ( seccioDia == "dimarts" ) || ( seccioDia == "dimecres" ) || ( seccioDia == "dijous" ) || ( seccioDia == "divendres" ) ) {
			var strPreu = "";
			var strInclou = "";
			var isIE = /*@cc_on!@*/false;
			if ( isIE ) {
				strPreu = strXmlFileContent.getAttribute("preu");
				strInclou = strXmlFileContent.getAttribute("inclou");
			}
			else {
				var detallsMenuXml = strXmlFileContent.getElementsByTagName("menu");
				if ( detallsMenuXml.length > 0 ) {
					strPreu = detallsMenuXml[0].getAttribute("preu");
					strInclou = detallsMenuXml[0].getAttribute("inclou");
				}
			}
			if ( strPreu.length > 0 ) {
				strHtmlReturn += "<p class='classeTipusPlatsMenu'>";
				strHtmlReturn += strPreu + "<br>";
				strHtmlReturn += strInclou;
				strHtmlReturn += "</p>";
			}
		}
		
		return strHtmlReturn;
	}
	
	// Funció que parseja els plats del menú d'un dia i un típus de plat
	// @param strXmlFileContent Un String amb el contingut del fitxer XML a parsejar
	// @param seccioDia Indica el dia a parsejar (dilluns, dimarts, dimecres, dijous o divendres)
	// @param tipusPlat Indica el típus de plat (primers, segons o postres) a parsejar
	// @return Un String amb el contingut del XML (o "" si no s'ha pogut carergar el fitxer)
	function parseXmlStringMenuPlat( strXmlFileContent, seccioDia, tipusPlat ) {
		var strHtmlPlatsReturn = "";
		var seccioDiaXml = strXmlFileContent.getElementsByTagName(seccioDia);
		if ( seccioDiaXml.length > 0 ) {
			var tipusPlatXml = seccioDiaXml[0].getElementsByTagName(tipusPlat);
			if ( tipusPlatXml.length > 0 ) {
				var plats = tipusPlatXml[0].getElementsByTagName("plat");
				for ( var i = 0; i < plats.length; i++ ) {
					var desc = plats[i].getAttribute("desc");
					strHtmlPlatsReturn += "<img src='../img/punt.gif'> " + desc + "<br>";
				}
			}	
		}
		return strHtmlPlatsReturn;
	}
	
	function parseXmlStringEvents( strXmlFileContent ) {
		var strHtmlReturn = "";
		// Primer posem els propers events
		var propersXml = strXmlFileContent.getElementsByTagName('propers');
		if ( propersXml.length > 0 ) {
			// Hem trobat els propers. Posem el títol
			var strTitol = propersXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classePlatsMenu'>" + strTitol + "</p>"
			// Posem els events propers
			strHtmlReturn += afegirEvents( propersXml[0] );
		}
		// Ara posem els events fets
		var fetsXml = strXmlFileContent.getElementsByTagName('fets');
		if ( fetsXml.length > 0 ) {
			// Hem trobat els propers. Posem el títol
			var strTitol = fetsXml[0].getAttribute("desc");
			strHtmlReturn += "<p class='classePlatsMenu'>" + strTitol + "</p>"
			// Posem els events propers
			strHtmlReturn += afegirEvents( fetsXml[0] );
		}
		return strHtmlReturn;
	}
	
	function afegirEvents( eventsContent ) {
		var strHtmlEvents = "";
		var eventsXml = eventsContent.getElementsByTagName('event');
		if ( eventsXml.length > 0 ) {
			strHtmlEvents += "<p class='classeGeneral'>";
			for ( i = 0; i < eventsXml.length; i++ ) {
				var strDia = eventsXml[i].getAttribute("dia");
				var strTitol = eventsXml[i].getAttribute("titol");
				var strDesc = eventsXml[i].getAttribute("desc");
				strHtmlEvents += "<i><b>";
				strHtmlEvents += strDia;
				if ( strTitol != "" ) {
					strHtmlEvents += ". " + strTitol;
				}
				strHtmlEvents += "</b></i><br>";
				strHtmlEvents += strDesc + "<br><br>";
			}
			strHtmlEvents += "</p>";
		}
		return strHtmlEvents;
	}
	
	function canviarFonsDiv(nomDiv) {
		// Hem d canviar el fons dels divs, però ens assegurem q no estiguem mirant "treballa amb nosaltres", q no t div!
		//if ( nomDiv != "menuIniciTreballa" ) {
		if ( nomDiv != "reserves" ) {
			// Agafem l'objecte passat
			var theDiv = document.getElementById(nomDiv);
			// Canviem el seu color d fons
			//theDiv.className = "roundApretat";
			theDiv.className = "rectApretat";
		}
		// Canviem el color d fons d la resta
		desmarcarDiv( nomDiv, "menuIniciRestaurant");
		desmarcarDiv( nomDiv, "menuIniciCuina");
		desmarcarDiv( nomDiv, "menuIniciMenu");
		desmarcarDiv( nomDiv, "menuIniciGrups");
		desmarcarDiv( nomDiv, "menuIniciContacte");
		desmarcarDiv( nomDiv, "menuIniciEvents");
		desmarcarDiv( nomDiv, "menuIniciTreballa");
	}
	
	function desmarcarDiv(nomDivDeixarMarcat, nomDivDesmarcar) {
		if ( nomDivDeixarMarcat != nomDivDesmarcar ) {
			var altresDiv = document.getElementById(nomDivDesmarcar);
			//altresDiv.className = "roundInici";
			altresDiv.className = "rectInici";
		}
	}
	
	function mostraPaginaFinestraNova( pagina ) {
		var popupLlegenda=window.open(pagina, null, 'height=700,width=650,resizable=no');
		popupLlegenda.focus();
	}
//]]>
