﻿var MINUTE = 60 * 1000
var HOUR = MINUTE * 60
var DAY = HOUR * 24
var WEEK = DAY * 7

function markPayTime() {

    var txt = "";

    try {

//        alert('addr1');
//        var addr1 = $find('Addr1');
//        alert(addr1.toString());
//        alert('phone');
//        var phone = document.getElementById('Phone').value;
//        alert('fName');
//        var fName = document.getElementById('FirstName').value;
//        alert('mobile');
//        var mobile = document.getElementById('Mobile').value;
//        alert('surname');
//        var surname = document.getElementById('Surname').value;
//        alert('suburb');
//        var suburb = document.getElementById('Suburb').value;
//        alert('email');
//        var email = document.getElementById('Email').value;
//        alert('bookingSource');
//        var bookingSource = document.getElementById('BookingSource').selectedIndex;

//        alert('dunnn');

//        if (addr1 != '' && phone != '' && fName != '' && mobile != '' && surname != '' && suburb != '' && email != '' && bookingSource > 0) {

            var agency = document.getElementById('Agency').value;

            if (agency == '0') {
                document.getElementById('PayTime').value = '1';

                if (Page_ClientValidate()) {

                    $find('mpePayments').show();

                };
                
            };

            return true;

//        }
//        else {

//            alert('validation error');

//            return false;

//        };

    }
    catch (err) {

        txt = "There was an error on this page.\n\n";
        txt += "Error description: " + err.description + "\n\n";
        txt += "Click OK to continue.\n\n";
        alert(txt);

    }

}

function changeRoomImg(mainImg, newImg) {
    document.getElementById(mainImg).src = newImg;
    return false;
}

function hideGo() {
    document.getElementById('divGo').style.display = 'none';
    return true;
}

function showHideSubmit() {
    if (document.getElementById("Agree").checked == true) {
        

        try {
            document.getElementById("fakeSubmit").style.display = "none";
            document.getElementById("realSubmit").style.display = "";
        }
        catch (err) {
        }

        try {
            document.getElementById("fakepb").style.display = "none";
            document.getElementById("realsub").style.display = ""; 
        }
        catch (err) {
        }
    }
    else {

        try {
            document.getElementById("fakeSubmit").style.display = "";
            document.getElementById("realSubmit").style.display = "none";
        }
        catch (err) {
        }

        try {
            document.getElementById("fakepb").style.display = "";
            document.getElementById("realsub").style.display = "none";
        }
        catch (err) {
        }
        
    };
}

function checkClick() {
    document.getElementById('tdCheck').style.display = 'none';
    document.getElementById('divUpdateMessage').style.display = 'none';
    return true;
}

function addBooking() {

    var bookingCount;
    bookingCount = parseFloat(document.getElementById('BookingCounter').value);
    document.getElementById('BookingCounter').value = bookingCount + 1;

    document.getElementById('CatID').value = 0;
    document.getElementById('AltID').value = 0;
    document.getElementById('TotalPrice').value = 0;
    document.getElementById('TotalRooms').value = 1;

    window.scrollTo(0, 0);

    $find('mpeBookings').hide();

    stayChanged(true);

    document.getElementById('btnSubmit').click();

    return false;

}

function stayChanged(dontShow) {

    // Set the optional parameter if needed
    if (dontShow === undefined) {
        dontShow = false;
    }

    if (document.getElementById('AmHidden').value == 'false') {
        if (document.getElementById('divGo').style.display == 'none') {
            document.getElementById('tdCheck').style.display = '';
        }
        else {
            document.getElementById('divGo').style.display = 'none';
            document.getElementById('tdCheck').style.display = '';
        };

        if (dontShow == true) {

            document.getElementById('divUpdateMessage').style.display = 'none';
            document.getElementById('divGo').style.display = '';
            document.getElementById('tdCheck').style.display = 'none';

        }
        else {

            document.getElementById('divUpdateMessage').style.display = '';
            document.getElementById('divBookingChart').style.display = 'none';

        };

        document.getElementById('divGuest').style.display = 'none';
    };
}

function changeImg(img_name, img_src) {
    document.getElementById(img_name).src = img_src;
}

function clearCat() {
    document.getElementById('CatID').value = '0';
}

function testRoom(el, value1) {
    document.getElementById(el).value = value1;
    return true;
}

var state = 'block';

function showhide(layer_ref) {

    if (state == 'block') {
        //state = 'none';
    }
    else {
        state = 'block';
    }
    if (document.all) { //IS ie 4 or 5 (or 6 beta)
        eval("document.all." + layer_ref + ".style.display = state");
    }
    if (document.layers) { //IS NETSCAPE 4 or below
        document.layers[layer_ref].display = state;
    }
    if (document.getElementById && !document.all) {
        hza = document.getElementById(layer_ref);
        hza.style.display = state;
    }

    return true;
}

Date.prototype.goto = function(n) {
    this.setTime(this.getTime() + n * 86400000);
    return this;
};

function NightsChanged() {

    try {

        var checkIn = getCheckInDate();
        var currentCheckIn = getCheckInDate();
        var currentCheckOut = getCheckOutDate();
        var currentDiff = getDateDaysDifference(checkIn, currentCheckOut);
        var nNights = parseInt(document.getElementById('txNights').value);
    
        if (nNights != currentDiff) {
        
            var checkOut = checkIn.goto(nNights);   //new Date(checkIn.getTime() + (nNights * DAY));  //checkIn.goto(nNights);
            var coMonth = currentCheckOut.getMonth() + 1;

            if (coMonth == 2) { //feb = 28 days

                //for now feb has no daylight savings

            }
            else if (coMonth == 9 || coMonth == 4 || coMonth == 6 || coMonth == 11) { //sep, apr, jun, nov = 30 days

                if (checkOut.getDate() == currentCheckOut.getDate() && checkOut.getMonth() == currentCheckOut.getMonth()) {

                    if ((checkIn.getDate() + nNights) > 30) {

                        checkOut.setDate(0);
                        checkOut.setDate(checkIn.getMonth() + 1);

                    }
                    else {

//                        alert(currentCheckIn);
//                        alert(nNights);
                        checkOut.setDate(currentCheckIn.getDate() + nNights);                    
                    
                    };
                
                };

            }
            else if (coMonth == 12) {//dec = end of year

                //for now dec has no daylight savings

            }
            else { //other = 31 days

            };
    
        };    
        
        var calDep = $find('calDepart');
        calDep._selectedDate = checkOut;
        calDep._textbox.set_Value(calDep._selectedDate.format(calDep._format));

        stayChanged();

    }
    catch (err) {

        //just catch for now

    }
    
}

function SetDates() {
    var checkOut = getCheckOutDate();
    var nNights = parseInt(document.getElementById('txNights').value);
    var checkIn = getCheckInDate();
    var now = new Date();

    var calArr = $find('calArrive');
    var calDep = $find('calDepart');

    if (checkIn.format('dd-MM-yyyy') < now.format('dd-MM-yyyy') && checkIn < now) {
        checkIn = checkOut.goto(nNights * -1);
        calArr._selectedDate = checkIn;
        calArr._textbox.set_Value(calArr._selectedDate.format(calArr._format));
    }
    else if (checkIn > checkOut) {
        checkOut = checkIn.goto(nNights);
        calDep._selectedDate = checkOut;
        calDep._textbox.set_Value(calDep._selectedDate.format(calDep._format));
    }
    else if (checkIn.format('dd-MM-yyyy') == checkOut.format('dd-MM-yyyy')) {
        checkOut = checkIn.goto(nNights);
        calDep._selectedDate = checkOut;
        calDep._textbox.set_Value(calDep._selectedDate.format(calDep._format));
    }
    else {
        try {
            document.getElementById('txNights').value = getDateDaysDifference(checkIn, checkOut);
        }
        catch (err) {
            alert('gotcha');
        }
    };

    stayChanged();

    //
}

function getDateDaysDifference(dCheckIn, dCheckOut) {
    var nResult;

    nResult = Math.floor((dCheckOut.getTime() - dCheckIn.getTime()) / DAY);

    return nResult;
}

//function getDateDaysDifference(dCheckIn, dCheckOut) {
//    var nResult;
//    var one_day = 1000 * 60 * 60 * 24;

//    nResult = Math.ceil((dCheckOut.getTime() - dCheckIn.getTime()) / (one_day))

//    alert(nResult);

//    return nResult;
//}

function getCheckInDate() {

    var nday = document.getElementById('txArrival').value;
    nday = nday.substring(0, 2);

    var nmonth = document.getElementById('txArrival').value;
    nmonth = nmonth.substring(3, 5);
    nmonth--;

    var nyear = document.getElementById('txArrival').value;
    nyear = nyear.substring(6, 10);

    var dCheckIn = new Date(nyear, nmonth, nday);

    return dCheckIn;
}

function getCheckOutDate() {
    var nday = document.getElementById('txDeparture').value;
    nday = nday.substring(0, 2);

    var nmonth = document.getElementById('txDeparture').value;
    nmonth = nmonth.substring(3, 5);
    nmonth--;

    var nyear = document.getElementById('txDeparture').value;
    nyear = nyear.substring(6, 10);

    var dCheckOut = new Date(nyear, nmonth, nday);

    return dCheckOut;
}

//Show div for update animation extender

function onUpdating(theUpdatePanel) {

    // get the update progress div
    var updateProgressDiv = $get('updateProgressDiv');

    // make it visible
    updateProgressDiv.style.display = 'block';

    var point = window.center({ width: 150, height: 70 });
    updateProgressDiv.style.position = "absolute";
    updateProgressDiv.style.top = point.y + "px";
    updateProgressDiv.style.left = point.x + "px";
    updateProgressDiv.style.width = "150px";
    updateProgressDiv.style.height = "70px";

    // get the bookings update progress div
    var bookingsProgressDiv = $get('divLoadingBookings');

    // make it visible
    bookingsProgressDiv.style.display = 'block';

    // get the bookings update progress div
    var requirementsProgressDiv = $get('divLoadingRequirements');

    // make it visible
    requirementsProgressDiv.style.display = 'block';

    // get the bookings update progress div
    var paymentsProgressDiv = $get('divLoadingPayments');

    // make it visible
    paymentsProgressDiv.style.display = 'block';

    document.getElementById('divConfirmBookings').style.display = 'none';
    document.getElementById('divAddBookings').style.display = 'none';
    document.getElementById('divBookingAction').style.display = 'none';

    document.getElementById('divReqs').style.display = 'none';
    document.getElementById('divConfirmRequirements').style.display = 'none';
    document.getElementById('reqTitle').style.display = 'none';

    document.getElementById('closeBookings').style.display = 'none';

}

function onUpdated() {

    try {
        document.getElementById('txArrival').disabled = false;
    }
    catch (err) { };

    try {
        document.getElementById('txAdults').disabled = false;
    }
    catch (err) { };

    try {
        document.getElementById('txDeparture').disabled = false;
    }
    catch (err) { };

    try {
        document.getElementById('txChildren').disabled = false;
    }
    catch (err) { };

    try {
        document.getElementById('txNights').disabled = false;
    }
    catch (err) { };

    try {
        document.getElementById('txInfants').disabled = false;
    }
    catch (err) { };

    try {
        // get the update progress div
        var updateProgressDiv = $get('updateProgressDiv');

        // make it invisible
        updateProgressDiv.style.display = 'none';

        // get the bookings update progress div
        var bookingsProgressDiv = $get('divLoadingBookings');

        // make it visible
        bookingsProgressDiv.style.display = 'none';

        // get the bookings update progress div
        var requirementsProgressDiv = $get('divLoadingRequirements');

        // make it visible
        requirementsProgressDiv.style.display = 'none';

        // get the bookings update progress div
        var paymentsProgressDiv = $get('divLoadingPayments');

        // make it visible
        paymentsProgressDiv.style.display = 'none';

        document.getElementById('divConfirmBookings').style.display = '';
        //document.getElementById('divAddBookings').style.display = '';
        document.getElementById('divBookingAction').style.display = '';

        document.getElementById('divReqs').style.display = '';
        document.getElementById('divConfirmRequirements').style.display = '';
        document.getElementById('reqTitle').style.display = '';

        var gtRooms = parseInt(document.getElementById('GrandTotalRooms').value);
        var maxRooms = parseInt(document.getElementById('MaxRooms').value);

        if (gtRooms == maxRooms) {
            document.getElementById('divAddBookings').style.display = 'none';
        }
        else {
            document.getElementById('divAddBookings').style.display = '';
        };
    }
    catch (err) { };

}

//END Animation Extender


//POPUPS

// Add click handlers for buttons to show and hide modal popup on pageLoad

window.size = function() {
    var w = 0;
    var h = 0;
    //IE
    if (!window.innerWidth) {
        //strict mode
        if (!(document.documentElement.clientWidth == 0)) {
            w = document.documentElement.clientWidth;
            h = document.documentElement.clientHeight;
        }
        //quirks mode
        else {
            w = document.body.clientWidth;
            h = document.body.clientHeight;
        }
    }
    //w3c
    else {
        w = window.innerWidth;
        h = window.innerHeight;
    }
    return { width: w, height: h };
}
window.center = function() {
    var hWnd = (arguments[0] != null) ? arguments[0] : { width: 0, height: 0 };
    var _x = 0;
    var _y = 0;
    var offsetX = 0;
    var offsetY = 0;
    //IE
    if (!window.pageYOffset) {
        //strict mode
        if (!(document.documentElement.scrollTop == 0)) {
            offsetY = document.documentElement.scrollTop;
            offsetX = document.documentElement.scrollLeft;
        }
        //quirks mode
        else {
            offsetY = document.body.scrollTop;
            offsetX = document.body.scrollLeft;
        }
    }
    //w3c
    else {
        offsetX = window.pageXOffset;
        offsetY = window.pageYOffset;
    }
    _x = ((this.size().width - hWnd.width) / 2) + offsetX;
    _y = ((this.size().height - hWnd.height) / 2) + offsetY;
    return { x: _x, y: _y };
}

function updateRequirementTotal(qty, ppu, total, hdID, hdReqs) {

    document.getElementById(total).innerHTML = (ppu * qty).toFixed(2);
    document.getElementById(hdReqs).value = document.getElementById(hdReqs).value + hdID + '/' + qty + ',';

    return true;

}
