
/* Global Window Events
=================================================*/	
if (!GLOBAL_EVENTS){
	var GLOBAL_EVENTS={
		$onload:new Array(),
		$onresize:new Array(),
		onloadExecute:function(){
			var eData=this.eData
			for (var fNum=0;fNum<eData.$onload.length;fNum++){
					var fName=eData.$onload[fNum]
					$function(fName)				
				}
					
			},
		onresizeExecute:function(){
			var eData=this.eData
			for (var fNum=0;fNum<eData.$onresize.length;fNum++){
					var fName=eData.$onresize[fNum]
					$function(fName)
				}
					
			},
			
		append:function(eventType,fName){
			if (!eventType || !this["$"+eventType]) return false
			//alert (eventType+" "+fName)
			this["$"+eventType].push(fName)
			return false
			},
		ready:function(){
	
			window.eData=this
			window.onresize=this.onresizeExecute
			window.onload=this.onloadExecute
			
			
	//		var o=''
	//		for (var e in window) if (e=='onload') o+=e+="->"+window[e]+" "
	//		alert (o)
			}	
	}
	GLOBAL_EVENTS.ready()
	}

function doScript(scriptSRC,params)
{
	var newScript = document.createElement("SCRIPT"), paramsString="";
//	if (!params) var params={};
	
	params.from="js";
		for (p in params) {paramsString+=paramsString?"&"+p+"="+params[p]:"?"+p+"="+params[p]}
	scriptSRC+=paramsString;
	//alert (scriptSRC); return;
	newScript.type="text/javascript";
	newScript.src=scriptSRC;   
//	alert (scriptSRC);
	document.body.appendChild(newScript);
}

function $id(el)
{	
	var res;
	if (!el) return false;
	res=null;
	if (typeof(el)!="object")
	{
		if (document.getElementById(el)) res=document.getElementById(el);
	} else res=el;
	
	return res;
}

function $name(el)
{	
	if (!el) return false;
	var els=new Array();

	if (typeof(el)!="object")
	{
		els=document.getElementsByName(el);
	} 
	
	if (els.length!=0) return els;
	else return null;
}


function $tagname(tg,par)
{	
	if (!tg) return false;
	var els=new Array();

	if (par && typeof(par)=="object") els=par.getElementsByTagName(tg);
	else els=document.getElementsByTagName(tg);
	
	if (els.length!=0) return els;
	else return null;
}

function $value(el)
{
	var res
	el=$id(el)
	if (!el) return false
	
	res=el.value?el.value:null
	return res
	
}

function $function(fName,params)
{
	var res=null
	if (fName) 
	{
		eval('res='+fName+'(params)')
	}
	return res
}

function NtoBR(strToClear)
{

	nIndex=strToClear.indexOf('\n');
//	alert (nIndex);
	while (nIndex>0)
	{
		leftPart=strToClear.substr(0,nIndex);
		rightPart=strToClear.substr(nIndex+1, strToClear.length-1);
		strToClear=leftPart+"<BR>"+rightPart;
		nIndex=strToClear.indexOf("\n");
	}

	nIndex=strToClear.indexOf('\r');
//	alert (nIndex);
	while (nIndex>0)
	{
		leftPart=strToClear.substr(0,nIndex);
		rightPart=strToClear.substr(nIndex+1, strToClear.length-1);
		strToClear=leftPart+rightPart;
		nIndex=strToClear.indexOf("\r");
	}
	
//alert (strToClear);
	return strToClear;
}

function BRtoN(strToClear)
{

	nIndex=strToClear.indexOf('<BR>');
//	alert (strLength);
	while (nIndex>0)
	{
		leftPart=strToClear.substr(0,nIndex);
		rightPart=strToClear.substr(nIndex+4, strToClear.length-1);
		strToClear=leftPart+'\n'+rightPart;
		nIndex=strToClear.indexOf("<BR>");
	}
	
	nIndex=strToClear.indexOf('<br>');
	while (nIndex>0)
	{
		leftPart=strToClear.substr(0,nIndex);
		rightPart=strToClear.substr(nIndex+4, strToClear.length-1);
		strToClear=leftPart+'\n'+rightPart;
		nIndex=strToClear.indexOf("<br>");
	}
	
	
	return strToClear;
}

function htmlspecialchars(text){

		while (text.indexOf('<')>=0) text=text.replace(/</,'[lt]')
		while (text.indexOf('>')>=0) text=text.replace(/>/,'[gt]')
		return text
	}


function setChild(par,elID,elClass,elType,elContent)
{
	if (!par && !elID) return false;
	
	var el=$id(elID);
	
	if (par && !el && elType) 
	{
		//need to create and append new child
		par=$id(par);		
		el=document.createElement(elType);
		el=par.appendChild(el);
		if (elID) el.id=elID;
	}
	
	if (!el) return false;
	
	if (elClass) el.className=elClass;
	if (elContent) el.innerHTML=elContent;
	
	return el;
}

function getElementByTagAndClass(par,elTag,elClass)
{
	if (!par || !elTag) return false;

	par=$id(par);
	var el,elNum,els=new Array(),res=null;
	els=par.getElementsByTagName(elTag);
	if (els.length>0)
	{
		for (elNum in els) {
			el=els[elNum];
			if (el.className && el.className==elClass) res=el;
		}
	}
	
	return res;
}

function getElementsByTagAndClass(par,elTag,elClass)
{
	if (!par || !elTag) return false;

	par=$id(par);
	var el,elNum,els=new Array(),res=new Array();
	els=par.getElementsByTagName(elTag);
	if (els.length>0)
	{
		for (var elNum=0;elNum<els.length;elNum++) {
			el=els[elNum];
			if (el.className && el.className==elClass) res.push(el);
		}
	}
	
	return res;
}

function putAndSendForm(fAction,fMethod,fData,fFiles)
{
	var f=setChild(document.body,null,null,"form"),i;
	if (fAction) f.action=fAction;
	if (fMethod) f.method=fMethod;
	for (var iName in fData)
	{ 
		i=setChild(f,null,null,"input")
		//i.setProperty("type","hidden");
		i.name=iName
		i.value=fData[iName]
	}
	
	if (fFiles)
	{
		for (var fName in fFiles)
		{
			var ff=fFiles[fName], newff=f.appendChild(ff);
			// for (var pr in ff) newff[pr]=ff[pr]
			newff.value=ff.value;
			
			//alert(i.value);
		}
		i=setChild(f,null,null,"input")
		i.name="MAX_FILE_SIZE"
		i.value=30000
		f.enctype="multipart/form-data";
	}
	

	f.submit();
}

function getWhereIs(block)
{
	var blockLeft = 0;
    var blockTop = 0;
        while(block) {
        	blockLeft += block.offsetLeft;
            blockTop += block.offsetTop;
            block = block.offsetParent;
        }
        return { left:blockLeft, top:blockTop }
}

//Array prototypes
function in_array(arr,el)
{
	var res=0
	for (elNum in arr) if (el==arr[elNum]) res++
	return res
}

function getRadioValue(el){
	var res=null
	for (var i=0; i<el.length; i++){
		var iEl=el[i]
		if (iEl.checked) {
			res=iEl.value;
			break
				
			}
		}
	return res
	}
	
	
function toggleRow(el,state){
		el=$id(el)
		if (!el) return false
		var stateShow=(document.all && !window.opera)?'block':'table-row',
			states=['none',stateShow]
		state=(state && states[state])?states[state]:((!el.style.display || el.style.display=='none')?states[1]:states[0])
		el.style.display=state
		//alert (el.style.display)
		return false

		}
