//initialization
$(document).ready(function() {	

	Linkbox.initialize();
})


function linkboxExplodeIdNr(idname)
{
	return idname.substring(idname.lastIndexOf("_")+1);
}

Linkbox = new Object();

Linkbox.addNewLink = function(obj) {
	$('#jqDialog').css({width: '400px', height: '150px'});
	var mb_id = linkboxExplodeIdNr(obj.parentNode.parentNode.getAttribute('id'));
	var url = "?p=plugin&a=linkbox&f=addLinkDialog";
	ajaxLoading(true);
	$('#jqDialog').jqm({
		ajax: url,
		onLoad: function() {
			var form = document.getElementById('linkbox_link');
			form.mb_id.value = mb_id;
			ajaxLoading(false);
		}		
	}).jqmShow();	
}

Linkbox.delLink = function(id) {
	if(!confirm("Czy jesteś pewien?"))
		return false;
	ajaxLoading(true);
	$.get('?p=plugin&a=linkbox&f=delLink&v='+id, function(AjaxObj) {
		eval(AjaxObj);
		if(AjaxObj.__RESULT_STATUS == 1) {
			Magicbox.reload(AjaxObj.mb_id);
			Linkbox.initialize();
		}
		else
			msgBox(AjaxObj.errorMsg);
		ajaxLoading(false);
	});
	return false;
}

Linkbox.editLink = function(id) {
	$('#jqDialog').css({width: '400px', height: '150px'});
	ajaxLoading(true);
	var url = "?p=plugin&a=linkbox&f=editLinkDialog&v="+id;
	$('#jqDialog').jqm({
		ajax: url,
		onLoad: function() {
			var form = document.getElementById('linkbox_link');
			ajaxLoading(false);
		}		
	}).jqmShow();
}

Linkbox.gotoLink = function(id) {
	if(AjaxActiveStatus)
		return false;
	$.get('?p=plugin&a=linkbox&f=href', {v: id}, function(AjaxObj) {
		eval(AjaxObj);
		window.location.href = AjaxObj.gotolink;
	});
	return false;
}

Linkbox.updateFavicon = function(id) {
	var icon = $('.linkbox_icon', '#linkbox_element_'+id).attr('src');
	$('.linkbox_icon', '#linkbox_element_'+id).attr('src','./plugins/linkbox/img/ajax-favicon3.gif');
	ajaxLoading(true);	
	$.get('?p=plugin&a=linkbox&f=updateFavicon&v='+id, function(AjaxObj) {
		eval(AjaxObj);
		ajaxLoading(false);
		if(AjaxObj.__RESULT_STATUS == 1) {
			$('.linkbox_icon', '#linkbox_element_'+id).attr('src',AjaxObj.favicon);
		}
		else {
			$('.linkbox_icon', '#linkbox_element_'+id).attr('src',icon);
			msgBox('Favicona nie została znaleziona');
		}
	});
}

Linkbox.initialize = function(id) {
	if(typeof(id)=='undefined')
		element = ".linkbox_list";
	
	$(element).sortable({
		zIndex: 1000,
		dropOnEmpty: false,
		stop: function(ev, ui) {
		
			var mb = Magicbox.getMagicboxIdForChild(ev.target);
			var links = mb.getElementsByTagName('li');
			var param = "";
			
			for(i = 0; i< (links.length); i++) {
				param += '&pos['+i+']='+(linkboxExplodeIdNr(links[i].getAttribute('id')));
			}
			ajaxLoading(true);
			$.get('?p=plugin&a=linkbox&f=updateLinks', param, function (AjaxObj) {
				ajaxLoading(false);
			});
			
		}
	});	

	$('img.linkbox_action').fadeTo('fast', 0.3);

	$(".linkbox_element").bind('mouseover', function(e) {
		e.target.style.background = "#f5f5f5";
		$('img.linkbox_action',e.target).fadeTo('fast',1);
	});

	$(".linkbox_element").bind('mouseout', function(e) {
		e.target.style.background = "#ffffff";
		$('img.linkbox_action',e.target).fadeTo('fast', 0.3);
	});
	
	$('img.linkbox_action').click(function(e) {
		$('.pge_menu').css('display','none');
		var mb_id = magicboxExplodeIdNr(e.target.parentNode.parentNode.parentNode.getAttribute('id'));
		var id = linkboxExplodeIdNr(e.target.getAttribute('id'));
		Magicbox.moveToTop(mb_id);
		$('#magicbox_content_menu_'+mb_id).load("?p=plugin&a=linkbox&f=loadMenu&v="+id, function(e) {
			var xpos = ((pageX - $('#magicbox_element_'+mb_id).offset().left) +'px');
			var ypos = ((pageY - $('#magicbox_element_'+mb_id).offset().top) +'px');
			$('#magicbox_content_menu_'+mb_id).css({display: 'block', left: xpos, top: ypos});
			$('#magicbox_content_menu_'+mb_id+' li').bind('mouseover',function(ev) {
				$(ev.target).css('background','#ddd');
			});
			$('#magicbox_content_menu_'+mb_id+' li').bind('mouseout',function(ev) {
				$(ev.target).css('background','#f9f9f9');
			});
		});
		return false;
	});

}