var __hooks = new Array();



/* Popup Functions */
/* Last Modified: 09/01/04 by -IGI- */
function popup(U,W,H,b){
 try{
 var s=(screen?screen:false),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=0,menubar=0,directories=0,resizable="+((SW<W||SH<H)?'1,maximized=1':'0')+",location=0,"+(s?"width="+(SW<W?SW:W)+",height="+(SH<H?SH:H)+",":'')+"left="+X+",top="+Y+",screenX="+X+",screenY="+Y+',modal=1');k.opener=self;if(k.focus){k.focus()};
 }catch(e){};
return k;
}
function wpopup(U,W,H,b){
 popup(U,W,H,b);
}
function ppopup(U,W,H){
 var k=popup('',W,H), 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){
 try{
var k=popup('',W,H), 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();
 }catch(e){};
}
function dpopup(U,W,H){
//if(window.showModalDialog){window.showModalDialog(U, '', "dialogWidth:"+W+"px;dialogHeight:"+H+"px;center:yes;edge:sunken;help:no;resizable:yes;scroll:no;status:no;center:yes");}else{popup(U,W,H)}
popup(U,W,H);
}




/* Rollover Effect. NC4 compatible. */
/* Last Modified: 08/30/04 by -IGI- */
function r_set(){
  var d=document.images; if(d){var i,a=r_set.arguments;for(i=0;i<a.length;i+=2){if(d[a[i]]){d[a[i]].h=new Image();d[a[i]].h.src=a[i+1];d[a[i]].osrc=d[a[i]].src;}}}
}
function r_on(){
 var d=document.images,a=r_on.arguments; if(d){for(i=0;i<(a.length);i++){if(d[a[i]]){if(d[a[i]].h){d[a[i]].src=d[a[i]].h.src;}}}}
}
function r_off(){
 var d=document.images,a=r_off.arguments; if(d){for(i=0;i<(a.length);i++){if(d[a[i]]){if(d[a[i]].osrc){d[a[i]].src=d[a[i]].osrc;}}}}
}




/* 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()};




/* Hook Functions */
/* Last Modified: 10/04/04 by -IGI- */

function addHook(name, func)
{
        name = name+'';
        func = func+'';

	if(typeof(__hooks[name]) != 'object')
	{
		__hooks[name] = new Array();
	}
	__hooks[name][func] = true;
}


function delHook(name, func)
{
        name = name+'';
        func = func+'';

	if(typeof(__hooks[name]) != 'object')
	{
		return;
	}
	__hooks[name][func] = false;
}



function resetHook(name)
{
        name = name+'';
	__hooks[name] = new Array();
}



function countHook(name)
{
  var i, func;
        name = name+'';

	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)
{
  var func;

        name = name+'';
	if(typeof(__hooks[name]) == 'object')
	{
		for(func in __hooks[name])
		{
			if(__hooks[name][func] == true && typeof(eval(func)) == 'function')
			{
				eval(func)();
			}
		}

		if(reset)
		{
			resetHook(name);
		}
	}
}



/* Basic hooks/events */
window.onload = function(){
	doHook('WindowOnLoad');
}

window.onresize = function(){
	doHook('WindowOnResize');
}


document.onclick = function(){
	doHook('DocumentOnClick');
}
