/**
 * @author Nosy Mena
 */

dojo.require("dijit.layout.StackContainer")
dojo.require("dijit.layout.ContentPane")

dojo.require("dijit.form.Form");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.form.SimpleTextarea");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.form.DateTextBox");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.ComboBox");
dojo.require("dijit.Tooltip");

dojo.require("dojox.data.KeyValueStore");
dojo.require("dojox.image.Lightbox");
dojo.require("dojox.widget.Dialog");

dojo.require("nosymena.widgets.Bloc");
dojo.require("nosymena.widgets.SlideShow");
dojo.require("nosymena.widgets.DlgDemandeInfos");


dojo.addOnLoad(function () {
	
	dojo.query("#ongletsInfosProduits LI").connect("onclick", displayOnglet);
	dojo.query("#ongletsInfosProduits IMG").connect("onmouseover", rollover);
	dojo.query("#ongletsInfosProduits IMG").connect("onmouseout", rollover);
	dojo.query(".obtenirinfo").connect("onclick", displayDemandeInfos);
	dojo.query(".obtenirdevis").connect("onclick", displayDemandeDevis);
	
	dojo.query("#formDevis INPUT[name='inclurevol']").connect("onclick", "switchVolInternational");
	dojo.query("#formDevis SPAN.garanties").connect("onclick", "displayGaranties");
	dojo.query("#devis .degrade A").connect("onclick", envoiDemandeDevis);

	dojo.require("nosymena.ajax.Service");
    console.debug("Fin Initialisation DOJO Hotel");
});
        
function displayOnglet( evt ) {
	// Pour éviter d'avoir le cadre de sélection sur l'onglet
	evt.target.blur();

	// Le menu est une suite de LI.
	// On recherche l'index du LI sélectionné.
	var selectedNode = evt.target.parentNode;
	var selectedIndex = dojo.indexOf(dojo.query("li", selectedNode.parentNode), selectedNode);
	
	// On supprime la class "active" à tous les LI et on l'ajout au LI sélectionné
	dojo.query("li", selectedNode.parentNode).removeClass("active");
	dojo.addClass(selectedNode, "active");
	activeOnglet(selectedIndex);
	
	// On affiche l'onglet associé
	var widOnglets = dijit.byId("infosProduit");
	widOnglets.selectChild(widOnglets.getChildren()[selectedIndex]);
	
	// On ne propage pas l'évènement pour ne pas recharger la page
	evt.preventDefault();
}

function activeOnglet( selectedIndex ) {
	dojo.query("li", dojo.byId("ongletsInfosProduits")).forEach(function(node, index) {
		var imgNode = (dojo.query("img", node))[0];
		var imgSrc = imgNode.src;
		
		if (index == selectedIndex) {
			// On est sur l'onglet à activer
			imgSrc = imgSrc.replace("_off", "");	// en supprimant le suffixe _off, on obtient l'image "activée"
		}
		else {
			// On est sur un onglet à desactiver ou déjà desactivé
			var indexOfOff = imgSrc.lastIndexOf("_off");
			if (indexOfOff == -1) {
				// Onglet à desactiver
				var indexOfPoint = imgSrc.lastIndexOf(".");
				var extension = imgSrc.substring(indexOfPoint);
				imgSrc = imgSrc.replace(extension, "_off"+extension);
			}
		}
		imgNode.src = imgSrc;
	});
	
}

function rollover( evt ) {
	if (dojo.hasClass(evt.target.parentNode, "active")) return;
	
	var imgSrc = evt.target.src;
	
	var indexOfOff = imgSrc.lastIndexOf("_off");
	if (indexOfOff == -1) { // Onglet avec une sélection
		// On ajoute _off
		var indexOfPoint = imgSrc.lastIndexOf(".");
		var extension = imgSrc.substring(indexOfPoint);
		imgSrc = imgSrc.replace(extension, "_off"+extension);
	}
	else {
		imgSrc = imgSrc.replace("_off", "");
	}
	evt.target.src = imgSrc;
}

function displayDemandeInfos(evt) {
	var dlg = dijit.byId("dialog_obtenirinfos");
	dlg.show();
	evt.preventDefault();
}

function displayDemandeDevis(evt) {
	corrigeDojoBugDate();

	dojo.removeClass("devis", "cache");
	dojo.addClass("waitingDiv", "cache");
	dojo.byId("waitingDiv").innerHTML = '<img src="/ressources/images/loading.gif" />';
}

function switchVolInternational(evt) {
		if (evt.target.value == "Oui") {
			dojo.query("#formDevis LABEL[for='date']").forEach(function(n){
				n.innerHTML = "Départ souhaité le:";
			});
			dojo.style("aerien", "display", "block");
		}
		else {
			dojo.query("#formDevis LABEL[for='date']").forEach(function(n){
				n.innerHTML = "Arrivée à l'hôtel souhaitée le:";
			});
			dojo.style("aerien", "display", "none");
		}
}

function displayLinkCompagnie(compagnie) {
	if (compagnie != "Sans Préférence") {
		
		airValidLink = "http://www.air-valid.com/" + compagnie.replace(" ", "-") + "/avis-opinions.html";
		dojo.byId("compagnielink").innerHTML = '<a href="' + airValidLink + '" title="Air Valid" target="_blank">Cliquez ici pour obtenir des infos sur la compagnie</a>';
	}
	else 
		dojo.byId("compagnielink").innerHTML = "&nbsp;";
}

function displayChambreDescription(description) {
	dojo.byId("chambremessage").innerHTML = description + "&nbsp;";
}

function displayGaranties(evt) {
	dlg = dijit.byId("garantiesDlg");
	dlg.show();
}

function envoiDemandeDevis( evt ) {
	// On ne propage pas l'évènement pour ne pas recharger la page
	evt.preventDefault();

    if (!dijit.byId('formDevis').validate()){
        alert('Le formulaire est incomplet. Merci de corriger les champs sélectionnés.');
		return false;
    }

	dojo.addClass("devis", "cache");
	dojo.removeClass("waitingDiv", "cache");

	var service = new nosymena.ajax.Service('demande.php');
	service.waitingDivNode = dojo.byId("waitingDiv");
	service.sendForm("formDevis", "devisHotel", null, null);
}

var hotelMap;
function displayMap() {
	var dlg = dijit.byId("dialogMap");
	dlg.show();
	
	// Affichage de la carte
	var latlng = new google.maps.LatLng(mapInfo.center.latitude, mapInfo.center.longitude);
	var options = {
		zoom: mapInfo.zoom,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.TERRAIN,
		mapTypeControlOptions: {
	    	style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
	  	},
		navigationControlOptions: {
    		style: google.maps.NavigationControlStyle.SMALL
  		},
		scaleControl : true,
		backgroundColor: "#F8F3EF"
	};
	hotelMap = new google.maps.Map(dojo.byId('map'), options);
	
	var myParser = new geoXML3.parser({map: hotelMap, zoom: false});
	myParser.parse('ressources/reperes.kml');

	// Ajout du marker
	var marker = new google.maps.Marker({
		position: new google.maps.LatLng(mapInfo.offre.latitude, mapInfo.offre.longitude),
  		map: hotelMap,
		title: dlg.attr("title"),
		icon: '/ressources/images/icon-hotel.png',
		zIndex: 10000000
	});
	var infowindow = new google.maps.InfoWindow({
	  content: dojo.byId('offreInfo').innerHTML
	});
	google.maps.event.addListener(marker, 'click', function() {
	  infowindow.open(hotelMap, marker);
	});
}
