var cookieoptions = {path: "/", duration: 21 };
var mySortables = null;
var slideoutoptions = { duration: 1000, transition: Fx.Transitions.Cubic.easeOut };

function makeSortable(){
	mySortables = new Sortables($$('#contentt .col'), {
    	revert: { duration: 500, transition: 'elastic:out' }
		, handle: ".handle"
		, clone: true
		, opacity: 0.5
		, revert: true
		, onComplete: saveSort
	});
}

function resetSort(){
	Cookie.dispose('order[1]', cookieoptions);
	Cookie.dispose('order[2]', cookieoptions);
	Cookie.dispose('order[3]', cookieoptions);
	window.location="/";
}

function addWidget(id){
	currentlist = Cookie.read('order[1]');
	Cookie.write("order[1]", id+","+currentlist, cookieoptions);
	$('addblok'+id).destroy();	
}

function saveSort(){
	var myorder = mySortables.serialize(false, function(element, index){
		if( element.getProperty('id') != null){
			return element.getProperty('id').replace('blok', '');
		}
	});
	
	Cookie.write("order[1]", myorder[0], cookieoptions);
	Cookie.write("order[2]", myorder[1], cookieoptions);
	Cookie.write("order[3]", myorder[2], cookieoptions);
}

function addBlockEvents(){
	$$('.close').addEvent('click', removeBlok);
	$$('.add').addEvent('click', addAddLink);
}

function addAddLink(e){
	if($type(e)=="element"){
		pa = e;
	} else {
		var pa = new Event(e).target.parentNode.parentNode;
	}
	var di = $(pa.id+"add");
	if(!di){
		var di = document.createElement('div');
		$(di).set('class', 'inner');
		$(di).set('id', pa.id+"add");
		$(di).style.display="none";
		$(di).set('html', '<b>Voeg een link toe!</b><table class="form"><tr><td>Naam:</td><td><input type="text" name="linktitel" /></td></tr><tr><td>URL:</td><td><input type="text" name="linkurl" /></td></tr><tr><td></td><td><input type="button" value="Toevoegen" onclick="addLink(event);" /></td></tr></table>');
		
		pa.insertBefore(di, pa.lastChild);
		di.slide('hide');
		$(di).style.display="";
	}
	di.slide();
	return false;
} 

function findParent(node, parentclass){
	while(node.className != parentclass){
		node=node.parentNode;
	}
	return node;
}

function addLink(ev){

	var evt = new Event(ev);
	var parentDiv = findParent(evt.target, 'form');
	var pa = findParent(evt.target, 'blok');
	$(pa.id+"add").slide();
	var myRequest = new Request.HTML({url:'addlink.php?blok='+pa.id, evalReponse: true }).post( parentDiv );

}

function removeBlok(e){
	var ev = new Event(e);
	var parent = ev.target.parentNode.parentNode;
	var slideout = new Fx.Slide($(parent), slideoutoptions).slideOut().chain(function(){ $(parent).parentNode.dispose(); saveSort(); });
	return false;
}
