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