var portal_group_dialog_var = {};

function groupmapclicklistener(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';
	
	$('#pgd-icon-choice').css("background-position",backgroundpositionvalue);
	$('#pgd-icon').attr("value", backgroundpositionvalue);
	$("#pgd-icon-selection").css("display","none");
}

function getGroupDialogData()
{
	return {
		"mode": portal_group_dialog_var.mode
		,"name": $("#pgd-name").attr("value")
		,"description": $("#pgd-description").attr("value")
		,"url": $("#pgd-url").attr("value")
		,"icon": $("#pgd-icon").attr("value")
		,"pid": $("#pgd-pid").attr("value")
		,"gid": $("#pgd-gid").attr("value")
		,"lid": $("#pgd-lid").attr("value")
		};
}

function refreshGroupDialog(mode)
{
	portal_group_dialog_var.mode = mode;
	
	$("#group-form .text-input").attr("value", "");
	$('#pgd-icon-choice').css("background-position", "-64px -176px"); // HACK: HARDCODED DEFAULT :)
	
	if (portal_group_dialog_var.data)
	{
		$("#pgd-header").html(portal_group_dialog_var.data.header); // mandatory.
		if (portal_group_dialog_var.data.name) { $("#pgd-name").attr("value", portal_group_dialog_var.data.name); };
		if (portal_group_dialog_var.data.description) { $("#pgd-description").attr("value", portal_group_dialog_var.data.description); }
		if (portal_group_dialog_var.data.url) { $("#pgd-url").attr("value", portal_group_dialog_var.data.url); };
		if (portal_group_dialog_var.data.icon) {
			$("#pgd-icon").attr("value", portal_group_dialog_var.data.icon);
			$('#pgd-icon-choice').css("background-position", portal_group_dialog_var.data.icon);
		}
		if (portal_group_dialog_var.data.pid) { $("#pgd-pid").attr("value", portal_group_dialog_var.data.pid); }
		if (portal_group_dialog_var.data.gid) { $("#pgd-gid").attr("value", portal_group_dialog_var.data.gid); }
		if (portal_group_dialog_var.data.lid) { $("#pgd-lid").attr("value", portal_group_dialog_var.data.lid); }
	}
	
	switch(mode)
	{
		case "Delete":
			$("#group-form .text-input").attr("readonly", "readonly");
			$("#group-form #pgd-description").removeAttr("readonly");
			$("#pgd-submit-button").attr("value", "Delete");
//			$("#pgd-icon-row").css("display","none");
			$("#pgd-name").rules("remove");
//			$("#pgd-url").rules("remove");
		break;
		case "Insert":
			$("#group-form .text-input").removeAttr("readonly");
			$("#pgd-submit-button").attr("value", "Insert");
//			$("#pgd-icon-row").css("display","table-row");
			$("#pgd-name").rules("add", { required: true, messages: { required: "... !"	} });
//			$("#pgd-url").rules("add", { required: true, url: true, messages: {	required: "... !" } });

		break;
		case "Update":
			$("#group-form .text-input").removeAttr("readonly");
			$("#pgd-submit-button").attr("value", "Update");
//			$("#pgd-icon-row").css("display","table-row");
			$("#pgd-name").rules("add", { required: true, messages: { required: "... !"	} });
//			$("#pgd-url").rules("add", { required: true, url: true, messages: {	required: "... !" } });
		break;
		default:
			alert("Unknown mode.");
		break;
	}
}

$(document).ready(function(){
//  $("#pgd-icon-selection-image").load(function(){
	var options = jQuery.imagemap.defaultoptions;
	options.mapElement = $("#pgd-icon-selection-image-mapid");
	options.imgwidth = 256;
	options.imgheight = 240;
	$("#pgd-icon-selection-image").mapimage2(options).bind("click", groupmapclicklistener);
//	});
					   
	$("#pgd-icon-choice").bind("click", function(){												 
  		if ($("#pgd-icon-selection").css("display") == "none") {
			$("#pgd-icon-selection").css("display","inline");
		}
		else {
			$("#pgd-icon-selection").css("display","none");
		}
	});
	
	portal_group_dialog_var.mode = "Insert";

	portal_group_dialog_var.validator = $("#group-form").validate({
		submitHandler: function(form, validator) { portal_group_dialog_var.submitform(form); }
	});

	refreshGroupDialog(portal_group_dialog_var.mode);	

	$("#pgd-cancel-button").click(function() {
		portal_group_dialog_var.validator.resetForm();
		$("#group-form .text-input").attr("value", "");
		$("#portal-group-dialog").css("display","none");
	});
});