(function($){
	var updateUpDown = function(sortable){
		$('div:not(.ui-sortable-helper)', sortable)
			.removeClass('first').removeClass('last')
			.find('.up, .down').removeClass('disabled').end()
			.filter(':first').addClass('first').find('.up').addClass('disabled').end().end()
			.filter(':last').addClass('last').find('.down').addClass('disabled').end().end();
	};
	
	var moveUpDown = function(){
		var link = $(this),
			div = link.parents('div'),
			prev = div.prev('div'),
			next = div.next('div');
			//dl = link.parents('dl'),
			//prev = dl.prev('dl'),
			//next = dl.next('dl');
	
		if(link.is('.up') && prev.length > 0)
			div.insertBefore(prev)
			//dl.insertBefore(prev);
	
		if(link.is('.down') && next.length > 0)
			div.insertAfter(next)
			//dl.insertAfter(next);
	
		//updateUpDown(dl.parent());
		updateUpDown(div.parent());
	};
	
	var addItem = function(){
		var sortable = $(this).parents('.ui-sortable');
		var options = '<span class="options"><a class="up">up</a><a class="down">down</a></span>';
		var tpl = '<div class="sort"><dt>{name}' + options + '</div>';
		var html = tpl.replace(/{name}/g, 'Dynamic name :D').replace(/{desc}/g, 'Description');
	
		sortable.append(html).sortable('refresh').find('a.up, a.down').bind('click', moveUpDown);
		updateUpDown(sortable);
	};
	
	var emptyTrashCan = function(item){
		item.remove();
	};

	
	var sortableChange = function(e, ui){
		if(ui.sender){
			var w = ui.element.width() - 16; // Bliver nødt til at trække 15px fra pga. padding, margins etc.
			ui.placeholder.width(w);
			ui.helper.css("width",ui.element.children().width());
			
		}
	};
	
	var sortableUpdate = function(e, ui){
	    
		if(ui.element[0].id == 'trashcan'){
			emptyTrashCan(ui.item);
		} else {
			updateUpDown(ui.element[0]);
			if(ui.sender)
				updateUpDown(ui.sender[0]);
			   
		}
	};
	
	jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
    };

	var headline_count;
    var headline_interval;
    var old_headline = 0;
    var current_headline = 0;

    function headline_rotate() {
    current_headline = (old_headline + 1) % headline_count;
    $("div.headline:eq(" + old_headline + ")")
	    .animate({top: -100},250, function() {
	        $(this).css('top', '100px');
	    });
    $("div.headline:eq(" + current_headline + ")")
    	.animate({top: 1},250); //hastighed på animationen 3000 ms - eller "slow"
    old_headline = current_headline;
    }
	
	$(document).ready(function(){
	    
	    
        headline_count = $("div.headline").size();
        $("div.headline:eq("+current_headline+")").css('top', '1px');
        headline_interval = setInterval(headline_rotate,25000);
        $('#scrollup').hover(function() {
	    clearInterval(headline_interval);
        },function() {
	    headline_interval = setInterval(headline_rotate,25000);
	    //headline_rotate();
        });

       
	    
		
		var els = ['#ctl00_ContentPlaceHolder1_sort_1', '#ctl00_ContentPlaceHolder1_sort_2', '#ctl00_ContentPlaceHolder1_sort_3' ];
		var $els = $(els.toString());
		
		//$('h2', $els.slice(0,-1)).append('<span class="options"><a class="add">add</a></span>');
		//$('dt', $els).append('<span class="options"><a class="up">up</a><a class="down">down</a></span>');
		
		
		$els.each(function(){
			updateUpDown(this);
		});
		
		$els.sortable({
			//items: '> div',
			items: '> div',
			//handle: 'div',
			cursor: 'move',
			//cursorAt: { top: 2, left: 2 },
			opacity: 0.8,
			helper: 'clone',
			appendTo: 'body',
			placeholder: 'clone',
			placeholder: 'placeholder',
			revert: true,
		    connectWith: els,
			start: function(e,ui) {
		         ui.helper.css("width", ui.item.width());
		        
			},
			stop: function(e,ui)
			{
			// var cookie_string = $('#sort_2').sortable('toArray') + ',' + $('#sort_3').sortable('toArray') + ',' + $('#sort_1').sortable('toArray');
			    //serial = $.SortSerialize('sort_2');
			   var fp_cookie_stringLeft = $('#ctl00_ContentPlaceHolder1_sort_2').sortable('toArray');
			   var fp_cookie_stringMiddle = $('#ctl00_ContentPlaceHolder1_sort_3').sortable('toArray');
			   var fp_cookie_stringRight = $('#ctl00_ContentPlaceHolder1_sort_1').sortable('toArray');
			   $.cookie('fp_cookie_left', fp_cookie_stringLeft,{ expires: 2 }); 
			   $.cookie('fp_cookie_middle', fp_cookie_stringMiddle,{ expires: 2 }); 
			   $.cookie('fp_cookie_right', fp_cookie_stringRight, { expires: 2 }); 			   
			   
			    //alert($.cookie('fp_cookie_right'));
			},
			change: sortableChange,
			update: sortableUpdate
		});
	});
	
   
	
	$(window).bind('load',function(){
		setTimeout(function(){
			$('#overlay').fadeOut(function(){
				$('body').css('overflow', 'auto');
			});
		}, 750);
	});
})(jQuery);

