function getexpirydate(nodays) {
	var UTCstring;
	Today = new Date();
	nomilli = Date.parse(Today);
	Today.setTime(nomilli + nodays * 24 * 60 * 60 * 1000);
	UTCstring = Today.toUTCString();
	return UTCstring;
}

function setcookie(name, value, duration, domain) {
	cookiestring = name + "=" + escape(value) + ";expires=" + getexpirydate(duration);
	if (domain != ""){
		cookiestring = cookiestring + ";domain=" + domain;
	}
	document.cookie = cookiestring;
}

	
$(function() {
	$.widget("gaffa.fplivecomplete", $.ui.autocomplete, {
	_original_create:$.ui.autocomplete.prototype._create,
	_create: function() {
		$(this.element[0]).val("");
		this._original_create();
		 var i = document.createElement('input');
		 var placeholdertext = $(this.element[0]).prev('label').text();
		  if('placeholder' in i){
			$(this.element[0]).attr('placeholder',placeholdertext)
		  }else{
			  $(this.element[0]).val(placeholdertext).focus(function(){
				  if($(this).val()==placeholdertext){
					$(this).val("");
				  }
			  }).blur(function(){
				  if($(this).val()==""){
					$(this).val(placeholdertext);
				  }
			  });
		  }
	},
	_renderMenu: function( ul, items ) {
		var self = this,
			currentCategory = "";
		$.each( items, function( index, item ) {
			if ( item.type != currentCategory ) {
				ul.append( "<li class='ui-autocomplete-category'>" + item.type + "</li>" );
				currentCategory = item.type;
			}
			self._renderItem( ul, item );
		});
	},
	_renderItem: function( ul, item) {
		var elm =  $( "<a></a>" ).text( item.label );
			if(item.extrainfo != undefined ){
				elm.append("<br /><span class='ui-autocomplete-extrainfo'>" + item.extrainfo + "</span>");
			}
			return $( "<li></li>" )
			.data( "item.autocomplete", item )
			.append(elm).appendTo( ul );
	}

	});

	function split(val) {
			return val.split(/,\s*/);
	}
		
	function extractLast(term) {
		return split(term).pop();
	}
	

	function exactMatch(data,term){
		var foundMatch = false;
		$.each(data,function(index,value){
			if(value.value.toLowerCase() == term){
				foundMatch = value;
				return false;
			}
		})
		return foundMatch;
	}
	var cache = {};
	var lang = $('.search_bt').get(0).getAttribute('id');
	$('#gaffalive-search textarea').fplivecomplete({
		delay: 0,
		source: function(request, response) {
				var currentTerm = extractLast(request.term).substr(0,2).toLowerCase();
				if ( currentTerm in cache ) {
					response($.ui.autocomplete.filter(cache[currentTerm],extractLast(request.term)).slice(0,10));
					return;
				}
			  $.getJSON("/shortcut/gl_searchautocomplete.php?l=" + lang, {
					q: extractLast(request.term)
				}, function(data) {
						cache[currentTerm] = data;
						response(data.slice(0,10))
					});
			},
			search: function() {
				// custom minLength
				var term = extractLast(this.value);
				if (term.length < 2) {
					return false;
				}
			},
			select: function(event, ui) {
				var terms = split( this.value );
				// remove the current input
				terms.pop();
				// add the selected item
				terms.push( ui.item.value );
				// add placeholder to get the comma-and-space at the end
				terms.push("");
				this.value = terms.join(", ");
				return false;
			},
			focus: function() {
				// prevent value inserted on focus
				return false;
			},
			open: function(event, ui) {
			    $(".ui-autocomplete li.ui-menu-item:odd").addClass("ui-menu-item-alternate");
			}
	});
	$('#gaffalive-search').submit(function(){
		var terms = split( $('#gaffalive-search textarea').val());
		var action = $(this).attr('action');
		var q = [];
		$.each( terms, function( index, term ) {
			if(term != ""){
				var subterm = term.substr(0,2).toLowerCase();
				if(cache[subterm] != undefined){
				var match = $.ui.autocomplete.filter(cache[subterm],term);
				if(match.length == 0){
				 q.push(term);
				}else if(match.length == 1){
					action += "/"+match[0].type.toLowerCase()+":"+match[0].id;
				}else{
					var foundMatch = exactMatch(match,term.toLowerCase());
					if(foundMatch){
						action += "/"+foundMatch.type.toLowerCase()+":"+foundMatch.id
					}else{
						q.push(term);
					}
				}
				}else{
					q.push(term);
				}
			}
		});
		$('#gaffalive-search textarea').attr('disabled',true);
		$('#gaffalive-search').append($('<input type="hidden" name="q" />').val(q.join(",")));
		$(this).attr('action',action+"/");
		return true;
	});
	$('#search_txt').autocomplete({source:'/shortcut/searchautocomplete.php',
			select:function(event,ui){
				location.href = '/search/artist/' + ui.item.id + '/';
			},
			open: function(event, ui) {
			    $(".ui-autocomplete li.ui-menu-item:odd").addClass("ui-menu-item-alternate");
			}
		    });
	//Make sure span-boxes around paginations works as links alwell
	$('.pagination span').click(function(){
			if($(this).children('a').attr('href') != undefined) location.href = $(this).children('a').attr('href');
			});
		
	$("#edition select").val(window.location.hostname.split(".")[1]);
	$("#edition select").change(function(){location='http://gaffa.'+this.value});
	function placeFifBanner(div, easSrc, track) {
		var d = document,
			fif = d.createElement("iframe");
		fif.src = (track==true?document.location.href+"?trackbanner":"/pages/bannerFif");
		fif.style.height = "0";
		fif.style.margin = "0px";
		fif.style.borderWidth = "0px";
		fif.style.padding = "0px";
		fif.scrolling = "no";
		fif.frameBorder = "0";
		fif.EAS_src = easSrc;
		$(fif).load(function(){
			this.style.height = this.contentWindow.document.body.scrollHeight+"px";	
		})
		div.appendChild(fif);
	}
	
	function setupWidgets(){
		var articleheight = $('#reviewoverview').length?$('#reviewoverview').height():$('#main').height();
		var widgetsheight = $('#widgets').height();
		var bannerspace = articleheight-widgetsheight;
		var maxbanners = 5;
		var bannercount = 0;
		var lastbannertype = 'sky';

		function addbanner(type,height){
		bannercount++;
		lastbannertype = type;
		var currentbanner = banners[type].shift();
		 if(currentbanner == undefined) return true;
			var bannerplacement =$('.widget+.widget:first');
			if($('#widgets>div:first').is('.widget')){
				var banner = $('<div class="banner banner-'+type+'"></div>');
				placeFifBanner(banner[0], "http://ad1.emediate.dk/eas?cu="+currentbanner+";cre=mu;js=y;target=_blank" );
				$('#widgets').prepend(banner);
				bannerspace -=height;

			}else if(bannerplacement.length){
				var banner = $('<div class="banner banner-'+type+'"></div>');
				placeFifBanner(banner[0], "http://ad1.emediate.dk/eas?cu="+currentbanner+";cre=mu;js=y;target=_blank");
				bannerplacement.before(banner);
				bannerspace -=height;
			}else if($('#widgets>div:last').is('.widget')){
				var banner = $('<div class="banner banner-'+type+'"></div>');
				placeFifBanner(banner[0], "http://ad1.emediate.dk/eas?cu="+currentbanner+";cre=mu;js=y;target=_blank");
				$('#widgets>div:last').after(banner);
				bannerspace -=height;
			}
		}

		while (bannerspace>255 && bannercount<maxbanners) {
				addbanner('banner',255);
		}
		if(bannerspace > 0 && bannerspace < 150){
			var widgetcount = $('.widget').length;
			var spacetoadd = Math.floor(bannerspace/widgetcount);
			$('.widget').height(function(i,oldheight){return oldheight+spacetoadd});
			$('.widget:last').height(function(i,oldheight){return oldheight+(bannerspace%widgetcount)});
		}

		if($('.related').size()>0 && ($('#content').height()-$('.related').height()>630)){
			var banner = $('<div class="banner banner-sky"></div>');
			placeFifBanner(banner[0], "http://ad1.emediate.dk/eas?cu="+banners['sky'].shift()+";cre=mu;js=y;target=_blank" );
			$('.related').append(banner);
		}
	}	

	$('.banner').each(function(){
		 var bannerdata = $(this).data();
		 if(bannerdata.bannertype != undefined && banners[bannerdata.bannertype] != undefined){
		 $(this).addClass("banner-"+bannerdata.bannertype);
		 var currentbanner = banners[bannerdata.bannertype].shift();
		 if(currentbanner == undefined) return true;
		 switch(bannerdata.bannertype){
			 case 'leaderboard':
				placeFifBanner(this, "http://ad1.emediate.dk/eas?cu="+currentbanner+";cre=mu;js=y;target=_blank", bannerdata.track);
			 break;
			 case 'fp_sky':
				placeFifBanner(this, "http://ad1.emediate.dk/eas?cu="+currentbanner+";cre=mu;js=y;target=_blank", bannerdata.track);
			 break;
			 case 'sky':
				placeFifBanner(this, "http://ad1.emediate.dk/eas?cu="+currentbanner+";cre=mu;js=y;target=_blank", bannerdata.track);
			 break;
			 case 'banner':
				placeFifBanner(this, "http://ad1.emediate.dk/eas?cu="+currentbanner+";cre=mu;js=y;target=_blank", bannerdata.track);
			 break;
		 }
	 }
	});
	if(setupwidgetbanners) setupWidgets();
	
	//Make colums same height in articlesections substraction bottom-margin 5px
	$('.articlecontent+.articlelist').each(function(){$(this).height($(this).prev().height()-5)});
	//Mouseover on toplinks
	$('#sites-nav a:not(:first)').hover(
		function(){$('img',this).attr('src',$('img',this).attr('src').replace("_off","_on"))},
		function(){$('img',this).attr('src',$('img',this).attr('src').replace("_on","_off"))}
		);


    FB.init({appId: '', status: true, cookie: true, xfbml: true});
    $(".fblink").click(function(){
	FB.ui({method: 'stream.share', u: this.href, display:"popup"}, function(response){});
	return false;
    });
    $(".twlink").click(function(){
	window.open(this.href, "TW_W", "width=550,height=450");
	return false;
    });
    var heights_cd = [];
    $("#fp_cdreviews .secondaryarticles .text").each(function(){
	heights_cd[heights_cd.length] = $(this).height()
    });
    $("#fp_cdreviews .secondaryarticles .text").css("height", Math.max.apply(Math, heights_cd));

    var heights_live = [];
    $("#fp_livereviews .secondaryarticles .text h3").each(function(){
	heights_live[heights_live.length] = $(this).height()
    });
     $("#fp_livereviews .secondaryarticles .text h3").css("height", Math.max.apply(Math, heights_live)-50);
	if($('#topstories').length){
		var extraspace = $('#widgets').height()-$('#topstories').height()
		if(extraspace>0){
		var spacetoadd = Math.floor(extraspace/3);
			$('#topstories .secondarystories,#topstories .tertiarystories').height(function(i,oldheight){return oldheight+spacetoadd});
			$('#topstories .liststories').height(function(i,oldheight){return oldheight+spacetoadd+(extraspace%3)});
		}else{
			extraspace = -extraspace
			var widgetcount = $('.widget').length;
			var spacetoadd = Math.floor(extraspace/widgetcount);
			$('.widget').height(function(i,oldheight){return oldheight+spacetoadd});
			$('.widget:last').height(function(i,oldheight){return oldheight+(extraspace%widgetcount)});
		}
	}
});
	

