
(function(){

	window['GL'] = window.GL || {};

	function Init(){

			if( $('#flickr_set').length ) GL.initFlickrSet();
			if( $('.video_thumb').length ) GL.InitVideoThumbs();
			if( $('.media-list.audio .audio_file').length ) GL.InitjPlayer();
			if ($('#slide-runner').length) GL.InitFrontPageFlash();
	
	};
	window['GL']['Init'] = Init;
	
	
	function initFlickrSet(){
		 
		var set = $('#flickr_set #flickr_link').attr('href').split('/').reverse();
		set = set[0] != '' ? set[0] : set[1]; // trailing slash guard
		
		$.getJSON('http://api.flickr.com/services/feeds/photoset.gne?set=' + set + '&nsid=48579762@N08&lang=en-us&format=json&jsoncallback=?', function(data){ GL.InsertFlickrImages(data, set) });
		
	};
	window['GL']['initFlickrSet'] = initFlickrSet;
	
	function InsertFlickrImages(data, set){
			
			if( typeof data.items != 'undefined' && data.items.length >= 1 )
			{
				$('#flickr_set .js-fallback').hide();
			
				// Start
				var iStart = 0;
				// Reset counter
				var iCount = 1;
				// html-strings vars for appending data to 
				var thumbsHTML = "";
				var bigPic = "";
				
				$('#flickr_set').append('<ul class="set"></ul>')
	
				$.each(data.items, function(i, item) {				
			 
					// Make substring vars for thumbnails och big pics
					var sourceSquare = (item.media.m).replace("_m.jpg", "_s.jpg");
					var sourceSquare_big = (item.media.m).replace("_m.jpg", ".jpg");
	
					// Here's where we piece together the HTML
					thumbsHTML += '<li><a class="fancybox" id="flickr' + i + '" href="#inline_pic_' + i + '" rel="group' + set + '">';
					thumbsHTML += '<img src="' + sourceSquare + '" alt="' + item.title + '" class="dshade" title="' + item.title + '"/>';
					thumbsHTML += '</a></li>';
	
					$(("#pic" + iCount)).attr({
						src: sourceSquare,
						title: item.title,
						alt: item.title
					});
	
					bigPic += '<div id="inline_pic_' + i + '">';
					bigPic += '<img src="' + sourceSquare_big + '" alt="' + item.title + '" title="' + item.title + '"/>';
					bigPic += '</div>';
					
				});
				
				// If possible more than 20 images
				if( data.items.length >= 20 ) thumbsHTML += '<li><a href="' +  $('#flickr_set #flickr_link').attr('href') + '" title="Till Flickr">Fler bilder &raquo;</a></li>';
				
				$('#flickr_set ul.set')
				.append(thumbsHTML)
				.find('a.fancybox')
				.fancybox();
				
				$('#container_bigpic').html(bigPic + "");       
			}
			

	};
	window['GL']['InsertFlickrImages'] = InsertFlickrImages;
	
	function InitVideoThumbs(){
	
			$(".video_thumb a").click(function(event){
				
					event.preventDefault();
							
					$.fancybox({
						'padding'		: 10,
						'autoScale'		: false,
						'transitionIn'	: 'none',
						'transitionOut'	: 'none',
						'title'			: this.title,
						'width'			: 640,
						'height'		: 385,
						'href'			: this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
						'type'			: 'swf',
						'swf'			: {
							'wmode'		: 'transparent',
							'allowfullscreen'	: 'true'
						}
					});
			});
	};
	window['GL']['InitVideoThumbs'] = InitVideoThumbs;
	
	function InitjPlayer(){
		
		// Add skin stylesheet
		$('head').append('<link href="/js/jPlayer/skin/jplayer.blue.monday.css" rel="stylesheet" type="text/css" />');
		
		$('.media-list.audio li')
		.each(function(i, mediaWrap){
					   
			var audioLink = $(mediaWrap).find('a.audio_file');
			
			$(audioLink)
			.attr('id', 'audio_file_' + i)
			
			var listenLink = ' &nbsp;|&nbsp; <a href="#' + $(audioLink).attr('id') + '" class="listen">Lyssna direkt</a>';
			
			$(audioLink).after(listenLink);
			
			
			$(mediaWrap)
			.find('a.listen')
			.each(function(){
				
				$(this).click(function(event){
	
					event.preventDefault();
					
					GL.RemovejPlayer();
					GL.InsertjPlayer(this);		
				});
			});
				
		});
		
		
		
	};
	window['GL']['InitjPlayer'] = InitjPlayer;
	
	function InsertjPlayer(e)
	{
		var hash = $(e).attr('href').split('#')[1];
		var audioFile = $('#' + hash).attr('href');
		
		var jpPlayTime = $("#jplayer_play_time");
		var jpTotalTime = $("#jplayer_total_time");
		
		var p = '<div id="jquery_jplayer"></div>';
		p += '<div class="jp-single-player">';
        p += '<div class="jp-single-player">';
		p += '<div id="jplayer_playlist" class="jp-playlist">';
		p += '<ul>';
		p += '<li>Spelar ljudklipp: <a href="' + audioFile + '">' + audioFile.split('/').reverse()[0].replace(/%20/g, '_') + '</a></li>';
		p += '</ul>';
		p += '</div>';
		p += '<div class="jp-interface">';
		p += '<ul class="jp-controls">';
		p += '<li><a href="#" id="custom_jplayer_play" class="jp-play" tabindex="1">play</a></li>';
		p += '<li><a href="#" id="custom_jplayer_pause" class="jp-pause" tabindex="1">pause</a></li>';
		p += '<li><a href="#" id="custom_jplayer_stop" class="jp-stop" tabindex="1">stop</a></li>';
		p += '<li><a href="#" id="custom_jplayer_volume_min" class="jp-volume-min" tabindex="1">min volume</a></li>';
		p += '<li><a href="#" id="custom_jplayer_volume_max" class="jp-volume-max" tabindex="1">max volume</a></li>';
		p += '</ul>';
		p += '<div class="jp-progress">';
		p += '<div id="custom_jplayer_load_bar" class="jp-load-bar">';
		p += '<div id="custom_jplayer_play_bar" class="jp-play-bar"></div>';
		p += '</div>';
		p += '</div>';
		p += '<div id="custom_jplayer_volume_bar" class="jp-volume-bar">';
		p += '<div id="custom_jplayer_volume_bar_value" class="jp-volume-bar-value"></div>';
		p += '</div>';
		p += '<div id="jplayer_play_time" class="jp-play-time"></div>';
		p += '<div id="jplayer_total_time" class="jp-total-time"></div>';
		p += '</div>';           
		p += '</div>';

		
		$(e).after(p);
		
		$("#jquery_jplayer").jPlayer({
			ready: function () {
				this.element.jPlayer("setFile", audioFile).jPlayer("play"); 
			},
			volume: 50,
			oggSupport: false,
			swfPath: "http://gronalund.dev.pool.se/js/jPlayer/"
		})
		.jPlayer("onProgressChange", function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {
			jpPlayTime.text($.jPlayer.convertTime(playedTime));
			jpTotalTime.text($.jPlayer.convertTime(totalTime));
		})
		.jPlayer("cssId", "play", "custom_jplayer_play")
		.jPlayer("cssId", "pause", "custom_jplayer_pause")
		.jPlayer("cssId", "stop", "custom_jplayer_stop")
		.jPlayer("cssId", "loadBar", "custom_jplayer_load_bar")
		.jPlayer("cssId", "playBar", "custom_jplayer_play_bar")
		.jPlayer("cssId", "volumeMin", "custom_jplayer_volume_min")
		.jPlayer("cssId", "volumeMax", "custom_jplayer_volume_max")
		.jPlayer("cssId", "volumeBar", "custom_jplayer_volume_bar")
		.jPlayer("cssId", "volumeBarValue", "custom_jplayer_volume_bar_value")
		.jPlayer("onProgressChange", function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {
			jpPlayTime.text($.jPlayer.convertTime(playedTime));
			jpTotalTime.text($.jPlayer.convertTime(totalTime));
		})
		.jPlayer("onSoundComplete", function() {
			this.element.jPlayer("play");
		});
		
	};
	window['GL']['InsertjPlayer'] = InsertjPlayer;
	
	function RemovejPlayer()
	{
		$('#jquery_jplayer').jPlayer( "clearFile" );
		$('#jquery_jplayer, .jp-single-player')		
		.remove();
	};
	window['GL']['RemovejPlayer'] = RemovejPlayer;

	function InitFrontPageFlash() {
	    if ($('body').attr('id') == 'pageid-3') {
	        var so = new SWFObject("/swf/seven/seven.swf", "seven", "926", "256", "9", "#fff");
	        so.write("slide-runner");
	    }
	};
	window['GL']['InitFrontPageFlash'] = InitFrontPageFlash;
	
	
})();

$(document).ready( GL.Init );



/* --- Unstructured code, soon to be included in above library --- */

window.onerror=function(desc,page,line,chr){
/* alert('JavaScript error occurred! \n'
  +'\nError description: \t'+desc
  +'\nPage address:      \t'+page
  +'\nLine number:       \t'+line
 );*/
}

$(function(){
 $('a').focus(function(){this.blur();});
 SI.Files.stylizeAll();
 slider.init();

 $('input.text-default').each(function(){
  $(this).attr('default',$(this).val());
 }).focus(function(){
  if($(this).val()==$(this).attr('default'))
   $(this).val('');
 }).blur(function(){
  if($(this).val()=='')
   $(this).val($(this).attr('default'));
 });

 $('input.text,textarea.text').focus(function(){
  $(this).addClass('textfocus');
 }).blur(function(){
  $(this).removeClass('textfocus');
 });
 
	$('input.ui-form-hint')
	.each(function(){

		if( $(this).attr('title') != '' )
		{
			$(this)
			.focus(function(){ 
				 if( $(this).val() == $(this).attr('title')) $(this).val('');		 
			})
			.blur(function(){ 
				if( $(this).val() == '' ) $(this).val( $(this).attr('title') ) 
			});
		}
	});

 var popopenobj=0,popopenaobj=null;
 $('a.popup').click(function(){
  var pid=$(this).attr('rel').split('|')[0],_os=parseInt($(this).attr('rel').split('|')[1]);
  var pobj=$('#'+pid);
  if(!pobj.length)
   return false;
  if(typeof popopenobj=='object' && popopenobj.attr('id')!=pid){
   popopenobj.hide(50);
   $(popopenaobj).parent().removeClass(popopenobj.attr('id').split('-')[1]+'-open');
   popopenobj=null;
  }
  return false;
 });
 $('p.images img').click(function(){
  var newbg=$(this).attr('src').split('bg/bg')[1].split('-thumb')[0];
  $(document.body).css('backgroundImage','url('+_siteRoot+'images/bg/bg'+newbg+'.jpg)');
 
  $(this).parent().find('img').removeClass('on');
  $(this).addClass('on');
  return false;
 });

 $('div.sc-large div.img:has(div.tml)').each(function(){
  $('div.tml',this).hide();
  $(this).append('<a href="#" class="tml_open">&nbsp;</a>').find('a').css({
   left:parseInt($(this).offset().left)+864,top:parseInt($(this).offset().top)+1
  }).click(function(){
   $(this).siblings('div.tml').slideToggle();
   return false;
  }).focus(function(){this.blur();}); 
 });
});
var slider={
 num:-1,
 cur:0,
 cr:[],
 al:null,
 at:6*1000, // time-out: number + 1000 (millisec)
 ar:true,
 init:function(){
  if(!slider.data || !slider.data.length)
   return false;

  var d=slider.data;
  slider.num=d.length;
  var pos=Math.floor(Math.random()*1);//slider.num);
  for(var i=0;i<slider.num;i++){
   $('#'+d[i].id).css({left:((i-pos)*926)}); // pixel-width for banners: 926 px
   $('#slide-nav').append('<a id="slide-link-'+i+'" href="#" onclick="slider.slide('+i+');return false;" onfocus="this.blur();">'+(i+1)+'</a>');
  }

  $('img,div#slide-controls',$('div#slide-holder')).fadeIn();
  slider.text(d[pos]);
  slider.on(pos);
  slider.cur=pos;
  window.setTimeout('slider.auto();',slider.at);
 },
 auto:function(){
  if(!slider.ar)
   return false;

  var next=slider.cur+1;
  if(next>=slider.num) next=0;
  slider.slide(next);
 },
 slide:function(pos){
  if(pos<0 || pos>=slider.num || pos==slider.cur)
   return;

  window.clearTimeout(slider.al);
  slider.al=window.setTimeout('slider.auto();',slider.at);

  var d=slider.data;
  for(var i=0;i<slider.num;i++)
   $('#'+d[i].id).stop().animate({left:((i-pos)*926)},926,'swing');
  
  slider.on(pos);
  slider.text(d[pos]);
  slider.cur=pos;
 },
 on:function(pos){
  $('#slide-nav a').removeClass('on');
  $('#slide-nav a#slide-link-'+pos).addClass('on');
 },
 text:function(di){
  slider.cr['a']=di.client;
  slider.cr['b']=di.desc;
  slider.ticker('#slide-client span',di.client,0,'a');
  slider.ticker('#slide-desc',di.desc,0,'b');
 },
 ticker:function(el,text,pos,unique){
  if(slider.cr[unique]!=text)
   return false;

  ctext=text.substring(0,pos)+(pos%2?'-':'_');
  $(el).html(ctext);

  if(pos==text.length)
   $(el).html(text);
  else
   window.setTimeout('slider.ticker("'+el+'","'+text+'",'+(pos+1)+',"'+unique+'");',30);
 }
};
// STYLING FILE INPUTS 1.0 | Shaun Inman <http://www.shauninman.com/> | 2007-09-07
if(!window.SI){var SI={};};
SI.Files={
 htmlClass:'SI-FILES-STYLIZED',
 fileClass:'file',
 wrapClass:'cabinet',
 
 fini:false,
 able:false,
 init:function(){
  this.fini=true;
 },
 stylize:function(elem){
  if(!this.fini){this.init();};
  if(!this.able){return;};
  
  elem.parentNode.file=elem;
  elem.parentNode.onmousemove=function(e){
   if(typeof e=='undefined') e=window.event;
   if(typeof e.pageY=='undefined' &&  typeof e.clientX=='number' && document.documentElement){
    e.pageX=e.clientX+document.documentElement.scrollLeft;
    e.pageY=e.clientY+document.documentElement.scrollTop;
   };
   var ox=oy=0;
   var elem=this;
   if(elem.offsetParent){
    ox=elem.offsetLeft;
    oy=elem.offsetTop;
    while(elem=elem.offsetParent){
     ox+=elem.offsetLeft;
     oy+=elem.offsetTop;
    };
   };
  };
 },
 stylizeAll:function(){
  if(!this.fini){this.init();};
  if(!this.able){return;};
 }
};