// ---------------------------------------------------------------------- //
// - gcfg.inc - Lee Clarke 2008/2009
// - Global JS Configuration
// ---------------------------------------------------------------------- //

// - global
var _URLROOT = 'http://www.gamerzines.com'; //http://beta.gamerzines.com
var _URLICN  = _URLROOT+'/system.ui/icons/gz_icn';
var _URLSYS  = _URLROOT+'/system.main/';
var _URLIMG  = _URLROOT+'/system.store/';
var _URLTPL  = _URLSYS+'templates/ui/';
var _URLPUB  = _URLROOT+'/system.publisher/';
var s_EXT_JPG  = '.jpg';
var s_EXT_PHP  = '.php';
var s_EXT_PXL  = 'px';

// - UI
var a_gui_menus  = [
					   [						
						   ['Affiliates'       , _URLROOT+'/affiliates.html'],												 
						   ['Press Release'    , _URLROOT+'/press.html']
					   ],
					   [
						   ['Technical Support', _URLROOT+'/support/technical-support.html'],
						   ['FAQ'         	   , _URLROOT+'/support/faq.html'],					 
						   ['Link to Us'       , _URLROOT+'/support/link-to-us.html'],
						   ['Meet the Team'    , _URLROOT+'/support/meet-the-team.html'],
						   ['Contact Us'       , _URLROOT+'/support/contact-us.html'],
						   ['Site Map'         , _URLROOT+'/support/site-map.xml', true]
					   ]				
				   ];
// ---------------------------------------------------------------------- //
// - main.inc - F - Lee Clarke 2008/2009
// - Main Internal
// ---------------------------------------------------------------------- //
// - internal vars
var o_dd_cached = null;
var i_dd_interv = null;
var i_pi_intval = null;
var i_pi_alpha  = 0;

// ---------------------------------------------------------------------- //
// - Global Internal  - F
// ---------------------------------------------------------------------- //

var f_Main = function ()
{	
	if (document.all && /MSIE (5\.5|6)/.test(navigator.userAgent)) { // - ie.png					
		document.styleSheets[0].addRule('.img_png','behavior: url(/system.main/js/iepngfix.htc)');	
	}	
}
f_Main();

// - DOM display

var f_DisplayImage = function (s_node, s_src, s_url)
{
	var o_node = null;
	if ((o_node = f_GetElementExists(s_node+'_img')) != null) {		
		 o_node.src = s_src;		
	}		
	if ((o_node = f_GetElementExists(s_node+'_imga')) != null) {		
		 o_node.href = s_url;
	}	
}

var f_PreviewImage = function (s_img)
{
	var dv_win = f_GetElementExists('dv_win');			
		
	f_SetLayerDisplay(dv_win, Boolean(s_img));
		
	if (!s_img) 
	{
		dv_win.onmousemove = null;
		f_DestroyElement ('img_win');
		f_RenderOpacity (dv_win,null,true);
			return;
	}
	
	this.RenderWin = function ()
	{	
		this.RenderImg = function (s_src)
		{	
			f_WriteSource (dv_win,s_src);
			var o_win = f_GetElementExists ('pan_win');
			var o_pan = f_GetElementExists ('img_win');			
			var o_img = f_GetElementExists ('img_pan');	
				//o_win.style.height = document.documentElement.clientHeight-o_win.offsetTop + 'px';			
				i_pi_intval = setInterval(function(){f_RenderOpacity(o_pan,function(){f_PanImage(o_win,o_img,o_pan);void(0)});void(0)},30);
			
		}			
		x_AjaxGetUrl(_URLTPL+'dialog.media'+s_EXT_PHP+'?s='+s_img, this.RenderImg);
	}
	
	i_pi_intval = setInterval(function(){f_RenderOpacity (dv_win,this.RenderWin);void(0)},30);
	
}

var f_PanImage = function (o_win, o_img, o_pan)
{
	var a_dims = [f_GetWidth(o_img),f_GetHeight(o_img),f_GetWidth(o_win),f_GetHeight(o_win)];
	
	if (a_dims[0] > a_dims[2] || a_dims[1] > a_dims[3]) 
	{
		var i_difx = a_dims[0] - a_dims[2];
		var i_dify = a_dims[1] - a_dims[3];
		
		o_win.onmousemove = function (e_evt)
		{
			var i_x = 0;
			var i_y = 0;
			
			if (window.event) e_evt = window.event;
			
			f_PreventPropagation (e_evt);			
			
			var o_node = (e_evt.srcElement|| e_evt.target);
				o_node = o_node.parentNode.parentNode;
				
			if (o_node != o_win) return;
			
			if (e_evt.pageX || e_evt.pageY) 
			{
				i_x = e_evt.pageX;
				i_y = e_evt.pageY;
			}
			else if (e_evt.clientX || e_evt.clientY) 
			{
				i_x = e_evt.clientX + document.body.scrollLeft
									+ document.documentElement.scrollLeft;
				i_y = e_evt.clientY + document.body.scrollTop
									+ document.documentElement.scrollTop;
			}
			
			while (o_node.offsetParent)
			{
				  i_x  	-= o_node.offsetLeft;
				  i_y  	-= o_node.offsetTop;
				  o_node = o_node.offsetParent;
			}
			
			if (a_dims[0] > a_dims[2])	
				o_pan.style.left = -Math.round ((i_difx/a_dims[2])*i_x) + 'px';
			
			if (a_dims[1] > a_dims[3])
				o_pan.style.top  = -Math.round ((i_dify/a_dims[3])*i_y) + 'px';
		}
	}
}

var f_RenderOpacity = function (o_node, f_callback, b_clear)
{	
	if (i_pi_alpha >= 100 || b_clear)
	{
		i_pi_alpha = 0;
		f_ClearTimer (i_pi_intval);		
			if (f_callback) f_callback ();
				if (!b_clear) return;
	} else {
		i_pi_alpha += 7;
	}
	
	if (o_node.filters) {
		o_node.style.filter = 'alpha(opacity=' + i_pi_alpha + ')';
	} else {
		o_node.style.opacity = i_pi_alpha / 100;
	}
}

var f_SetLayerDisplay = function (o_node, b_flag) {
	o_node.style.display = (b_flag?'block':'none');	
}

var f_ManageLayers = function (o_child, o_parent, f_callback, a_offset)
{	
	f_ClearTimer (i_dd_interv);
	if (o_parent != null)
	{	
		if (o_dd_cached && (o_dd_cached != o_child)) f_SetLayerDisplay (o_dd_cached, false);		
			o_dd_cached  = o_child;			
		
		f_AttachEvent ('mouseover', o_child , function(){f_ClearTimer(i_dd_interv);});
		f_AttachEvent ('mouseout' , o_child , f_callback);
		f_AttachEvent ('mouseout' , o_parent, f_callback);	
		
		o_child.style.top  = f_GetTop  (o_parent) + a_offset[0] + s_EXT_PXL;
		o_child.style.left = f_GetLeft (o_parent) + a_offset[1] + s_EXT_PXL;	
		
		f_SetLayerDisplay (o_child, true);	
		
		} 
	else
	{			
		this.f_Delay = function ()
		{
			f_ClearTimer (i_dd_interv);
			f_SetLayerDisplay (o_child, false);			
		}
		i_dd_interv = setTimeout (this.f_Delay, 618);	
	}		
}

var f_ClearTimer = function (i_intv) {	
	if (i_intv) clearInterval (i_intv) || clearTimeout (i_intv);
}

// - DOM events

var f_AttachEvent = function (e_evt, o_obj, f_callback)
{
	f_PreventPropagation(e_evt);
	f_DetachEvent (e_evt, o_obj, f_callback);
	if (o_obj.addEventListener)	{
		o_obj.addEventListener(e_evt, f_callback, false);			
	} 
	else if (o_obj.attachEvent) {
		o_obj.attachEvent('on'+e_evt, f_callback);		
	}
}

var f_DetachEvent = function (e_evt, o_obj, f_callback)
{
	if (o_obj.removeEventListener) {
		o_obj.removeEventListener(e_evt, f_callback, false);			
	} 
	else if (o_obj.detachEvent) {
		o_obj.detachEvent('on'+e_evt, f_callback);		
	}
}

var f_VerifyEventTrigger = function (s_id, e_evt)
{
	f_PreventPropagation (e_evt);	
	var o_node = e_evt.relatedTarget || e_evt.toElement;
	if (o_node!= null) 
	{
		while (o_node.parentNode && (o_node.id != s_id)) {		
			   o_node = o_node.parentNode;	
		}
		return (o_node.id != s_id);
	}
}

var f_PreventPropagation = function (e_evt)
{
	if (!e_evt) e_evt  = window.event;	
		e_evt.cancelBubble = true;
	if (e_evt.stopPropagation) {
		e_evt.stopPropagation();
	}
}

var f_FormFocus = function (o_obj)
{
	if (o_obj != null)
	{	
		f_AttachEvent('blur', o_obj, function(){f_FormBlur(o_obj);});	
		if (o_obj.value == (o_obj.alt || o_obj.title)) {
			f_WriteValue(o_obj, '');
		} else {
			o_obj.select();
		}
	}
}

var f_FormBlur = function (o_obj)
{
	if (o_obj != null)
	{	
		if (o_obj.value.length <= 0) {
			f_WriteValue(o_obj, (o_obj.alt || o_obj.title));
		} 
	}
}

var f_JumpTo = function (s_anchor) 
{
	var o_obj = f_GetElementExists (s_anchor);
	if (o_obj != null) {
		window.location.hash = s_anchor;	
	}	
}

var AddToSearch = function () {
	window.external.AddSearchProvider(_URLROOT+'/gz_search.xml');
}

// - DOM elements

var f_WriteSource = function (s_node, s_data)
{	
	var o_node  = f_GetElementExists(s_node);	
	if (o_node != null) {	
		if (o_node.innerHTML != s_data) {			
			o_node.innerHTML  = s_data;			
		}
	}	
}

var f_WriteValue = function (s_node, s_data)
{	
	var o_node  = f_GetElementExists(s_node);	
	if (o_node != null) 
	{	
		if (o_node.value != s_data) {			
			o_node.value  = s_data;			
		}
	}	
}

var f_CreateElement = function (s_type, s_id, s_css, s_htm, o_prnt)
{
	if (f_GetElementExists(o_parent) != null)
	{
		var o_elmt = document.createElement (s_type);
			o_elmt.className = s_css;										
			o_elmt.innerHTML = s_htm;	
			o_elmt.id        = s_id;		
			o_prnt.appendChild (o_elmt);
	}
}	

var f_DestroyElement = function (s_node)
{				
	var o_elmt  = f_GetElementExists(s_node);
	if (o_elmt != null) {	
		o_elmt.parentNode.removeChild(o_elmt);	
	}
}

var f_GetElementExists = function (s_node)
{	
	if (typeof(s_node) != 'string') {
			   s_node   = s_node.id;
	}
	return document.getElementById(s_node) || null;
}

var f_SetStyle = function (o_node, s_style) 
{	
	if (o_node != null) {
		o_node.className = s_style;
	}
}

var f_GetTop = function (o_node)
{
	if (typeof(o_node) != 'object') {
			   o_node   = f_GetElementExists(o_node);	
	}
	var i_top  = o_node.parentNode.parentNode.offsetTop;	
		i_top += o_node.offsetTop;
		i_top += f_GetHeight(o_node);		
	
	return i_top;	
}

var f_GetLeft = function (o_node)
{
	if (typeof(o_node) != 'object') {
			   o_node   = f_GetElementExists(o_node);	
	}
	
	var i_left  = o_node.parentNode.offsetLeft;
		i_left += o_node.offsetLeft;
	
	return i_left;	
}

var f_GetHeight = function (o_node)
{
	if (typeof(o_node) != 'object') {
			   o_node   = f_GetElementExists(o_node);	
	}
	return o_node.offsetHeight;	
}
var f_GetWidth = function (o_node)
{
	if (typeof(o_node) != 'object') {
			   o_node   = f_GetElementExists(o_node);	
	}
	return o_node.offsetWidth;	
}

var f_SyncSelection = function (i_id, i_alias)
{
	var o_node1 = f_GetElementExists ('cbxpc'+i_id);	
	var o_node2 = f_GetElementExists ('cbxpn'+(i_alias?i_alias:i_id));	
		o_node2.checked = o_node1.checked;
}

// - String manage

var f_CharCount = function (s_input, s_label, i_max)
{	
	var o_obj  = f_GetElementExists(s_input);
	if (o_obj != null)
	{	
		var o_msg  = f_GetElementExists(s_label);	
		var s_msg = 'Characters: ';
		if (o_obj.value.length > i_max-1)
		{					
			s_msg += 'None';
			f_WriteValue(o_obj, f_CharTrim(o_obj.value, i_max));
			if (!s_label) alert ('Maximum character allowance: '+i_max);
		} 
		else
			{			
			s_msg += i_max-o_obj.value.length;		
		}
		if (s_label) f_WriteSource(o_msg, s_msg);
	}
}

var f_CharTrim = function (s_str, i_max) {	
	return s_str.substr(0, i_max);	
}

var f_CharInt = function (s_msg, evt)
{
	if (window.event) { 
		var c_code = evt.keyCode;
	} else if (evt.which) {
		var c_code = evt.which
	}
	if (c_code > 31 && (c_code < 48 || c_code > 57)) {
		alert (s_msg+' must be numeric!');
	}
}

var f_Dialog = function (i_type, i_id, b_show) 
{
	switch (i_type)
	{		
		case 0: 
			// - menu
			var o_child  = f_GetElementExists('dv_dmn');				
			if (o_child != null)
			{
				if (b_show != null)
				{			
					var s_src  = '';
					var a_data = a_gui_menus[i_id];			
					for (var i = 0; i < a_data.length; i++)
					{
						s_src += "<div class='dv_cm_ra'>";
						s_src += "<a href="+a_data[i][1]+" class='dv_cm_a' " +  (a_data[i][2]==true?"target='_blank'":"") + ">";
						s_src += "<div class='dv_cm_r1a'>";
						s_src += "<span class='f_t5'>&#187;</span>";
						s_src += "<span class='sp_tl f_t1'>"+a_data[i][0]+"</span>";
						s_src += "</div></a></div>";		
					}											
					var o_parent = f_GetElementExists('dv_dmn'+i_id);																	
						f_WriteSource(o_child, s_src);
						f_ManageLayers(o_child, o_parent, function(){f_Dialog(i_type, i_id, null);}, [10,(i_id==0?-4:0)]);
				} 
				else {	
						f_ManageLayers(o_child, null); 
				}
			}
			break;		
		case 1: 
			// - dialog
			var o_child  = f_GetElementExists('dv_dlg_'+i_id);				
			if (o_child != null)
			{		
				if (b_show != null)
				{		
					var o_parent = f_GetElementExists('dv_dlg'+i_id);													
						f_ManageLayers(o_child, o_parent, function(){f_Dialog(i_type, i_id, null);}, [10,(i_id==1?-227:0)]);		 
				}
				else {
						f_ManageLayers(o_child, null);
				}
			}
			break;		
	}
}// ---------------------------------------------------------------------- //
// - mods.inc - M - Lee Clarke 2008/2009
// - Components and Sub-modules
// ---------------------------------------------------------------------- //

var o_cd_cached = {};
var a_mt_cache  = new Array ();
var b_pc_proc 	= false;

// ---------------------------------------------------------------------- //

var m_IssueOver = function (s_id, s_src, s_url, s_ttl, s_desc)
{	
	f_DisplayImage(s_id, s_src, s_url);	
	f_WriteSource (s_id+'_ttl', s_ttl);	
	f_WriteSource (s_id+'_sub', s_desc);	
}

var m_LatestOver = function (s_id, i_id, s_src, s_url, s_desc)
{	
	f_DisplayImage(s_id, s_src, s_url);
	m_CellDetails (s_id, i_id, 110, s_desc);	
}

var m_LatestOut = function (s_node, evt)
{	
	if (f_VerifyEventTrigger(s_node, evt)) {	
		m_CellDetails(null);
	}
}

var m_FeaturesOver = function (s_id, s_src, s_url, a_data) {	
	m_GetData (s_id, s_src, s_url, a_data);
}

var m_OverviewOver = function (s_id, s_src, s_url, a_data) {	
	m_GetData (s_id, s_src, s_url, a_data);
}

var m_GetData = function (s_node, s_src, s_url, a_data) 
{
	f_DisplayImage(s_node, s_src,s_url);	
	f_WriteSource (s_node+'_ttl',a_data[0]);	
	f_WriteSource (s_node+'_sub',a_data[1]);
}

var f_ManageTabs = function (s_node, i_id)
{	
	if (!a_mt_cache[s_node]) a_mt_cache[s_node] = 0;
	
	var o_new = f_GetElementExists(s_node+'_t'+i_id);	
	var o_old = f_GetElementExists(s_node+'_t'+a_mt_cache[s_node]);	
	if (o_old != o_new)
	{		
		f_SetStyle (o_new, 'dv_tab_a f_tab f_t2h');	
		f_SetStyle (o_old, 'dv_tab_a f_tab');	
		a_mt_cache[s_node] = i_id;
	}
}

var m_OpenTab = function (i_c, i_m, i_v, i_p, js_doc)
{	
	var s_node  = 'c'+i_c+'m'+i_m+'v'+i_v;
	var o_node  = f_GetElementExists(s_node);		
	if (o_node != null)
	{	
		f_ManageTabs(s_node, i_p-1);
		var s_url = _URLSYS+'ext.output.inc'+s_EXT_PHP+'?s=1&c='+i_c+'&m='+i_m+'&p='+i_p+'&v='+i_v+'&d='+js_doc;
			x_AjaxGetUrl(s_url, function(s_src){f_WriteSource(o_node,s_src);});			
	}
}

var m_GetTab = function (i_c, i_m, i_v, i_t, i_f, i_max, js_doc)
{	
	var s_node  = 'c'+i_c+'m'+i_m+'v'+i_v;
	var o_node  = f_GetElementExists(s_node);
	if (o_node != null && (i_f >= 1 && i_f <= i_max))
	{	
		var s_url = _URLSYS+'ext.output.inc'+s_EXT_PHP+'?s=1&c='+i_c+'&m='+i_m+'&v='+i_v+'&p='+i_t+'&f='+i_f+'&d='+js_doc;					
			x_AjaxGetUrl(s_url, function(s_src){f_WriteSource(o_node,s_src);});
	}	
}
var m_PostComment = function (js_doc)
{	
	var o_obj = f_GetElementExists('txtc1');
	if((o_obj.value != (o_obj.alt || o_obj.title)) && !b_pc_proc)
	{		
		var m_PostSent = function (s_rtn)
		{
			if (s_rtn == 'true') {				
				f_GetElementExists('frmc1').reset(); m_OpenTab(3,2,1,1,js_doc);
				b_pc_proc=false;f_WriteSource('lbc1','Comment Added');
			} else {
				b_pc_proc=false;f_WriteSource('lbc1','Unable to Post');
			}
		}			
		x_AjaxPostUrl(['txtc1'],function(s_rtn){m_PostSent(s_rtn);},0);
		b_pc_proc=true;f_WriteSource('lbc1','Posting Comment...');
	} 
	else {
		f_WriteSource('lbc1','Invalid Comment');
	}
}
var m_ModuleHelp = function (s_node)
{	
	f_SetLayerDisplay (f_GetElementExists(s_node+'_f1'), true);
	m_RenderLayerHeight(s_node+'_f1', 1, 38);
}

var m_ResizeModule = function (s_node, i_minv, i_maxv, b_max)
{		
	var o_node  = f_GetElementExists(s_node+'_ico');
	if (o_node != null)
	{	
		b_open = b_max?b_max:Boolean(x_ReadCookie('PREF_MIN_'+s_node) == 'true');		
		
		x_CreateCookie ('PREF_MIN_'+s_node,String(!b_open),-1);		
		o_node.src =_URLICN+ String(b_open?4:3)+'.jpg';
		m_RenderLayerHeight(s_node, b_open?i_maxv:i_minv,i_maxv);		
	}	
}	

// - Render
var m_RenderLayerHeight = function (s_node, i_minv, i_maxv)
{		
	var i_intv  = 0;
	var o_node  = f_GetElementExists(s_node);		
	if (o_node != null)
	{				
		i_minv = Number(i_minv);
		i_maxv = Number(i_maxv);			
		
		var a_data = [f_GetHeight(o_node),0,0];				
			a_data[1] = (a_data[0]==i_minv)?i_maxv:i_minv;		
		
		this.m_RenderLayer = function ()
		{	
			a_data[0] -= (f_GetHeight(o_node)-a_data[1])*0.26;					
			if ((Math.ceil(a_data[0]) == a_data[1])) {				
				f_ClearTimer(i_intv);				
			}			
			o_node.style.height = Math.ceil(a_data[0])+s_EXT_PXL;			
		}		
		i_intv = setInterval('m_RenderLayer()', 40);
	}	
}

// - Cell Expand
o_cd_cached.b_lock = 0;
var m_CellDetails = function (s_node, i_id, i_hght, s_desc)
{		
	f_ClearTimer(o_cd_cached.i_int);
	this.m_CellTip = function ()
	{	
		var o_node =  f_GetElementExists(s_node+'r'+String(i_id));		
		if (o_node == o_cd_cached.o_hnd) return; // - used node
		// - style
		var o_cell_styles = {ref:null, css:'dv_cm_rdc', 
			f_SetStyle:function ()
			{					
				this.ref.className = this.css;
			}
		}			
		// - colapse
		if (s_node == null)
		{		
			f_ClearTimer(o_cd_cached.i_int);
				o_cell_styles.css = o_cd_cached.className;
				o_cell_styles.ref = o_cd_cached.o_hnd;
				o_cell_styles.f_SetStyle();
					o_cd_cached.o_hnd.style.top    = 0+s_EXT_PXL;
					o_cd_cached.o_hnd.style.height = 21+s_EXT_PXL;			
					o_cd_cached.o_hnd = null;
					f_DestroyElement('dc2_tip');
					o_cd_cached.b_lock = 0;
						return;
		}			
		if (o_node != null && o_cd_cached.b_lock == 0)
		{			
			var i_intv = 0;			
			var a_data = [i_id*22, 0, f_GetHeight(o_node), 0, 0];				
			o_cd_cached.b_lock = 1;
			o_cd_cached.className = o_node.className;
			o_cd_cached.o_hnd = o_cell_styles.ref = o_node;	
			
			this.m_CreateCell = function ()
			{
				var o_elmt = document.createElement('div');
					o_elmt.className = 'dv_cm_dc2 f_t3';										
					o_elmt.innerHTML = s_desc;	
					o_elmt.id 		 = 'dc2_tip';
					o_node.getElementsByTagName('a')[0].appendChild(o_elmt);
			}			
			
			this.m_RenderCell = function () 
			{				
				a_data[1]  = f_GetHeight(o_node)-i_hght;
				a_data[2] -= a_data[1]*0.36;					
				a_data[3]  = a_data[2]/i_hght;				
				a_data[4]  = a_data[3]*a_data[0];				
				a_data[2]  = Math.ceil(a_data[2]);
				a_data[4]  = Math.ceil(a_data[4]);				
				o_node.style.top    = -a_data[4]+s_EXT_PXL;
				o_node.style.height =  a_data[2]+s_EXT_PXL;							
				
				if (a_data[1] == 0)	{
					this.m_CreateCell();
					f_ClearTimer(i_intv);
				}
			}		
			o_cell_styles.f_SetStyle();
			i_intv = setInterval('m_RenderCell()', 40);		
		}
	}	
	o_cd_cached.i_int = setInterval(function (){m_CellTip();f_ClearTimer(o_cd_cached.i_int);}, 618);
}// ---------------------------------------------------------------------- //
// - ajax.inc - X - Lee Clarke 2008/2009
// - AJAX and I/O
// ---------------------------------------------------------------------- //

var x_AjaxHttpRequest = function ()
{
	var o_request = null;
	try 
		{	
		// - w3c	
		o_request = new XMLHttpRequest();
		 if (o_request.overrideMimeType) {
			 o_request.overrideMimeType('application/xhtml');                
		}
	} catch(e)
		{	
		try {	
			// - ie
			o_request = new ActiveXObject('Msxml2.XMLHTTP');
		} catch(e) 
			{	
			try {
				o_request = new ActiveXObject('Microsoft.XMLHTTP');		
			} catch (e)
				{
				return false;
			}
		}
	}		
	return o_request;	
}

var x_AjaxGetUrl = function (s_url, f_callback)
{
	var o_request = x_AjaxHttpRequest();		
	if(!o_request) return;		
		o_request.onreadystatechange = function ()
		{				
			var s_return = x_AjaxReadyState(o_request);			
			if (s_return)
			{			
				if (f_callback) {				
					f_callback(s_return);
				} else {				
					return s_return;
				}
			}
		}			
	try
		{
		o_request.open ('GET',s_url,true);			
		o_request.send (null);
		
	} catch (e)		
		{
		Alert('AJAX:GET', e.description || _URLSYS+s_url);
	}
}

var x_AjaxPostUrl = function (o_data, f_callback, s_ref)
{		
	var o_request = x_AjaxHttpRequest();
	if(!o_request) return;	
		o_request.onreadystatechange = function ()
		{			
			var s_return = x_AjaxReadyState(o_request);			
			if (s_return)
			{			
				if (f_callback) { 	
					f_callback(s_return);
				}else {						
					return s_return;
				}
			}
		}
	try
		{
			
		for(i=0;i<o_data.length;i++) {
			o_data[i] = o_data[i]+'='+escape(encodeURI(document.getElementById(o_data[i]).value))+'&';
		}	
		
		o_request.open('POST',_URLSYS+'ext.input.inc.php?s='+s_ref,true);
		o_request.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		o_request.setRequestHeader('Content-length',o_data.length);
		o_request.setRequestHeader('Connection','close');		
		o_request.send(String(o_data));	
		
	} catch (e)		
		{
		Alert('AJAX:POST', e.description || _URLSYS);
	}	
}

var x_AjaxReadyState = function (o_request)
{	
	switch (o_request.readyState)
	{
		case 0: // - no init					
		case 1: // - setup					
		case 2: // - sent					
		case 3: // - process				
			return false;	
		case 4: // - ready			
			return String(o_request.responseText);			
			break;		
	}
}

// ---------------------------------------------------------------------- //
// - cookies
// ---------------------------------------------------------------------- //

var x_ReadCookie = function (s_key)
{
	var s_key_var = s_key.toUpperCase()+"=";	
	var a_cookies = document.cookie.split(';');
	
	for (var i=0;i<a_cookies.length;i++)
	{		
		var s_cookie = a_cookies[i];
			s_cookie = s_cookie.substring(1, s_cookie.length);		
		if (s_cookie.indexOf(s_key_var) == 0) {
			return s_cookie.substring(s_key_var.length, s_cookie.length);			
		}
	}
	return null;
}

var x_CreateCookie = function (s_key, s_value, i_days)
{
	var s_cookie  = '';	
		s_cookie += s_key.toUpperCase()+'='+s_value+';';
		s_cookie += 'path=/;';		
	
	if (i_days)
	{		
		if (i_days == -1) {
				// - 10 years		
				i_days = 10*366;
		}		
		var o_date = new Date();
			o_date.setTime(o_date.getTime() + (i_days*24*60*60*1000));	
			s_cookie += 'expires='+o_date.toGMTString()+';';
	}			
	document.cookie = s_cookie;	
}

var x_DestroyCookie = function (s_key)
{
	f_CreateCookie(s_key,'',-1);
}