var tabsInfo = new Array();
var popUpInfo = new Array();
var newElID = 0;
var eventList = new Array();
eventList["mousemove"] = new Array();
eventList["mouseup"] = new Array();
eventList["mousedown"] = new Array();

function TNMouseMove() {
	for( var i=0 ; i<eventList["mousemove"].length ; ++i ) {
		eventList["mousemove"][i]();
	}
}

function TNMouseUp() {
	for( var i=0 ; i<eventList["mouseup"].length ; ++i ) {
		eventList["mouseup"][i]();
	}
}


function TNRegisterEvent( inEvent, inFunction ) {
		
	if (document.removeEventListener) document.addEventListener(inEvent, inFunction, true);
	else if (document.detachEvent) document.attachEvent("on" + inEvent, inFunction);
	else {
		if( !document.onmousemove ) {
			document.onmousemove = TNMouseMove;
		}
		if( !document.onmouseup ) {
			document.onmouseup = TNMouseUp;
		}
		eventList[inEvent][eventList[inEvent].length] = inFunction;
	}
}

function TNUnregisterEvent( inEvent, inFunction ) {
	if (document.removeEventListener) document.removeEventListener(inEvent, inFunction, true);
    else if (document.detachEvent) document.detachEvent("on" + inEvent, inFunction);
    else {
    	eventList[inEvent] = TNRemoveFromArray(eventList[inEvent], inFunction);
    }
}

function TNRemoveFromArray( inArray, inValue ) {

	var newArray = new Array();
	for( var i=0 ; i<inArray.length ; ++i ) {
		if( inArray[i] != inValue )
		newArray[newArray.length] = inArray[i];
	}
	return newArray;
}

//creates an nw elemtn also works with ie 5.0 on mac
function TNCreateElement( parent, tag, id ) {
	if( id.length = 0 ) {
		id = "id_"+(++newElID);
	}
	body = document.getElementsByTagName("body");
	body[0].innerHTML += "<"+tag+" id=\""+id+"\">"+"test" +"</"+tag+">";
	return TNGetElementByID(id);
}

function showImage( imageName ) {
	style = TNGetStyle("img_"+imageName);
	style.display = "block";
	style = TNGetStyle("img_load_"+imageName);
	style.display = "none";
}

function viewPopUp( popupName, inID ) {
	if( popUpInfo[popupName] != inID ) {
		

		style = TNGetStyle("popupc_"+inID);
		style.display = "block";


		tmpID =  popUpInfo[popupName];
		if( tmpID != null ) {
			style = TNGetStyle("popupc_"+tmpID);
			style.display = "none";
		}
		
		popUpInfo[popupName] = inID;
	}
}

function viewTab( tabName,  inID ) {
	if( tabsInfo[tabName] != inID ) {
		
		element = document.getElementById("tab_"+inID);
		imgs = element.getElementsByTagName("*");
		//document.writeln(imgs);

		
		for( var i=0 ; i<imgs.length ; ++i ) {
			if( imgs[i].getAttribute("toc") == "tab_left" )  {
				imgs[i].src = "cms_backend.gui/images/gui_tab_left_active.jpg";
			} else if( imgs[i].getAttribute("toc") == "tab_right" )  {
				imgs[i].src = "cms_backend.gui/images/gui_tab_right_active.jpg";
			} else if( imgs[i].getAttribute("toc") == "tab_bg" )  {
				imgs[i].setAttribute("background", "cms_backend.gui/images/gui_tab_bg_active.jpg");
			}
			//imgs.getAttribute("toc") 
		}
		
		style = TNGetStyle("tabc_"+inID);
		style.display = "block";
		
		tmpID =  tabsInfo[tabName];
		if( tmpID != null ) {
			style = TNGetStyle("tabc_"+tmpID);
			style.display = "none";
			
			element = document.getElementById("tab_"+tmpID);
			imgs = element.getElementsByTagName("*");
			//document.writeln(imgs);
	
			
			for( var i=0 ; i<imgs.length ; ++i ) {
				if( imgs[i].getAttribute("toc") == "tab_left" )  {
					imgs[i].src = "cms_backend.gui/images/gui_tab_left.jpg";
				} else if( imgs[i].getAttribute("toc") == "tab_right" )  {
					imgs[i].src = "cms_backend.gui/images/gui_tab_right.jpg";
				} else if( imgs[i].getAttribute("toc") == "tab_bg" )  {
					imgs[i].setAttribute("background", "cms_backend.gui/images/gui_tab_bg.jpg");
				}
				//imgs.getAttribute("toc") 
			}
		}
		
		tabsInfo[tabName] = inID;
	}
}

function toggleCollapsPanel( theImg, inID ) {
	style = TNGetStyle(inID);
	if( style.display == "none" ) {
		style.display = "block";
		theImg.src = "cms_backend.gui/images/callaps_arrow_opened.jpg";
	} else {
		style.display = "none";
		theImg.src = "cms_backend.gui/images/callaps_arrow_closed.jpg";
	}
}

// functions also needed
function getMousePos( inEvent ) {
	var posArray = new Array();
	if(!inEvent) inEvent = event;
	if( IsIE() ) {
		posArray['x'] = inEvent.clientX;
		posArray['y'] = inEvent.clientY;
	} else {
		posArray['x'] = inEvent.pageX;
		posArray['y'] = inEvent.pageY;
	}
	return posArray;
}


// commen javafunctions we which we will include to our js lib

function TNGetElementSize( id ) {
	
	size = new Array();
	size['height'] = TNGetElementByID(id).offsetHeight;
	size['width'] = TNGetElementByID(id).offsetWidth;
	
	return size;
}

function TMSetStylePos(id,x,y) {
	if (TNIsW3CDOM) {
		TNGetStyle(id).left=x+"px";
		TNGetStyle(id).top=y+"px";
	} else if(IsIE()) {
		TNGetStyle(id).posLeft=x
		TNGetStyle(id).posTop=y;
	} else {
		TNGetStyle(id).left=x;
		TNGetStyle(id).top=y;
	}
}


function TNSetStyleVis( id, vis ) {
	
	if (TNIsW3CDOM){
		TNGetStyle(id).visibility=(vis==false)?"hidden":"visible";
	} else if ( IsIE() ) {
		TNGetStyle(id).visibility=(vis==false)?"hidden":"visible";
	} else {
		TNGetStyle(id).visibility=(vis==false)?'hide':'show';
	}
}
function TNGetStyle(id) {
	return TNGetElementStyleByID(id);
}

function IsIE() {
	return TNUserAgent.indexOf("MSIE") > 0;
}

function IsIEMac() {
	return (IsIE() && (NUserAgent.indexOf("Mac") > 0 ) );
}

TNUserAgent = window.navigator.userAgent;
TNBrowserVersion = parseInt(TNUserAgent.charAt(TNUserAgent.indexOf("/")+1),10);
TNIsW3CDOM = ((document.getElementById) && !(IsIE()&&TNBrowserVersion<6)) ? true : false;


function TNGetElementStyleByID(name) {
	if (document.getElementById)
	{
		return document.getElementById(name).style;
	}
	else if (document.all)
	{
		return document.all[name].style;
	}
	else if (document.layers)
	{
		return GetObjNN4(document,name);
	}
}

function TNGetElementByID(name)
{
	if (document.getElementById)
	{
		return document.getElementById(name);
		//this.style = document.getElementById(name).style;
	}
	else if (document.all)
	{
		return document.all[name];
		//this.style = document.all[name].style;
	}
	else if (document.layers)
	{
		return GetObjNN4(document,name);
		//this.style = this.obj;
	}
}

function GetObjNN4(obj,name)
{
	var x = obj.layers;
	var foundLayer;
	for (var i=0;i< obj.layers.length;i++)
	{
		if (x[i].id == name)
			foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}

/*var DHTML = (document.getElementById || document.all || document.layers);

function writit(text,id)
{
	if (document.getElementById)
	{
		x = document.getElementById(id);
		x.innerHTML = '';
		x.innerHTML = text;
	}
	else if (document.all)
	{
		x = document.all[id];
		x.innerHTML = text;
	}
	else if (document.layers)
	{
		x = document.layers[id];
		text2 = '<P CLASS="testclass">' + text + '</P>';
		x.document.open();
		x.document.write(text2);
		x.document.close();
	}
}*/