var openBrowser = function(){				
	var searchword = $("#SearchFritext").val();
	var category = $("#SearchCategories").val();
	var href = BASE_HREF+'bladdra#sok{sokord:'+searchword+';kategori:'+category+'}';	
	window.location.href = href;
}
	
var sticky_relocate = function() {
	if($('#stickyCanonAnchor').size() > 0)
	{
	  var window_top = $(window).scrollTop();
	  var div_top = $('#stickyCanonAnchor').offset().top;
	  var div_height = $('#stickyCanon').outerHeight();
	  var window_height = $(window).height();
	  
	  if (window_top > div_top && window_height > div_height){
		$('#stickyCanon').addClass('stick');
		$('#stickyCanon').css('left', $('#canons-fotoskola aside').offset().left+'px');
	  }
	  else
		$('#stickyCanon').removeClass('stick');
	}
}

var getAlias = function(){
	var locationHREF = window.location.href;
	var alias = locationHREF.replace("www.", "");
	
	alias = alias.replace(BASE_HREF, "");
	if(alias.search('#') >= 0){
		alias = alias.substr(0, alias.indexOf('#'));
	}
	
	if(alias.search('latlista') >= 0){
		alias = "bladdra";
	}
	
	if(alias == ""){
		alias = 'startsidan';
	}

	return alias;
}

var searchPlaylists = function(){
	window.location.hash = "sok{sokord:"+$("#SearchFritext").val()+";kategori:"+$("#SearchCategories").val()+"}";
	
	$('#sokresultat').parent('li').addClass('active').siblings().removeClass('active');
	$('#browsePlaylists').browsePlaylists({
		limit : "0,12",
		searchword : $("#SearchFritext").val(),
		category : $("#SearchCategories").val()
	});
	
	$('#winnersPresentation').hide();
	
	return false;	
}

jQuery.fn.browsePlaylists = function(options, method){
	
	var settings = {
		sortby : "id",
		sortorder : "DESC",
		limit : "0,6",
		category : false,
		searchword : "",
		playlistHolder : 'ul li.active ul',
		showWinners : false,
		createPaginator : true,
		tmpl : '<li><h3><a class="title intern-url"></a></h3><div class="col"><img alt="Cover" width="106" height="106" /></div><div class="col w166"><h4>Skapad av:</h4><p class="name"></p><h4>Beskrivning:</h4><p class="description"></p></div><a title="Öppna lsitan i Spotify" class="play" target="_blank">Spela!</a></li>'
	};
				
	var playlistHolder = "";
	var playlistsTotal = 0;
	var browser = "";
		
	var methods = { 
		parseRow : function(i, obj){
			if(obj == 0){
				row = $('<li class="noresult">Sökningen gav inga träffar.</li>');
				row.appendTo(playlistHolder);
				return;	
			}
			
			var row = $(settings.tmpl).clone();
			
			if(i%3 == 0){
				row.addClass('clear');	
			}
						
			if(!(obj.winner)){
				var winner = "";	
			}
			else{
				var winner = '<div class="winner">Vinnare v'+obj.winner+'</div>';	
			}
			
			obj.title = obj.title.length > 21 ? obj.title.substr(0, 18)+'...' : obj.title;
			obj.name = obj.name.length > 21 ? obj.name.substr(0, 18)+'...' : obj.name;
			obj.description = obj.description.length > 53 ? obj.description.substr(0, 50)+'...' : obj.description;

			row.find('.intern-url').attr('href', "/latlista/"+obj.hash);
			row.find('.title').text(obj.title);
			row.find('img').attr('src', COVER_PATH+obj.cover);
			row.find('.name').text(obj.name);
			row.find('.description').text(obj.description);
			row.find('.play').attr({
				href : 'http://open.spotify.com/user/'+obj.spotify_data[2]+'/playlist/'+obj.spotify_data[4],
				plhash : obj.spotify_data[4]
			});
			row.append(winner);
			
			row.appendTo(playlistHolder);
			
		},
		performSearch : function(){
			browser.find('ul > li > ul > li').remove();
			
			$.getJSON('/assets/json/playlists.json.php', settings, function(playlists){
				$.each(playlists, methods.parseRow);
				browser.find('> div > ul').css('height', (playlistHolder.outerHeight()+50)+'px');
			});
		},
		paginator : function(){
			
			var Wrapper = $('#SearchPaginate');
			var Tab = $('<a class="tab"></a>');
			var TabSet = $('<div class="TabSet"></div>');
			var jump = 9;
			
			Wrapper.empty();
			
			settings.limit = "";
			
			$.getJSON('/assets/json/playlists.json.php', settings, function(playlists){
				var panels = methods.CalculatePanels(playlists.length);
			
				if(panels > 7){
					jump = 7;
					var TabFirst = Tab.clone().addClass('first').text('Hoppa tillbaka').bind('click', methods.PrevTabSet);
					var TabLast = Tab.clone().addClass('last').text('Hoppa fram').bind('click', methods.NextTabSet);						
				}
				
				if(panels > 1){
					var TabNext = Tab.clone().addClass('next').text('Nästa').bind('click', methods.NextPanel);
					var TabBack = Tab.clone().addClass('back').text('Föregående').bind('click', methods.PrevPanel);
					Wrapper.show();
				}
				else {
					Wrapper.hide();
				}
				
				Wrapper	
					.append(TabFirst)
					.append(TabBack);
					
				for(i = 0;i < panels;i++){
					if(	i % jump == 0 ) {
						clone = TabSet.clone().appendTo(Wrapper);	
					}						
					
					var newTab = Tab.clone().attr('id', 'SearchTab'+(i+1)).addClass('panel').text((i+1));
					clone.append(newTab);	
					newTab.bind('click', methods.goToPanel);						
				};
				
				Wrapper
					.append(TabNext)
					.append(TabLast);
				
				$('.TabSet').hide();	
				$('.TabSet:first').show();
				
				$('.TabSet:first .tab:first').trigger('click');
			});
		},
		CalculatePanels : function(noPlaylists){
			var panels = noPlaylists / 12;
			panels  = Math.ceil(panels);
			return panels;
		},
		NextTabSet : function(jump){
			if($('.TabSet:visible + .TabSet').length < 1) { $('.TabSet:first').show().nextAll('.TabSet').hide(); }
			else { $('.TabSet:visible ').hide().next('.TabSet').show();	}	
			$('.TabSet:visible .tab:first').trigger('click');			
			return false;
		},
		PrevTabSet : function(jump){
			if($('.TabSet:visible').prev('.TabSet').length < 1)
			{
				$('.TabSet:last').show().prevAll('.TabSet').hide();
			}
			else
			{
				$('.TabSet:visible ').hide().prev('.TabSet').show();
			}
			
			$('.TabSet:visible .tab:last').trigger('click');
			return false;
		},
		NextPanel : function(){
			if($('.TabSet:visible .tab:last').hasClass('selected') && $('.TabSet').size() > 1)
			{
				$('#SearchPaginate .last').trigger('click');	
			}
			else
			{
				var TabIndex = ($('.tab.panel.selected + .tab.panel').size() > 0 ) ? $('.tab.panel.selected').attr('id').replace('SearchTab','') : "0";	
				RecordStart = TabIndex*12;				
				settings.limit = RecordStart+",12";
				
				methods.performSearch();
				methods.ActivateTab(TabIndex);
			}
			return false;
		},
		PrevPanel : function(){
			if($('.TabSet:visible .tab:first').hasClass('selected') && $('.TabSet').size() > 1)
			{
				$('#SearchPaginate .first').trigger('click');	
			}
			else {
				var TabIndex = ($('.tab.panel.selected').prev('.tab.panel').size() > 0 ) ? $('.tab.panel.selected').attr('id').replace('SearchTab','') : "0";
				
				if(TabIndex == 0){
					$('.TabSet:last').find('.tab:last').trigger('click');
					return;
				}								
				
				TabIndex = parseInt(TabIndex)-2;
				RecordStart = TabIndex*12;				
				settings.limit = RecordStart+",12";
				
				methods.performSearch();
				methods.ActivateTab(TabIndex);
				
				methods.ActivateTab(TabIndex);
			}
			return false;
		},
		goToPanel : function(){
			var TabIndex = $(this).attr('id');
			TabIndex = TabIndex.replace('SearchTab','') -1;
			RecordStart = TabIndex*12;				
			settings.limit = RecordStart+",12";
			methods.performSearch();
				
			$('.SearchPanel').hide();
			$('.SearchPanel:eq('+(TabIndex-1)+')').show();
			methods.ActivateTab(TabIndex);	
			
			return false;
		},
		ActivateTab : function(TabIndex){
			$('.tab.selected').removeClass('selected');
			$('#SearchTab'+(parseInt(TabIndex)+1)).addClass('selected');
		}
	};
	
    $.extend( settings, options );
    
	return this.each(function(){
		browser = $(this);
		playlistHolder = $(this).find(settings.playlistHolder);
		
		if(settings.createPaginator) {
			methods.paginator();
		}
		else {
			methods.performSearch();			
		}
	});
		
	if ( methods[method] ) {
	  return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
	} else if ( typeof method === 'object' || ! method ) {
	  return methods.init.apply( this, arguments );
	} else {
	  $.error( 'Method ' +  method + ' does not exist on jQuery.tooltip' );
	}
	
}
/* Dela och vinn */

var SelectCover = function(){
	var src = $(this).attr('src');
	$('#SelectedCover').attr('src', src);
	$('input[name=cover]').val(src);
};

var NextCoverPanel = function(){
	if($('.SelectCoverPanel:visible + .SelectCoverPanel').length < 1) { $('.SelectCoverPanel:first').show().nextAll().hide(); }
	else { $('.SelectCoverPanel:visible ').hide().next('.SelectCoverPanel').show();	}
	SelectCoverPanelTab();	
	return false;
};

var PrevCoverPanel = function(){
	if($('.SelectCoverPanel:visible').prev('.SelectCoverPanel').length < 1) { $('.SelectCoverPanel:last').show().prevAll().hide(); }
	else { $('.SelectCoverPanel:visible ').hide().prev('.SelectCoverPanel').show();	}
	SelectCoverPanelTab();	
	return false;
};

var SelectCoverPanel = function(){
	var TabIndex = $(this).index();
	$('.SelectCoverPanel').hide();
	$('.SelectCoverPanel:eq('+TabIndex+')').show();
	SelectCoverPanelTab();	
	return false;
};

var SelectCoverPanelTab = function(){
	var VisiblePanelIndex = $('#SelectCoverPanels .SelectCoverPanel:visible').index();
	$('#SelectCoverControls .tabs a').removeClass('selected');
	$('#SelectCoverControls .tabs a:eq('+VisiblePanelIndex+')').addClass('selected');
}

var CreatePlaylist = function(){
	var BaseHref = $('base').attr('href');
	var form = $(this).parents('form');
	var valid = true;
	$('.message').html('');
	
	$(form).find('input, select, textarea').each(function(){
		if($(this).attr('type') == 'checkbox'){
			if(!($(this).attr('checked'))){
				$('.message').append('<p>Du måste acceptera reglerna.</p>');
				valid = false;
			}	
		}
		
		if($(this).attr('name') == 'email'){		
			if (!EmailRegex.test($(this).val())){
				$('.message').append('<p>Email stämmer inte.</p>');
				valid = false;	
			}
		}
		
		else {
			if(!($(this).val())){
				valid = false;	
			}
		}
	});
	
	if(valid){
		$.getJSON('assets/snippets/create_playlist.php', $(form).serialize(), function(data){
			if(data.ok == 1){
				var plURL = BASE_HREF+'latlista/'+data.hash+'#tack-for-ditt-bidrag';
				window.location.href = plURL;
			}			
			else{
				$('.message').append(data.error);
			}
		});
	}
	
	else {
	 $('.message').append('<p>Alla fält är obligatoriska.</p>');		  
	}
	
	return false;	
}


