﻿w = document.aspnetForm;
if (w ==  null)
{
    w = document.wizSemNiv0;
    if (w ==  null)
    {
        w = document.wizSemNiv1;
        if (w ==  null)
        {
            w = document.wizSemNiv2;
            if (w ==  null)
            {
                w = document.wizSemNiv3;
            }
        }
    }
}


previousDate = "";
previousDate3 = "";
infoButtonHTML = "<img align=\"absmiddle\" src=\"http://media.expedia.com/media/content/expfr/graphics/common/info.gif\" />&nbsp;";
errorCode = 0;
loading = true;
//Vars
var wlType = "Mer";
var wlRegion = "";
var xmlWizardsLocation = "/daily/jump/locations/xml/location08.xml";
var currentXmlNodes = null;
var isIE = 1;
var postbackRegi = "Toutes nos régions";
var postbackDesti = "Toutes nos destinations";
//check ages
function checkRoomAges(errInput)
{
    var isErr = 0;
    document.getElementById(errInput).display = 'none';
    numRoom = document.getElementById("NumRoom").value;
    try{
        for(i=1; i<=numRoom; i++)
        {
            var nc = document.getElementById("NumChild" + i).selectedIndex;
            for(j=1; j<=nc; j++)
            {
                if(i == 1){
                    if(document.getElementById("ages"+j).selectedIndex == 0)
                        isErr = 1;
                }else if(i == 2){
                    if(document.getElementById("ageb"+j).selectedIndex == 0)
                        isErr = 1;
                }else if(i == 3){
                    if(document.getElementById("agec"+j).selectedIndex == 0)
                        isErr = 1;
                }
            }
        }
    }
    catch(e){}
    
    if(isErr == 1){
        document.getElementById(errInput).style.display = 'block'; 
        return 0;
    }else{
        return 1;
    }
}

//Add Option to list
function AddOptionWizardsLocation(ctrl, text, value){
var element = new Option(text, value, false, false);
	new getObject(ctrl).obj.options[new getObject(ctrl).obj.length] = element;
}
//Deletes all list entry
function ClearList_OLd(ctrl){
 document.getElementById(ctrl).innerHTML = null;
}

function ClearList(ctrl) {
	var oObject = document.getElementById(ctrl);
	if(oObject.hasChildNodes()) {
		var nbToRemove = oObject.childNodes.length;
		for(i=0; i < nbToRemove; i++){
			oObject.removeChild(oObject.firstChild);

		}
	}

}

//Load XML Destinations and fill theme lists
function LoadDestinationsWizardsLocation(){
    //Region Selected
    
  
    
    if (window.XMLHttpRequest){
        isIE = 0; // Faux pour IE7 ==> impact ?
        req1WizardsLocation = new XMLHttpRequest();
        if (req1WizardsLocation.overrideMimeType) {
            req1WizardsLocation.overrideMimeType('text/xml');
        }
    } 
    else if (window.ActiveXObject) {
        try {
            req1WizardsLocation = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e){
            try {
                req1WizardsLocation = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }
    }
    
    
     
    req1WizardsLocation.onreadystatechange = function(){ 
            if(req1WizardsLocation.readyState == 4){
                if(req1WizardsLocation.status == 200){
                    var docWizardsLocation = req1WizardsLocation.responseXML;
                    currentXmlNodes = req1WizardsLocation.responseXML;
                    SetCountriesRegionsFromXml();
                    PostBack();
                }
            }       
    }; 
     
    req1WizardsLocation.open("GET", xmlWizardsLocation, true); 
    req1WizardsLocation.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    req1WizardsLocation.send(null);
   
}
//PostBack to get right theme
function PostBack(){
    //Theme
    if(document.getElementById("LVMerChoice").checked)
        wlType = "Mer";
    else if(document.getElementById("LVCampagneChoice").checked)
        wlType = "Campagne";
        else wlType = "Ski";

    //set type
    var vt = "4";
    if(document.getElementById("hidType").value != "")
        vt = document.getElementById("hidType").value;
    if(vt == "1")
        document.getElementById("LVMontagneChoice").checked = true;
            else if (vt == "2")
            document.getElementById("LVCampagneChoice").checked = true;
            else
                document.getElementById("LVMerChoice").checked = true;
    
    //Set right Region   
    if(postbackRegi != "Toutes nos régions")
    {
        var ctrl = "Dest4";
        var v = "4";
        if(wlType == "Campagne")
            ctrl = "Dest2"; v = "2";
        if(wlType == "Ski")
            ctrl = "Dest1"; v = "1";
        var sel = document.getElementById(ctrl);
        for(var lx = 0; lx < sel.length; lx++)
        {
            if(sel.options[lx].text == postbackRegi){
                sel.options[lx].selected = true;
                //reload destinations
                setLocn(vt); 
                isChoose(vt);
            }
        }
    }
    //set desti
    if(postbackDesti != "Toutes nos destinations")
    {
        var sel = document.getElementById("Select1");
        for(var lx = 0; lx < sel.length; lx++)
        {
            if(sel.options[lx].text == postbackDesti)
                sel.options[lx].selected = true;
        }
    }
    
    try{
	    if(document.getElementById("aw").value == "1")
	    {
	    }
	    else
	    {
	        //children
            showRoomBoxes();
        }
	}
	catch(e)
	{
	    //children
        showRoomBoxes();
	}
    
    
}
//Set destinations if needed
function DoWhat(){
    
   
    if(wlRegion != "" && wlRegion != null){
        SetDestinationsFromXml();
    }
}
//Set coutries/regions
function SetCountriesRegionsFromXml()
{
    var loctypes = new Array("Mer","Campagne","Ski");
    for(var lt = 0; lt < loctypes.length; lt++){
        var ctrl = "Dest4";
        if(loctypes[lt] == "Campagne")
            ctrl = "Dest2";
        if(loctypes[lt] == "Ski")
            ctrl = "Dest1";
         //Get right 'them'
        var tempNodes = currentXmlNodes.getElementsByTagName("them");
        for(var lx = 0; lx < tempNodes.length; lx++){
            if(tempNodes[lx].getAttributeNode("tnam").value == loctypes[lt]){
                tempNodes = tempNodes[lx];
                continue;
            }
        }           
        var countryNodes = tempNodes.getElementsByTagName("ctry");   
        ClearList(ctrl);
        AddOptionWizardsLocation(ctrl, "Toutes nos régions", "0");
        //loop on countries
        
        for(var loopIndex = 0; loopIndex < countryNodes.length; loopIndex++)
        {
            objSelect=document.getElementById(ctrl);
            optGroup = document.createElement('optgroup');
            optGroup.label = countryNodes[loopIndex].getAttributeNode("cnam").value;
            objSelect.appendChild(optGroup);
            //loop on regions
            var regionNodes = countryNodes[loopIndex].getElementsByTagName("regi");
            for(var loopIndex2 = 0; loopIndex2 < regionNodes.length; loopIndex2++){
                objOption=document.createElement("option");
                objOption.innerHTML = regionNodes[loopIndex2].getAttributeNode("rnam").value;
                var hotIds = "";
                if(regionNodes[loopIndex2].getAttributeNode("flag").value == "1")
                {
                    //HOTGROUP Url >> Get hids
                    var hids = regionNodes[loopIndex2].getElementsByTagName("hids");
                    for(var loopIndex3 = 0; loopIndex3 < hids.length; loopIndex3++)
                    {
                        try{
                            hotIds = hotIds + "," + hids[loopIndex3].firstChild.nodeValue;
                        }catch(e){}
                    }
                }
                objOption.value = regionNodes[loopIndex2].getAttributeNode("rnam").value + "|" + regionNodes[loopIndex2].getAttributeNode("cid").value + "|" + regionNodes[loopIndex2].getAttributeNode("cnam").value + "|" + regionNodes[loopIndex2].getAttributeNode("flag").value + "|" + hotIds;
                optGroup.appendChild(objOption);
            }
        }
    }
}
//Set destinations
function SetDestinationsFromXml()
{
     //alert('jhgjhg');
    
    //Get right 'destinations'
    var tempNodes = currentXmlNodes.getElementsByTagName("them");
    for(var lx = 0; lx < tempNodes.length; lx++){
        if(tempNodes[lx].getAttributeNode("tnam").value == wlType){
            tempNodes = tempNodes[lx];
            var tempNodesRegion = tempNodes.getElementsByTagName("regi");
            for(var lx2 = 0; lx2 < tempNodesRegion.length; lx2++){
                if(tempNodesRegion[lx2].getAttributeNode("rnam").value == wlRegion){
                    tempNodes = tempNodesRegion[lx2];
                    continue;
                }
            }
        }
    }
    var ctrl = "Select1";
    var destNodes = tempNodes.getElementsByTagName("dest");
    ClearList(ctrl);
    AddOptionWizardsLocation(ctrl, "Toutes nos destinations", "0");
    //loop on countries
    for(var loopIndex = 0; loopIndex < destNodes.length; loopIndex++)
    {
        try{
            AddOptionWizardsLocation(ctrl, destNodes[loopIndex].getAttributeNode("dnam").value, destNodes[loopIndex].getElementsByTagName("hids")[0].firstChild.nodeValue);
        }catch(e){
            //this is for ski, we dont have hotelids
            if(wlType == "Ski")
                AddOptionWizardsLocation(ctrl, destNodes[loopIndex].getAttributeNode("dnam").value, destNodes[loopIndex].getAttributeNode("dnam").value);
        }
    }

    if(document.getElementById("Select1").length < 3)
        document.getElementById("desti").style.display = 'none';
    else
        document.getElementById("desti").style.display = 'block';
}
//Get type (theme)
function GetType(locType)
{
    if(locType == '1')
        return "Ski";
    if(locType == '2')
        return "Campagne";
    if(locType == '4')
        return "Mer";
}

function showDuration()
{
	if (w.HolidayLength == null)
    {
        return ;
    }
	
	var index = 1;
	for (i=0; i<w.HolidayLength.length; i++)
	{
		if (w.HolidayLength[i].checked){
			index = w.HolidayLength[i].value;
		}
	}
	setInnerHTML("swDateError", "");
	if (index == 1)
	{
		setDisplay("OneWeek", "block");
		setDisplay("TwoWeeks", "none");
	}
	else
	{
		setDisplay("OneWeek", "none");
		setDisplay("TwoWeeks", "block");
	}
}

function showZone()
{	
    if(document.getElementById("hidRegi").value != "Toutes nos régions")
        postbackRegi = document.getElementById("hidRegi").value;
    if(document.getElementById("hidDesti").value != "Toutes nos destinations")
        postbackDesti = document.getElementById("hidDesti").value;
	
	previousDate = "";
	for (i=0; i<w.SearchType.length; i++){
	    if(w.SearchType[0].checked == true) setDisplay("WizardContent", "block");
	    else setDisplay("WizardContent", "none");
	    if(w.SearchType[1].checked == true) setDisplay("MapContent", "block");
	    else setDisplay("MapContent", "none");
	}
	
	for (i=0; i<w.HolidayType.length; i++)
	{
		if (w.HolidayType[i].checked){
			index = w.HolidayType[i].value;
		}
	}
	
	 
	
	//debugger
	
	if (document.getElementById("swDateError") != null)
	{
	    setInnerHTML("swDateError", "");
	}
	if (document.getElementById("swDestError") != null)
	{
	    setInnerHTML("swDestError", "");
	}

    

	if (index == 0)
	{
		setDisplay("LVzone", "none");
	}
	else
	{
		checkDates();
		
		
		
		setInnerHTML("swRegError", "");
		setDisplay("Zone1", "none");
		setDisplay("Zone2", "none");
		setDisplay("Zone4", "none");
		setDisplay("LVzone", "block");
		if (index == 1 || index == 2 || index == 4)
		{
			
			//setDisplay("desti", "none");
			//setDisplay("Zone" + index, "none");
			setDisplay("Zone" + index, "block");
			setDisplay("desti", "block"); // OUF
			setDisplay("Select1", "block");
			setLocn(index);
		}
		else if (index == 6)
		{
			setDisplay("LVcity", "block");
			w.locn.value = "";
		}
		else
		{
			w.locn.value = w.HolidayType.value;
		}
	}
}

function isChoose(box)
{
	var value = "";
	switch(box)
	{
		case '1' :
			value = w.Dest1.options[w.Dest1.selectedIndex].value;
			break;
		case '2' :
			value = w.Dest2.options[w.Dest2.selectedIndex].value;
			break;
		case '4' :
			value = w.Dest4.options[w.Dest4.selectedIndex].value;
			break;
	}
	if(value == 'X')
	{
		setDisplay("LVcity", "block");
		w.locn.value = "";
		w.locn.focus();
	}
	else
	{
		//setDisplay("LVcity", "none");
	}
}

function setFLine(box)
{
	
	
	switch(box)
	{
		case '1' :
		    wlType = "Ski";
		    document.getElementById("hidType").value = "1";
		    if(!w.HolidayType[2].checked){
			    w.Dest1.selectedIndex = 0;
			    DoWhat();
			}
			break;
		case '2' :
		    
		    wlType = "Campagne";
	    document.getElementById("hidType").value = "2";
			if(!w.HolidayType[1].checked){
			
			    w.Dest2.selectedIndex = 0;
			    DoWhat();
			}
			break;
		case '4' :
            wlType = "Mer";
            document.getElementById("hidType").value = "4";
		    if(!w.HolidayType[0].checked){
			    w.Dest4.selectedIndex = 0;
			    DoWhat();
			}
			break;
	}
}

function setRfrr(value)
{
	w.rfrr.value = value;
}

function SetDesti()
{
    sel = document.getElementById("Select1");
    document.getElementById("hidDesti").value = sel.options[sel.selectedIndex].text;
}

function setLocn(index)
{
	
	if (document.getElementById("swDateError") != null)
	{
	    setInnerHTML("swDateError", "");
	}
	
	sel = document.getElementById("Dest" + index);
	if(sel.selectedIndex>=0) {
		w.locn.value = sel.options[sel.selectedIndex].value;
		document.getElementById("hidRegi").value = sel.options[sel.selectedIndex].text;
    }
    sel2 = document.getElementById("Select1");
    document.getElementById("hidDesti").value = "Toutes nos destinations";
  
    //reset destinations
    document.getElementById("Select1").style.display = "inline";
    ClearList("Select1"); 
    AddOptionWizardsLocation("Select1", "Toutes nos destinations", "0");
	
	
	
	if (sel.selectedIndex > 0)
	{
		
		
		previousDate = "";
		setInnerHTML("swDestError", "");
		
		if (w.date1 != null)
		{
		    w.date1.disabled = false;
			checkDates();
		}
		
		wlRegion = sel.options[sel.selectedIndex].text;
		DoWhat();
		
		if(document.getElementById("Select1").length < 3) {
		
			document.getElementById("Select1").style.display = "none";
			document.getElementById("desti").style.display = "none";
		} else {			
			document.getElementById("Select1").style.display = "inline";
			document.getElementById("desti").style.display = "block";
		}
	}
	else
	{
		
		
		if (w.date1 != null)
		{
		    w.date1.disabled = false;
	    }
		wlRegion = "";
		document.getElementById("Select1").style.display = "none";
		setDisplay("desti", "none");
		
	}
}

function checkDates()
{
	if (w.date1 == null)
    {
        return ;
    }
	
	previousDate = w.date1.value;
	
	setInnerHTML("swDateError", "");
	
	today = new Date();
	// Only do this if we have a date
	if (w.date1.value != "" && w.date1.value != "jj/mm/aa" && w.date1.value != "dd/mm/yyyy")
	{	
		if (getDateInt(w.date1.value) == 0)
		{
			setInnerHTML("swDateError", infoButtonHTML + "La date ne peut pas être lue.");
		}
		else if (getDateInt(w.date1.value) <= today.getTime())
		{
			setInnerHTML("swDateError", infoButtonHTML + "Merci d'entrer une date post&eacute;rieure à aujourd'hui.");
		}
	}
	
	if (w.date3.value != previousDate3) 
	{
		previousDate3 = w.date3.value;
		setInnerHTML("swDateError", "");
		today = new Date();
		// Only do this if we have a date
		if (w.date3.value != "" && w.date3.value != "jj/mm/aa" && w.date3.value != "dd/mm/yyyy")
		{	
			if (getDateInt(w.date3.value) == 0)
			{
				setInnerHTML("swDateError", infoButtonHTML + "La date ne peut pas être lue.");
				w.date1.focus();
			}
			else if (getDateInt(w.date3.value) <= today.getTime())
			{
				setInnerHTML("swDateError", infoButtonHTML + "Merci d'entrer une date post&eacute;rieure à  aujourd'hui.");
				w.date3.focus();
			}
		}
	}
	
	if (w.date1.value != "" && w.date1.value != "jj/mm/aa" && w.date1.value != "dd/mm/yyyy" && w.date3.value != "" && w.date3.value != "jj/mm/aa" && w.date3.value != "dd/mm/yyyy" )
	{
		var dateArr = new Date(getDateInt(w.date3.value));
		var dateDep = new Date(getDateInt(w.date1.value));
		dateDep = addDays(dateDep, 2);
		dateArr = getDateInt(formatDate(dateArr));
		dateDep = getDateInt(formatDate(dateDep));
		
		if(dateArr < dateDep){
			setInnerHTML("swDateError", infoButtonHTML + "La durée de séjour doit être supérieure ou égale à 2 jours");
		}
		
		if(getDateInt(w.date3.value) < getDateInt(w.date1.value))
		{
			setInnerHTML("swDateError", infoButtonHTML + "Merci d'entrer une date de départ post&eacute;rieure à la date d'arrivée");
		}
	}
	
	if (document.getElementById("swDateError").innerHTML != "" && document.getElementById("swDateError").innerHTML.indexOf("samedi") == -1)
		return false;
	else
		return true;
}

function checkValues()
{
	var pos;
	var holidayValue;
	
	setInnerHTML("swDestError", "");
	setInnerHTML("swRegError", "");
	for (i=0; i<w.HolidayType.length; i++)
	{
		if (w.HolidayType[i].checked){
			pos = w.HolidayType[i].value;
		}
	}
	
	switch (pos)
	{
		case '4' :
			holidayValue = w.Dest4.options[w.Dest4.selectedIndex].value;
			break;
		case '2' :
			holidayValue = w.Dest2.options[w.Dest2.selectedIndex].value;
			break;
		case '1' :
			holidayValue = w.Dest1.options[w.Dest1.selectedIndex].value;
			break;
	}
	
	switch (holidayValue)
	{
		case '0' :
			setInnerHTML("swRegError", infoButtonHTML + "Veuillez saisir une région ou une destination.");
			break;
		case 'X' :
			if(w.locn.value == ""){
				setInnerHTML("swRegError", infoButtonHTML + "Veuillez entrer une ville.");
			}else{
				
				doSubmit();	
			}
			break;
		default :
			if(checkDates() == true)
				doSubmit();	
			else
				break;
	}
}

function doSubmit()
{
	var canSubmit = 1;
	var index = 1;
	setInnerHTML("swDateError", "");
	setInnerHTML("swRegError", "");
	for (i=0; i<w.HolidayLength.length; i++)
	{
		if (w.HolidayLength[i].checked){
			index = w.HolidayLength[i].value;
		}
	}
	
	canSubmit = checkRoomAges("errChildInfo");
	
	if(index == 1)
	{
		if(w.dateOneWeek.options[w.dateOneWeek.selectedIndex].value == 0)
		{
			setInnerHTML("swDateError", infoButtonHTML + "Veuillez saisir une date d'arrivée.");
			canSubmit = 0;
		}else
		{
			indate = new Date(getDateInt(w.dateOneWeek.value));
			duration = w.Duration.options[w.Duration.selectedIndex].value;
			if(w.dateOneWeek.value == "27/10/2007" && duration == 7)
			{
				duration = 8;
			}
			outdate = addDays(indate, duration);
		}
	}else
	{
		if (w.date1.value == "" || w.date1.value == "jj/mm/aa" || w.date1.value == "dd/mm/yyyy" || w.date3.value == "" || w.date3.value == "jj/mm/aa" || w.date3.value == "dd/mm/yyyy")
		{
			setInnerHTML("swDateError", infoButtonHTML + "Veuillez saisir une date de départ et une date d'arrivée.");
			canSubmit = 0;
		}
		else
		{
			if(!checkDates())
			{
				canSubmit = 0;
			}else
			{
				indate = new Date(getDateInt(w.date1.value));
				outdate = new Date(getDateInt(w.date3.value));
			}
		}
	}
	
	try{
	    if(document.getElementById("aw").value == "1")
	    {
	        document.forms[0].action = "/daily/anyway/locations-vacances/default.aspx";
	    }
	    else
	    {
	        document.forms[0].action = "/daily/jump/locations/default.aspx";
        }
	}
	catch(e)
	{
	    document.forms[0].action = "/daily/jump/locations/default.aspx";
	}
	
	if (canSubmit == 1)
	    w.submit();
}

function isChecked(elementName)
{
	return(document.getElementById(elementName).checked);	
}

function InitWiz()
{
	var locn = w.locn.value;
	
	var chLoc = w.locn.value;
	if(locn = 'X')
		locn = '';
	
	
	
	showZone();
	
	 
	showDuration();
	

	w.locn.value = locn;
	
	if ((w.Dest1.selectedIndex) >= 0) {
		if(w.Dest1.options[w.Dest1.selectedIndex].value == "X") {
			isChoose('1');
			w.locn.value=chLoc;
		}
	}
	if ((w.Dest2.selectedIndex) >= 0) {
		if(w.Dest2.options[w.Dest2.selectedIndex].value == "X") {
			isChoose('2');
			w.locn.value=chLoc;
		}
	}
	if ((w.Dest4.selectedIndex) >= 0) {
		if(w.Dest4.options[w.Dest4.selectedIndex].value == "X") {
			isChoose('4');
			w.locn.value=chLoc;
		}
	}
	
	
}

function InitIE()
{
	
	InitWiz();
	
	LoadDestinationsWizardsLocation();
     
}

// This is for an IE bug
function resetDate()
{
	w.date1.value = "jj/mm/aa";
}

//Load Event
if(navigator.appName == "Microsoft Internet Explorer") {
	//stop();
	window.onload = InitIE;
} else {
	//showZone();
	//showDuration();
	InitWiz();
	LoadDestinationsWizardsLocation();
}
//window.onload = InitWiz;
//window.onload = LoadDestinationsWizardsLocation;