/* 
 *  ke stazeni - listboxy
 *  Honza 
 */  
 
jQuery().ready(function (){
    jQuery("body").click(toggleListboxNabidka);
    jQuery(".ke_stazeni_telo, .ke_stazeni_sipka").click(function(){
        listboxNabidkaClick = jQuery(this).siblings(".nabidka").attr("id");
    });
    
    
    if($('.safari-flash').length > 0) { 
        
        $('.safari-flash').each(function() {
            
            var context = $(this);
            var dt1, dt2;
            
            if($(this).hasClass('header')) {
                dt1 = 8000;
                dt2 = 4000;
            } else {
                dt1 = 4000;
                dt2 = 1500;
            }
            
            if($('.flash-imgs img', context).length > 1) {
                
                var current;
                var next;
                current = $('.flash-imgs img:first', context); 
                next = current.next('.flash-imgs img', context);    

                setInterval(function() {
                    
                    current.css("z-index", "500");
                    next.css("z-index", "550");
                    next.fadeIn(dt2, function() {
                        current.hide();
                        current = next;
                        
                        if(current.attr('src') == $('.flash-imgs img:last', context).attr('src')) {
                            next = $('.flash-imgs img:first', context); 
                        } else {
                            next = current.next('.flash-imgs img', context);             
                        }
                    });    
                }, dt1);
            }
        });    
    }
    
}); //ready

var listboxNabidka = "";
var listboxNabidkaClick = "";

function toggleListboxNabidka()
{
    jQuery(".nabidka").stop().slideUp(200);
    if(listboxNabidka!=listboxNabidkaClick && listboxNabidkaClick!="")
    {
        var nabidka = jQuery("#"+listboxNabidkaClick);
        var position = (nabidka.siblings(".ke_stazeni_telo").position()); 
        nabidka.css({
            left: position.left, 
            top: position.top+22
        });
        nabidka.stop().slideDown(300);
        listboxNabidka=listboxNabidkaClick;
    }
    else
    {
        listboxNabidka="";
    }
    listboxNabidkaClick="";
}


var obchodni_sit = {
    "map": null,		
    "markers": [],
    "infowindow": null,
    "markerImageCreativePoint": null,
    "markerImageCreativePointShadow": null,
    "markerImage": null,
    "markerImageShadow": null,
		
    "init": function() {
        if(document.getElementById("map_canvas") == null) {
            return;
        } // pokud neni mapa, inicializace konci
			
        this.resize();
        $(window).resize(this.resize);
			
        var latlng = new google.maps.LatLng(49.81749199999999, 15.472962);
        var myOptions = {
            zoom: 7,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        this.map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        this.infowindow = new google.maps.InfoWindow;
		    
        google.maps.event.addListener(this.infowindow, 'domready', function() {
            var marker = this.marker;
            $('#mapa_obchodni_sit .popup .email').click(function(e){
                e.preventDefault();
                contact_partner(marker.id, marker.title);
            });
        });
        
        this.markerImageCreativePoint = new google.maps.MarkerImage(
            "http://www.bematech.cz/design/vlajka_velka.png",
            new google.maps.Size(65, 86),
            new google.maps.Point(0, 0),
            new google.maps.Point(22, 80)
            );
        this.markerImageCreativePointShadow = new google.maps.MarkerImage(
            "http://www.bematech.cz/design/vlajka_velka_stin.png",
            new google.maps.Size(80, 46),
            new google.maps.Point(0, 0),
            new google.maps.Point(8, 38)
            );
        
        this.markerImage = "http://www.bematech.cz/design/red-dot.png";
        this.markerImageShadow = new google.maps.MarkerImage(
            "http://www.bematech.cz/design/red-dot-shadow.png",
            new google.maps.Size(59, 32),
            new google.maps.Point(0, 0),
            new google.maps.Point(16, 32)
            );
    },
		
    "resize": function () {
        var screenWidth = $(window).width();
        var screenHeight = $(window).height();
        var rightWidth = $(".obchodni_sit_container").outerWidth();
			
        $("#mapa_obchodni_sit").width(screenWidth-rightWidth).height(screenHeight);
        $(".obchodni_sit_result").data("minHeight", screenHeight-$('.obchodni_sit_logo').outerHeight()-$('.obchodni_sit_head').outerHeight()-$('.obchodni_sit_filter').outerHeight()-2);
        $(".obchodni_sit_result").data("maxHeight", screenHeight-$('.obchodni_sit_logo').outerHeight()-$('.obchodni_sit_head').outerHeight()-2);
			
        if($(".obchodni_sit_filter").data('hidden') != true) {
            $(".obchodni_sit_result").height( $(".obchodni_sit_result").data("minHeight") );
        }
        else {
            $(".obchodni_sit_result").height( $(".obchodni_sit_result").data("maxHeight") );
        }
    },
		
    "setMarkers": function(markersArray) {
        var _this = this;
        if(markersArray && markersArray.length > 0) {
            _this.removeMarkers();
            for(var i = 0; i<markersArray.length; i++) {
                (function() {
                    var position = markersArray[i].pozice.split(";");
                    var partner = $("<div class='partner'><div class='title'>" + markersArray[i].nazev + "</div><div class='desc_short'>" + markersArray[i].popis_kratky + "</div><div class='desc_long'>" + markersArray[i].popis_dlouhy + "</div></div>");
						
                    var marker = new google.maps.Marker({
                        position: new google.maps.LatLng(position[0], position[1]), 
                        map: _this.map,
                        title: markersArray[i].nazev,
                        id: markersArray[i].id,
                        popis_dlouhy: markersArray[i].popis_dlouhy,
                        popis_kratky: markersArray[i].popis_kratky
                    });
                                                  
                    if(markersArray[i].creative_point == '1') {
                        marker.setIcon(_this.markerImageCreativePoint);
                        marker.setShadow(_this.markerImageCreativePointShadow);
                        partner.addClass("creative-point");
                    }
                    else {
                        marker.setIcon(_this.markerImage);
                        marker.setShadow(_this.markerImageShadow);
                    }
                    _this.markers.push(marker);
                    google.maps.event.addListener(marker, 'click', function() {
                        _this.infowindow.setContent("<div class='popup' style='width: 270px; height: 120px;'><div class='title'>" + this.title + "</div><div class='body'>" + this.popis_dlouhy + "</div></div>");
                        _this.infowindow.open(_this.map, this);
                        _this.infowindow.marker = this;
                        partner.trigger("open");
                    });
					
                    $('.title', partner).click(function() {
                        google.maps.event.trigger(marker, 'click');
                    });
						
						
						
                    $('.email', partner).click(function(e) {
                        e.preventDefault();
                        contact_partner(marker.id, marker.title);
                    });
						
                    partner.bind("open",function() {
                        if(partner.is(".active")) {
                            partner.removeClass('active');
                            $('.desc_long', partner).stop().animate({
                                height: 0
                            });
                            $('.desc_short', partner).stop().animate({
                                height: partner.data("height_short")
                            });
                        }
                        else {
                            $(".obchodni_sit_result .partner.active .desc_long").stop().animate({
                                height: 0
                            });
                            $(".obchodni_sit_result .partner.active .desc_short").stop().animate({
                                height: $(".obchodni_sit_result .partner.active").data("height_short")
                            });
                            $(".obchodni_sit_result .partner.active").removeClass('active');
                            $('.desc_long', partner).stop().animate({
                                height: partner.data("height_long")
                            });
                            $('.desc_short', partner).stop().animate({
                                height: 0
                            });
                            partner.addClass("active");
                        }
                    });
						
                    $(".obchodni_sit_result").append(partner);
                    partner.data("height_long", $(".desc_long", partner).height());
                    partner.data("height_short", $(".desc_short", partner).height());
                    $('.desc_long', partner).css({
                        height: 0, 
                        overflow: 'hidden'
                    });
                    $('.desc_short', partner).css({
                        overflow: 'hidden'
                    });
                })();
            }
        }
    },
		
    "removeMarkers": function() {
        if(this.markers && this.markers.length > 0) {
            for(var i = 0; i<this.markers.length; i++) {
                this.markers[i].setMap(null);
            }
            this.markers.length = 0;
            $(".obchodni_sit_result .partner").remove();
        }
    },
		
    "setCenter": function(center) {
        this.map.setCenter(new google.maps.LatLng(center.lat, center.lng));
    }
		
};


function obchodni_sit_stat_changed() {
    var stat = $('#stat_id').val();
    if(stat <= 0) {
        $('#oblasti .nabidka_radek').show();
    }
    else {
        $('#oblasti .nabidka_radek').hide();
        $('#oblasti .nabidka_radek.parent_0000').show();
        $('#oblasti .nabidka_radek.parent_' + stat).show();
        $('#oblasti .nabidka_radek:first').click();
        obchodni_sit_oblast_changed();
    }
}

function obchodni_sit_oblast_changed() {
    var oblast = $('#oblasti_id').val();
    var rows = $('#okres .nabidka_radek').size();
    if(oblast <= 0) {
        $('#okres .nabidka_radek').show();
    }
    else {
        $('#okres .nabidka_radek').hide();
        $('#okres .nabidka_radek.parent_0000').show();
        $('#okres .nabidka_radek.parent_' + oblast).show();
        $('#okres .nabidka_radek:first').click();
        rows = $('#okres .nabidka_radek.parent_' + oblast).size();
    }
    if(rows > 15) {
        $('#okres .nabidka_obal').attr("style", "overflow-y: scroll; overflow-x: hidden; height: 255px"); // 255 = 15*17
    } else {
        $('#okres .nabidka_obal').attr("style", "");
    }
}

$().ready(function() {
	
    if($('#okres .nabidka_radek').length > 0) {            
        obchodni_sit_oblast_changed();
    }
        
        

        
    // prace s dialogem
    $('.dialog').bind('show', function() {
        $(this).trigger('resize');
        $('.dialog .msg').empty().removeClass('error');
        $(this).fadeIn();
        $('.dialog_overlay').fadeTo("normal", 0.6);
        $('.dialog input[name=kod]').val('');
    }).bind('hide', function(){
        $(this).fadeOut();
        $('.dialog_overlay').fadeOut();		
    }).bind('resize', function(){

        $('.dialog_overlay').css({
            position: 'absolute',
            height: $(document).height()
        });

        var width = $(this).outerWidth();
        var height = $(this).outerHeight();
        $(this).css({
            top: Math.max(0, ($(window).height()-height)/2) + $(window).scrollTop(),
            left: Math.max(0, ($(window).width()-width)/2)
        });
    });
	
    // pri zmene velikosti okna presuneme dialog na stred
    $(window).resize(function(){
        $('.dialog').trigger('resize');
        $('.error_msg').trigger('resize');
    });
	
    // otevreni dialogu po kliknuti na tlacitko "online poptavka"
    $('.objednavky_a_info_back').click(function(){
        $('.dialog').trigger('show');
    });
	
    // zavreni dialogu "krizkem"
    $('.dialog .close').click(function(){
        $('.dialog').trigger('hide');
    });

    // vypis hlasek dialogu
    $('.error_msg').bind('show', function() {
        $(this).trigger('resize');
        $('.error_overlay').fadeTo("normal", 0.6);
        $(this).fadeIn();

    }).bind('hide', function() {
        $(this).fadeOut();
        $('.error_overlay').fadeOut();
        if($(this).is('.close')) {
            $('.dialog').trigger('hide');
            $(this).removeClass('close');
        }

    }).bind('resize', function() {

        var position = $('.dialog').position();
        $(this).css({
            top: position.top + $('.dialog').height()/2 - $(this).height()/2,
            left: position.left + $('.dialog').width()/2 - $(this).width()/2
        });

        $('.error_overlay').height($('.dialog').height());
        $('.error_overlay').width($('.dialog').width());
        $('.error_overlay').css({
            top: position.top,
            left: position.left
        });

    });

    // zavreni hlasky tlacitkem OK
    $('.msg_button').click(function() {
        $('.error_msg').trigger('hide');
    });

    // zavreni hlasky krizkem
    $('.msg_close').click(function() {
        $('.error_msg').trigger('hide');
    });

    // odeslani formulare dialogu ajaxem
    $('#dialog_kontakt form').submit(function(e){
        e.preventDefault();
        var data = ($(this).serialize());
        $.ajax({
            url: 'scripts/kontaktni_formular.php',
            data: data,
            type: 'POST',
            dataType: 'json',
            success: function(response){
                if(response && response.error) {
                    $('.msg_text').text(response.error).addClass('error');
                }
                else if(response && response.msg) {
                    window.location.href = 'dekujeme-za-poptavku/';
                    return;
                    $('.msg_text').text(response.msg).removeClass('error');
                }
                else {
                    $('.msg_text').empty().removeClass('error');
                }
                $('.error_msg').trigger('show');
                $('.dialog .spam img').attr('src', 'captcha.png?' + (new Date()).getTime());
                $('.dialog input[name=kod]').val('');
            }
        });
    });		

    // odeslani formulare dialogu ajaxem
    $('#dialog_partneri form').submit(function(e){
        e.preventDefault();
        var data = ($(this).serialize());
        $.ajax({
            url: 'scripts/kontaktni_formular_partneri.php',
            data: data,
            type: 'POST',
            dataType: 'json',
            success: function(response){
                if(response && response.error) {
                    $('.msg_text').text(response.error).addClass('error');
                }
                else if(response && response.msg) {
                    $('.msg_text').text(response.msg).removeClass('error');
                    $('.error_msg').addClass('close');
                }
                else {
                    $('.msg_text').empty().removeClass('error');
                }
                $('.error_msg').trigger('show');
                $('.dialog .spam img').attr('src', 'captcha.png?' + (new Date()).getTime());
                $('.dialog input[name=kod]').val('');
            }
        });
    });

	
    // inicializace google mapy v obchodni siti
    obchodni_sit.init();
	
    // vyhledani partneru v obchodni siti
    $('.obchodni_sit_filter #vyhledej input').click(function(){
        var produkt = $("#produkty_id").val();
        var stat = $("#stat_id").val();
        var oblast = $("#oblasti_id").val();
        var okres = $("#okres_id").val();

        $.ajax({
            url: "scripts/ajax_obchodni_sit_klienti.php",
            type: "post",
            data: "ID_produkt=" + produkt + "&oblast_okres=" + oblast + "-" + okres, 
            dataType: "json",
            success: function(data) {				
                obchodni_sit.setMarkers(data.partneri);
                if(data.center.lat > 0 && data.center.lng > 0) {
                    obchodni_sit.setCenter(data.center);
                }                                
            },
            beforeSend: function() {
                obchodni_sit.removeMarkers();
                $(".obchodni_sit_result").append("<div class='loading'>Načítám partnery</div>");
            },
            complete: function() {
                $(".obchodni_sit_result .loading").remove();
            }
        });
    });
	
    // skryvani a zobrazovani filtru partneru v obchodni siti
    $(".obchodni_sit_head").click(function(){
        var filter = $(".obchodni_sit_filter");
        if(filter.data("hidden") != true) {
            filter.stop().slideUp();
            $(".obchodni_sit_result").animate({
                height: $(".obchodni_sit_result").data('maxHeight')
            });
            filter.data("hidden", true);
            $(this).addClass("closed");
        }
        else {
            filter.stop().slideDown();
            filter.data("hidden", false);
            $(".obchodni_sit_result").animate({
                height: $(".obchodni_sit_result").data('minHeight')
            });
            $(this).removeClass("closed");
        }
    });
	
	
});


// rozsireni objektu String v javascriptu metodou trim(), 
// ktera oreze bile znaky ze zacatku a konce souboru 
String.prototype.trim = function()
{
    return this.replace(/^\s*([\S\s]*?)\s*$/, '$1');
};

function contact_partner(id,nazev)
{
    $("#dialog_partneri").show();
    $("#dialog_kontakt").hide();
    $('.dialog').trigger('show');
    $("#dialog_partneri input[name='partner_id']").val(id);
    $("#dialog_partneri input[name='produkt_id']").val($("#produkty_id").val());
    $("#dialog_partneri input[name='okres_id']").val($("#okres_id").val());
    $("#dialog_partneri input[name='partner_nazev']").val(nazev);
    $("#dialog_partneri input[name='produkt']").val($("#produkty_box").text()!="Produkt"?$("#produkty_box").text():"");
    

    return false;
}
