function linkmapclicklistener(e) {
	var coords = null;
    if( e.target ) { coords = e.target.coords.split(','); }
    else if( e.srcElement ) { coords = e.srcElement.coords.split(','); }
	
	var backgroundpositionvalue = '-' + coords[0] + 'px' + ' -' + coords[1] + 'px';
	
	$('#pld-icon-choice').css("background-position",backgroundpositionvalue);
	$('#pld-icon').attr("value", backgroundpositionvalue);
	$("#pld-icon-selection").css("display","none");
}

function getLinkDialogData()
{
	return {
		"name": $("#pld-name").attr("value")
		,"description": $("#pld-description").attr("value")
		,"url": $("#pld-url").attr("value")
		,"icon": $("#pld-icon").attr("value")
		,"pid": $("#pld-pid").attr("value")
		,"gid": $("#pld-gid").attr("value")
		,"lid": $("#pld-lid").attr("value")
		};
}

function refreshLinkDialog(mode)
{
	portal_link_dialog_var.mode = mode.toLowerCase();
	
	$("#link-form .text-input").attr("value", "");	
	$('#pld-icon-choice').css("background-position", "-64px -176px"); // HACK: HARDCODED DEFAULT :)
	
	if (portal_link_dialog_var.data)
	{
		$("#pld-header").html(portal_link_dialog_var.data.header); // mandatory.
		if (portal_link_dialog_var.data.name) { $("#pld-name").attr("value", portal_link_dialog_var.data.name); };
		if (portal_link_dialog_var.data.description) { $("#pld-description").attr("value", portal_link_dialog_var.data.description); }
		if (portal_link_dialog_var.data.url) { $("#pld-url").attr("value", portal_link_dialog_var.data.url); };
		if (portal_link_dialog_var.data.icon) {
			$("#pld-icon").attr("value", portal_link_dialog_var.data.icon);
			$('#pld-icon-choice').css("background-position", portal_link_dialog_var.data.icon);
		}
		if (portal_link_dialog_var.data.pid) { $("#pld-pid").attr("value", portal_link_dialog_var.data.pid); }
		if (portal_link_dialog_var.data.gid) { $("#pld-gid").attr("value", portal_link_dialog_var.data.gid); }
		if (portal_link_dialog_var.data.lid) { $("#pld-lid").attr("value", portal_link_dialog_var.data.lid); }
	}
	
	switch(mode)
	{
		case "Delete":
			$("#link-form .text-input").attr("readonly", "readonly");
			$("#link-form #pld-description").removeAttr("readonly");
			$("#pld-submit-button").attr("value", "Delete");
//			$("#pld-icon-row").css("display","none");
			$("#pld-name").rules("remove");
			$("#pld-url").rules("remove");
		break;
		case "Insert":
			$("#link-form .text-input").removeAttr("readonly");
			$("#pld-submit-button").attr("value", "Insert");
//			$("#pld-icon-row").css("display","table-row"); // [OL] Will crash IE7 :)
			$("#pld-name").rules("add", { required: true, messages: { required: "... !"	} });
			$("#pld-url").rules("add", { required: true, url: true, messages: {	required: "... !" } });

		break;
		case "Update":
			$("#link-form .text-input").removeAttr("readonly");
			$("#pld-submit-button").attr("value", "Update");
//			$("#pld-icon-row").css("display","table-row"); // [OL] Will crash IE7 :)
			$("#pld-name").rules("add", { required: true, messages: { required: "... !"	} });
			$("#pld-url").rules("add", { required: true, url: true, messages: {	required: "... !" } });
		break;
		default:
			alert("Unknown mode.");
		break;
	}
}

var portal_link_dialog_var = {};

$(document).ready(function(){
//	$("#pld-icon-selection-image").load(function(){
	var options = jQuery.imagemap.defaultoptions;
	options.mapElement = $("#pld-icon-selection-image-mapid");
	options.imgwidth = 256;
	options.imgheight = 240;
	$("#pld-icon-selection-image").mapimage2(options).bind("click", linkmapclicklistener);
//	});
						   
	$("#pld-icon-choice").bind("click", function(){												 
  		if ($("#pld-icon-selection").css("display") == "none") {
			$("#pld-icon-selection").css("display","inline");
		}
		else {
			$("#pld-icon-selection").css("display","none");
		}
	});
	
	portal_link_dialog_var.mode = "Insert";

	portal_link_dialog_var.validator = $("#link-form").validate({
		submitHandler: function(form, validator) { portal_link_dialog_var.submitform(form); }
	});

	refreshLinkDialog(portal_link_dialog_var.mode);	

	$("#pld-cancel-button").click(function() {
		portal_link_dialog_var.validator.resetForm();
		$("#link-form .text-input").attr("value", "");
		$("#portal-link-dialog").css("display","none");
	});
});