// JavaScript Document
$(document).ready(function(){
    //$('#id-div-date').css('text-align','center');
    var $datediv = $('#id-div-date');
    var $datefrom = $('#id-datefrom');
    var $dateto = $('#id-dateto');
    var btn = $('#btn-result-jump');
    
    $datefrom.attr('readonly','readonly');
    $dateto.attr('readonly','readonly');

    btn.click(function(){
        $.scrollTo( $('#id-div-discounts') , {duration:2000} );        
    })
    
    function dateinputclick(){
        //showAjaxCalendar(this)
        var div = $("#ajaxcalendararea");
        var divcontainer = $("#ajaxcalendarcontainer");
        var inputfield = $(this)
        var inputfield_offset = inputfield.offset();
        var divloading = createDivLoading();
            
        if(!divcontainer.lenght){
            $('body').append('<div id="ajaxcalendarcontainer"></div>')
            var divcontainer = $("#ajaxcalendarcontainer");
            divcontainer.css('position','absolute');
            divcontainer.css('top','0');
            divcontainer.css('left','0');
            divcontainer.css('zIndex','9999');
            divcontainer.css('padding','0');
            //divcontainer.css('background','black');
            //divcontainer.css('opacity','.50');
            //divcontainer.css('filter','alpha(opacity=50)');
            divcontainer.width('100%');
            divcontainer.height('100%');
            divcontainer.click(function(){
                $(this).hide();
                divloading.hide();
                div.hide();
            });
        }
        if(!div.lenght){
            $('body').append('<div id="ajaxcalendararea"></div>')
            var div = $("#ajaxcalendararea");
            div.css('position','absolute');
            div.css('zIndex','10000');
        }

        div.css('left',inputfield_offset.left);
        div.css('top',inputfield_offset.top+20);
        divloading.css('left',inputfield_offset.left);
        divloading.css('top',inputfield_offset.top+20);
        
        divloading.hide();
        divcontainer.show();
        div.hide();

        $.ajax({
            method: "get",
            url: root+"_rsrc/ajax-calendar/ajax-calendar.php",
            data: 'datum='+$(this).val()+'&root='+root+'&lang='+lang+'&sid='+Math.random(),
            beforeSend: function(){ divloading.show(); },
            complete:   function(){ /* divloading.fadeOut('fast'); */ },
            success:    function(html){
                            divcontainer.show();
                            divloading.fadeOut('fast', function(){
                                div.fadeIn('fast');
                                div.html(html);
                                setCalendarEvents(div,inputfield);
                            });
                        }
        }); 
    }
    
    function setCalendarEvents(calendar,inputfield){
        var divloading = $("#ajaxcalendarloading");
        var divcontainer = $("#ajaxcalendarcontainer");
        $('*',calendar).attr('onclick',null); //vyclearovani starych eventu
        $('*',calendar).attr('onchange',null); //vyclearovani starych eventu
        
        /** CLICK na datum**/
        $('tbody td',calendar).click(function(){
            divloading.hide();
            divcontainer.hide();
            calendar.fadeOut('fast');
            $(inputfield).val($(this).attr('title'));
            dateCheck();
            
            if( $(inputfield).attr('id')=='id-datefrom' && $('#id-dateto').val() == '' ){ 
                $('#id-dateto').val($(this).attr('title'));
                
                //BUBBLES
                $(".helpBubble").hide();
                var offset = $("#id-dateto").offset();
                $(".helpBubble").fadeIn('fast').css({
                    'top':(offset.top-6)+'px',
                    'left':(offset.left+85)+'px'
                });
                $(".bubbleMiddleLeft").hide();
                $(".bubbleMiddleRight").show();
                $(".bubbleMiddleLeft div",".bubbleMiddleRight div").hide();
                $("#bubbleDateTo").show();
                //
            }
        });
        
        $('#ajaxcalendar-changemonthleft,#ajaxcalendar-changemonthright',calendar).click(function(){
            $.ajax({
                method: "get",
                url: root+"_rsrc/ajax-calendar/ajax-calendar.php",
                data: 'datum='+$(this).attr('title')+'&root='+root+'&lang='+lang+'&sid='+Math.random(),
                beforeSend: function(){ /* calendar.fadeOut('fast'); divloading.fadeIn('fast');*/ },
                complete:   function(){ /* divloading.fadeOut('fast');*/  },
                success:    function(html){
                                    calendar.html(html);
                                    setCalendarEvents(calendar,inputfield);
                            }
            });
        });
            
        $('#ajaxcalendar-selectmonth,#ajaxcalendar-selectyear',calendar).change(function(){
            $.ajax({
                method: "get",
                url: root+"_rsrc/ajax-calendar/ajax-calendar.php",
                data: 'datum='+$(this).val()+'&root='+root+'&lang='+lang+'&sid='+Math.random(),
                beforeSend: function(){ /* calendar.fadeOut('fast'); divloading.fadeIn('fast');*/ },
                complete:   function(){ /* divloading.fadeOut('fast');*/  },
                success:    function(html){
                                    calendar.html(html);
                                    setCalendarEvents(calendar,inputfield);
                            }
            });
        });
    } //setCalendarEvents

    function createDivLoading(){
        var divloading = $("#ajaxcalendarloading");
        if(!divloading.lenght){
            $('body').append('<div id="ajaxcalendarloading"></div>')
            var divloading = $("#ajaxcalendarloading");
            divloading.css('position','absolute');
            divloading.css('zIndex','10001');
            //divloading.css('border','1px solid #999');
            //divloading.css('padding','5px');
            //divloading.css('background','#fefefe');
            //divloading.text( retL("Pracuji...","Werke...","Working...","Pracujem...") );
        }
        divloading.hide();  
        return $("#ajaxcalendarloading");  
    }
    
    function dateCheck(){
        var divloading = createDivLoading();
        var div = $('#id-div-rooms');
        var perss = $("input[name^='pers']",div);
        var rooms = $("input[name^='room']",div);
        var notes = $("input[name^='note']",div);
        var fees = $("input[name^='fee']",div);
        var offset = div.offset();
        
        div.css('left',offset.left);
        div.css('top',offset.top+20);
        divloading.css('left',offset.left);
        divloading.css('top',offset.top+20);
         
        if( $datefrom.val() && $dateto.val() ){
            //$('#log').html($datefrom.val()+'-'+$dateto.val())
            var roomString = '';
            for(i=0;i<rooms.length;i++){
                roomString += '&'+$(rooms[i]).attr('name')+'='+$(rooms[i]).val(); 
            }
            var persString = '';
            for(i=0;i<perss.length;i++){
                persString += '&'+$(perss[i]).attr('name')+'='+$(perss[i]).val(); 
            }
            var noteString = '';
            for(i=0;i<notes.length;i++){
                noteString += '&'+$(notes[i]).attr('name')+'='+$(notes[i]).val();
            }
            var feeString = '';
            for(i=0;i<fees.length;i++){
                feeString += '&'+$(fees[i]).attr('name')+'='+$(fees[i]).val();
            }            
            $.ajax({
                method: "get",
                url: root+"_rsrc/_calc.php",
                data: 'step=2&hid='+hid+'&datefrom='+$datefrom.val()+'&dateto='+$dateto.val()+roomString+persString+noteString+feeString+'&root='+root+'&lang='+lang+'&sid='+Math.random(),
                beforeSend: function(){ divloading.show(); },
                complete:   function(){ /* divloading.fadeOut('fast'); */ },
                success:    function(html){
                                divloading.fadeOut('fast', function(){
                                    div.html(html);
                                    div.fadeIn('fast');
                                    $("input[name^='room'],input[name^='pers'],input[name^='note'],input[name^='fee']",div).keyup(roomCheck).attr("autocomplete", "off");
                                    $('#btncnt',div).click(roomCheck);
                                    roomCheck();
                                    
                                    //BUBBLES
                                    //if($(".cenik").lenght!='undefined'){
                                    if($("#id-div-rooms div").children().get(0).tagName!="H3"){    
                                        /*
                                        $("input[name^='room']").each(function(index) {
                                          if($(this).val()>0){
                                            bubbleRoomControl = 1;
                                            return bubbleRoomControl;        
                                          }
                                        });
                                        */
                                        //if(typeof bubbleRoomControl == 'undefined'){
                                            //var offset = $("input[name='room[0]']").offset();
                                        //alert($("#cenikID tr:eq(2) td:eq(1)").html());
                                        
                                            var offset = $("#cenikID tr:eq(2) td:eq(1)").offset();
                                            //var offset = $("input[name^='room[]']").offset();
                                            $(".helpBubble").fadeIn('fast').css({
                                                'top':(offset.top+3)+'px',
                                                'left':(offset.left-210)+'px'
                                            });
                                             $(".bubbleMiddleRight").hide();
                                            $(".bubbleMiddleLeft").show();
                                            $(".bubbleMiddleRight div").hide();
                                            $(".bubbleMiddleLeft div").hide();
                                            $("#bubbleRoom").show();
                                        
                                        //}
                                    }
                                         
                                    $("input[name^='room']").bind('keypress', function(){
                                        $(".helpBubble").hide();
                                        /*
                                        $("input[name^='pers']").each(function(index) {
                                          if($(this).val()>0){
                                            bubblePersControl = 1;
                                            return bubblePersControl;        
                                          }
                                        });
                                        */
                                        //if(typeof bubblePersControl == 'undefined'){
                                            
                                        //alert($("input[name^='pers']").html());
                                        if($("input[name^='pers']").html()!=null){    
                                            var offset = $("#cenikID tr:eq(3) td:eq(1)").offset();
                                            $(".helpBubble").fadeIn('fast').css({
                                               'top':(offset.top+3)+'px',
                                               'left':(offset.left-210)+'px'
                                            });
                                            $(".bubbleMiddleRight div").hide();
                                            $(".bubbleMiddleLeft div").hide();
                                            $("#bubblePerson").show();
                                        }
                                        //}
                                    });
 
                                    $("input[name^='pers']").bind('keypress', function(){
                                        $(".helpBubble").hide();
                                    });
                                    //
                                }); 
                            }
            });
        }else{
            div.html('');
        }
    }

    function roomCheck(){
        var divloading = createDivLoading();
        var div = $('#id-div-discounts');
        var rooms = $("input[name^='room']",$('#id-div-rooms'));
        var perss = $("input[name^='pers']",$('#id-div-rooms'));
        var notes = $("input[name^='note']",$('#id-div-rooms'));
        var fees = $("input[name^='fee']",$('#id-div-rooms'));
        var offset = div.offset();
        
        div.css('left',offset.left);
        div.css('top',offset.top+20);
        divloading.css('left',offset.left);
        divloading.css('top',offset.top+20);

        var test = true;
        var roomString = '';
        for(i=0;i<rooms.length;i++){
            if($(rooms[i]).val()>0){ 
                test &= false; 
            }else{
                //mazani poctu slev a priplatku, pokud neni vyplnen pocet osob pro toto ubytovani
                $("input[name^='pers["+i+"]']",$('#id-div-rooms')).val('');
                $("input[name^='note["+i+"]']",$('#id-div-rooms')).val('');
                $("input[name^='fee["+i+"]']",$('#id-div-rooms')).val('');
            }
            roomString += '&'+$(rooms[i]).attr('name')+'='+$(rooms[i]).val()
        }
        
        var persString = '';
        for(i=0;i<rooms.length;i++){ //for(i=0;i<perss.length;i++){
            var pers = $("input[name^='pers["+i+"]']",$('#id-div-rooms'));
            if( pers.val()>0 ){ 
                test &= false; 
            }else{
                //mazani poctu slev a priplatku, pokud neni vyplnen pocet osob pro toto ubytovani
                $("input[name^='note["+i+"]']",$('#id-div-rooms')).val('');
                if(pers.size()>0) $("input[name^='fee["+i+"]']",$('#id-div-rooms')).val('');
            }
            if(pers.size()>0 && pers.val()>0 ) persString += '&'+pers.attr('name')+'='+pers.val()
        }
        
        var isBigger = !test;
        var noteString = '';
        for(i=0;i<notes.length;i++){
            noteString += '&'+$(notes[i]).attr('name')+'='+$(notes[i]).val();
        }
        var feeString = '';
        for(i=0;i<fees.length;i++){
            feeString += '&'+$(fees[i]).attr('name')+'='+$(fees[i]).val();
        } 
        if(isBigger){
            $.ajax({
                method: "get",
                url: root+"_rsrc/_calc.php",
                data: 'step=3&hid='+hid+'&datefrom='+$datefrom.val()+'&dateto='+$dateto.val()+roomString+persString+noteString+feeString+'&root='+root+'&lang='+lang+'&sid='+Math.random(),
                beforeSend: function(){ divloading.show(); },
                complete:   function(){ /* divloading.fadeOut('fast'); */ },
                success:    function(html){
                                divloading.fadeOut('fast', function(){
                                    div.html(html);
                                    div.fadeIn('fast');
                                    if(html.length>50){ /* pokud prijde mene nez 50 znaku, neni co zobrazit a tak se tlacitko na scroll nezobrazi */
                                        btn.fadeIn('fast');
                                    }else{
                                        btn.fadeOut('fast');
                                    }
                                });
                            }
            });
        }else{
            div.fadeOut('fast');
            btn.hide();
        }
    }

    $datefrom.click(dateinputclick);
    $dateto.click(dateinputclick);

    if ( $("#orderCheck").length ) { /* Prichod z objednavky - kapacita volna, ale nebyla cena - uzivatel si ji tedy tady spocte */
        dateCheck();
    } else {
        $datediv.show();
    } 
     
});

//for(prop in $(this) ) $(document.body).append(prop+'<br />');

function retL(){
    switch(lang){
        case 'cs' : return arguments[0]; break;
        case 'de' : return arguments[1]; break;
        case 'en' : return arguments[2]; break;
        case 'pl' : return arguments[3]; break;
        case 'nl' : return arguments[4]; break;
        default   : return arguments[0];
    }
}

