﻿var MINUTE = 60 * 1000
var HOUR = MINUTE * 60
var DAY = HOUR * 24
var WEEK = DAY * 7

function chooseCat(catId) {

    document.getElementById('divGo').style.display = 'none';
    document.getElementById('CatID').value = catId;

    return true;

}

function getMonthNum(smonth) {

    var nmonth = 1;

    switch(smonth)
    {
    case 'Jan':
        nmonth = 1;
        break;
    case 'Feb':
        nmonth = 2;
        break;
    case 'Mar':
        nmonth = 3;
        break;
    case 'Apr':
        nmonth = 4;
        break;
    case 'May':
        nmonth = 5;
        break;
    case 'Jun':
        nmonth = 6;
        break;
    case 'Jul':
        nmonth = 7;
        break;
    case 'Aug':
        nmonth = 8;
        break;
    case 'Sep':
        nmonth = 9;
        break;
    case 'Oct':
        nmonth = 10;
        break
    case 'Nov':
        nmonth = 11;
        break;
    case 'Dec':
        nmonth = 12;
        break;
    default:
        nmonth = 1;
    }

    return nmonth;

}

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') {

                if (Page_ClientValidate()) {

                    document.getElementById('PayTime').value = '1';
                    $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 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(1 * -1);
        calArr._selectedDate = checkIn;
        calArr._textbox.set_Value(calArr._selectedDate.format(calArr._format));
    }
    else if (checkIn > checkOut) {
        checkOut = checkIn.goto(1);
        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(1);
        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 smonth = document.getElementById('txArrival').value;
    smonth = smonth.substring(3, 6);

    var nmonth = getMonthNum(smonth);
    nmonth--;

    var nyear = document.getElementById('txArrival').value;
    nyear = nyear.substring(7, 11);

    var dCheckIn = new Date(nyear, nmonth, nday);

    return dCheckIn;
}

function getCheckOutDate() {
    var nday = document.getElementById('txDeparture').value;
    nday = nday.substring(0, 2);

    var smonth = document.getElementById('txDeparture').value;
    smonth = smonth.substring(3, 6);

    var nmonth = getMonthNum(smonth);
    nmonth--;

    var nyear = document.getElementById('txDeparture').value;
    nyear = nyear.substring(7, 11);

    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 xCharge = document.getElementById('XCharge').value;

    if (xCharge == '0') {
        var paymentsProgressDiv = $get('divLoadingPayments');
        // make it visible
        paymentsProgressDiv.style.display = 'block';
            };

//    if (document.getElementById('PayTime').value == '1') {

//        document.getElementById('XCharge').value = '1';

//    };

    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;

}
