var xmlhttp;

function jsShowResortTab(Resort_ID, tab_int)
{

    for (var i = 1; i <= 4; i++) {
        document.getElementById('rtab_' + Resort_ID + '_' + i).className = 'NotCurrent';
    }
    
    var loadtxt = document.getElementById("rtab_" + tab_int + "a").value;
    document.getElementById('rtab_' + Resort_ID + '_' + tab_int).className = '';
    document.getElementById("rcontainer_" + Resort_ID).innerHTML = "<div class='loaddiv'><img src='/loading.gif' class='loadimg' alt='Loading content' /> " + loadtxt + "</div>";

    xmlhttp = GetXmlHttpObject();
    if (xmlhttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    var url = "/resort_tab_contents.asp";
    url = url + "?Resort_ID=" + Resort_ID;
    url = url + "&c=" + tab_int;
    url = url + "&sid=" + Math.random();

    //    xmlhttp.setrequestHeader('Accept-Charset', 'ISO-8859-1'); 
    xmlhttp.onreadystatechange = function stateChanged() { if (xmlhttp.readyState == 4) { document.getElementById("rcontainer_" + Resort_ID).innerHTML = xmlhttp.responseText; updateDateSelector(); } }

    xmlhttp.open("GET", url, true);
    xmlhttp.send(null);
}

function updateDateSelector() {
    jQuery.datepicker.setDefaults({
        buttonImageOnly: true,
        numberOfMonths: 2,
        minDate: '0d',
        showButtonPanel: true
    });

    // Create a label with variables
    var sLabel = "%1 - %2 (%3 %4)";

    jQuery('.datepick').datepicker({
        showOn: 'both',
        buttonText: '',
        buttonImage: 'http://www.in-italia.dk/images/dlcalendar/dlcalendar_2.gif',
        onClose: function (dateText, inst) {
            var sender = inst.id;

            // If a date has been set
            if (dateText) {
                // Use the Parsedate to get the correctly formatted date				
                var oDate = new Date(o2s.parseDate(dateText, jQuery.datepicker._defaults.dateFormat));

                // If the sender is the arrival date, make sure
                // the minDate of departure date is updated,
                // will also update the departure if it is empty
                if (sender == "arrival_date") {
                    var sNewDate = PadDate(oDate.getDate()) + "-" + PadDate((oDate.getMonth() + 1)) + "-" + oDate.getFullYear();
                    jQuery('#departure_date').datepicker("option", "minDate", sNewDate);

                    var oDeparture = jQuery('#departure_date');
                    if (oDeparture.hasClass("noautofill") == false && oDeparture.val() != undefined) {
                        oDate = o2s.dateAdd("d", 1, sNewDate);
                        if (jQuery('#departure_date').val() == "") {
                            jQuery('#departure_date').val(PadDate(oDate.getDate()) + "-" + PadDate((oDate.getMonth() + 1)) + "-" + oDate.getFullYear());
                        }
                    }
                }

                // Create a label with variables
                sLabel = "%1 - %2 (%3 %4)";

                if (sender == "arrival_date") {
                    var dArrival = new Date(inst.currentYear, inst.currentMonth, inst.currentDay);
                    sLabel = sLabel.replace('%1', jQuery.datepicker._defaults.dayNames[dArrival.getDay()]);

                    var oDeparture = jQuery('#departure_date');

                    // Get the date from the Departure
                    if (oDeparture.hasClass("noautofill") == false && oDeparture.val() != undefined) {
                        var aDeparture = oDeparture.val().split("-");
                        var dDeparture = new Date(aDeparture[2], aDeparture[1] - 1, aDeparture[0]);
                        sLabel = sLabel.replace('%2', jQuery.datepicker._defaults.dayNames[dDeparture.getDay()]);
                    }
                } else {
                    dDeparture = new Date(inst.currentYear, inst.currentMonth, inst.currentDay);
                    sLabel = sLabel.replace('%2', jQuery.datepicker._defaults.dayNames[dDeparture.getDay()]);

                    var oArrival = jQuery('#arrival_date');

                    // Get the date from the Arrival
                    if (oArrival.hasClass("noautofill") == false) {
                        var aArrival = oArrival.val().split("-");
                        var dArrival = new Date(aArrival[2], aArrival[1] - 1, aArrival[0]);
                        sLabel = sLabel.replace('%1', jQuery.datepicker._defaults.dayNames[dArrival.getDay()]);
                    }
                }

                if (dArrival != undefined && dDeparture != undefined) {
					var d1 = PadDate(dArrival.getDate()) + "-" + PadDate(dArrival.getMonth()+1) + "-" + PadDate(dArrival.getFullYear());
					var d2 = PadDate(dDeparture.getDate()) + "-" + PadDate(dDeparture.getMonth()+1) + "-" + PadDate(dDeparture.getFullYear());

                    var iDateDiff = parseInt(o2s.dateDiff("d", d1, d2));

                    // DateDiff of the arrival and the departure dates, and the days name (localized)
                    sLabel = sLabel.replace('%3', iDateDiff);

					if(iDateDiff == 1) {
						sLabel = sLabel.replace('%4', jQuery.datepicker._defaults.day);
					} else {
						sLabel = sLabel.replace('%4', jQuery.datepicker._defaults.days);
					}

                    // Update the label with the text
                    jQuery("#date_range_description").text(sLabel);

                    if (iDateDiff > 30) {
                        jQuery("#date_range_description").css("color", "red");
                    } else {
                        jQuery("#date_range_description").css("color", "");
                    }
                }
            }
        }
    });

    if (jQuery('#arrival_date').val() != null && jQuery('#departure_date').val() != null) {
        var aArrival = jQuery('#arrival_date').val().split("-");
        var aDeparture = jQuery('#departure_date').val().split("-");

        var dArrival = new Date(aArrival[2], aArrival[1] - 1, aArrival[0]);
        var dDeparture = new Date(aDeparture[2], aDeparture[1] - 1, aDeparture[0]);

        var iDateDiff = parseInt(o2s.dateDiff("d", PadDate(dArrival.getDate()) + "-" + PadDate(dArrival.getMonth()+1) + "-" + PadDate(dArrival.getFullYear()), PadDate(dDeparture.getDate()) + "-" + PadDate(dDeparture.getMonth()+1) + "-" + PadDate(dDeparture.getFullYear())));

        if (iDateDiff > 0) {
            // DateDiff of the arrival and the departure dates, and the days name (localized)
            sLabel = sLabel.replace('%1', jQuery.datepicker._defaults.dayNames[dArrival.getDay()]);
            sLabel = sLabel.replace('%2', jQuery.datepicker._defaults.dayNames[dDeparture.getDay()]);
            sLabel = sLabel.replace('%3', iDateDiff).replace('%4', 'dage');

            // Update the label with the text
            jQuery("#date_range_description").text(sLabel);
        }

        if (iDateDiff > 30) {
            jQuery("#date_range_description").css("color", "red");
        } else {
            jQuery("#date_range_description").css("color", "");
        }
    }
}


function jsPriceUpdate(Resort_ID) {


    xmlhttp = GetXmlHttpObject();
    if (xmlhttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }

    var Period_From = jQuery("#arrival_date").val();
    var Period_To = jQuery("#departure_date").val();
    var Pax = document.getElementById("pcPax").value;
    var Pax_Kidscount = document.getElementById("pcPax_Kidscount").value;

    var Pax_Kids = "" // document.getElementById("cPax_Kids").value;
    var kidsCount = parseInt(document.getElementById("pcPax_Kidscount").value);
    for (var i = 1; i <= kidsCount; i++) {
        Pax_Kids = Pax_Kids + document.getElementById("pcPax_Kids_Age_" + i).value + ",";
    }

    var loadtxt = document.getElementById("rtab_1a").value;
    document.getElementById("rcontainer_" + Resort_ID).innerHTML = "<div class='loaddiv'><img src='/loading.gif' class='loadimg' alt='Loading content' /> " + loadtxt + "</div>";

    var url = "/resort_tab_contents.asp";
    url = url + "?Resort_ID=" + Resort_ID;
    url = url + "&Period_From=" + Period_From;
    url = url + "&Period_To=" + Period_To;
    url = url + "&Pax=" + Pax;
    url = url + "&Pax_Kidscount=" + Pax_Kidscount;
    url = url + "&Pax_Kids=" + Pax_Kids;
    url = url + "&c=1";
    url = url + "&sid=" + Math.random();

    //    xmlhttp.setrequestHeader('Accept-Charset', 'ISO-8859-1'); 
    xmlhttp.onreadystatechange = function stateChanged() { if (xmlhttp.readyState == 4) { document.getElementById("rcontainer_" + Resort_ID).innerHTML = xmlhttp.responseText; updateDateSelector(); } }

    xmlhttp.open("GET", url, true);
    xmlhttp.send(null);
}


// Viser priser for resort
function jsRoomPrice(www_site_id, currency_id, resort_id, room_id, period_from, period_to, pax, pax_age) {

    if (document.getElementById("tdRoom_" + room_id).innerHTML == "") {
        document.getElementById("trRoom_" + room_id).style.display = "";
        document.getElementById("tdRoom_" + room_id).innerHTML = loadinghtml();
    }
    else {
        document.getElementById("tdRoom_" + room_id).innerHTML = "";
        document.getElementById("trRoom_" + room_id).style.display = "none";
        return false;
    }

    var xmlhttp = GetXmlHttpObject();
    if (xmlhttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    var url = "/include/room_price.asp";
    url = url + "?www_site_id=" + www_site_id;
    url = url + "&currency_id=" + currency_id;
    url = url + "&resort_id=" + resort_id;
    url = url + "&room_id=" + room_id;
    url = url + "&period_from=" + period_from;
    url = url + "&period_to=" + period_to;
    url = url + "&pax=" + pax;
    url = url + "&pax_age=" + pax_age;
    url = url + "&details=1";   //  + details;
    url = url + "&sid=" + Math.random();
    // document.getElementById("RoomPrice_" + room_id).innerHTML = url;
    xmlhttp.onreadystatechange = function stateChanged() { if (xmlhttp.readyState == 4) { document.getElementById("tdRoom_" + room_id).innerHTML = xmlhttp.responseText; updateDateSelector(); } }



    xmlhttp.open("GET", url, true);
    xmlhttp.send(null);
}

function jsDisplayWeekday(date_elementId, display_elementId) {


    xmlhttp = GetXmlHttpObject();
    if (xmlhttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }

    var d = document.getElementById(date_elementId).value;

    var url = "/include/ajax_weekday.asp";
    url = url + "?d=" + d;
    url = url + "&sid=" + Math.random();

    //    xmlhttp.setrequestHeader('Accept-Charset', 'ISO-8859-1'); 
    xmlhttp.onreadystatechange = function stateChanged() { if (xmlhttp.readyState == 4) { document.getElementById(display_elementId).innerHTML = xmlhttp.responseText; updateDateSelector();  } }

    xmlhttp.open("GET", url, true);
    xmlhttp.send(null);
}

function jsUpdateKids() {
    var kidsCount = parseInt(document.getElementById("pcPax_Kidscount").value);

    var tdObj = document.getElementById("pcKidsTd");

    // gemmer nuværende alder på børn
    var arrKids = new Array();
    for (var a = 0; a < 30; a++) {
        arrKids.push(-1);
    }
    for (var i = 1; i <= kidsCount; i++) {
        var objKid = document.getElementById("pcPax_Kids_Age_" + i);
        if (objKid != null) {
            arrKids[i] = objKid.options[objKid.selectedIndex].value;
        }
        else {
            arrKids.push(-1);
        }
    }

    var oldTd = document.getElementById("pcKidsTd")
    // slet
    var newTd = document.createElement("td")
    newTd.className = "rpc2";
    // opret igen
    var currentTr = document.getElementById("pcKidsTr")
    currentTr.removeChild(oldTd);
    currentTr.appendChild(newTd);
    newTd.setAttribute("id", "pcKidsTd");

    // tilføjer nye elementer
    var i2 = 0;
    var ysing = document.getElementById("ysing").value;
    var yplur = document.getElementById("yplur").value;

    var ageTo = 18;
    for (var i = 1; i <= kidsCount; i++) {
        if (i2 == 4) {
            // indsæt linieskift
            var newBr = document.createElement("br")
            document.getElementById("pcKidsTd").appendChild(newBr);
            i2 = 0;
        }
        i2++;
        // opretter nyt element
        var newSelect = document.createElement("select");
        newSelect.setAttribute("id", "pcPax_Kids_Age_" + i);
        newSelect.setAttribute("name", "pcPax_Kids_Age");
        // newSelect.setAttribute("onchange", "addpax(" + id + ")");

        document.getElementById("pcKidsTd").appendChild(newSelect);

        for (var a = -1; a <= ageTo; a++) {
            var newOpt = document.createElement("option");
            if (a == -1) newOpt.text = "";
            else if (a == 1) newOpt.text = a + " " + ysing;
            else newOpt.text = a + " " + yplur;
            newOpt.value = a;
            // alert("a : " + a + "\r\narrKids: " + arrKids[i]);
            if (a == arrKids[i]) {
                newOpt.setAttribute("selected", "selected");
            }
            newSelect.options.add(newOpt);
        }


    }

}


function loadinghtml() {
    return "<div class='loading'><img src='/loading.gif' alt='Loading page' /></div>";
}

//
function CalendarClear()
{
	jQuery("#arrival_date").val('');
	jQuery("#departure_date").val('');
	jQuery("#date_range_description").text('');
}


// Pad date
function PadDate(inNumber) {
	if (inNumber.toString().length == 1) {
		return "0" + inNumber.toString();
	}
	return inNumber.toString();
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("polldiv").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}



