$(function(){
    initMenuItemShadow();
    initTopMenu();
    initFooter();
    initLandingPage();
    $(window).resize(initFooter);
	
	
	$("#player .panel-content").first().find(".mejs-overlay-button").trigger("click");
});


function initPlayer(theme_dir,options){
    var opts = {
            panel_width:820,
            panel_height:450,
            frame_width: 160,
            frame_height: 80,
            frame_gap: 20,
            nav_theme: theme_dir,
            transition_speed:800,
            transition_interval: 8000,
            border: 'none',
            //background_color: '#ffffff',
            //easing: 'easeInOutQuad',
            show_filmstrip:true,
            pause_on_hover: true,
            frame_opacity:0.6
    };
	
	if(typeof options == "object"){
		$.extend(opts,options);
	}
    $('#player_screen').galleryView(opts);

}

function initMenuItemShadow(){

    $("#menu li").not(".header").each(function(){
        var h = $(this).height()+1;
        $(this).find(".shadow").css('height', h+"px").show();
        $(this).find(".shadow").addClass('pngfix');
    });

}

function initTopMenu(){
    $('#menu_top').mouseenter(function() {
          $('#menu_top ul').slideDown("fast");
    });
    $('#menu_top').mouseleave(function() {
          $('#menu_top ul').slideUp("fast");
    });
}

function initFooter(){

    var view_height = $(window).height();
    var footer_height = $("#footer").height();
    var body_height = 0;
    if($("#player").html()){
        body_height = 562;
    }else if($("#landing").html()){
        body_height = $("#landing").height();
    }else if($("#page").html()){
        body_height = $("#page").height();
    }
    if(view_height < (body_height + footer_height + 100) ){
        view_height = body_height + footer_height + 100;
    }
    //alert(view_height +", "+footer_height +", "+body_height);
    $("#main_wrapper").css("height", view_height+"px");
    $("#footer").css("bottom", "0");

}

function initSpinner(images){
	/*$('.panel-content').each(function(i){
		if($(this).is(':visible')){
			var product_id = $(this).attr('data-product_id');
			$(this).find('div.spinner').load("/index/loadimages?product_id="+product_id);
		}
	});*/
    //var spinner_loader = $("<span class='spinner_loader'></span>");
    var spinner_slider = $("<div class='spinner_slider'></div>");
    var total = images.length;
    if(total >= 0){
        spinner_slider.appendTo(images.parent()).slider({
            value:total-1,
            min: 0,
            max: total-1,
            step: 1,
            slide: function( event, ui ) {
                //var index = parseInt(ui.value/100 * total);
                var index = ui.value
                //console.log(total + ", " +index + ", " + ui.value);
                
                for(var i=0; i<total; i++){
                    if(images[index]){
                        if(i == index){
                            $(images[i]).show();
                        }else{
                            $(images[i]).hide();
                        }
                    }
                }
                
            }
        });

        var begining = images.closest(".panel-content").find(".begining");
        var ending = images.closest(".panel-content").find(".ending");

        var spinner_handler = images.closest(".panel-content").find(".ui-slider-handle");
        //var spinner_slider = images.closest(".spinner_slider");

        begining.click(function(e){
            e.preventDefault();
            animateSpinner(spinner_handler, images, spinner_slider, true);

        })
        ending.click(function(e){
            e.preventDefault();
            animateSpinner(spinner_handler, images, spinner_slider, false);
        })
    }

}

function animateSpinner(spinner_handler, spinner_images, spinner_slider, isToBegining){

    $(document).stopTime("slider");
    var v = spinner_images.length-1;
    spinner_slider.hide();
    if(spinner_handler.length){
        if(isToBegining){
            spinner_images.not(":last").hide();
            spinner_images.find(":last").show();
        }else{
            v = 0;
            spinner_images.not(":first").hide();
            spinner_images.find(":first").show();            
        }

        $(document).everyTime(40,"slider",function(){
            if(v>=0 && v<=(spinner_images.length-1)){
                spinner_slider.show();
                spinner_slider.slider("value", v);
                if(isToBegining){
                    if($(spinner_images[v+1]).length) $(spinner_images[v+1]).hide();
                    $(spinner_images[v]).show();
                    v--;
                }else{
                    if($(spinner_images[v-1]).length) $(spinner_images[v-1]).hide();
                    $(spinner_images[v]).show();
                    v++;
                }
            }
        }, spinner_images+1);
    }
}

function initGoogleMap(stores, type, region) {

    var player_div = $("#player")
    var preloader = $("<div class='google_map_preloader'></div>");
    preloader.appendTo(player_div);

    var myOptions = {
        zoom: 5,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("google_map"), myOptions);

    var geocoder = geocoder = new google.maps.Geocoder();
    var infowindow = new google.maps.InfoWindow();
    
    var marker_icon = '/html/images/logo_map_athletic.png';
    if(type == "lifestyle") marker_icon = '/html/images/logo_map_lifestyle.png';
    var marker_shape = {
        coord: [1, 1, 1, 20, 18, 20, 18 , 1],
        type: 'poly'
    };

    geocoder.geocode( { 'address': region}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {

            map.setCenter(results[0].geometry.location);

            for(i=0; i<stores.length; i++){
                var latlng = new google.maps.LatLng(stores[i]['latitude'],stores[i]['longitude']);
                var marker = new google.maps.Marker({
                   position: latlng,
                   map: map,
                   icon: marker_icon,
                   shape: marker_shape,
                   title: getStoreInfoMessage(stores[i])
                });
                handleMarkerSingleClick(marker);
                handelMarkerDoubleClick(marker);
            }
            
            preloader.remove();
        } else {
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
    

    function getStoreInfoMessage(store){
        var html = "<div class='infowin'><span class='header_athletic'>" + store["name"] +"</span><br/>" + "<br/>Address: "+store["address"] + " " + store["zip"] + "<br/>Phone: "+store["phone"]+ "<br/>Opening Hours: "+store["opening_hours"]+"</div>";
        if(type == "lifestyle") html = "<div><span class='header_lifestyle'>" + store["name"] +"</span><br/>"+store["description"] + "<br/>"+store["address"] + "<br/>"+store["phone"]+"</div>";
        return html;
    }

    function handleMarkerSingleClick(marker){
        google.maps.event.addListener(marker, "click", function(event){
            var sHTML = event.target.title;
            if(!infowindow){
                infowindow = new google.maps.InfoWindow();
            }
            infowindow.setContent(sHTML);
            infowindow.open(map, marker);

            map.setCenter(marker.getPosition())
        });
    }

    function handelMarkerDoubleClick(marker){
        google.maps.event.addListener(marker, "dblclick", function(event){
            map.setZoom(14);
            map.setCenter(marker.getPosition());
        });
    }
   
}

function initLandingPage(){
    $("select.select_region").live("change", function(e){
       var region = Number($(this).val());
       var name = $(this).attr("name");
       if(region>0){
           if(name == "select_region_athletic"){
               window.location.href = "/?set_region="+region+"&set_section=athletic";
           }else if(name == "select_region_lifestyle"){
               window.location.href = "/?set_region="+region+"&set_section=lifestyle";
           }
       }
    });

    $("select.change_region").live("change", function(e){
       var region = Number($(this).val());
       var name = $(this).attr("name");
       if(region>0){
            window.location.href = "?change_region="+region;
       }
    });
}
