/* misc functions */
function _GID(id){if(document.getElementById){return document.getElementById(id+'');}else{return false;}}
function trim(s){s=s+''; while(1){if(s.charAt(0)==' '){s=s.substring(1,s.length);}else{break;}};while(1){if(s.charAt(s.length-1)==' '){s=s.substring(0,s.length-1);}else{break;}};return s;}
function UC(s){return (s+'').toUpperCase()};
function LC(s){return (s+'').toLowerCase()};


/* Popup Functions */
function popup(U,W,H,b){
var s=(typeof(screen)=='object'?screen:false); var SW=(s?(s.availWidth?s.availWidth:s.width):640),SH=(s?(s.availHeight?s.availHeight:s.height):480),X=(SW>W?((SW/2)-(W/2)):0),Y=(SH>H?((SH/2)-(H/2)):0);var k=window.open(U,"","scrollbars="+((b||SW<W||SH<H)?'1':'0')+",toolbar=0,status=1,menubar=0,directories=0,resizable="+((SW<W||SH<H)?'1,maximized=1':'1')+",location=0,"+(s?"width="+(SW<W?SW:W)+",height="+(SH<H?SH:H)+",":'')+"left="+X+",top="+Y+",screenX="+X+",screenY="+Y+',modal=1');if(k.focus){k.focus()};
return k;
}
function wpopup(U,W,H,b){
 popup(U,W,H,b);
}
function ppopup(U,W,H){
 var k=popup('',W,H);var d=k.document;d.write("<html><head><title>"+W+"x"+H+"</title></head><body leftmargin='0' topmargin='0' marginheight='0' marginwidth='0'><a href='javascript:close()' style='display: block' title='Click to close'><img src='"+U+"' width='"+W+"' height='"+H+"' border='0' alt='Click to close'></a></body></html>");d.close();
}
function tpopup(T,W,H){
var k=popup('',W,H);var d=k.document;d.write("<html><head><title>"+W+"x"+H+"</title></head><body bgcolor='#ffffff' leftmargin='0' topmargin='0' marginheight='0' marginwidth='0'>"+T+"</body></html>");d.close();
}
function _GID(id){
        if(document.getElementById){return document.getElementById(id.toString());}else{return false;}
}



/* Hook Functions */
/* Last Modified: 10/04/04 by -IGI- */
var __hooks = new Array();
function addHook(name, func)
{
        name = name.toString();
        func = func.toString();

	if(typeof(__hooks[name]) != 'object')
	{
		__hooks[name] = new Array();
	}
	__hooks[name][func] = true;
}


function delHook(name, func)
{
        name = name.toString();
        func = func.toString();

	if(typeof(__hooks[name]) != 'object')
	{
		return;
	}
	__hooks[name][func] = false;
}



function resetHook(name)
{
        name = name.toString();
	__hooks[name] = new Array();
}



function countHook(name)
{
  var i, func;
        name = name.toString();

	if(typeof(__hooks[name]) != 'object')
	{
		return 0;
	}

        i = 0;
	for(func in __hooks[name])
	{
		if(__hooks[name][func])
		{
			i++;
		}
	}
	return i;
}


function doHook(name, reset, param1, param2, param3)
{
  var func;

        name = name.toString();
	if(typeof(__hooks[name]) == 'object')
	{
		for(func in __hooks[name])
		{
			if(__hooks[name][func] == true && typeof(eval(func)) == 'function')
			{
				eval(func)(param1, param2, param3);
			}
		}

		if(reset)
		{
			resetHook(name);
		}
	}
}


/* Basic hooks/events */
window.onload = function(){
	doHook('OnWindowLoad');
}
window.onmousedown = function(){
	doHook('OnWindowClick');
}
window.onfocus = function(){
	doHook('OnWindowFocus');
}
window.onunload = function(){
	doHook('OnWindowUnload');
}


if(typeof(window.onresizeend) == 'function')
{
	window.onresizeend = function(){
		doHook('OnWindowResize');
	}
}else{
	window.onresize = function(){
		doHook('OnWindowResize');
	}
}







function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1)
    {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
    {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}


function setCookie(cookieName, cookieValue, nDays)
{
	var today = new Date();
	var expire = new Date();

	if (nDays==null || nDays==0) nDays=1;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName + "=" + escape(cookieValue) + "; expires=" + expire.toGMTString() + '; path=/';
}


function deleteCookie(name, path, domain)
{
    if (getCookie(name))
    {
        document.cookie = name + "=" + 
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}







function days_in_month (y, m)
{
  var days = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

        y*=1; m*=1;

	if((y % 4) == 0)
		days[1] = 29;

	return days[m-1];
}





