var Playlists = {
	init: function(){
		/*$("ul.playlist li").each(function(){
			var pl = new Playlist($(this));
		});*/
		
		$("ul.functions").each(function(){
			var plf = new PlaylistFunctions($(this));
		});
		
		//$("div.playlist-page div#column-1 img").after("<div class=\"shine\" />");
		
		/*$(".show-tracks").each(function(){
			var tr = new Tracks($(this));
		});
		
		$("ul.artist-playlist").each(function(){
			var plb = new PlaylistBrowser($(this));
		});*/
	}
};

var Playlist = function(el){
	this.el = el;
	this.el.mouseenter($.fnbind(this.over, this)).mouseleave($.fnbind(this.out, this));
	
	var img = $("img", this.el).wrap("<div class=\"img-wrap\" />").after("<div class=\"shine\" />");
};
Playlist.prototype = {
	over: function(e){
		this.el.addClass("over");
	},
	out: function(e){
		this.el.removeClass("over");
	}
};

var PlaylistFunctions = function(el){
	this.el = el;
	/*this.listen = $("li.listen", this.el);
	this.listen.mouseenter($.fnbind(this.over, this)).mouseleave($.fnbind(this.out, this)).click($.fnbind(this.click, this));
	this.listenMenu = $("div.listen-menu", this.listen);
	if(this.listenMenu){
		var close = $("<p class=\"close\" />").append( $("<a href=\"#close\" title=\"Stäng\">Stäng</a>").click($.fnbind(this.close, this)) );
		this.listenMenu.append(close);
	}*/
	this.id = $("input#UserGUID");
	if(this.id){ this.id = this.id.val(); }
	
	$("li.likes a", this.el).click($.fnbind(this.like, this));
	//$("div.listen-menu ul li a", this.el).click($.fnbind(this.play, this));
};
PlaylistFunctions.prototype = {
	urls: {
		play: "/base/logg/play/",
		like: "/base/digg/add/"
	},
	over: function(e){
		//this.listenMenu.fadeIn();
	},
	out: function(e){
		//this.listenMenu.fadeOut();
	},
	click: function(e){
		e.preventDefault();
		$(".listen-menu-open").hide();
		
		this.listenMenu.addClass("listen-menu-open");
		this.listenMenu.show();
	},
	like: function(e){
		e.preventDefault();
		var el = $(e.target);
		var id = el.attr("href").replace("#like-", "");
		$.post(this.urls.like + this.id + "/" + id + ".aspx", function(data){
			var count = $("value", data).text();
			el.text("Gilla (" + count + ")");
		}, "xml");
	},
	play: function(e){
		var el = $(e.target);
		var parent = el.parents("div.item");
		var player = el.parents("li");
		if(player){ player = player.attr("class").replace(" over", ""); }
		var id = parent.attr("id");
		if(id){ id = id.replace("playlist-", ""); }
		
		$.post(this.urls.play + this.id + "/" + player + "/" + id + ".aspx", function(data){
			//console.log(data);
		}, "xml");
	},
	close: function(e){
		e.preventDefault();
		e.stopPropagation();
		this.listenMenu.removeClass("listen-menu-open");
		this.listenMenu.hide();
	}
};

var Tracks = function(handle){
	this.handle = handle;
	this.handleLink = $("a", this.handle).click($.fnbind(this.toggle, this));
	this.tracks = this.handle.siblings("div.tracks");
	this.wrapper = $("<div class=\"tracks-wrap\" />").insertBefore(this.tracks).append(this.tracks).hide();
};
Tracks.prototype = {
	text: {
		opened: "Dölj låtlista",
		closed: "Visa låtlista"
	},
	toggle: function(e){
		e.preventDefault();
		if(this.open){
			this.open = false;
			this.handleLink.text(this.text.closed);
			this.wrapper.hide(200);
		}else{
			this.open = true;
			this.wrapper.show(200);
			this.handleLink.text(this.text.opened);
		}
	}
};

var PlaylistBrowser = function(el){
	this.el = el;
	this.items = this.el.children("li");
	this.index = 0;;
	this.maxWidth = this.items.length * this.options.width;
	this.el.width(this.maxWidth);
	
	this.wrapper = $("<div class=\"playlist-browser\" />").insertBefore(this.el).append(
		this.el,
		$("<div class=\"next\" title=\"Nästa\">Nästa</div>").click($.fnbind(this.next, this)),
		$("<div class=\"prev\" title=\"Föregående\">Föregående</div>").click($.fnbind(this.prev, this))
	);
	this.el.wrap("<div class=\"list-wrapper\" />");
};
PlaylistBrowser.prototype = {
	options: {
		width: 280,
		shown: 3
	},
	next: function(e){
		if(this.index < this.items.length - this.options.shown){
			this.index++;
			this.animate();
		}
	},
	prev: function(e){
		if(this.index > 0){
			this.index--;
			this.animate();
		}
	},
	animate: function(){
		this.el.animate({
			marginLeft: -(this.options.width * this.index)
		}, 500);
	}
};
$(document).ready(Playlists.init);

var Forms = {
	init: function(){
		$(".field").focus(Forms.focus).blur(Forms.blur);
	},
	focus: function(){
		$(this).addClass("focus");
	},
	blur: function(){
		$(this).removeClass("focus");
	}
};
$(document).ready(Forms.init);

var Archive = function(el){
	this.el = el;
	this.init();
};
Archive.prototype = {
	init: function(){
		this.el.addClass("js-active");
		this.items = this.el.find("li a");
		this.items.click(this.click);
	},
	click: function(){
		var el = $(this);
		el.parent().toggleClass("open");
		return el.hasClass("post");
	}
}
var Archives = {
	init: function(){
		$("div.archive > ul").each(function(){
			new Archive($(this));
		});
	}
};

var MainSlideshow =
{
    init:function()
    {
        $('#slideshow').before('<div id="nav-slides">').cycle(
        {
            fx: 'fade',
 	    pager:  '#nav-slides',
            timeout: 5000
        });
    }
}
$(window).load(Archives.init);
