function createCookie(name,value,hour){var expires="";if(hour){var date=new Date();date.setTime(date.getTime()+(hour*60*60*1000));expires=";expires="+date.toGMTString();}document.cookie=name+"="+value+expires+";path=/";return value;}function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}return null;}function eraseCookie(name){createCookie(name,"",-1);}
function setCookieFromUrl(url){
    var posanchor   = url.indexOf('#');
    if (posanchor == -1){return url;}

    var anchor      = url.substring(posanchor+1);
    var parts       = anchor.split('&');

    for (var i in parts){
        var part = parts[i];

        var pos = part.indexOf("=");
        var key = part.substring(0, pos);
        var value = part.substring(pos+1);

        if (key == 'cin' || key == 'cout' || key == 'tid' || key == 'ppa' || key == 'ppc'){
            createCookie(key, value, 1);
            if (i>0){part = '&' + part;}
            url = url.replace(part, '');
        }
    }
//    if (url.substring(url.length-1) == '#'){
//        url = url.substring(0, url.length-1);
//    }
    return url;
}
function highlightForm(){
    $("#boutonactualiser button").effect('pulsate');
}
function nightDiff(date1, date2){
    var dtdiff = (date2 - date1) / (24*60*60*1000);
    return Math.round(dtdiff);
}
(function (){
    var url = document.location.href;
    var newurl = setCookieFromUrl(url);
    if (url != newurl){
        //document.location.href = newurl;
    }
})();
$(function (){
    $(".menu").mouseenter(function(){
        $('.ssmenu', $(this)).show();
    }).mouseleave(function (){
        $('.ssmenu', $(this)).hide();
    })

    $('#diaporamag').cycle({
        fx: 'scrollUp'
    });

    $(".datepicker-cal").datepicker({
        duration:''
        , dateFormat:'dd/mm/yy'
        , numberOfMonths: 2
    });
    var $inputdtd = $("input[name=cin]");
    var $inputdta = $("input[name=cout]");
    if ($inputdtd.length >0){
        var $dtd = $inputdtd.datepicker({
            duration:''
            , dateFormat:'dd/mm/yy'
            , numberOfMonths: 2
            //, minDate : new Date()
            , minDate : $inputdtd.attr('attr-minDate')
            , onClose: function () {

                var newDate = $(this).datepicker('getDate');
                newDate.setDate(newDate.getDate() + 7);


                var minDate = $(this).datepicker('getDate');
                minDate.setDate(minDate.getDate() + 1);

                $dta.datepicker('option', 'minDate', minDate);
                $dta.datepicker('setDate', newDate);
                
                var dtd = $dtd.datepicker('getDate');
                var dta = $dta.datepicker('getDate');
                $(".nightdiff").html(nightDiff(dtd, dta));
            }
        });
    }
    if ($inputdta.length>0){
        var $dta = $inputdta.datepicker({
            duration:''
            , dateFormat:'dd/mm/yy'
            , numberOfMonths: 2
            , minDate : $dtd.datepicker('getDate')
            , beforeShowDay : function (date) {
                var depart      = $dtd.datepicker('getDate');
                var currentDate = $(this).datepicker('getDate');
                var klass       = (date >= depart && date < currentDate) ? 'datepicker-booking' : '';
                return [true, klass, ''];
            }
            , onClose: function (){
                var dtd = $dtd.datepicker('getDate');
                var dta = $dta.datepicker('getDate');

                $(".nightdiff").html(nightDiff(dtd, dta));
            }
        });
    }
    $(".calendrier").click(function (){
        var $picker = ($(this).hasClass('caldtd')) ? $dtd : $dta;
        $picker.datepicker('show');
    })


    $(".colorbox").colorbox({
        opacity : '0.8'
        , onComplete:function (){
            var $obj = $($.colorbox.element);
            $obj.find(".colorbox").colorbox();
        }
    });

    $("#disconnect").click(function (){
        $(this).find("form").submit();
    });

    $("select[name=ppc]").change(function (){
        manageAgeChild($(this));
    });

    $(".cookielink").click(function (){
        $(this).attr('href', setCookieFromUrl($(this).attr('href')));
    });

    $(".selectionHotel").mouseenter(function (){
        var $selection  = $(this).parents(".uneselection").find(".vignette");
        var $showcase   = $selection.find("img.selectionVignette");
        var $name       = $selection.find(".vignetteName");
        var $star       = $selection.find(".vignetteStar");

        var newName = $(this).text();
        if (newName.length > 25){
            newName = newName.substring(0, 25);
        }


        var src = $(this).parents("td").find("img.selectionShowcase").attr("src");
        $showcase.attr("src", src);
        $name.html(newName);

        var newstarUrl = $(this).find("img.rating").attr('src').replace(/starblue/, 'etoileblanche');
        $star.find("img").attr('src', newstarUrl);
    });

    $("#searchdetails select,#searchdetails input").change(highlightForm)
    $(".requestinfos").mouseenter(function (){
       $(this).parents('div:first').next().show();
    }).mouseout(function (){
        $(this).parents('div:first').next().hide();
    });

    $(".pop").each(function (){
        $(this).CreateBubblePopup({
            innerHtml : $(this).find(".descpop").html()
            , width: 250
            , themePath : '/img/jquerybubblepopup-theme/'
        });
    });

    $("#showLng").click(function (){

        if ($("#listLng").is(":visible")){
            
            $("#showLng").removeClass("active")
            $("#listLng").hide();
        }
        else {

            $(this).addClass("active")
            $("#listLng").show();
        }
        
        return false;
    });
    $(document).click(function (e){
        
        var $target = $(e.target);

        if ($("#listLng").is(":visible") &&
              $target.parents("#listLng").length == 0 
            ){
            $("#showLng").removeClass("active")
            $("#listLng").hide();
        }
    })

    $(".currency").click(function (){

        var param = "cuid="+$(this).attr('data-id');
        var href         = document.location.href;

        var anchor = null;
        var posanchor = href.indexOf("#");
        if (posanchor != -1){
            anchor = href.substring(posanchor);
            href   = href.substring(0, posanchor);
        }
        

        var qmark = href.indexOf("?");
        if (qmark == -1){
            href += '?';
        }

        var pos = href.indexOf("cuid=", qmark);
        if ( pos != -1){
            href = href.replace(/cuid=[0-9]*/, param);
        }
        else {
            if (qmark > -1 && href.length > qmark){
                param = '&' + param;
            }

            href += param
        }
        
        document.location.href = href;

        return false;
    })
})

var manageAgeChild = function ($select){
    
    var $form      = $select.parents('form');
    var $selection = $form.find('input[name=selectionid]');

    var selectionid = ($selection.length>0) ? $selection.val() : null;

    var initialValue = parseInt($select.attr("init"), 10);
    var value        = parseInt($select.val(), 10);
    var diff         = initialValue-value;

    if (value == 0){
        $.get("/remove-all-child-from-paxplan",{selectionid:selectionid});
        $select.attr("init", 0);
        if (selectionid != null){
            $select.parents('td:first').find('input').remove();
            $form.submit();
        }
    }
    else if (value < initialValue){
        if ($select.attr("name").replace(/_.*/, '') == 'Adult') {
            $form.submit();
        }

        $.get('/remove-empty-child-from-paxplan', {nb: (diff), selectionid:selectionid}, function (showPopup){
            if (!showPopup) {
                $(this).attr("init", value);
                if (selectionid != null){
                    var n=0;
                    $select.parents('td:first').find('input[value=""]').each(function (){
                        if (n>diff) return false;

                        $(this).remove();
                        n++;
                    });
                }
                return;
            }
            $.colorbox({
                href:'/popup-childs-remove?selectionid=' + selectionid
                , onComplete:function (){
                    var $element    = $("#cboxContent");
                    $(".ui-icon-circle-close", $element).click(function (){
                        var $icon = $(this);
                        var guestid = $icon.attr('id');

                        if (selectionid != null){
                             $select.parents('td:first').find('input[title='+guestid+']').remove();
                             $icon.parents("tr").remove();
                             $icon.attr("init", initialValue-1);
                        }
                        else {
                            $.get('/remove-child-from-paxplan', {'guestid': guestid}, function (){
                                $icon.parents("tr").remove();
                                $icon.attr("init", initialValue-1);
                            });
                        }
                    }).css('cursor', 'pointer');
                }
                , onCleanup: function(){
                    var $element    = $("#cboxContent");
                    $select.val($(".ui-icon-circle-close", $element).length);

                    if (selectionid != null){
                        $form.submit();
                    }
                }
            });
        }, 'json')
    }
    else {
        if ($select.attr("name").replace(/_.*/, '') == 'Adult') {
            $form.submit();
            return;
        }

        $select.attr("init", value);

        var link = '/popup-childs-add?nb='+value+'&selectionid='+selectionid;
        if (selectionid != null){
            link += '&ageClass='+$select.attr('name');
        }

        $.colorbox({
            href:link
            , onComplete: function (){
                var $element    = $("#cboxContent");
                $(".date", $element).mask('99/99/9999');
            }
            , onCleanup:function (){
                var $element    = $("#cboxContent");
                var params      = $element.find("form").serialize();

                if (selectionid != null){

                    $element.find('.new').each (function (){
                        $("<input type='hidden'/>")
                            .attr('name', 'birthdates_' + $select.attr('name')+'[]')
                            .val($(this).val())
                            .appendTo($select.parents('td:first'));
                    });
                    $form.submit();
                }
                else {
                    $.get('/set-child-from-paxplan?selectionid='+selectionid, params);
                }
            }
        });
    }
}

var submitrestricted = function (obj){
    var $form   = $(obj);
    var url     = $form.attr("action");
    $.post(url, $form.serializeArray(), function (logged){
        if (!logged){
            $("#restrict_desc").hide();
            $("#restrict_desc_logfailed").show();
            $("#restrict_email, #restrict_password").css('background', '#E9625F');
        }
        else { // reload the page
            $.colorbox({
                href : '/route-restricted-access/logged'
                , onCleanup:function (){
                    document.location.href = document.location.href;
                }
            })
        }
    }, 'json');
    
    return false;
}
