window.k96 = new Object();
window.k96.unserialize = function(string)
{
	var ret = new Object();
	var vars = string.split('&');
	
	for (var j=0; j<vars.length; j++)
	{
		var array = vars[j].split('=');
		ret[k96.trim(array[0])] = k96.trim(array[1]);
	}
	
	return ret;
}

window.k96.trim = function(string)
{
    var trimmed = string.replace(/^[\t\n ]/g,'').replace(/[\t\n ]$/g,'');
    return string == trimmed ? string : k96.trim(trimmed);
}

window.k96.serialize = function(object)
{
	var string = "";
	for (var index in object)
		string += (string?"&":'')+index+"="+object[index];
		
	return string;
}

window.k96.copy = function(object1, object2)
{
	for (var index in object2)
		object1[index] = object2[index];
}

window.k96.def = function()
{
	for (var index in arguments)
		if (arguments[index] != null && arguments[index]!="")
			return arguments[index];
}

window.k96.toObject = function(string)
{
   return k96.unserialize(string.replace(/[;,]/g,'&').replace(/:/g,'='));
}

window.k96.alert = function(string)
{
    $("<div id='dialog' class='k96alert'>"+string+"</div>'").dialog({
        autoOpen: true,
        show: 'drop',
        closeText: 'x',
        hide: 'drop',
        modal: true,
        title: 'Alert',
        close: function()
        {
            $('#dialog').dialog('destroy').remove();
        }});
}

window.k96.assignPopup = function(object)
{
	try
	{
		for (var i=0; i<object.length; i++)
		{
			var url = $(object[i]).attr('href');
            if (!url)
                return;
            
			if (url.indexOf('?')!=-1)
				object[i].url = url.split('?')[0];
			else
				object[i].url = url;
			
			object[i].data = new Object();
			if (url.indexOf('?')!=-1)
				k96.copy(object[i].data,k96.unserialize(url.split('?').pop()));
			
			if ($(object[i]).attr('params'))
				k96.copy(object[i].data, k96.toObject($(object[i]).attr('params')));
                
			object[i].options = new Object();
			if ($(object[i]).attr('rel'))
				k96.copy(object[i].options, k96.toObject($(object[i]).attr('rel')));
			
			$(object[i]).removeAttr('params').removeAttr('rel');//.removeClass('displayPopup');
			
			$(object).unbind('click').click(function(ev)
			{
                ev.preventDefault();
				k96.displayPopup(this.url, this.data, this.options);
			});
		}
	}
	catch(e)
	{
		window.alert(e);
	}
}

window.k96.displayPopup = function(url, params, options)
{       
	 $('#dialog').dialog('close');
	 params.popup = true;
	      
	 $.ajax({
		 url: url,
		 type: 'GET',
		 dataType: 'html',
		 data: k96.serialize(params),
		 success: function(response){
			 var html = null;
			 
			 if (response)
				 switch(response)
				 {
					 case 'permission_denied': 
					 case 'session_timeout':
					 default: html = response;
				 }
			 else
				html = "No response";
				
             var buffer = document.createElement('span');
             buffer.innerHTML = html;
             var title = $(buffer).find('h1:first').remove().html();
             html = buffer.innerHTML;
             
			 $("<div id='dialog' style='background: #ffffff'>"+html+"</div>'").dialog({
					autoOpen: true,
					show: 'drop',
					closeText: 'x',
					hide: 'drop',
					modal: true,
					title: options && options.title ? options.title : title,
					width: options ? k96.def(options.w, options.width) : 'auto',
					height: options ? k96.def(options.h, options.height) : 'auto',
					close: function()
					{
						$('#dialog').dialog('destroy').remove();
					},
					open: function()
					{
						k96.assignPopup($("#dialog .displayPopup"));
					}
				});
		 }
	});
}
