function agentLogin() {
    var f = document.agent_frm;
    if (f.login.value == "") {
        document.getElementById("login").className = "txt-login txt-login-error";
        document.getElementById("logerror").style.display = "block";
    }
    else {
        document.getElementById("login").className = "txt-login";
        document.getElementById("logerror").style.display = "none";
    }
}
function openFaq() {
    window.open('FAQ_Overview.html', 'faq', 'width=626, height=610, scrollbars=1, resizable=0');
}

function myClick(myBtn) {
    if ($jq(myBtn).attr('href') != null && $jq(myBtn).attr('href').indexOf('__doPostBack') > -1 && $jq(myBtn).attr('href').indexOf('btnSearch') == -1) {
        __doPostBack($jq(myBtn).attr('id').replace('_', '$'), '');
    }
    else if ($jq(myBtn).attr('href') != null && $jq(myBtn).attr('href').indexOf('__doPostBack') > -1 && $jq(myBtn).attr('href').indexOf('btnSearch') != -1) { 
        __doPostBack($jq(myBtn).attr('id').replace('0_', '0$'), '');
    }
    else if ($jq(myBtn).attr('href') != null && $jq(myBtn).attr('href').indexOf('_DoPostBackWithOptions') > -1) {
        eval($jq(myBtn).attr('href'));
    }
    else {
        $jq(myBtn).click();
    }
}

function fnTrapKD1(evt, btn) {
    evt = (evt) ? evt : event;
    var keyCode = evt.keyCode;
    if (keyCode == 13) {
        evt.returnValue = false;
        evt.cancel = true;
        myClick(btn);
    }
}

var austrian = {};
(function($) {
    var addOption = function(select, value, text, selected) {
        text = (!text) ? value : text;
        selected = (!selected) ? false : selected;
        if ($.browser.msie) {
            var pos = select.options.length;
            var myOpt = new Option(text, value);
            select.options[pos] = myOpt;
            if (selected) {
                select.selectedIndex = pos;
            }
        } else {
            var option = document.createElement("option");
            option.value = value;
            option.text = text;
            option.selected = selected;
            select.appendChild(option);
        }
    };


    var buildSelect = function(o, dd) {
        try {
            var obj = o.obj;
            var val = o.val;
            var cal = o.cal;
            var date = null;
            if (typeof (dd) == "number") {
                date = new Date(dd);
                date.setHours(0);
                date.setMinutes(0);
                date.setSeconds(0);
                date.setMilliseconds(0);
            } else if (typeof (dd) == "string") {
                dd = new Date(dd);
                date = new Date(dd.getFullYear(), dd.getMonth(), dd.getDate(), 0, 0, 0);
                date.setMilliseconds(0);
            } else {
                date = new Date(dd.getFullYear(), dd.getMonth(), dd.getDate(), 0, 0, 0);
                date.setMilliseconds(0);
            }
            obj.day.children("option").remove();
            var tdate = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
            tdate.setMilliseconds(0);
            var curMon = tdate.getMonth();

            var today_tmp = new Date(austrian.today);
            today_tmp.setHours(0);
            today_tmp.setMinutes(0);
            today_tmp.setSeconds(0);
            today_tmp.setMilliseconds(0);

            var end_tmp = new Date(austrian.end);
            end_tmp.setHours(0);
            end_tmp.setMinutes(0);
            end_tmp.setSeconds(0);
            end_tmp.setMilliseconds(0);
            if (austrian.isBookingLogic) {
                tdate.setDate(1);
                for (var i = 0; i < 31; i++) {
                    addOption(obj.day.get(0), tdate.getTime(), ("" + tdate.getDate() + " " + tdate.getDayName(true) + ""));
                    tdate = tdate.addDays(1);
                }
            } else {
                while (tdate.getMonth() == curMon) {
                    if (
                    (today_tmp > end_tmp && tdate <= today_tmp && tdate >= end_tmp) ||
                    (today_tmp < end_tmp && tdate >= today_tmp && tdate <= end_tmp)
                    ) {
                        addOption(obj.day.get(0), tdate.getTime(), ("" + tdate.getDate() + " " + tdate.getDayName(true) + ""));
                    }
                    tdate = tdate.addDays(1);
                }
            }
            obj.day.children("option[value='']").remove();
            obj.day.val(date.getTime());

            obj.month.children("option").remove();

            today_tmp.setDate(1);
            end_tmp.setDate(1);

            var sdate = (today_tmp < end_tmp) ? today_tmp : end_tmp;
            var edate = (today_tmp < end_tmp) ? end_tmp : today_tmp;
            tdate = new Date(sdate);
            tdate.setHours(0);
            tdate.setMinutes(0);
            tdate.setSeconds(0);

            while (tdate <= edate) {
                if ((new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0)).getTime() == tdate.getTime()) {
                    addOption(obj.month.get(0), tdate.getTime(), ("" + tdate.getMonthName(true) + " " + tdate.getFullYear() + ""), true);
                } else {
                    addOption(obj.month.get(0), tdate.getTime(), ("" + tdate.getMonthName(true) + " " + tdate.getFullYear() + ""), false);
                }
                tdate.addMonths(1);
            }

            obj.month.children("option[value='']").remove();

            try {
                cal.dpSetSelected(date.addDays(0).asString());
            } catch (e) { }

            try {
                val.day.val(date.getDate());
                val.month.val(date.getMonth() + 1);
                val.year.val(date.getFullYear());
            } catch (e) { }
        } catch (e) { }
    };

    austrian.lastValidDate = {};
    austrian.lastValidDate.from = null;
    austrian.lastValidDate.to = null;
    austrian.lastValidDate.bounds = {};
    austrian.lastValidDate.bounds.from = null;
    austrian.lastValidDate.bounds.to = null;
    austrian.dateRange = {};
    austrian.dateRange.from = null;
    austrian.dateRange.to = null;
    austrian.dateRange.selectedDate = null;
    austrian.isBookingLogic = false;

    austrian.data = {};
    austrian.datePicker = function(data) {
        austrian.isBookingLogic = (jQuery(".start .intro-box,.main-bg .middle-column .seo-booking").length == 1);
        austrian.data = data;
        austrian.today = new Date();
        austrian.end = new Date();
        austrian.end.addDays(360);
        austrian.selectedDate = austrian.today;
        if (data.format) {
            Date.format = data.format;
        }
        var fromOffset = null;
        if (data.from) {
            fromOffset = data.from.offset || [25, -140];
        } else {
            fromOffset = [25, -140];
        }
        var toOffset = null;
        if (data.to) {
            toOffset = data.to.offset || [25, -140];
        } else {
            toOffset = [25, -140];
        }

        if (austrian.data.dateRange) {
            if (austrian.data.dateRange.from) {
                austrian.today = austrian.data.dateRange.from;
            }
            if (austrian.data.dateRange.to) {
                austrian.end = austrian.data.dateRange.to;
            }
            if (austrian.data.dateRange.selectedDate) {
                austrian.selectedDate = austrian.data.dateRange.selectedDate;
            }
        }

        if (data.from && data.from.cal) {
            var dpf = data.from.cal.datePicker({
                createButton: false,
                selectMultiple: false,
                startDate: austrian.today.asString(),
                endDate: austrian.end.asString(),
                renderCallback: function($th, thisDate, month, year) {
                    if (thisDate.isWeekend()) {
                        $th.addClass('weekend');
                    }
                }
            });
            data.from.dpt = dpf;
            if (data.from.obj && data.from.obj.day && data.from.obj.month && data.from.obj.year) {
                dpf.bind("click", function() {
                    $(this).dpDisplay();
                    return false;
                }).bind("dateSelected", function(e, selectedDate, $td, state) {
                    data.from.obj.day.change();
                    austrian.setFromDate(selectedDate);
                }).bind("dpClosed", function(e, selected) {
                    data.from.obj.day.change();
                    austrian.setFromDate(selected[0]);
                }).dpSetOffset(fromOffset[0], fromOffset[1]);
                data.from.obj.day.change(function() {
                    var dayFld = new Date(data.from.obj.day.val() * 1);
                    var date = new Date(dayFld.getFullYear(), dayFld.getMonth(), dayFld.getDate(), 0, 0, 0);
                    austrian.setFromDate(date);
                    if (austrian.isBookingLogic) {
                        fromDate = new Date(data.from.obj.day.val() * 1);
                        var now = new Date();
                        if (fromDate.getTime() < now.getTime()) {
                            date = date.addMonths(1);
                            austrian.setFromDate(date);
                        }
                        toDate = new Date(data.to.obj.day.val() * 1);
                        if (date.getTime() > toDate.getTime()) {
                            austrian.setToDate(date);
                        }
                    } else if (data.to) {
                        toDate = new Date(data.to.obj.day.val() * 1);
                        if (date.getTime() > toDate.getTime()) {
                            austrian.setToDate(date);
                        }
                    }
                });
                data.from.obj.month.change(function() {
                    var monFld = new Date(data.from.obj.month.val() * 1);
                    var dayFld = new Date(data.from.obj.day.val() * 1);
                    var date = new Date(monFld.getFullYear(), monFld.getMonth(), dayFld.getDate(), 0, 0, 0);
                    austrian.setFromDate(date);
                    if (austrian.isBookingLogic) {
                        fromDate = new Date(data.from.obj.day.val() * 1);
                        var now = new Date();
                        now.setHours(0);
                        now.setMinutes(0);
                        now.setSeconds(0);
                        now.setMilliseconds(0);
                        if (fromDate.getTime() < now.getTime()) {
                            //date.addMonths(1);
                            austrian.setFromDate(now);
                        }
                        toDate = new Date(data.to.obj.day.val() * 1);
                        if (date.getTime() > toDate.getTime()) {
                            austrian.setToDate(date);
                        }
                    } else if (data.to) {
                        toDate = new Date(data.to.obj.day.val() * 1);
                        if (date.getTime() > toDate.getTime()) {
                            austrian.setToDate(date);
                        }
                    }
                });
                buildSelect(data.from, austrian.today);
            } else {
                dpf.bind("click", function() {
                    $(this).dpDisplay();
                    return false;
                }).bind("dateSelected", function(e, selectedDate, $td, state) {
                    data.from.cal.change();
                }).bind("dpClosed", function(e, selected) {
                    data.from.cal.change();
                }).dpSetOffset(fromOffset[0], fromOffset[1]);
                data.from.cal.val(austrian.today.asString());
            }
            austrian.setFromDate(austrian.selectedDate);
        }

        if (data.to && data.to.cal) {
            var dpt = data.to.cal.datePicker({
                createButton: false,
                selectMultiple: false,
                startDate: austrian.today.asString(),
                endDate: austrian.end.asString(),
                renderCallback: function($th, thisDate, month, year) {
                    if (thisDate.isWeekend()) {
                        $th.addClass('weekend');
                    }
                }
            });
            data.to.dpt = dpt;
            if (data.to.obj && data.to.obj.day && data.to.obj.month && data.to.obj.year) {
                dpt.bind("click", function() {
                    $(this).dpDisplay();
                    return false;
                }).bind("dateSelected", function(e, selectedDate, $td, state) {
                    data.to.obj.day.change();
                    austrian.setToDate(selectedDate);
                }).bind("dpClosed", function(e, selected) {
                    data.to.obj.day.change();
                    austrian.setToDate(selected[0]);
                }).dpSetOffset(toOffset[0], toOffset[1]);
                data.to.obj.day.change(function() {
                    var dayFld = new Date(data.to.obj.day.val() * 1);
                    var date = new Date(dayFld.getFullYear(), dayFld.getMonth(), dayFld.getDate(), 0, 0, 0);
                    austrian.setToDate(date);
                    if (austrian.isBookingLogic) {
                        toDate = new Date(data.to.obj.day.val() * 1);
                        if (toDate.getTime() < date.getTime()) {
                            date.addMonths(1);
                            austrian.setToDate(date);
                        }
                        fromDate = new Date(data.from.obj.day.val() * 1);
                        if (date.getTime() < fromDate.getTime()) {
                            date.addMonths(1);
                            austrian.setToDate(date);
                        }
                    } else if (data.from) {
                        fromDate = new Date(data.from.obj.day.val() * 1);
                        if (date.getTime() < fromDate.getTime()) {
                            austrian.setFromDate(date);
                        }
                    }
                });
                data.to.obj.month.change(function() {
                    var monFld = new Date(data.to.obj.month.val() * 1);
                    var dayFld = new Date(data.to.obj.day.val() * 1);
                    var date = new Date(monFld.getFullYear(), monFld.getMonth(), dayFld.getDate(), 0, 0, 0);
                    austrian.setToDate(date);
                    if (austrian.isBookingLogic) {
                        fromDate = new Date(data.from.obj.day.val() * 1);
                        if (date.getTime() < fromDate.getTime()) {
                            austrian.setToDate(fromDate);
                        }
                        toDate = new Date(data.to.obj.day.val() * 1);
                        if (date.getTime() > toDate.getTime()) {
                            austrian.setToDate(date);
                        }
                    } else if (data.from) {
                        fromDate = new Date(data.from.obj.day.val() * 1);
                        if (date.getTime() < fromDate.getTime()) {
                            austrian.setFromDate(date);
                        }
                    }

                });
                buildSelect(data.to, austrian.today);
            } else {
                dpt.bind("click", function() {
                    $(this).dpDisplay();
                    return false;
                }).bind("dateSelected", function(e, selectedDate, $td, state) {
                    data.from.cal.change();
                }).bind("dpClosed", function(e, selected) {
                    data.from.cal.change();
                }).dpSetOffset(toOffset[0], toOffset[1]);
                data.to.cal.val(austrian.today.asString());
            }
            austrian.setToDate(austrian.selectedDate);
        }
    };

    austrian.setFromDate = function(date, data) {
        if (!data) { data = austrian.data; }
        if (data.from.cal.val() != (new Date(date)).asString()) {
            data.from.cal.val(new Date(date).asString());
            austrian.lastValidDate.from = data.from.cal.val();
            try {
                buildSelect(data.from, date);
            } catch (e) { }
            if (austrian.isBookingLogic) {
                if (typeof date != 'number') {
                    data.to.cal.dpSetStartDate(date.asString());
                }
            }
        }
    };

    austrian.setToDate = function(date, data) {
        if (!data) { data = austrian.data; }
        if (data.to.cal.val() != (new Date(date)).asString()) {
            data.to.cal.val(new Date(date).asString());
            austrian.lastValidDate.to = data.to.cal.val();
            try {
                buildSelect(data.to, date);
            } catch (e) { }
        }
    };

    austrian.setFromStartDate = function(date, data) {
        if (!data) { data = austrian.data; }
        data.from.cal.dpSetStartDate(new Date(date).asString());
    };

    austrian.setToStartDate = function(date, data) {
        if (!data) { data = austrian.data; }
        data.to.cal.dpSetStartDate(new Date(date).asString());
    };

    austrian.setFromEndDate = function(date, data) {
        if (!data) { data = austrian.data; }
        data.from.cal.dpSetEndDate(new Date(date).asString());
    };

    austrian.setToEndDate = function(date, data) {
        if (!data) { data = austrian.data; }
        data.to.cal.dpSetEndDate(new Date(date).asString());
    };
    
})(jQuery);

/* CSS bRowser Bugfixing */
if (jQuery) {
    (function(jQuery) {
        try {
            jQuery.os = {};
            jQuery.os.windows = (navigator.platform.indexOf("Win") != -1);
            jQuery.os.mac = (navigator.platform.indexOf("Mac") != -1);
            jQuery.os.iphone = (navigator.userAgent.indexOf("iPhone") != -1);
            jQuery.os.linux = (navigator.platform.indexOf("Linux") != -1);
            jQuery.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
            jQuery.browser.firefox = (jQuery.browser.mozilla && navigator.userAgent.match(/Firefox\/([0-9|\.]+)/).length > 0);
        } catch (e) { }
        var browser = "";
        var os = "";
        var version = 0;
        var major_version = 0;
        for (var i in jQuery.browser) {
            if (jQuery.browser[i] && i != "version") {
                browser = i;
            }
        }
        for (var j in jQuery.os) {
            if (jQuery.os[j]) {
                os = j;
            }
        }
        try {
            version = parseFloat(navigator.userAgent.match(/Firefox\/([0-9|\.]+)/)[1]);
        } catch (e) {
            try {
                if (jQuery.browser.safari) {
                    if (navigator.userAgent.indexOf("Version") > -1) {
                        version = parseFloat(navigator.userAgent.match(/Version\/([0-9|\.]+)/)[1]);
                    } else {
                        version = parseFloat(navigator.userAgent.match(/AppleWebKit\/([0-9|\.]+)/)[1]);
                        if (version < 400) {
                            version = 2.0;
                        } else if (version < 500) {
                            version = 3.0;
                        } else if (version < 600) {
                            version = 4.0;
                        }
                    }
                } else {
                    version = parseFloat(jQuery.browser.version);
                }
            } catch (e) { }
        }
        major_version = parseInt(version, 10);
        var mv = major_version.toString().replace(/\./, "_");
        var lv = version.toString().replace(/\./, "_");
        jQuery("html").addClass([
                                browser,
                                os,
                                [os, browser].join('_'),
                                [browser, mv].join('_'),
                                [browser, lv].join('_'),
                                [os, browser, mv].join('_'),
                                [os, browser, lv].join('_')
                                ].join(' '));
    })(jQuery);
}

jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

jQuery.fn.browserHeight = function() {
    var scrollHeight,
			offsetHeight;
    // handle IE 6
    if ($jq.browser.msie && $jq.browser.version < 7) {
        scrollHeight = Math.max(
				document.documentElement.scrollHeight,
				document.body.scrollHeight
			);
        offsetHeight = Math.max(
				document.documentElement.offsetHeight,
				document.body.offsetHeight
			);

        if (scrollHeight < offsetHeight) {
            return $jq(window).height() + 'px';
        } else {
            return scrollHeight + 'px';
        }
        // handle "good" browsers
    } else {
        return $jq(document).height() + 'px';
    }
};

jQuery.fn.browserWidth = function() {
    var scrollWidth,
			offsetWidth;
    // handle IE 6
    if ($jq.browser.msie && $jq.browser.version < 7) {
        scrollWidth = Math.max(
				document.documentElement.scrollWidth,
				document.body.scrollWidth
			);
        offsetWidth = Math.max(
				document.documentElement.offsetWidth,
				document.body.offsetWidth
			);

        if (scrollWidth < offsetWidth) {
            return $jq(window).width() + 'px';
        } else {
            return scrollWidth + 'px';
        }
        // handle "good" browsers
    } else {
        return $jq(document).width() + 'px';
    }
};

if (jQuery.os.windows && jQuery.browser.safari) {
    jQuery(document).ready(function() {
        var oldIDX = 1;
        $jq("#countries_msdd").mousedown(function() {
            if ($jq(this).find("#countries_child").is(':visible')) {
                $jq(".stageholder").css({
                    'z-index': oldIDX
                });
            } else {
                oldIDX = $jq(".intro-box .stageholder").css('z-index');
                $jq(".stageholder").css({
                    'z-index': -1
                });
            }
        });
    });
}
