// The next line enables jQuery IntelliSense in Visual Studio:
/// <reference path="/common/js/IntelliSense/jquery-1.3.1-vsdoc.js" />

var unsavedDataAlert = "";
unsavedDataAlert += "________________________________________________________________\n\n\n";
unsavedDataAlert += "Uw reservering / reserveringsaanvraag is nog niet definitief!\n";
unsavedDataAlert += "Klik op \'Annuleren\' of \'Cancel\' en vervolgens op de \'Reserveer\' knop om te bevestigen.\n";
unsavedDataAlert += "Klik op \'OK\' als u uw reservering daadwerkelijk wilt afbreken.\n\n";
unsavedDataAlert += "________________________________________________________________";

var firstSlideTimeOut = 4000;


$(document).ready(function() {

    Cufon.replace('h1, h2, h3, h4, h5, .cufon, .flash, .flash-onblack, .flash-orange'); // Requires a selector engine for IE 6-7, see above
    Cufon.now();

    if (document.getElementById('countdown_dashboard') != undefined) {
        $('#countdown_dashboard').countDown({
            targetDate: {
                'day': $('#countdown_day').val(),
                'month': $('#countdown_month').val(),
                'year': $('#countdown_year').val(),
                'hour': $('#countdown_hour').val(),
                'min': 0,
                'sec': 0
            },
            omitWeeks: true
        });
    }

    if (jQuery().flash) { // check whether "jquery.flash.1.0.1.js" is included in this page
        /*
        Examples:
            
        1) Met XMLpath en bgcolor (homepage):
        <a class="flash" rel="/smartbanner/assets/swf/smart-banner-290.swf:680:290:8:000000:/xml/SmartBanner.xml?dt=20100519162049" 
        href="http://model.bilderberg.nl" style="display:block">
        <img src="/images/homebanner_nextcampaignmodel.jpg" width="680" height="290" alt="" />
        </a>
		    
		2) Eenvoudig, zonder no-flash alternatief (voorbeeld: /bilderberg-a-la-carte/)
        <a class="flash" href="http://www.macromedia.com/go/getflashplayer" 
        rel="/flash/banner_extras_635x270_v2.swf:635:270:7">
        U heeft Flash nodig om de film te bekijken. Download de Flash Player.
        </a>
        */

        $('a.flash').flash(null, { version: 7, update: false }, function(htmlOptions) {
            var $this = $(this);
            var params = $this.attr('rel').split(':');
            htmlOptions.src = params[0];
            htmlOptions.width = params[1];
            htmlOptions.height = params[2];
            htmlOptions.version = params[3];
            htmlOptions.bgcolor = '#' + params[4];
            if (params[5] != '') htmlOptions.flashvars.XMLpath = params[5];
            if (params[6] != '') htmlOptions.flashvars.showLogo = params[6];
            if (params[7] != '') htmlOptions.flashvars.dataFile = params[7];
            var originalHTML = $this.html();
            $this.html('<div class="alt">' + originalHTML + '</div>');
            $this.addClass('flash-replaced').prepend($.fn.flash.transform(htmlOptions));
        }
        );

        /*
        Voorbeeld:
        <a class="flash-video-player" href="http://www.macromedia.com/go/getflashplayer" 
        rel="/flash/video/energie.flv:/flash/video/energie.jpg:/flash/player.swf:/flash/stylish.swf:400:300:7">
        U heeft Flash nodig om de film te bekijken. Download de Flash Player.
        </a>
        */
        $('a.flash-video-player').flash(null, { version: 7, update: false }, function (htmlOptions) {
            
            var $this = $(this);
            htmlOptions.allowfullscreen = 'true';
            htmlOptions.wmode = 'opaque'; /* GDG 2011-01-05: toegevoegd om te zorgen dat in IE d flashmovie niet boven de modal window wordt getoond (o.a. op http://www.bilderberg.nl/hotels/kasteel-vaalsbroek/vergaderen/) */
            var params = $this.attr('rel').split(':');
            $('#video-or-photo').html("<img alt='' src='" + params[1] + "' alt='' />");
            $('#video-or-photo').flash(null, { version: 7, update: false }, function(htmlOptions) {
                htmlOptions.allowfullscreen = 'true';
                htmlOptions.flashvars.file = params[0];
                htmlOptions.flashvars.image = params[1];
                htmlOptions.src = params[2];
                htmlOptions.flashvars.skin = params[3];
                htmlOptions.width = params[4];
                htmlOptions.height = params[5];
                htmlOptions.version = params[6];
                htmlOptions.flashvars.autostart = false;
                $('#video-or-photo').addClass('flash-replaced').html($.fn.flash.transform(htmlOptions));
            });
//            htmlOptions.flashvars.file = params[0];
//            htmlOptions.flashvars.image = params[1];
//            htmlOptions.src = params[2];
//            htmlOptions.flashvars.skin = params[3];
//            htmlOptions.width = params[4];
//            htmlOptions.height = params[5];
//            htmlOptions.version = params[6];
//            var originalHTML = $this.html();
//            $this.html('<div class="alt">' + originalHTML + '</div>');
//            $this.addClass('flash-replaced').prepend($.fn.flash.transform(htmlOptions));
        });

        $('a.flash-video-thumbnail').click(function() {
            var $this = $(this);
            var params = $this.attr('rel').split(':');
            $('#video-or-photo').html("<img alt='' src='" + params[1] + "' alt='' />");
            $('#video-or-photo').flash(null, { version: 7, update: false }, function(htmlOptions) {
                htmlOptions.allowfullscreen = 'true';
                htmlOptions.flashvars.file = params[0];
                htmlOptions.flashvars.image = params[1];
                htmlOptions.src = params[2];
                htmlOptions.flashvars.skin = params[3];
                htmlOptions.width = params[4];
                htmlOptions.height = params[5];
                htmlOptions.version = params[6];
                htmlOptions.flashvars.autostart = true;
                $('#video-or-photo').addClass('flash-replaced').html($.fn.flash.transform(htmlOptions));
            });
            return false;
        });

        $('a.flash-thumbnail').click(function() {
            var $this = $(this);
            var params = $this.attr('rel').split(':');
            $('#video-or-photo').html("<img alt='' src='" + params[1] + "' width='" + params[2] + "' alt='' />");
            $('#video-or-photo').flash(null, { version: 7, update: false }, function(htmlOptions) {
                htmlOptions.allowfullscreen = 'true';
                //htmlOptions.flashvars.file = params[0];
                htmlOptions.src = params[0];
                htmlOptions.flashvars.image = params[1];
                htmlOptions.width = params[2];
                htmlOptions.height = params[3];
                htmlOptions.version = params[4];
                htmlOptions.flashvars.autostart = true;
                $('#video-or-photo').addClass('flash-replaced').html($.fn.flash.transform(htmlOptions));
            });
            return false;
        });
    }

    $('a.photo-thumbnail').click(function() {
        var $this = $(this);
        var source = $(this).attr("href");
        var title = $(this).attr("title");
        $('#video-or-photo').html("<img alt='' src='" + source + "' alt='' title='" + title + "' />");
        return false;
    });

    if (document.getElementById('frmControleBoeking') != undefined) {
        $('BODY').attr('onbeforeunload', "if (document.getElementById('buttonsubmit').value != 1){return unsavedDataAlert;}");
        $('.btnReserveerBoeking').click(function() {
            $('#buttonsubmit').attr('value', '1');
        });
    }

    $('.plus').click(function() {
        $(".hidden-toggleable").slideToggle();
        $(this).toggleClass('minus');
    });

    $("#readmoreHotelOmschrijving").click(function() {
        $("#HotelSamenvatting").slideUp("slow");
        $("#HotelOmschrijving").slideDown("slow");
    });

    $("#question-InformatieAanvraagInformatieAanvraagSoortId").change(function() {
        if ($('#question-InformatieAanvraagInformatieAanvraagSoortId option:selected').val() == 9) {
            $("#question-InformatieAanvraagSoortAnders").slideDown("slow");
        } else {
            $("#question-InformatieAanvraagSoortAnders").slideUp("slow");
        }
    });

    $("a.fancybox-toggle").each(function() {
        $(this).fancybox({
            'hideOnContentClick': false,
            'width': 700,
            'height': 400,
            'padding': 5
        })
    });

    $("a.fancybox-vergaderen").each(function() {
        $(this).fancybox({
            'hideOnContentClick': false,
            'width': 740,
            'padding': 10
        })
    });

    $("a.fancybox-movietoggle").each(function() {
        $(this).fancybox({
            'hideOnContentClick': false,
            'width': 410,
            'height': 260,
            'padding': 10
        })
    });

    $("a.fancybox-iframe").each(function() {
        w = $.parseQuery($(this).attr('href')).width * 1; /* Get the iframe width from the querystring of the link */
        h = $.parseQuery($(this).attr('href')).height * 1; /* Get the iframe height from the querystring of the link */
        var showCloseButton = $(this).hasClass("fancybox-showCloseButton");
        var hideOnOverlayClick = $(this).hasClass("fancybox-hideOnOverlayClick");
        $(this).fancybox({
            'width': w
            , 'height': h
            , 'overlayShow': true
            , 'centerOnScroll': true
            , 'showCloseButton': showCloseButton
            , 'hideOnOverlayClick': hideOnOverlayClick
            , 'type': 'iframe'
        });
    });

    $("#question-verblijfgarantie").click(function() { // Disable inputfields indien geen creditcard wordt opgegeven
        if ($('input[name=verblijfgarantie]:checked').val() == 1) {
            $("#question-BoekingCreditcardType :input").removeAttr("disabled");
            $("#question-BoekingCreditcardNummer :input").removeAttr("disabled");
            $("#question-BoekingCreditcardNaam :input").removeAttr("disabled");
            $("#question-BoekingCreditcardVervaldatumMaand :input").removeAttr("disabled");
            $("#question-BoekingCreditcardVervaldatumJaar :input").removeAttr("disabled");
        } else {
            $("#question-BoekingCreditcardType :input").attr("disabled", "disabled");
            $("#question-BoekingCreditcardNummer :input").attr("disabled", "disabled");
            $("#question-BoekingCreditcardNaam :input").attr("disabled", "disabled");
            $("#question-BoekingCreditcardVervaldatumMaand :input").attr("disabled", "disabled");
            $("#question-BoekingCreditcardVervaldatumJaar :input").attr("disabled", "disabled");
        }
    });

    $(".submitcreditcard").click(function() {
        if ($('input[name=verblijfgarantie]:checked').val() == 1) {
            if (CreditcardVervaldatumValidatie() == false) {
                $("#creditcard_error").slideDown('fast')
                return false;
            } else {
                return true;
            }
        } else {
            return true
        }
    });

    $("#question-BoekingCreditcardVervaldatumMaand").change(function() {
        if (CreditcardVervaldatumValidatie() == false) {
            $("#creditcard_error").slideDown('fast')
        } else {
            $("#creditcard_error").slideUp('fast')
        }
    });

    $("#question-BoekingCreditcardVervaldatumJaar").change(function() {
        if (CreditcardVervaldatumValidatie() == false) {
            $("#creditcard_error").slideDown('fast')
        } else {
            $("#creditcard_error").slideUp('fast')
        }
    });

    if (jQuery().tooltip) { // check whether "jquery.tooltip.js" is included in this page
        $("a.kaartnl").tooltip({
            track: true,
            delay: 300,
            opacity: 0,
            top: 10,
            left: 50,
            showURL: false,
            bodyHandler: function() {
                return $("<img/>").attr("src", "/images/hotels/" + this.id.replace('link_photo_', '') + ".jpg");
            }
        });

        $("#kaartnederland area").tooltip({
            track: true,
            delay: 300,
            opacity: 0,
            top: 10,
            left: 10,
            showURL: false,
            bodyHandler: function() {
                var myTitle = this.tooltipText; /* The tooltip script deletes the title and alt attribute, and copies the value of the title to its own tooltipText expando.  */
                return $("<h2>" + myTitle + "</h2><img/>").attr("src", "/images/hotels/" + this.id.replace('photo_', '') + ".jpg");
            }
        });

        $("a.tooltip").tooltip({
            track: true,
            delay: 300,
            opacity: 0,
            top: 10,
            left: 10,
            showURL: false,
            bodyHandler: function() {
                var html = "<table style=\"border-collapse:collapse;margin:0;\">";
                var titleArray = this.tooltipText.split("|");
                var titleRow = 0;
                while (titleRow < titleArray.length) {
                    html += "<tr>"
                    html += "<th style=\"border:1px solid;padding:2px 4px;\">" + titleArray[titleRow].split(":")[0] + "</th>"
                    html += "<td style=\"border:1px solid;padding:2px 4px;\">" + titleArray[titleRow].split(":")[1] + "</td>"
                    html += "</tr>"
                    titleRow += 1;
                }
                html += "</table>";
                return html;
            }
        });
    }

    // Kinderen / Mindervaliden - Begin
    $("#lnkReserverenKinderen").click(function() {
        $("#ReserverenKinderen").slideToggle("slow");
    });
    $("#lnkReserverenMindervaliden").click(function() {
        $("#ReserverenMindervaliden").slideToggle("slow");
    });
    // Kinderen / Mindervaliden - Begin

    $("#hidden-object-toggler").click(function() {
        $("#hidden-object").slideToggle("slow");
        return false;
    });

    $(".hidden-object-toggler input").change(function() {
        $("#hidden-object").slideToggle("slow");
    });

    $(".voeg-toe-toggler").click(function(event) {
        handleSupplementKlik(this, true);
    });

    $("input.datum-selectie").click(function(event) {
        handleSupplementDatumKlik(this, true);
    });

    $("ul.client-side a").click(function() {
        // reset all
        $('ul.tabs li').removeClass('selected');
        $('.supplementsoort').hide();
        // show selected tab + content
        $('#' + this.id + '-box').show();
        $(this.parentNode).addClass('selected');
        return false;
    });

    $(".lnkAnnuleringsvoorwaarden").click(function() {
        $(".AnnuleringsVoorwaarden").toggle("slow")
    });

    $("select[name='AantalVolwassenen'], select[name='AantalKamers'], select[name='RegioOfHotel'], select[name='KamerId']").change(function() {
        SyncAantalVolwassenenEnKamers(this)
    });

    $(".kalender-navigatie .volgende a").click(function() {
        $(this).parents(".maand").hide();
        $(this).parents(".maand").next().fadeIn();
        return false;
    });

    $(".kalender-navigatie .vorige a").click(function() {
        $(this).parents(".maand").hide();
        $(this).parents(".maand").prev().fadeIn();
        return false;
    });

    $(".toonopkaart").hover(
        function() {
            var $photoDiv = $(this).parents(".combinatiehotel").children('.foto');
            var background = $photoDiv.css('background-image');
            background = background.replace("_160", "_160_nederland");
            $photoDiv.css('background-image', background);
        },
        function() {
            var $photoDiv = $(this).parents(".combinatiehotel").children('.foto');
            var background = $photoDiv.css('background-image');
            background = background.replace("_160_nederland", "_160");
            $photoDiv.css('background-image', background);
        }
    );

    $(".combinatiehotel").each(
        function() {
            var id = $(this).attr("id")
            if ($("input#check-" + id + ":checked").length > 0) {
                $(this).css('background', 'url(/images/bg_item_selected.gif) no-repeat left top #EAF5D8');
            }
        }
    )

    $(".combinatiehotel input").click(
        function() {
            var h = $(this).attr("class").replace('h', '');
            var hChecked = $(".combinatiehotel input:checked").length;
            var $photoImg = $(this).parents(".combinatiehotel").children('div').children('img');
            if (this.checked == true) {
                $(this).parents(".combinatiehotel").css('background', 'url(/images/bg_item_selected.gif) no-repeat left top #EAF5D8');
                if (h == hChecked) {
                    $(".combinatiehotel input").attr("disabled", "disabled");
                    $(".combinatiehotel input:checked").removeAttr("disabled");
                    $(this).parents("form").submit();
                } else {
                    $photoImg.attr('src', '/images/overlay_geselecteerd.gif');
                }
            } else {
                $(".combinatiehotel input").removeAttr("disabled");
                $(this).parents(".combinatiehotel").css('background', '');
                $photoImg.attr('src', '/images/overlay.gif');
            }
        }
    );

    $("input#geen-voorkeur").change(
        function() {
            if (this.checked == true) {
                $("select[name = 'volgorde']").removeClass("required")
            } else {
                $("select[name = 'volgorde']").addClass("required")
            }
        }
    );

    $("form#VolgordeVanUwVerblijf select[name = 'volgorde']").change(
        function() {
            var volgorde = $(this).find(":selected").attr("value");
            var volgordeArray = volgorde.split(",");
            var i = 0;
            while (i < volgordeArray.length) {
                var $move = $("#" + volgordeArray[i])
                $move.effect("highlight", {}, 1000);
                $("#combinatiehotels").append($move);
                i += 1;
            }
        }
    );

    if (jQuery().sortable) { // check whether jQuery UI sortable is available on this page
        $(".sortable").sortable({
            placeholder: 'ui-state-highlight-combinatiehotel'
            , cursor: 'all-scroll'
            , tolerance: 'pointer' // pointer: mouse pointer overlaps the droppable
            , containment: 'parent'
            , stop: function(event, ui) { updateVolgordeVanUwVerblijf() }
        });

        $(".sortable").disableSelection();
    }

    if ($('#question-BetalingsMethode input:radio:checked').val() == 'iDEAL') {
        $("#question-iDEAL_Bank").show("slow");
        $(".btnBestellingControlereniDEAL").attr("style", "display:block");
        $(".btnBestellingControleren").attr("style", "display:none");
        $(".btnBestellingControlerenCreditcard").hide();
    } else if ($('#question-BetalingsMethode input:radio:checked').val() == 'creditcard') {
        $("#question-iDEAL_Bank").hide("slow");
        $(".btnBestellingControlereniDEAL").attr("style", "display:none");
        $(".btnBestellingControleren").attr("style", "display:none");
        $(".btnBestellingControlerenCreditcard").show();
    } else {
        $("#question-iDEAL_Bank").hide("slow");
        $(".btnBestellingControlereniDEAL").attr("style", "display:none");
        $(".btnBestellingControleren").attr("style", "display:block");
        $(".btnBestellingControlerenCreditcard").hide();
    }

    $('#question-BetalingsMethode').click(function() {
        if ($('#question-BetalingsMethode input:radio:checked').val() == 'iDEAL') {
            $("#question-iDEAL_Bank").show();
            $(".btnBestellingControlereniDEAL").attr("style", "display:block");
            $(".btnBestellingControleren").attr("style", "display:none");
            $(".btnBestellingControlerenCreditcard").hide();
        } else if ($('#question-BetalingsMethode input:radio:checked').val() == 'creditcard') {
            $("#question-iDEAL_Bank").hide();
            $(".btnBestellingControlereniDEAL").attr("style", "display:none");
            $(".btnBestellingControleren").attr("style", "display:none");
            $(".btnBestellingControlerenCreditcard").show();
        } else {
            $("#question-iDEAL_Bank").hide("slow");
            $(".btnBestellingControlereniDEAL").attr("style", "display:none");
            $(".btnBestellingControleren").attr("style", "display:block");
            $(".btnBestellingControlerenCreditcard").hide();
        }

    });

    $(".trouwen .slideshow").cycle({
        fx: 'fade',
        timeoutFn: calculateTimeout
    });

    if (jQuery().selectList) {
        $('select#locaties').selectList();
    }


    $('#slideshow').after('<ul id="nav">').cycle({
        fx: 'fade',
        speed: 'fast',
        timeout: 0,
        pager: '#nav',
        pagerAnchorBuilder: function(idx, slide) {
            return '<li><a href="#"><img src="' + slide.src + '" width="78" height="50" /></a></li>';
        }
    });

    //    if (jQuery().Slidebox) {
    //        var autoPlayTime = 7000;
    //        autoPlayTimer = setInterval(autoPlay, autoPlayTime);
    //        function autoPlay() {
    //            Slidebox('next');
    //        }
    //        $('#slidebox .next').click(function() {
    //            Slidebox('next', 'stop');
    //        });
    //        $('#slidebox .previous').click(function() {
    //            Slidebox('previous', 'stop');
    //        });
    //        var yPosition = ($('#slidebox').height() - $('#slidebox .next').height()) / 15;
    //        $('#slidebox .next').css('top', yPosition);
    //        $('#slidebox .previous').css('top', yPosition);
    //        $('#slidebox .thumbs a:first-child').removeClass('thumb').addClass('selected_thumb');
    //        $("#slidebox .content").each(function(i) {
    //            slideboxTotalContent = i * $('#slidebox').width();
    //            $('#slidebox .container').css("width", slideboxTotalContent + $('#slidebox').width());
    //        });
    //    }

    $('#iframe-clang-js').each(function() {
        getExternalLocation('iframe-clang', 'frameurl', 'https://nieuwsbrief.bilderberg.nl/3/3fde87c63331a4d6027365d696c5c6f35363b6c443056753e2e096a031c2b51722d4a2c666d6d1a4420094a');
    });

    $('#iframe-clang-business').each(function() {
        getExternalLocation('iframe-clang', 'frameurl', 'http://myclang.com/3/3fde8a06b331a4d6027365d696c5c6f35363b6c443056753e2e096a031c2b547164066029232600476c584f2c213a07');
    });

    $("form.geenhotelkeuze input").attr("checked", "checked").click();

    //disable cadeaubon submitbutton if clicked
    $('form#kassa-betalen-cadeau button.submit').removeAttr('disabled');
    $('form#kassa-betalen-creditcard button.submit').removeAttr('disabled');
    $('form#kassa-betalen-cadeau').submit(function() {
        $('form#kassa-betalen-cadeau button.submit').attr("disabled", true);
    });
    $('form#kassa-betalen-creditcard').submit(function() {
        $('form#kassa-betalen-creditcard button.submit').attr("disabled", true);
    });


});

function calculateTimeout(currElement, nextElement, opts, isForward) {
    var myTimeOut = 4000;
    var index = opts.currSlide;
    if (index == 0) {
        myTimeOut = firstSlideTimeOut;
        firstSlideTimeOut = 4000;
    }
    return myTimeOut;
}

function handleSupplementKlik(input, userclick, checked) {
    if (checked == undefined) checked = input.checked;
    $(input).attr('checked', checked);
    $(input).next("label").toggleClass('open');
    var $table = $(input).nextAll("table");
    var aantalDatums = $table.find('input.datum-selectie').size();
    if (checked && userclick) {
        // Supplement is aangevinkt door de gebruiker: vink de eerste datum aan als er maar 1 datum is
        if (aantalDatums == 1) handleSupplementDatumKlik($table.find('input.datum-selectie:first'), false, true) // $table.find('input.datum-selectie:first').click();
        if (aantalDatums > 1) { // <span class="required">*</span>
            $table.find('td:last').each(
                function() {
                    $(this).append("<span class=\"datumverplicht\" style=\"color:red\">*</span>");
                }
            )
        }
    } else {
        // Supplement is uitgevinkt (of komt een click() event uit het script): vink ook alle aangevinkte data uit
        handleSupplementDatumKlik($table.find('input.datum-selectie:checked'), false, false)
        updateSupplementTabTotaal(input, true);
    }
    $table.toggle();

    updateSupplementStatus();
    return false;
}

function handleSupplementDatumKlik(input, userclick, checked) {
    if (checked == undefined) checked = input.checked;
    $(input).attr('checked', checked);
    var checkedSiblings = $(input).parents("table").find("input:checked");
    if (!checked && userclick && checkedSiblings.size() == 0) {
        // Gebruiker vinkt de enige geselecteerde datum uit: klap het supplement dicht
        handleSupplementKlik($(input).parents("table").siblings("input"), false, false);
    }
    if (checked && userclick && checkedSiblings.size() > 0) {
        $(input).parents("table").find('span.datumverplicht').remove();
    }
    updateSupplementStatus(input);
    return false;
}

function updateSupplementStatus(input) {
    updateSupplementSubmitStatus();
    updateSupplementTabTotaal(input);
}

function updateSupplementTabTotaal(input) {
    if (input != undefined && $(input).parents("div.supplementsoort").attr("id")) {
        var id = $(input).parents("div.supplementsoort").attr("id").replace('-box', '')
        var aantal = $(input).parents("div.supplementsoort").find("input.datum-selectie:checked").size();
        if (aantal <= 0) {
            $('#' + id + ' span').html('');
        } else {
            $('#' + id + ' span').html('(' + aantal + ')');
        }
    }
}

function updateSupplementSubmitStatus() {
    // Is er een aangevinkt supplement waar nog geen datum is gekozen? Zet de submit knop uit!
    var disable = false;
    $("input.voeg-toe-toggler:checked").each(
        function() {
            var checkedDates = $(this).siblings("table").find("input:checked");
            if (checkedDates.size() == 0) {
                disable = true;
            }
        }
    )
    if (disable) {
        $("#suppSubmit").attr("disabled", "disabled");
    } else {
        $("#suppSubmit").removeAttr("disabled");
    }
}

function updateVolgordeVanUwVerblijf() {
    var combinatiehotels = $("li.combinatiehotel");
    var i = 0; var volgorde = "";
    while (i < combinatiehotels.length) {
        if (i > 0) volgorde += ","
        volgorde += $(combinatiehotels[i]).attr("id");
        i += 1;
    }
    $("form#VolgordeVanUwVerblijf select").attr("value", volgorde);
}

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
}

var vSelOrig = ''

function SyncAantalVolwassenenEnKamers(changedSelect) {
    var changedName = $(changedSelect).attr('name');
    var regioOfHotelSel = $("select[name='RegioOfHotel']");
    var kamerSel = $("select[name='KamerId']");
    var vSel = $("select[name='AantalVolwassenen']");
    var kSel = $("select[name='AantalKamers']");
    var kMax = kSel.find("option:last").val();
    var v = vSel.val();
    var k = kSel.val();
    var maxVperK = 3;
    var classVal = '';
    var maxV;
    if (regioOfHotelSel.length != 0) {
        classVal = regioOfHotelSel.find(":selected").attr("class").trim();  //for example: max-vol-2
    } else if (kamerSel.length != 0) {
        classVal = kamerSel.find(":selected").attr("class").trim();  //for example: max-vol-3
    } else if ($("input[name='RegioOfHotel']").length != 0) {
        classVal = $("input[name='RegioOfHotel']").attr("class").trim();
    } else if ($("form[name='AantalVolwassenenEnKamers']").length != 0) {
        classVal = $("form[name='AantalVolwassenenEnKamers']").attr("class").trim();
    }
    if (classVal.indexOf("max-vol-") != -1) {
        maxVperK = classVal.charAt(classVal.length - 1);
    }
    if (changedName == 'RegioOfHotel' || changedName == 'KamerId') {
        // Pas max aantal volwassen aan aan het gekozen hotel of de regio of de gekozen kamer
        maxV = k * maxVperK;
        if (v > maxV) {
            vSel.val(maxV)
        }
        if (maxVperK == 2) {
            if (vSelOrig == '') vSelOrig = vSel.html(); // Sla de originele options lijst op
            for (i = (2 * kMax) + 1; i <= (3 * kMax); i++) {
                vSel.find("option[value = '" + i + "']").remove() // Verwijder opties die niet mogelijk zijn bij max 2 volw. per kamer
            }
        } else {
            if (vSelOrig != '') vSel.html(vSelOrig);
            vSel.val(v);
        }
    } else if (changedName == 'AantalVolwassenen') {
        // Pas aantal kamers aan aan het gekozen aantal volwassenen
        var minK = Math.ceil(v / maxVperK);
        var maxK = Math.min(v, kMax);
        if (k > maxK) kSel.val(maxK);
        if (k < minK) kSel.val(minK);
    } else if (changedName == 'AantalKamers') {
        // Pas aantal volwassenen aan aan het gekozen aantal kamers
        var minV = k;
        maxV = k * maxVperK;
        if (v > maxV) {
            vSel.val(maxV)
        }
        if (v < minV) {
            if (maxV > v) {
                vSel.val(minV)
            } else {
                vSel.val(maxV);
            }
        }
    }

}

function CreditcardVervaldatumValidatie() {
    var cur_d = new Date();
    var curr_month = cur_d.getMonth();
    curr_month++;
    var curr_year = cur_d.getFullYear();

    var sel_d = new Date();
    var selected_month = $("#question-BoekingCreditcardVervaldatumMaand :selected").val() - 1;
    var selected_year = $("#question-BoekingCreditcardVervaldatumJaar :selected").val();
    sel_d.setFullYear(selected_year, selected_month, 31)

    if (cur_d <= sel_d) {
        return true;
    } else {
        return false;
    }
}

//function Slidebox(slideTo, autoPlay) {
//    var animSpeed = 1000; //animation speed
//    var easeType = 'easeInOutExpo'; //easing type
//    var sliderWidth = $('#slidebox').width();
//    var leftPosition = $('#slidebox .container').css("left").replace("px", "");
//    if (!$("#slidebox .container").is(":animated")) {
//        if (slideTo == 'next') { //next
//            if (autoPlay == 'stop') {
//                clearInterval(autoPlayTimer);
//            }
//            if (leftPosition == -slideboxTotalContent) {
//                $('#slidebox .container').animate({ left: 0 }, animSpeed, easeType); //reset
//                $('#slidebox .thumbs a:first-child').removeClass('thumb').addClass('selected_thumb');
//                $('#slidebox .thumbs a:last-child').removeClass('selected_thumb').addClass('thumb');
//            } else {
//                $('#slidebox .container').animate({ left: '-=' + sliderWidth }, animSpeed, easeType); //next
//                $('#slidebox .thumbs .selected_thumb').next().removeClass('thumb').addClass('selected_thumb');
//                $('#slidebox .thumbs .selected_thumb').prev().removeClass('selected_thumb').addClass('thumb');
//            }
//        } else if (slideTo == 'previous') { //previous
//            if (autoPlay == 'stop') {
//                clearInterval(autoPlayTimer);
//            }
//            if (leftPosition == '0') {
//                $('#slidebox .container').animate({ left: '-' + slideboxTotalContent }, animSpeed, easeType); //reset
//                $('#slidebox .thumbs a:last-child').removeClass('thumb').addClass('selected_thumb');
//                $('#slidebox .thumbs a:first-child').removeClass('selected_thumb').addClass('thumb');
//            } else {
//                $('#slidebox .container').animate({ left: '+=' + sliderWidth }, animSpeed, easeType); //previous
//                $('#slidebox .thumbs .selected_thumb').prev().removeClass('thumb').addClass('selected_thumb');
//                $('#slidebox .thumbs .selected_thumb').next().removeClass('selected_thumb').addClass('thumb');
//            }
//        } else {
//            var slide2 = (slideTo - 1) * sliderWidth;
//            if (leftPosition != -slide2) {
//                clearInterval(autoPlayTimer);
//                $('#slidebox .container').animate({ left: -slide2 }, animSpeed, easeType); //go to number
//                $('#slidebox .thumbs .selected_thumb').removeClass('selected_thumb').addClass('thumb');
//                var selThumb = $('#slidebox .thumbs a').eq((slideTo - 1));
//                selThumb.removeClass('thumb').addClass('selected_thumb');
//            }
//        }
//    }
//}


function getExternalLocation(frame_id, fieldname, default_url) { 
        if(window.location.href.indexOf('?') > -1 || window.location.href.indexOf('&') > -1){
                fieldname   = (!fieldname ? 'frame_url' : fieldname).replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
                var regex   = new RegExp("[\\?&]"+fieldname+"=([^&#]*)");
                var results = regex.exec( window.location.href );
 
                setFrame(frame_id, decodeURIComponent(results && results[1].indexOf('http') > -1 ? results[1] : default_url));
        }else{
                setFrame(frame_id, default_url);
        }
}
 
function setFrame(frame_id, source) {
        source = (source == '' ? 'http://www.createaclang.com' : source);
        if(document.getElementById(frame_id)) {
                document.getElementById(frame_id).src = source;
        }else if(window.frames && window.frames[0]) {
                window.frames[0].location = source;
        }
}

RegExp.escape = function(text) {
    if (!arguments.callee.sRE) {
        var specials = [
      '/', '.', '*', '+', '?', '|',
      '(', ')', '[', ']', '{', '}', '\\'
    ];
        arguments.callee.sRE = new RegExp(
      '(\\' + specials.join('|\\') + ')', 'g'
    );
    }
    return text.replace(arguments.callee.sRE, '\\$1');
}

$.parseQuery = function(qs, options) {
    var q = (typeof qs === 'string' ? qs : window.location.search), o = { 'f': function(v) { return unescape(v).replace(/\+/g, ' '); } }, options = (typeof qs === 'object' && typeof options === 'undefined') ? qs : options, o = jQuery.extend({}, o, options), params = {};
    jQuery.each(q.match(/^\??(.*)$/)[1].split('&'), function(i, p) {
        p = p.split('=');
        p[1] = o.f(p[1]);
        params[p[0]] = params[p[0]] ? ((params[p[0]] instanceof Array) ? (params[p[0]].push(p[1]), params[p[0]]) : [params[p[0]], p[1]]) : p[1];
    });
    return params;
}

