/**
 * jQuery slider for restaurants
 **/

var MenuPoints = [];
var ActiveImg = "first";
var SlideTime = 0;
var ActiveTab = 999999;
var imagesLoaded = false;

var RestSlider = {
    "show" : function () {
        var Counter = 1;
        $.each(MenuPoints, function (index, item) {
            $(".slider-restaurant .overlay .links").append('<li class="item" id="slide-'+index+'" rel="'+index+'" onclick="RestSlider.slide('+index+');"><div class="small_pic" style="background:url('+RestSlider.getpic("passive", item.type)+') no-repeat left top;"></div><div class="small_link">'+item.title+'</div><div class="small_clear"></div></li>');
           
           Cufon.replace("#slide-" + index);
           
            if(Counter != MenuPoints.length) {
                $(".slider-restaurant .overlay .links").append('<li class="spacer"></li>');
            }
           
            Counter++;
        });
        
        $(".slider-restaurant .overlay .links").find("li").mouseover(function () {
            if($(this).hasClass("item")) {
                var Rel = parseInt($(this).attr("rel"));
                
                if(ActiveTab != Rel) {
                    $(this).find(".small_pic").css("background", 'url('+RestSlider.getpic("active", MenuPoints[Rel].type)+') no-repeat left top');
                    $(this).find(".small_link").css("color", '#86040b');
                    
                    if(typeof Cufon == "function") {
                       Cufon.refresh();
                    }
                }
                
            }
        }).mouseout(function () {
            if($(this).hasClass("item")) {
                var Rel = parseInt($(this).attr("rel"));
                
                if(ActiveTab != Rel) {
                    $(this).find(".small_pic").css("background", 'url('+RestSlider.getpic("passive", MenuPoints[Rel].type)+') no-repeat left top');
                    $(this).find(".small_link").css("color", '#00312d');
                
                    if(typeof Cufon == "function") {
                       Cufon.refresh();
                    }
                }
                
            }
        });
        
        setInterval(function () {
            var NextSlide = 0;
            
            if((ActiveTab + 1) != MenuPoints.length) {
                NextSlide = ActiveTab + 1;
            }
            
            RestSlider.slide(NextSlide);
            
        }, (SlideTime * 1000));
    },
    "getpic" : function (state, type) {
        var ReturnData = "";
        
        switch(type) {
            case "arrangementer":
                ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+"_1.png";
                break;
            case "takeaway":
                ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+"_2.png";
                break;
            case "pusleplads":
                ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+"_4.png";
                break;
            case "bofbio":
                ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+"_9.png";
                break;
            case "legerum":
                ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+"_3.png";
                break;
            case "barlounge":
            	ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+"_10.png";
            	break;
            case "kampagne":
            	ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+"_14.png";
            	break;
			case "sport":
            	ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+"_15.png";
            	break;
            default:
            	ReturnData = "/files/images/Restaurant_forside_slider/slider_link_"+state+".png";
            	break;
        }
        
        return ReturnData;
    },
    "slide" : function (id) {
        if(ActiveTab != id) {
            var Imgobj = $(".slider-restaurant .pic-container .image ." + ActiveImg);
            var Lengthobj = $(".slider-restaurant .overlay .links #slide-" + ActiveTab);
            
            if(Lengthobj.length == 1) {
                $(".slider-restaurant .overlay .links #slide-" + ActiveTab + " .small_pic").css("background", 'url('+RestSlider.getpic("passive", MenuPoints[ActiveTab].type)+') no-repeat left top');
                $(".slider-restaurant .overlay .links #slide-" + ActiveTab + " .small_link").css("color", '#00312d');
            }
            
            var Otherobj = (ActiveImg == "first" ? "other" : "first");
            ActiveImg = Otherobj;
            ActiveTab = id;
            Otherobj = $(".slider-restaurant .pic-container .image ." + Otherobj);
            
            $(".slider-restaurant .overlay .links #slide-" + id + " .small_pic").css("background", 'url('+RestSlider.getpic("active", MenuPoints[id].type)+') no-repeat left top');
            $(".slider-restaurant .overlay .links #slide-" + id + " .small_link").css("color", '#86040b');
            
            if(typeof Cufon == "function") {
               Cufon.refresh();
            }
            
            Otherobj.attr("src", MenuPoints[id].path);
    
            Imgobj.stop(true, true).fadeOut(500, function () {
                $(this).css("display", "none");
            });
            Otherobj.stop(true, true).fadeIn(500, function () {
                $(this).css("display", "block");
            });
        }
    },
    "json" : function (data) {
        delete data.images[0];
        var LengthImages = 0;
        
        //sortObject(data.images);
        
        for(key in data.images) {
            LengthImages++;
        }
        
        $(".slider-restaurant .overlay").css("background", 'url(/files/images/Restaurant_forside_slider/restaurant_slider_'+LengthImages+'.png) no-repeat left top');
        
        SlideTime = parseInt(data.time);
        var PreloadImages = ['/files/images/Restaurant_forside_slider/restaurant_slider_'+LengthImages+'.png', '/files/images/Restaurant_forside_slider/slider_static.jpg'];
        
        for(var i = 1; i <= 15; i++) {
            PreloadImages.push("/files/images/Restaurant_forside_slider/slider_link_passive_" + i + ".png");
            PreloadImages.push("/files/images/Restaurant_forside_slider/slider_link_active_" + i + ".png");
        }
        
        var Counter = 0;
        $.each(data.images, function (index, item) {
            MenuPoints[Counter] = item;
            PreloadImages.push(item.path);
            
            Counter++;
        });
        
        $.imgpreload(PreloadImages,function() {
            imagesLoaded = true;
        });
        
        if(MenuPoints.length != 0) {
            RestSlider.show();
        }
    }
}

function sortObject(o) {
    var sorted = {},
    key, a = [];

    for (key in o) {
        if (o.hasOwnProperty(key)) {
                a.push(key);
        }
    }

    a.sort();

    for (key = 0; key < a.length; key++) {
        sorted[a[key]] = o[a[key]];
    }
    return sorted;
}


$(document).ready(function () {
    $(".slider-restaurant .overlay #link").click(function () {
        if(MenuPoints.length != 0) {
            var Link = MenuPoints[ActiveTab].link;
            
            if(Link != "") {
                Link = Link.replace(/http:\/\//gi, "");
                Link = "http://" + Link;
                
                window.location = Link;
            }
        }
    });
    var TempInterval = setInterval(function () {
        if(imagesLoaded) {
            clearInterval(TempInterval);
            $(".slider-restaurant").fadeIn(500, function () {
                $(this).css("display", "block");
                
                RestSlider.slide(0);
            });
        }
    }, 50);
	
	var tmpSlide = XMLFEEDslider;
	
	if(tmpSlide.length<1) {
		tmpSlide = '/xml/feed_restaurant_slider.xml';
	}
	
    $.ajax({
        dataType:"jsonp",
        url:tmpSlide
    });
});
