
function GAH(t, d) {
	switch ( this.getHeader('Content-type').toLowerCase() )
	{
		case 'text/json':
			try {
				var o = eval('('+t+')');
				$A(o).each(function(a) {
					switch ( a.t )
					{
						case 'html':
							if ( $(a.d) ) {
								$(a.d).innerHTML = a.c;
							}
						break;
						case 'alert':
							alert(a.c);
						break;
					}
				});
			}
			catch(e) { alert(t); }
		break;
		case 'text/plain':
			alert(t);
		break;
		default:
		case 'text/html':
			if ( $(d) ) {
				$(d).innerHTML = t;
			}
		break;
	}
}

function ForA(t, d) { // Fill or Alert
	if ( '<' != t.substr(0,1) ) {
		alert(t);
	}
	else if ( $(d) ) {
		$(d).innerHTML = t;
		return true;
	}
	return false;
}

function CorA(t, n) { // Close or Alert
	if ( 'OK' == t ) {
		if ( 'number' != typeof n || 1 > n ) { n = 1; }
		hideLightbox(n);
	}
	else {
		alert(t);
	}
}

function RorA(t) { // Reload or Alert
	if ( 'OK' == t.substr(0, 2) ) {
		document.location.reload();
	}
	else {
		alert(t);
	}
}

function postForm(f_form, f_fn, e) {
	var o = 'function' == typeof f_fn ? {onComplete:f_fn} : {};
	$(f_form).send(o);
//	e = new Event(e).stop();
	return false;
}

var g_arrJSParams = {};
function JSParams( f_szParams ) {
	if ( !f_szParams ) {
		f_szParams = document.location.hash;
	}
	if ( f_szParams.substr(0,1) == '#' ) {
		f_szParams = f_szParams.substr(1);
	}
	var arrParams = f_szParams.split('&'), objParams = {};
	for ( i=0; i<arrParams.length; i++ ) {
		var x = arrParams[i].split('=', 2);
		if ( x.length == 1 ) {
			x[1] = true;
		}
		objParams[x[0]] = x[1];
	}
	g_arrJSParams = objParams;
	return objParams;
}

// downloads HTML and shows it in a new overlay
function ShowInOverlay(f_szUrl, f_szParams, f_fnPostHandler) {
	new Ajax(f_szUrl, {
		data : 'ajax=1' + ( f_szParams ? '&'+f_szParams : '' ),
		onComplete : function(t) {
			if ( '<' == t.substr(0,1) ) {
				showLightbox( t, f_szUrl, f_szParams );
				doTooltips();
				if ( 'function' == typeof f_fnPostHandler ) {
					f_fnPostHandler();
				}
			}
			else {
				alert(t);
			}
		}
	}).request();
	return false;
}

// Handles a finalized Ajax request by alerting of reloading the page
var fH = function(t, r) {
	if ( 'OK' == t.substr(0,2) ) {
		if ( r ) {
			document.location.reload();
		}
	}
	else {
		alert(t);
	}
	OC();
};

// Handles a finalized Ajax request with an InnerHTML, Alert or JSON 'commands'
var fCH = function(t,d,r) {
	if ( t.substr(0,1) != '[' && t.substr(0,1) != '{' && t.substr(0,1) != '<' ) {
		alert(t);
		return;
	}
	if ( t.substr(0,1) == '<' ) {
		if ( $(d) ) {
			$(d).innerHTML = t;
		}
		doTooltips();
		if ( r && 'function' == typeof hideLightbox ) {
			hideLightbox();
		}
		return;
	}
	try {
		eval('__rx = (' + t + ')');
	}
	catch (e) {
		alert(t);
		return;
	}
	// HTML
	if ( 'string' == typeof __rx['data'] ) {
		$(d).innerHTML = __rx['data'];
		doTooltips();
		if ( r && 'function' == typeof hideLightbox ) {
			hideLightbox();
		}
	}
	// MESSAGES
	if ( 'object' == typeof __rx['msgs'] && 0 < __rx['msgs'].length ) {
		var m = __rx['msgs'];
		for ( i=0; i<m.length; i++ ) {
			alert(m[i]);
		}
	}
};

// Creates new popup with given location
var Popup = function(u,w,h,n){window.open(u,n,'width='+w+',height='+h+',left=5,top=5,scroll=auto,status=no');return false;}

var OS = function() {
	if ( $('ajax_loading') ) {
		$('ajax_loading').style.left = (document.body.scrollLeft+10)+'px';
		$('ajax_loading').style.top = (document.body.scrollTop+10)+'px';
		$('ajax_loading').style.display = 'block';
	}
}, OC = function() {
	if ( 0 == Ajax.busy ) {
		if ( $('ajax_loading') ) {
			$('ajax_loading').style.display = 'none';
		}
	}
};
Ajax.setGlobalHandlers({onStart:OS, onComplete:OC});

window.addEvent('domready', doTooltips);
function doTooltips() {
	var els = $combine(
		$$('a[tooltip!=]'),
		$$('td[tooltip!=]'),
		$$('th[tooltip!=]'),
		$$('img[tooltip!=]'),
		$$('div[tooltip!=]'),
		$$('span[tooltip!=]'),
		$$('input[tooltip!=]')
	);
	els.each(function(el) {
		el.onmouseover = el.onmouseout = el.$events = null;
		el.onmouseout = Overlib.nd;
		el.onmouseover = doTooltip;
/*		EventClass.AttachToEvent(el, "mouseover", doTooltip);*/
/*		var tt = el.getAttribute('tooltip').trim(), x = tt.split(':::', 2);
		if ( 2 == x.length && 0 < x[0].length && 0 < x[1].length ) {
			EventClass.AttachToEvent(el, "mouseover", Overlib, Overlib.tooltip.calinbind(Overlib, x[0], x[1]));
		}
		else if ( 0 < tt.length ) {
			EventClass.AttachToEvent(el, "mouseover", Overlib, Overlib.tooltip.calinbind(Overlib, tt));
		}*/
/*		el.addEvents({
			mouseover : doTooltip,
			mouseout : Overlib.nd
		});*/
	});
}
function doTooltip(e) {
	var tt = this.getAttribute('tooltip').trim(), x = tt.split(':::', 2);
	if ( 2 == x.length && 0 < x[0].length && 0 < x[1].length ) {
		Overlib.tooltip(x[0], x[1]);
	}
	else if ( 0 < tt.length ) {
		Overlib.tooltip(tt);
	}
}
function removeTooltips() {
	var els = $combine(
		$$('a[tooltip!=]'),
		$$('td[tooltip!=]'),
		$$('th[tooltip!=]'),
		$$('img[tooltip!=]'),
		$$('div[tooltip!=]'),
		$$('span[tooltip!=]'),
		$$('input[tooltip!=]')
	);
	els.each(function(el) {
		el.onmouseover = el.onmouseout = el.$events = null;
	});
}
document.addEvent('keydown', function(e) {
	if ( e && 27 == e.keyCode ) {
		if ( $('message_s') ) {
			var p = $('message_s');
			p.parentNode.removeChild(p);
		}
		if ( 'function' == typeof window.hideLightbox ) {
			window.hideLightbox();
		}
		if ( 'undefined' != typeof window.datePickerDivID && $(datePickerDivID) ) {
			$(datePickerDivID).style.display = 'none';
		}
		if ( $('colorpickerdiv') ) {
			$('colorpickerdiv').style.display = 'none';
		}
	}
});

function doClubDateTime() {
	if ( true && $('club_date_time') ) {
		dt = new Date(1000*(php_time()+iUctDateTimeDiff));
		szMonth		= 10 > dt.getMonth()+1 ? '0'+(dt.getMonth()+1) : (dt.getMonth()+1);
		szDay		= 10 > dt.getDate() ? '0'+dt.getDate() : dt.getDate();
		szHours		= 10 > dt.getHours() ? '0'+dt.getHours() : dt.getHours();
		szMinutes	= 10 > dt.getMinutes() ? '0'+dt.getMinutes() : dt.getMinutes();
		szSeconds	= 10 > dt.getSeconds() ? '0'+dt.getSeconds() : dt.getSeconds();
		dt = dt.getFullYear() + '-' + szMonth + '-' + szDay + ' ' + szHours + ':' + szMinutes + ':' + szSeconds;
		$('club_date_time').innerHTML = dt;
	}
}
setInterval(doClubDateTime, 5000);

function silentSessionCheck() {
	new Ajax('/auth/check/', {}).request();
	return false;
}
setInterval(silentSessionCheck, 120000);

Element.extend({
	'html': function(content) {
		return content ? this.setHTML(content) : this.innerHTML;
	},
	'css' : function(key, val) {
		if ( 1 == arguments.length ) {
			if ( 'string' == typeof key ) {
				return this.getStyle(key);
			}
			else if ( 'object' == typeof key ) {
				this.setStyles(key);
			}
		}
		else if ( 2 == arguments.length ) {
			if ( 'array' == $type(key) && 'array' == $type(val) && key.length == val.length ) {
				for ( var i=0; i<key.length; key++ ) {
					this.setStyle(key[i], val[i]);
				}
			}
			else if ( 'string' == $type(key) ) {
				this.setStyle(key, val);
			}
		}
		return this;
	},
	'attr' : function(key, val) {
		if ( 1 == arguments.length ) {
			if ( 'string' == typeof key ) {
				return this.getProperty(key);
			}
			else if ( 'object' == typeof key ) {
				this.setProperties(key);
			}
		}
		else if ( 2 == arguments.length ) {
			if ( 'array' == $type(key) && 'array' == $type(val) && key.length == val.length ) {
				for ( var i=0; i<key.length; key++ ) {
					this.setProperty(key[i], val[i]);
				}
			}
			else if ( 'string' == $type(key) ) {
				this. setProperty(key, val);
			}
		}
		return this;
	}
});

