﻿jQuery.fn.makeacolumnlists = function(settings){
	settings = jQuery.extend({
		cols: 2,				// set number of columns
		colWidth: 0,			// set width for each column or leave 0 for auto width
		equalHeight: false, 	// can be false, 'ul', 'ol', 'li'
		startN: 1				// first number on your ordered list
	}, settings);

	if(jQuery('> li', this)) {
		this.each(function(y) {
			var y=jQuery('.li-container').size(),
		    	height = 0, 
		        maxHeight = 0,
				t = jQuery(this),
				classN = t.attr('class'),
				listsize = jQuery('> li', this).size(),
				percol = Math.ceil(listsize/settings.cols),
				contW = t.width(),
				bl = ( isNaN(parseInt(t.css('borderLeftWidth'),10)) ? 0 : parseInt(t.css('borderLeftWidth'),10) ),
				br = ( isNaN(parseInt(t.css('borderRightWidth'),10)) ? 0 : parseInt(t.css('borderRightWidth'),10) ),
				pl = parseInt(t.css('paddingLeft'),10),
				pr = parseInt(t.css('paddingRight'),10),
				ml = ( isNaN(parseInt(t.css('marginLeft'),10))? 0 : parseInt(t.css('marginLeft'),10)),
				mr = ( isNaN(parseInt(t.css('marginRight'),10))? 0 : parseInt(t.css('marginRight'),10)),
				col_Width = Math.floor((contW - (settings.cols-1)*(bl+br+pl+pr+ml+mr))/settings.cols);
			if (settings.colWidth) {
				col_Width = settings.colWidth; 
			}
			var colnum=1,
				percol2=percol;
			jQuery(this).addClass('li-cont1 list-col').wrap('<div id="li-container' + (++y) + '" class="li-container"></div>');
			for (var i=0; i<=listsize; i++) {
				if(i>=percol2) { percol2+=percol; colnum++; }
				var eq = jQuery('> li:eq('+i+')',this);
				eq.addClass('li-col'+ colnum);
				if(jQuery(this).is('ol')){eq.attr('value', ''+(i+settings.startN))+'';}
			}
			jQuery(this).css({width:''+col_Width+'px'});
			for (colnum=2; colnum<=settings.cols; colnum++) {
				if(jQuery(this).is('ol')) {
					jQuery('li.li-col'+ colnum, this).appendTo('#li-container' + y).wrapAll('<ol class="li-cont'+colnum +' ' + classN + ' list-col" style="width: '+col_Width+'px;"></ol>');
				} else {
					jQuery('li.li-col'+ colnum, this).appendTo('#li-container' + y).wrapAll('<ul class="li-cont'+colnum +' ' + classN + ' list-col" style="width: '+col_Width+'px;"></ul>');
				}
			}
			if (settings.equalHeight=='li') {
				for (colnum=1; colnum<=settings.cols; colnum++) {
				    jQuery('#li-container'+ y +' li').each(function() {
				        var e = jQuery(this);
				        var border_top = ( isNaN(parseInt(e.css('borderTopWidth'),10)) ? 0 : parseInt(e.css('borderTopWidth'),10) );
				        var border_bottom = ( isNaN(parseInt(e.css('borderBottomWidth'),10)) ? 0 : parseInt(e.css('borderBottomWidth'),10) );
				        height = e.height() + parseInt(e.css('paddingTop'), 10) + parseInt(e.css('paddingBottom'), 10) + border_top + border_bottom;
				        maxHeight = (height > maxHeight) ? height : maxHeight;
				    });
				}
				for (colnum=1; colnum<=settings.cols; colnum++) {
					var eh = jQuery('#li-container'+ y +' li');
			        var border_top = ( isNaN(parseInt(eh.css('borderTopWidth'),10)) ? 0 : parseInt(eh.css('borderTopWidth'),10) );
			        var border_bottom = ( isNaN(parseInt(eh.css('borderBottomWidth'),10)) ? 0 : parseInt(eh.css('borderBottomWidth'),10) );
					mh = maxHeight - (parseInt(eh.css('paddingTop'), 10) + parseInt(eh.css('paddingBottom'), 10) + border_top + border_bottom );
			        eh.height(mh);
				}
			} else 
			if (settings.equalHeight=='ul' || settings.equalHeight=='ol') {
				for (colnum=1; colnum<=settings.cols; colnum++) {
				    jQuery('#li-container'+ y +' .li-cont'+colnum).each(function() {
				        var e = jQuery(this);
				        var border_top = ( isNaN(parseInt(e.css('borderTopWidth'),10)) ? 0 : parseInt(e.css('borderTopWidth'),10) );
				        var border_bottom = ( isNaN(parseInt(e.css('borderBottomWidth'),10)) ? 0 : parseInt(e.css('borderBottomWidth'),10) );
				        height = e.height() + parseInt(e.css('paddingTop'), 10) + parseInt(e.css('paddingBottom'), 10) + border_top + border_bottom;
				        maxHeight = (height > maxHeight) ? height : maxHeight;
				    });
				}
				for (colnum=1; colnum<=settings.cols; colnum++) {
					var eh = jQuery('#li-container'+ y +' .li-cont'+colnum);
			        var border_top = ( isNaN(parseInt(eh.css('borderTopWidth'),10)) ? 0 : parseInt(eh.css('borderTopWidth'),10) );
			        var border_bottom = ( isNaN(parseInt(eh.css('borderBottomWidth'),10)) ? 0 : parseInt(eh.css('borderBottomWidth'),10) );
					mh = maxHeight - (parseInt(eh.css('paddingTop'), 10) + parseInt(eh.css('paddingBottom'), 10) + border_top + border_bottom );
			        eh.height(mh);
				}
			}
		    jQuery('#li-container' + y).append('<div style="clear:both; overflow:hidden; height:0px;"></div>');
		});
	}
}
$(function(){
	$('#content .share').removeAttr('style');
	/*Causes text "auto" to appaer before and after instead of fixing css
	if($.browser.msie&&($.browser.version==6.0||$.browser.version==7.0)){	
		$('a').cssAfter().cssBefore(); 
	}*/
	$('a.reset','.filter, #filter').unbind('click');
	//create symetric calendar in all browsers 
	$('#calendar tr').each(function(){
		var rowheight = $('td:first', this).height();
		if ($('td:last dl:first', this).height()<rowheight/2){
			$('td:last dl:first', this).height(rowheight/2);
		}
	});
	$('.calendar #content .calendar .vcalendar .vevent').createDatepanels();
	if($('.calendar #content .calendar table dl dd').length){
		var JSONurl = location.href;
		if(JSONurl.indexOf('?')>0){
		JSONurl += '&json=&kalenderhandelser=';
		} else{
		JSONurl += '?json=&kalenderhandelser=';
		}
		$.getJSON(JSONurl, function(data){
		//Fetch JSON for calendar events and create tooltipbubble to present them in
		$('.calendar #content .calendar table dl dd a').setTooltips(data);
		});
	}
	if(!$('.calendar #content .calendar table dl dd.fullday').length){
		$('.calendar #content .calendar span.fullday').hide();
	}
	$('.available-links ul').makeacolumnlists({cols:4,colWidth:0,equalHeight:false,startN:1});
	
	/* Bind listen toggle and move share/elsewhare */
	$('.utility .listen a').click(function(){
		var $parent = $(this).parent(),
			$share = $('#content > .share');
		
		if($(this).text() != sse.textEndListenLink) {
			$share.animate({'margin-top': parseInt($share.css('margin-top'))+30}, 300);
		} else {
			$share.animate({'margin-top': parseInt($share.css('margin-top'))-30}, 200);
		}
	});
	
	/* Video list */
	$('.video-listing div').each(function(){
		$(this).children('.image').wrapInner('<a href="'+$(this).find('h3 > a').attr('href')+'"/>');
	});
});
