// JavaScript Document
/// <reference path="jquery-1.3.1-vsdoc.js"/>
/// <reference path="jquery.hotelSelector.js"/>

if (Handpicked == null || typeof (Handpicked) != "object") { var Handpicked = new Object(); }



// Ensure the datepicker lib is load before this
$(document).ready(function() {

    Handpicked.Login.init();
    // remove .noJsHide class from all elements since Js is enabled
    $(".noJsHide").removeClass("noJsHide");
    // the following fixes IE6 background image flicker bug detailed here: 
    // http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=1104
    try { document.execCommand('BackgroundImageCache', false, true); } catch (e) { }
    Handpicked.ui.init();

});

function showHotels() {
    // display the list of hotels
    var prefix = 'hotels_list';
    var state = getElemId(prefix).style.display;
    if (state == 'none') {
        getElemId(prefix).style.display = "block";
    } else {
        getElemId(prefix).style.display = "none";
    }
    return false;
}

function setHotel(sHotelName, sHotelID) {
    getElemId('hotelsString').value = sHotelID;
    getElemId('text_hotels').innerHTML = sHotelName;
    getElemId('hotels_list').style.display = 'none';
    getElemId('text_hotels').style.color = 'black';
    return false;
}

function str_replace(sMyString, sFind, sReplacement) {
    var tmp = sMyString;
    while (tmp.indexOf(sFind) > 0) {
        // IE7 bug fix.
        tmp = tmp.replace(sFind, sReplacement);
    }
    return tmp
}

function toggle(sDivId) {
    // generic function to toggle a div on/off
    var state = getElemId(sDivId).style.display;
    if (state != 'block') { state = "block"; } else { state = "none"; }
    getElemId(sDivId).style.display = state;
    return false;
}


/*
sIFReplace
This gets called at within the markup 
just before the closing body tag
----------------------------------------------*/
function sIFReplace() {
	var trajan = {
		src: '/css/trajan.swf'
    };

    var trajanBold = {
    src: '/css/trajan-bold.swf'
    };

	var myriad = {
	src: '/css/MYRIAD-TT.swf'
	};

	sIFR.domains = ['staging.handpickedhotels.co.uk', '127.0.0.1', 'localhost', 'handpicked.aquepreview.com', 'handpickedstaging.aquepreview.com', 'handpickedlive2.lemonpreview.com', 'www.handpickedhotels.co.uk', 'handpickedhotels.co.uk'];
	sIFR.useStyleCheck = true;
	sIFR.activate(trajan, myriad);
	sIFR.fixFocus = true;

	/* headers --------------*/
	/* h1 */
	sIFR.replace(myriad, {
		selector: '.introduction h1 span'
	, css: [".sIFR-root { color:#FFFFFF; text-transform:uppercase; letter-spacing:0.4; text-align: center; padding-left: 3; padding-right:3; }", "a { text-transform:uppercase; letter-spacing:0.4; color:#ffffff; text-decoration: none; }", "a:hover {  background-color: #41332E; color:#ffffff; cursor:pointer; text-decoration: none; }"]
	, wmode: 'transparent'
	, tuneHeight: -5
    });

	/* h2 */
	sIFR.replace(trajanBold, {
		selector: 'h2.dark'
	, css: '.sIFR-root { font-weight: bolder; color:#000000; text-align:left; padding:0; }'
	, wmode: 'transparent'
    , selectable: false
    });

	sIFR.replace(trajanBold, {
		selector: 'h2'
	, css: [".sIFR-root { font-weight: bolder; font-size: 14px; color:#ffffff; }"]
	, wmode: 'transparent'
	, selectable: false
    });

	/* h3 */
	sIFR.replace(trajanBold, {
		selector: 'h3.darkHeader'
	, css: '.sIFR-root { font-weight: bolder; color:#ffffff; text-transform:uppercase; }'
	, wmode: 'transparent'
    });

	sIFR.replace(trajanBold, {
		selector: '.RegularForm h3'
	    , css: '.sIFR-root { font-weight: bolder; color:#433A37; text-align:left; padding:0; text-transform:uppercase; letter-spacing:0.3; } a { color:#433A37; font-size:60; letter-spacing:0.3; text-decoration: none; }'
	    , wmode: 'transparent'
        , selectable: false
    });

    sIFR.replace(trajanBold, {
        selector: '#EnterYourDetailsStep h3,#SelectRatesStep h3',
        css: '.sIFR-root { font-weight: bolder; color:#433A37; text-align:left; padding:0; text-transform:uppercase; letter-spacing:0.3; font-size:13; } a { color:#433A37; font-size:60; letter-spacing:0.3; text-decoration: none; }',
        wmode: 'transparent',
        selectable: false
    });

    /* removed 04/03/10 dt - same as #SelectRatesStep h3
    sIFR.replace(trajan, {
    selector: '#EnterYourDetailsStep h3',
    css: '.sIFR-root { font-weight: bold; color:#433A37; text-align:left; padding:0; text-transform:uppercase; letter-spacing:0.3; font-size:13; } a { color:#433A37; font-size:60; letter-spacing:0.3; text-decoration: none; }',
    wmode: 'transparent',
    selectable: false
    });*/

    sIFR.replace(trajanBold, {
	    selector: '#ConfirmationStep h3, #ViewBooking h3',
	    css: '.sIFR-root { font-weight: normal; color:#433A37; text-align:left; padding:0; text-transform:uppercase; letter-spacing:0.3; font-size:13; } a { color:#433A37; font-size:60; letter-spacing:0.3; text-decoration: none; }',
		wmode: 'transparent',
		selectable: false
	});

	/* h3 */
	sIFR.replace(myriad, {
	    selector: '.content h3'
	    , css: '.sIFR-root { color:#333333; padding: 0; margin:0;  }'
	    , wmode: 'transparent'
	    , height: 20
	    , tuneHeight: -4
	});

	sIFR.replace(trajan, {
	    selector: '.info h3'
	    , css: ['.sIFR-root { color:#FFFFFF; padding: 0; margin:0; text-transform:uppercase; letter-spacing:1; font-size: 18px; text-align: center; }']
	    , wmode: 'transparent'	    
	});    
    
    /* h4 */
    sIFR.replace(myriad, {
        selector: 'h4'
	, css: ['.sIFR-root { font-size: 12px; color:#ffffff; text-transform:uppercase; letter-spacing:0.4; }', '.optional { font-size: 60px; text-decoration:none; color: #FFFFFF; font-style: normal; }']
	, wmode: 'transparent'

    });

	/* h5 */
	sIFR.replace(trajan, {
	    selector: 'h5'
	, css: '.sIFR-root { color:#433A37; text-align:left; padding:0; text-transform:uppercase; letter-spacing:0.5; }'
	, wmode: 'transparent'
    , selectable: false
    });


    /* navigation --------------*/

    /* primary nav ".globalnav" */
    sIFR.replace(trajan, {
        selector: '.globalnav li.selected'
	, css: [".sIFR-root { margin-right: 10; margin-left: 10;  background-color:#41332E; color:#ffffff; font-size: 14px; }", "a { background-color:#867864; color:#ffffff; cursor:pointer; text-decoration: none; }", "a:hover {  color:#ffffff; cursor:pointer; text-decoration: none; }"]
	, wmode: 'transparent'
	, forceSingleLine: true
	, tuneHeight: 9
	, offsetTop: 7
	, tuneWidth: 20

    });

    sIFR.replace(trajan, {
        selector: '.globalnav li'
	, css: [".sIFR-root { margin-right: 10; margin-left: 10;  background-color:#867864; color:#ffffff; font-size: 14px; }", "a { background-color:#867864; color:#ffffff; cursor:pointer; text-decoration: none; }", "a:hover {  color:#ffffff; cursor:pointer; text-decoration: none; }"]
	, wmode: 'transparent'
	, forceSingleLine: true
	, tuneHeight: 9
	, offsetTop: 7
	, tuneWidth: 20

    });

	/* secondary nav ".subnav" */
	sIFR.replace(trajan, {
	    selector: '.subnav div.hotelname'
	, css: [".sIFR-root {  background-color:#867864; color:#333333; text-align:center; font-size: 16px;  }", "a { background-color:#867864; color:#333333; cursor:pointer; text-decoration: none; }", "a:hover {  color:#333333; cursor:pointer; text-decoration: none; }"]
	, wmode: 'transparent'
    });

}

var sFormSearchFields = 'none;';
function clean(obj) {
    var value = obj.value;
    var name = obj.name;
    var exists = sFormSearchFields;

    if (exists.indexOf(name) <= 0) {
        sFormSearchFields += name + ';';
        obj.value = '';
    }
}

function getElemId(strLayerID) {
    // returns the style element
    var whichLayer = strLayerID;
    if (document.getElementById) // this is the way the standards work
        elem = document.getElementById(whichLayer);
    else if (document.all) // this is the way old msie versions work
        elem = document.all[whichLayer];
    else if (document.layers) // this is the way nn4 works
        elem = document.layers[whichLayer];

    return elem;
};

$(document).ready(function() {

    if ($("input.validateNewsletterForm")) {

        $("input.validateNewsletterForm").click(function() {

            var isFormValid = true;

            $.each($(".valueRequired"), function(i, item) {

                if ($(item).val().replace(/^\s+|\s+$/g, '').length == 0) {
                    $(item).css("background-color", "#FFCCCC");
                    isFormValid = false;
                }
                else
                    $(item).css("background-color", "#fff");
            });

            return isFormValid;
        });
    }

    if ($("ul.linklist")) {

        $.each($("ul.linklist li"), function(i, item) {

            $(item).click(function() {
                window.location = $(item).children("a").attr("href");
            });

            $(item).mouseover(function() {
                $(item).attr("temp", $(item).css("background-color"));
                $(item).css("background-color", "#A8A19E");
            });

            $(item).mouseout(function() {
                $(item).css("background-color", $(item).attr("temp"));
            });

            $(item).css("cursor", "pointer");
        });
    }

    var button = $("img.checkAvailablity");

    if (button) {

        button.mouseover(function() {
            button.attr("temp", button.attr("src"));
            button.attr("src", "/images/buttons/check-availability-black-hover.gif");
        });

        button.mouseout(function() {
            button.attr("src", button.attr("temp"));
        });
    }
});

/*
Handpicked.ui
-------------------------------------*/
Handpicked.ui = {
    init: function() {
        // activate dropdownlists
        var hotelSelector = new DropDownList("hotelSelector");
        hotelSelector.bind();
        hotelSelector.valueChanged = function() {
            document.location = hotelSelector.value;
        };
              

        //$('#eventsCarousel').jcarousel({ scroll: 1 });

        $.each($("[class*=jQueryCalendar]"), function(index, item) {
            var dp = $(item);

            var rawRangeStart = dp.attr("allowedDateRangeStart").split("/"); // [dd,mm,yyyy]
            var allowedDateRangeStart = new Date(rawRangeStart[2], rawRangeStart[1] - 1, rawRangeStart[0]); 	// y, m, d. Month is zero-based

            var rawRangeEnd = dp.attr("allowedDateRangeEnd").split("/");
            var allowedDateRangeEnd = new Date(rawRangeEnd[2], rawRangeEnd[1] - 1, rawRangeEnd[0]);

            var rawDefaultDate = dp.attr("defaultDate").split("/");
            var defaultDate = new Date(rawDefaultDate[2], rawDefaultDate[1] - 1, rawDefaultDate[0]);

            if (dp.hasClass("inline")) {
                // an inline calendar
                dp.datepicker({ inline: true });
            } else {
                // a pop-out calendar

                // dateFormat: 'dd M yy' i.e. 01 Feb 2009 http://docs.jquery.com/UI/Datepicker/%24.datepicker.formatDate
                dp.datepicker({
                    showOn: 'both',
                    buttonImage: '/images/icons/calendar.gif',
                    buttonImageOnly: true,
                    dateFormat: 'dd M yy',
                    minDate: allowedDateRangeStart,
                    maxDate: allowedDateRangeEnd,
                    defaultDate: defaultDate,
                    onSelect: function(dateText) {
                        var valueField = $("." + dp.attr("valueFieldCssClass"));
                        if (valueField)
                            valueField.val(dateText);
                    }
                });
            }
        });

        if ($.browser.msie && $.browser.version < 7) {
            if ($.isFunction($(".main").ifixpng)) {
                $(".main").ifixpng();
                $('img[src$=.png]').ifixpng()
            }
        }
    }
}

