var royalNonDinnerDate = '1 Jul 2011 00:00:00 AM';
var norgeNonDinnerDateStart = '18 Nov 2011 00:00:00 AM';
var norgeNonDinnerDateEnd = '17 Dec 2011 00:00:00 AM';
var timeout;
var selected_show_text;
var selected_date_text;
var showPrice;
function setShowDate() {
    showDate = document.orderform.time.value;
}


//This function check if the show dates are loaded, if not waits half a second before try again
function checkDate() {
    if (document.orderform.time.selectedIndex == -1) {
        timeout = setTimeout("checkDate()", 500);
    } else {
        clearTimeout(timeout);
        continueInit();
    }
}


//Initializes values
function initializeValues() {
    if (document.orderform.time.value == "") {
        AddTime(document.orderform.show.value);
    } else {
        setShowDate();
    }
    var showTitleIndex = document.orderform.show.selectedIndex;
    selected_show_text = document.orderform.show.options[showTitleIndex].text;
    document.getElementById('theArrangement2').innerHTML = "<b>Arrangement:</b> " + selected_show_text;
    document.orderform.hiddenShow.value = selected_show_text;


    checkDate();



}

function continueInit() {
    var dateIndex = document.orderform.time.selectedIndex;
    selected_date_text = document.orderform.time.options[dateIndex].text;
    var todaysDate = getDate(selected_date_text, "today");
    document.orderform.hiddenDate.value = getDate(selected_date_text, "today");
    document.getElementById('theDate2').innerHTML = "<b>Dato:</b> " + todaysDate;

    var numberDoubleRooms = document.orderform.dobbeltrommet.value;
    var numberSingleRooms = document.orderform.enkeltrommet.value;
    document.getElementById('people2').innerHTML = "<b>Antall:</b> " + ((numberDoubleRooms * 2) + (numberSingleRooms * 1)) + " personer";
    document.orderform.hiddenNumberOfPersons.value = ((numberDoubleRooms * 2) + (numberSingleRooms * 1)) + " personer";

    addHotel();

    document.getElementById('theHotel2').innerHTML = "<b>Hotell:</b> " + document.orderform.hotel.value;

    document.getElementById('theTransportation2').innerHTML = "<b>Transport:</b> " + document.orderform.Transport.value;

	setShowPrices(document.orderform.hotel.value);
    setRoomPrices(document.orderform.hotel.value);

    document.getElementById('theArrival2').innerHTML = "<b>Ankomst:</b> " + getDate(selected_date_text, "today");
    document.orderform.hiddenNumberOfArrival.value = getDate(selected_date_text, "today");

    document.getElementById('theDeparture2').innerHTML = "<b>Avreise:</b> " + getDate(selected_date_text, "tomorrow");
    document.orderform.hiddenNumberOfDeparture.value = getDate(selected_date_text, "tomorrow");

    document.getElementById('theRooms2').innerHTML = "<b>Rom:</b> 1 dobbeltrom / 2 personer";
    document.orderform.hiddenNumberOfRooms.value = "1 dobbeltrom / 2 personer"

    document.getElementById('theMeals2').innerHTML = "<b>Servering:</b> " + updateMeals();
    document.orderform.hiddenMeals.value = updateMeals();

    checkIfDinnerUpgrade(document.orderform.hotel.value, showDate);

    totalPrice = getTotalPrice();
    if (isFamilyBundle) {
        document.getElementById('theTotal2').innerHTML = "<p><b>Fra kr " + totalPrice + ",-</b>(endelig pris vil bli bekreftet via e-post eller telefon)</p>";
    } else {
        document.getElementById('theTotal2').innerHTML = "<p><b>Kr " + totalPrice + ",-</b></p>";
    }
    document.orderform.hiddenTotalPrices.value = totalPrice;

}

function addHotel() {
    if (selected_show_text == "Spa helg") {
        document.getElementById('hotel').innerHTML = "<select disabled name='hotel' class='drop'><option selected value='Radisson Blu Hotel Norge'>Radisson Blu Hotel Norge</option></select>";
    } else {
        AddHotel(selected_date_text, umbID);
    }
}

function getnumberOfPeople(doublerooms, singlerooms) {
    var thePeople = ((doublerooms * 2) + (singlerooms * 1));
    return thePeople;
}

function getDateString() {
    var selectedDate = showDate;
    var day = selectedDate.substring(0, 2);
    var month = selectedDate.substring(3, 5);
    var year = selectedDate.substring(6);
    var dateString = year + "/" + month + "/" + day;
    return dateString;
}

function getTransportationText(theValue){

 var transportationText;
    if (theValue.indexOf('NSB') != -1) {
        transportationText = "NSB. Motta kuponger som gir 20% rabatt.";
    }
    if (theValue.indexOf('NOR-WAY') != -1) {
        transportationText = "NOR-WAY Bussekspress. Motta kuponger som gir 25% rabatt.";
    }
	if (theValue.indexOf('Fjord1') != -1) {
        transportationText = "Fjord1 Fylkesbåtane. Ikke inkludert i pris. Motta rabattert tilbud fra Fjord1.";
    }
    
document.getElementById('theTransportation2').innerHTML = "<b>Transport:</b> " + transportationText;	
}


function checkIfDinnerUpgrade(theHotel, selectedDate) {
    //var withDinner = true;
    var date1 = new Date(getDateString());
    if (theHotel.indexOf('Royal') != -1) {

        var date2 = new Date(royalNonDinnerDate);
        if (date2 <= date1) {
            document.getElementById('dinner').style.display = 'none';
        } else {
            document.getElementById('dinner').style.display = 'block';
        }
    } else if (theHotel.indexOf('Norge') != -1) {
        var startDate = new Date(norgeNonDinnerDateStart);
        var endDate = new Date(norgeNonDinnerDateEnd);
        if (checkIfChristmasSeason(theHotel)) {
            document.getElementById('dinner').style.display = 'none';

        } else {
            document.getElementById('dinner').style.display = 'block';
        }

    }
}

function checkIfChristmasSeason(theHotel) {
    var isChristmasSeason = false;
    if (theHotel.indexOf('Norge') != -1) {
        var date1 = new Date(getDateString());
        var startDate = new Date(norgeNonDinnerDateStart);
        var endDate = new Date(norgeNonDinnerDateEnd);
        if ((startDate <= date1) && (endDate >= date1)) {
            isChristmasSeason = true;
        }
    }
    return isChristmasSeason;
}

function getSingleRoomExtra(theHotel) {
    var extraPrice;
    if (theHotel.indexOf('Royal') != -1) {
        extraPrice = singleroomsExtraRoyal;
    }
    if (theHotel.indexOf('Norge') != -1) {
        extraPrice = singleroomsExtraNorge;
    }
    return extraPrice;
}

function getDoubleRoomExtra(theHotel) {
    var extraPrice;
    if (theHotel.indexOf('Royal') != -1) {
        extraPrice = doubleroomsExtraRoyal;
    }
    if (theHotel.indexOf('Norge') != -1) {
        extraPrice = doubleroomsExtraNorge;
    }
    return extraPrice;
}

function getNorgeChristmasPrice(theHotel) {
    var price = 0;
    if (checkIfChristmasSeason(theHotel) && dinner) {
        price = 235;
    }
    return price;
}

function setShowPrices(theHotel){
	if (theHotel.indexOf('Royal') != -1) {
        showPrice = showPriceRoyal;
    }
    if (theHotel.indexOf('Norge') != -1) {
        showPrice = showPriceNorge;
    }
}

function setRoomPrices(theHotel) {
    document.getElementById('singleExtra').innerHTML = "<p>Enkeltromstillegg: kr " + getSingleRoomExtra(theHotel);
    if(isFamilyBundle){
    document.getElementById('doubleExtraStay').innerHTML = "<p>2 voksne + 1 barn = kr 1200<br/>2 voksne + 2 barn = kr 1500<br/>2 voksne + 3 barn = kr 1800</p>";
    }else{
        document.getElementById('doubleExtraStay').innerHTML = "<p>" + doubleroomsExtraStay + ",- kr pr person i dobbeltrom</p>";

    }
    document.getElementById('singleExtraStay').innerHTML = "<p>" + singleroomExtraStay + ",- kr pr enkeltrom</p>";
}

function getTotalPrice() {
    var theTotal;
    if (isFamilyBundle) {
        theTotal = showPrice;
    } else {
        var thePeople = people;
        var theUpgradeBusinessRoom = 0;
        if (document.orderform.upgradeBusinessClass.checked == true) {

            theUpgradeBusinessRoom = (doublerooms * upgradeBusinessClassDouble * 2) + (singlerooms * upgradeBusinessClassSingle);
        }

        var theUpgradeMeals = 0;
        if (document.orderform.upgradeMeals.checked == true) {
            theUpgradeMeals = thePeople * upgradeMeal;
        }


        var theUpgradeWine = 0;
        if (document.orderform.upgradeWine.checked == true) {
            theUpgradeWine = ((parseInt(doublerooms) + parseInt(singlerooms)) * 425);
        }

        var theExtraStays = getExtraStays(doublerooms, singlerooms);

        theTotal = (thePeople * showPrice) + (thePeople * getNorgeChristmasPrice(document.orderform.hotel.value)) + (getSingleRoomExtra(document.orderform.hotel.value) * singlerooms) + (getDoubleRoomExtra(document.orderform.hotel.value) * doublerooms) + (theUpgradeBusinessRoom * (1 + getNumberOfExtraStays())) + theUpgradeMeals + theUpgradeWine + theExtraStays;

    }
    return theTotal;
}

function getExtraStays(doublerooms, singlerooms) {

    var totalExtraStayPrice = 0;

    switch (extraStays)
    {
    case "0":

        break;
    case "1":
        totalExtraStayPrice = ((doublerooms * 2 * doubleroomsExtraStay) + (singlerooms * singleroomExtraStay));
        break;
    case "2":
        totalExtraStayPrice = ((doublerooms * 2 * doubleroomsExtraStay) + (singlerooms * singleroomExtraStay));
        break;
    case "3":
        totalExtraStayPrice = (((doublerooms * 2 * doubleroomsExtraStay) + (singlerooms * singleroomExtraStay)) * 2);
        break;


    }

    return totalExtraStayPrice;
}


function getNumberOfExtraStays() {

    var numberOfExtraStays = 0;

    switch (extraStays)
    {
    case "0":

        break;
    case "1":
        numberOfExtraStays = 1;
        break;
    case "2":
        numberOfExtraStays = 1;
        break;
    case "3":
        numberOfExtraStays = 2;
        break;


    }

    return numberOfExtraStays;
}

function getDate(theDate, when) {


    /*var day = theDate.substring(0,2);
		var month = theDate.substring(3,5);
		var year = theDate.substring(6);
		var dateString = year+"/"+month+"/"+day;*/
    var myDate = new Date(getDateString());

    switch (when)
    {
    case "yesterday":
        myDate.setDate(myDate.getDate() - 1);
        break;

    case "tomorrow":
        myDate.setDate(myDate.getDate() + 1);
        break;

    case "aftertomorrow":
        myDate.setDate(myDate.getDate() + 2);
        break;
    }


    var curr_date = myDate.getDate();
    if (curr_date < 10) {
        curr_date = "0" + curr_date;
    }

    var curr_month = myDate.getMonth() + 1;
    if (curr_month < 10) {
        curr_month = "0" + curr_month;
    }

    var curr_year = myDate.getFullYear();
    return (curr_date + "." + curr_month + "." + curr_year);





}
function erasePrevious(roomType) {
    var i;
    for (i = 0; i < 10; i++) {
        roomID = roomType.toLowerCase() + i;



        document.orderform[roomID] = undefined;


    }


}

function listRoomNames(roomType, dropdown) {
    var i = 0;
    var roomList = "";
    var roomID;
    var formObject;
    for (i = 0; i < document.orderform[dropdown].value; i++) {
        roomID = roomType.toLowerCase() + i;


        if (document.orderform[roomID] && (document.orderform[roomID].value != "")) {
            roomList = roomList + "<b>" + roomType + " " + eval(i + 1) + ": </b>" + document.orderform[roomID].value + "<br/>";


        }
    }


    return roomList;
}

function updatePeopleString() {
    var numberOfPeopleString;
    document.getElementById('people2').innerHTML = "<b>Antall:</b> " + people + " personer";
    if ((doublerooms == 0) && (singlerooms == 0)) {
        document.getElementById('theRooms2').innerHTML = "<b>Rom:</b> Ingen rom valgt";
        numberOfPeopleString = "Ingen rom valgt";
    } else if ((doublerooms > 0) && (singlerooms == 0)) {
        document.getElementById('theRooms2').innerHTML = "<b>Rom:</b> " + doublerooms + " dobbeltrom / " + (doublerooms * 2) + " personer";
        numberOfPeopleString = doublerooms + " dobbeltrom / " + (doublerooms * 2) + " personer";
    } else if ((doublerooms == 0) && (singlerooms > 0)) {
        document.getElementById('theRooms2').innerHTML = "<b>Rom:</b> " + singlerooms + " enkeltrom / " + singlerooms + " personer";
        numberOfPeopleString = singlerooms + " enkeltrom / " + singlerooms + " personer";
    } else if ((doublerooms > 0) && (singlerooms > 0)) {
        document.getElementById('theRooms2').innerHTML = "<b>Rom:</b> " + doublerooms + " dobbeltrom / " + (doublerooms * 2) + " personer<br />og " + singlerooms + " enkeltrom / " + singlerooms + " personer";
        numberOfPeopleString = doublerooms + " dobbeltrom / " + (doublerooms * 2) + " personer<br />og " + singlerooms + " enkeltrom / " + singlerooms + " personer";
    }
    return numberOfPeopleString;
}

function updateValues(theVar, theValue) {

    switch (theVar)
    {
    case "showPrice":
        AddTime(theValue);
        totalPrice = getTotalPrice();
        break;
    case "doublerooms":
        doublerooms = theValue;
        erasePrevious('dobbeltrom');
        people = getnumberOfPeople(doublerooms, singlerooms);
        document.getElementById('theDoubleRoomNames').innerHTML = "";
        addText(theValue, "dobbeltrom");
        totalPrice = getTotalPrice();

        document.orderform.hiddenNumberOfPersons.value = updatePeopleString();
        document.getElementById('theMeals2').innerHTML = "<b>Servering:</b> " + updateMeals();
        document.orderform.hiddenMeals.value = updateMeals();


        break;
    case "singlerooms":
        singlerooms = theValue;
        erasePrevious('enkeltrom');
        people = getnumberOfPeople(doublerooms, singlerooms);
        document.getElementById('theSingleRoomNames').innerHTML = "";
        //document.getElementById('theSingleRoomNames2').innerHTML = "";
        addText(theValue, "enkeltrom");
        totalPrice = getTotalPrice();
        document.orderform.hiddenNumberOfPersons.value = updatePeopleString();
        document.getElementById('theMeals2').innerHTML = "<b>Servering:</b> " + updateMeals();
        document.orderform.hiddenMeals.value = updateMeals();
        break;
    case "hotels":
		setShowPrices(theValue)
        setRoomPrices(theValue);
        checkIfDinnerUpgrade(theValue, showDate);
        document.getElementById('theHotel2').innerHTML = "<b>Hotell:</b> " + theValue;
        document.getElementById('theMeals2').innerHTML = "<b>Servering:</b> " + updateMeals();
        document.orderform.hiddenMeals.value = updateMeals();
        totalPrice = getTotalPrice();
        break;
    case "transportation":
		getTransportationText(theValue);
        break;
    case "showDate":
        showDate = theValue;
        AddHotel(theValue, umbID);
        document.getElementById('theDate2').innerHTML = "<b>Dato:</b> " + getDate(theValue, 'today') + ",";
        document.orderform.hiddenDate.value = getDate(theValue, 'today');
        document.getElementById('theArrival2').innerHTML = "<b>Ankomst:</b> " + getDate(theValue, "today");
        document.orderform.hiddenNumberOfArrival.value = getDate(theValue, "today");
        document.getElementById('theDeparture2').innerHTML = "<b>Avreise:</b> " + getDate(theValue, "tomorrow");
        document.orderform.hiddenNumberOfDeparture.value = getDate(theValue, "tomorrow");
        document.getElementById('theMeals2').innerHTML = "<b>Servering:</b> " + updateMeals();
        document.orderform.hiddenMeals.value = updateMeals();
        setRoomPrices(document.orderform.hotel.value);
        totalPrice = getTotalPrice();

        break;
    case "extraStays":
        extraStays = theValue;
        totalPrice = getTotalPrice();
        updateExtraStays(theValue);

        break;
    case "upgrades":
        totalPrice = getTotalPrice();
        break;
    }

    if (isFamilyBundle) {
        document.getElementById('theTotal2').innerHTML = "<p><b>Fra kr " + totalPrice + ",-</b>(endelig pris vil bli bekreftet via e-post eller telefon)</p>";
    } else {
        document.getElementById('theTotal2').innerHTML = "<p><b>Kr " + totalPrice + ",-</b></p>";
    }
    document.orderform.hiddenTotalPrices.value = totalPrice;

}

function updateExtraStays(theValue) {

    switch (theValue)
    {
    case "0":
        document.getElementById('theArrival2').innerHTML = "<b>Ankomst:</b> " + getDate(showDate, "today");
        document.orderform.hiddenNumberOfArrival.value = getDate(showDate, "today");
        document.getElementById('theDeparture2').innerHTML = "<b>Avreise:</b> " + getDate(showDate, "tomorrow");
        document.orderform.hiddenNumberOfDeparture.value = getDate(showDate, "tomorrow");
        break;
    case "1":
        document.getElementById('theArrival2').innerHTML = "<b>Ankomst:</b> " + getDate(showDate, "yesterday");
        document.orderform.hiddenNumberOfArrival.value = getDate(showDate, "yesterday");
        document.getElementById('theDeparture2').innerHTML = "<b>Avreise:</b> " + getDate(showDate, "tomorrow");
        document.orderform.hiddenNumberOfDeparture.value = getDate(showDate, "tomorrow");
        break;
    case "2":
        document.getElementById('theArrival2').innerHTML = "<b>Ankomst:</b> " + getDate(showDate, "today");
        document.orderform.hiddenNumberOfArrival.value = getDate(showDate, "today");
        document.getElementById('theDeparture2').innerHTML = "<b>Avreise:</b> " + getDate(showDate, "aftertomorrow");
        document.orderform.hiddenNumberOfDeparture.value = getDate(showDate, "aftertomorrow");
        break;
    case "3":
        document.getElementById('theArrival2').innerHTML = "<b>Ankomst:</b> " + getDate(showDate, "yesterday");
        document.orderform.hiddenNumberOfArrival.value = getDate(showDate, "yesterday");
        document.getElementById('theDeparture2').innerHTML = "<b>Avreise:</b> " + getDate(showDate, "aftertomorrow");
        document.orderform.hiddenNumberOfDeparture.value = getDate(showDate, "aftertomorrow");
        break;


    }
}

function writeUpgrades() {



    if (document.orderform.upgradeBusinessClass.checked == true) {
        document.getElementById('theBusinessClassUpgrade2').innerHTML = "&nbsp;&#8226 Business Class Rom,<br />&nbsp;&nbsp;&nbsp;kr 200,- per person i dobbeltrom.";
        document.orderform.hiddenBusinessClassUpgrade.value = "- Business Class Rom, kr 200,- per person i dobbeltrom.";
    }

    if (document.orderform.upgradeBusinessClass.checked == false) {
        document.getElementById('theBusinessClassUpgrade2').innerHTML = "";
        document.orderform.hiddenBusinessClassUpgrade.value = "";
    }



    if (document.orderform.upgradeMeals.checked == true) {
        document.getElementById('theMealsUpgrade2').innerHTML = "<br />&nbsp;&#8226 Kjøkkensjefens anbefalte 3-retters<br />&nbsp;&nbsp;&nbsp;middag, kr 200,- per person *)";
        document.orderform.hiddenMealsUpgrade.value = "- Kjøkkensjefens anbefalte 3-retters middag, kr 200,- per person";
        document.getElementById('theMeals2').innerHTML = "<b>Servering:</b> " + people + " stk. Kjøkkensjefens anbefalte 3-retters middag, " + getDate(showDate, "today");
    }

    if (document.orderform.upgradeMeals.checked == false) {
        document.getElementById('theMealsUpgrade2').innerHTML = "";
        document.orderform.hiddenMealsUpgrade.value = "";
    }


    if (document.orderform.upgradeWine.checked == true) {


        document.getElementById('theWineUpgrade2').innerHTML = "<br />&nbsp;&#8226 Musserende vin og jordbær på rommet,<br />&nbsp;&nbsp;&nbsp;kr 425,- per rom.";
        document.orderform.hiddenWineUpgrade.value = "- Musserende vin og jordbær på rommet, kr 425,- per rom.";
    }

    if (document.orderform.upgradeWine.checked == false) {
        document.getElementById('theWineUpgrade2').innerHTML = "";
        document.orderform.hiddenWineUpgrade.value = "";
    }

    updateValues("upgrades", 0)

}


function updateHotelNameSummary() {
    var hotelIndex = document.orderform.hotel.selectedIndex;
    var selected_hotel_text = document.orderform.hotel.options[hotelIndex].text;
    document.getElementById('theHotel2').innerHTML = "<b>Hotell:</b> " + selected_hotel_text;
}

function updateMeals() {
    var mealString;
    if (!dinner || (selected_show_text == "Spa helg")) {
        mealString = "Middag ikke inkludert i denne pakken";
    } else {
        var theHotel = document.getElementById('theHotel2').innerHTML;
        if (checkIfChristmasSeason(theHotel)) {
            mealString = people + " stk. varm julematbuffet med kaffe og dessert, " + getDate(showDate, "today");
        } else {
			if (theHotel.indexOf('Royal') != -1) {
		        mealString = "Middag ikke inkludert";
		    } if (theHotel.indexOf('Norge') != -1) {
		        mealString = people + " stk. " + theDinner + ", " + getDate(showDate, "today");
		    }
            
        }
    }
    return mealString;
}

function selectHotelDateChange() {
    var theHotel = document.getElementById('theHotel2').innerHTML;
    var hotelName = '';
    if (theHotel.indexOf('Royal') != -1) {
        hotelName = 'Radisson Blu Royal Hotel';
    } else if (theHotel.indexOf('Norge') != -1) {
        hotelName = 'Radisson Blu Hotel Norge';
    }
    if (hotelName != '') {
        for (i = 0; i < document.orderform.hotel.options.length; i++)
        {

            if (hotelName == document.orderform.hotel.options[i].text)
            {
                document.orderform.hotel.options[i].selected = true;
                return;
            }
        }
    }
}

