	ns4 = (document.layers) ? true:false;
	ie4 = (document.all) ? true:false;
	ng5 = (document.getElementById) ? true:false;
	ie6 = (parseInt(window.navigator.appVersion.charAt(0), 10) <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1);


	var mousex = 0;
	var mousey = 0;

	//addListener(document,"load",watchMouse);
	var mouse_onload_old = window.onload;
	window.onload = watchMouse;
	
	function watchMouse()
	{
		if (typeof(mouse_onload_old) == "function")
		{
			try
			{
				mouse_onload_old();
			}
			catch(e) {}
		}

		addListener(document,"mousemove",getMousePos);
	}

	function getMousePos(e)
	{
		if(ie4)
		{
			mousex = event.clientX + document.body.scrollLeft;
			mousey = event.clientY + document.body.scrollTop;

		}
		else
		{
			mousex = e.pageX;
			mousey = e.pageY;
		}

		if (mousex <= 0) {mousex = 0};
		if (mousey <= 0) {mousey = 0} ;  

		return true;
	}

	function replaceHTML(tag,newcontent)
	{
		if (ie4)
		{
			eval("document.all." + tag + ".innerHTML=newcontent;");
		}
		else if (ng5)
		{
			rng = document.createRange();
			el = document.getElementById(tag);
			rng.setStartBefore(el);
			htmlFrag = rng.createContextualFragment(newcontent);
			while (el.hasChildNodes())
				el.removeChild(el.lastChild);
			el.appendChild(htmlFrag);
		}
	}

	function objectVisible(object, visible)
	{
		if (visible == null)
		{
			visible = true;
		}
		if (visible)
		{
			if (ng5) document.getElementById(object).style.visibility = "visible";
			else if (ns4) document[object].visibility = "show";
			else if (ie4) eval(object + ".style.visibility = 'visible'");
		}
		else
		{
			if (ng5) document.getElementById(object).style.visibility = "hidden";
			else if (ns4) document[object].visibility = "hide";
			else if (ie4) eval(object + ".style.visibility = 'hidden'");
		}
	}

	function objectDisplayStyle(object, state)
	{
		if (ng5) document.getElementById(object).style.display = state;
		else if (ie4) eval(object + ".style.display = '" + state + "';");
	}
	
	function centerItem(idItem)
	{
		var item = getItemFromId(idItem);
		var browseWidth;
		var browseHeight;
		var docleft = getScrollLeft();
		var doctop = getScrollTop();
		var itemWidth = item.offsetWidth;
		var itemHeight = item.offsetHeight;
		if (ie4)
		{
			browseWidth=document.body.clientWidth;
			browseHeight=document.body.clientHeight;
		}
		else
		{
			browseWidth = window.innerWidth;
			browseHeight = window.innerHeight;
		}
		var left_pos = docleft + ((browseWidth/2) - (itemWidth/2));
		var top_pos = doctop + ((browseHeight/2) - (itemHeight/2));
		if (left_pos < docleft)
			left_pos = docleft;
		if (top_pos < doctop)
			top_pos = doctop;
		setItemPos(idItem, left_pos, top_pos);
	}

	function openIFrame(object, url)
	{
		if (ng5) eval("frames." + object + ".location.href = url;");
		else if (ie4) eval("document.all." + object + ".location.href = url;");
	}

	function changeFolderDisplay(folderid)
	{
		var currentfile = document.images["junc_" + folderid].src;
		var temparray = currentfile.split("/");
		currentfile = temparray[temparray.length - 1];
		if (currentfile == "plus.gif")
		{
			document.images["junc_" + folderid].src = "images/minus.gif";
			objectDisplayStyle("table_" + folderid,"");
		}
		if (currentfile == "minus.gif")
		{
			document.images["junc_" + folderid].src = "images/plus.gif";
			objectDisplayStyle("table_" + folderid,"none");
		}
		if (currentfile == "lastplus.gif")
		{
			document.images["junc_" + folderid].src = "images/lastminus.gif";
			objectDisplayStyle("table_" + folderid,"");
		}
		if (currentfile == "lastminus.gif")
		{
			document.images["junc_" + folderid].src = "images/lastplus.gif";
			objectDisplayStyle("table_" + folderid,"none");
		}
	}

	function openFolder(folderid)
	{
		var currentfile = document.images["junc_" + folderid].src;
		var temparray = currentfile.split("/");
		currentfile = temparray[temparray.length - 1];
		currentfile = currentfile.substr(0,4);
		if (currentfile == "last")
		{
			document.images["junc_" + folderid].src = "images/lastminus.gif";
		}
		else
		{
			document.images["junc_" + folderid].src = "images/minus.gif";
		}
		objectDisplayStyle("table_" + folderid,"");
	}

	function closeFolder(folderid)
	{
		var currentfile = document.images["junc_" + folderid].src;
		var temparray = currentfile.split("/");
		currentfile = temparray[temparray.length - 1];
		currentfile = currentfile.substr(0,4);
		if (currentfile == "last")
		{
			document.images["junc_" + folderid].src = "images/lastplus.gif";
		}
		else
		{
			document.images["junc_" + folderid].src = "images/plus.gif";
		}
		objectDisplayStyle("table_" + folderid,"none");
	}

	function calculateSumOffset(idItem, offsetName)
	{
		var totalOffset = 0;
		var item = getItemFromId(idItem);
		do
		{
			totalOffset += eval('item.'+offsetName);
			item = eval('item.offsetParent');
		} while (item != null);
		return totalOffset;
	}

	function getItemX(idItem)
	{
		var obj = getItemFromId(idItem);
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft;
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}
	
	function getItemY(idItem)
	{
		var obj = getItemFromId(idItem);
		var curtop = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curtop += obj.offsetTop;
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	}

	function getItemHeight(idItem)
	{
		var obj = getItemFromId(idItem);
		return obj.offsetHeight;
	}

	function getItemWidth(idItem)
	{
		var obj = getItemFromId(idItem);
		return obj.offsetWidth;
	}

	function setItemHeight(idItem,height)
	{
		var obj = getItemFromId(idItem);
		obj.style.height = height + "px";
	}
	
	function setItemWidth(idItem,width)
	{
		var obj = getItemFromId(idItem);
		obj.style.width = width + "px";
	}

	function setItemPos(idItem, x, y)
	{
		var item;
		if (ie4)
		{
			eval ("document.all." + idItem + ".style.pixelTop = y ;");
			eval ("document.all." + idItem + ".style.pixelLeft = x ;");
		}
		else if (ng5)
		{
			item = document.getElementById(idItem);
			item.style.top = y + "px";
			item.style.left = x + "px";
		}
		else if (ns4)
		{
			item = document[idItem];
			item.top = y;
			item.left = x;
		}
	}

	function getItemFromId(idItem)
	{
		if (typeof(idItem) == "object")
			return idItem;
		var item;
		if (ie4)
		{
			eval ("item = document.all." + idItem + " ;");
		}
		else if (ng5)
		{
			item = document.getElementById(idItem);
		}
		else if (ns4)
		{
			item = document[idItem];
		}
		return item;
	}
	
	function getItemsByClassName(classname, node)
	{
		if(!node)
			node = document.getElementsByTagName("body")[0];
		var items = [];
		var regexp = new RegExp('\\b' + classname + '\\b');
		var elements = node.getElementsByTagName("*");
		for(var i=0, j=elements.length; i<j; i++)
			if(regexp.test(elements[i].className))
				items.push(elements[i]);
		return items;
	}
	
	function positionByMouse(idItem)
	{
		var item = getItemFromId(idItem);
		var docleft = document.body.scrollLeft;
		var doctop = document.body.scrollTop;
		var docright = docleft + document.body.clientWidth;
		var docbottom = doctop + document.body.clientHeight;
		var itemwidth = item.offsetWidth;
		var itemheight = item.offsetHeight;
		var newx;
		var newy;

		if (mousex + itemwidth > docright)
		{
			if (docright - itemwidth < docleft)
			{
				newx = docleft;
			}
			else
			{
				newx = docright - itemwidth;
			}
		}
		else
		{
			newx = mousex;
		}

		if (mousey + itemheight > docbottom)
		{
			if (docbottom - itemheight < doctop)
			{
				newy = doctop;
			}
			else
			{
				newy = docbottom - itemheight;
			}
		}
		else
		{
			newy = mousey;
		}

		setItemPos(idItem,newx,newy);
	}

	function uploadSubmit(formname)
	{
		url = "progressbar.php";
		sid = document.forms[formname].sessionid.value;
		upload_dir = document.forms[formname].upload_dir.value;
		url += "?status=0&sid=" + sid + "&upload_dir=" + upload_dir;

		window.open(url,"progressbar","status=no,border=0,scrollbars=no,width=400,height=150");
		document.forms[formname].submit();
		return true;
	}

	function closeProgressWindow()
	{
		window.open("progressbar.php?close=1","progressbar","status=no,border=0,scrollbars=no,width=400,height=150");
	}
	
	function setIcon(uri)
	{
		document.forms.documentform.icon.value = uri;
		getItemFromId('iconimg').src = uri;
	}

	function removeIcon()
	{
		document.forms.documentform.icon.value = "";
		getItemFromId('iconimg').src = "images/no_icon.gif";
	}
	
	function addListener(item,method,func)
	{
		//var item = getItemFromId(id);
		if (item.addEventListener)
			item.addEventListener(method,func,true);
		else if (item.attachEvent)
		{
			var r = item.attachEvent('on' + method,func);
		}
	}
	
	function removeListener(item,method,func)
	{
		//var item = getItemFromId(id);
		if (item.removeEventListener)
			item.removeEventListener(method,func,true);
		else if (item.detachEvent)
		{
			var r = item.detachEvent('on' + method,func);
		}
	}

	function setImage(idImage,url)
	{
		if (ng5)
		{
			document.getElementById(idImage).src = url;
		}
		else if (ie4)
		{
			eval("document.all." + idImage + ".src = \""+ url + "\" ;");
		}
	}
	
	function getImage(idImage)
	{
		if (ng5)
		{
			return document.getElementById(idImage).src;
		}
		else if (ie4)
		{
			eval("return document.all." + idImage + ".src;");
		}
	}
	
	function hideStyleSheetDefaults(sheetnum)
	{
		var sheet = document.styleSheets[sheetnum];
		if (ie4)
		{
			for(var i=sheet.rules.length; i > 0; i--)
			{
				if (sheet.rules[i - 1].selectorText.match(/^(body|td|tr|table|a|html|p)([^\.]|$)/i) != null)
				{
					sheet.removeRule(i - 1);
				}
			}
		}
		else if (ng5)
		{
			for(var i=sheet.cssRules.length; i > 0; i--)
			{
				if (sheet.cssRules[i - 1].selectorText.match(/^(body|td|tr|table|a|html|p)([^\.]|$)/) != null)
				{
					sheet.deleteRule(i - 1);
				}
			}
		}
	}
	
	function hsl2rgb(hue, sat, lum)
	{
		var r,g,b;
		var x1,x2,x3,x4,x5;
		var b2 = lum * 255;
		var b3 = Math.round(b2);

		if( sat == 0 )
		{
			r = g = b = b3;
		}
		else
		{
			var x1 = (hue - Math.floor(hue)) * 6;
			var x2 = x1 - Math.floor(x1);
			var x3 = Math.round( b2 * ( 1 - sat ) );
			var x4 = Math.round( b2 * ( 1 - sat * x2 ) );
			var x5 = Math.round( b2 * ( 1 - sat * ( 1 - x2 )) );

			switch( parseInt(x1, 10) )
			{
				case 0: r = b3; g = x5; b = x3; break;
				case 1: r = x4; g = b3; b = x3; break;
				case 2: r = x3; g = b3; b = x5; break;
				case 3: r = x3; g = x4; b = b3; break;
				case 4: r = x5; g = x3; b = b3; break;
				case 5: r = b3; g = x3; b = x4; break;
			}
		}
		return new Array(r,g,b);
	}

	function rgb2hsl(r, g, b)
	{
		var mx = Math.max( r, Math.max(g, b) );
		var mn = Math.min( r, Math.min(g, b) );
		var cd = mx-mn;
		var lum = mx / 255;
		var sat = (mx == 0) ? 0 : (cd / mx);
		var hue;

		if(sat == 0)
			hue = 0;
		else
		{
			var rc = (mx-r) / cd;
			var gc = (mx-g) / cd;
			var bc = (mx-b) / cd;

			if( r == mx )
				hue = bc - gc;
			else if( g == mx)
				hue = 2 + rc - bc;
			else
				hue = 4 + gc - rc;

			hue /= 6;
			if( hue < 0)
				hue += 1;
		}
		return new Array( hue, sat, lum);
	}

	function makeRGB(h, s, l)
	{
		var rgb = hsl2rgb(h, s, l);
		return '#' + dec2hex(rgb[0]) + dec2hex(rgb[1]) + dec2hex(rgb[2]);
	}

	var hexDigits = Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');

	function dec2hex(dec)
	{
		return( hexDigits[ dec >> 4 ] + hexDigits[ dec & 15 ] );
	}

	function htmlentities(s)
	{
		var div = document.createElement('div');
		var text = document.createTextNode(s);
		div.appendChild(text);
		s = div.innerHTML;
		return s.replace(/"/g,'&quot;');
	}

	function getHTTPObject()
	{
		var xmlhttp;
		/*@cc_on
		@if (@_jscript_version >= 5)
			try
			{
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (E) 
				{
					xmlhttp = false;
				}
			}
		@else
			xmlhttp = false;
		@end @*/
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
		{
			try
			{
				xmlhttp = new XMLHttpRequest();
			}
			catch (e)
			{
				xmlhttp = false;
			}
		}
		return xmlhttp;
	}

	function getPageSize()
	{
		var xScroll, yScroll;
		
		if (window.innerHeight && window.scrollMaxY)
		{
			xScroll = document.body.scrollWidth;
			yScroll = window.innerHeight + window.scrollMaxY;
		}
		else if (document.body.scrollHeight > document.body.offsetHeight)
		{
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		}
		else
		{
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		
		var windowWidth, windowHeight;
		if (self.innerHeight)
		{
			windowWidth = self.innerWidth;
			windowHeight = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
		{
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		}
		else if (document.body)
		{
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		
		if(yScroll < windowHeight)
		{
			pageHeight = windowHeight;
		}
		else
		{ 
			pageHeight = yScroll;
		}

		if(xScroll < windowWidth)
		{
			pageWidth = windowWidth;
		}
		else
		{
			pageWidth = xScroll;
		}

		arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
		return arrayPageSize;
	}
	
	function getPageWidth()
	{
		var xScroll;
		
		if (window.innerHeight && window.scrollMaxY)
		{
			xScroll = document.body.scrollWidth;
		}
		else if (document.body.scrollHeight > document.body.offsetHeight)
		{
			xScroll = document.body.scrollWidth;
		}
		else
		{
			xScroll = document.body.offsetWidth;
		}
		
		var windowWidth;
		if (self.innerHeight)
		{
			windowWidth = self.innerWidth;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
		{
			windowWidth = document.documentElement.clientWidth;
		}
		else if (document.body)
		{
			windowWidth = document.body.clientWidth;
		}	

		if(xScroll < windowWidth)
		{
			pageWidth = windowWidth;
		}
		else
		{
			pageWidth = xScroll;
		}

		return pageWidth;
	}

	function getPageHeight()
	{
		var yScroll;
		
		if (window.innerHeight && window.scrollMaxY)
		{
			yScroll = window.innerHeight + window.scrollMaxY;
		}
		else if (document.body.scrollHeight > document.body.offsetHeight)
		{
			yScroll = document.body.scrollHeight;
		}
		else
		{
			yScroll = document.body.offsetHeight;
		}
		
		var windowHeight;
		if (self.innerHeight)
		{
			windowHeight = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
		{ 
			windowHeight = document.documentElement.clientHeight;
		}
		else if (document.body)
		{ 
			windowHeight = document.body.clientHeight;
		}	
		
		if(yScroll < windowHeight)
		{
			pageHeight = windowHeight;
		}
		else
		{ 
			pageHeight = yScroll;
		}
		
		return pageHeight;
	}
	
	function getScrollTop()
	{
		if (self.pageYOffset)
		{
			return self.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop)
		{
			return document.documentElement.scrollTop;
		}
		else if (document.body)
		{
			return document.body.scrollTop;
		}
	}
	
	function getScrollLeft()
	{
		if (self.pageXOffset)
		{
			return self.pageXOffset;
		}
		else if (document.documentElement && document.documentElement.scrollLeft)
		{
			return document.documentElement.scrollLeft;
		}
		else if (document.body)
		{
			return document.body.scrollLeft;
		}
	}

	/* START_ASIS */
	(function () 
	{
		 function toArray(pseudoArray)
		 {
			 var result = [];
			 for (var i = 0; i < pseudoArray.length; i++)
				 result.push(pseudoArray[i]);
			 return result;
		 }

		 Function.prototype.bind = function(object)
		 {
			 var method = this;
			 var oldArguments = toArray(arguments).slice(1);
			 return function()
			 {
				 var newArguments = toArray(arguments);
				 return method.apply(object, oldArguments.concat(newArguments));
			 };
		 };

		 Function.prototype.bindEventListener = function(object)
		 {
			 var method = this;
			 var oldArguments = toArray(arguments).slice(1);
			 return function(event)
			 {
				 return method.apply(object, Array(event || window.event).concat(oldArguments) );
			 };
		 };
	})();
	/* END_ASIS */

	function selectBoxHidden(hidden)
	{
		var selectlist = document.getElementsByTagName("select");
		var regexp = new RegExp("popup_select");
		for (var i = 0; i < selectlist.length; i++)
		{
			if (!regexp.test(selectlist[i].className))
			{
				if (hidden)
					selectlist[i].style.visibility = "hidden";
				else
					selectlist[i].style.visibility = "visible";
			}
		}
	}

	/* START_ASIS */
	function dialog_box(box,shadow,header,content,width,title)
	{
		this.box = box;
		this.shadow = shadow;
		this.header = header;
		this.content = content;
		this.width = width;
		this.title = title;
		if (getItemFromId(this.content).nodeName == "IFRAME")
			this.is_iFrame = true;
		addListener(getItemFromId(this.header),"mousedown",this.startDrag.bindEventListener(this));
	}

	dialog_box.prototype.setiFrameURL = function(url)
	{
		getItemFromId(this.content).src = url;
	}

	dialog_box.prototype.setDimensions = function(width,height)
	{
		this.width = width;
		this.height = height;
	}

	dialog_box.prototype.show = function()
	{
		setItemWidth(this.header,this.width);
		setItemWidth(this.content,this.width);
		if (this.is_iFrame)
		{
			setItemHeight(this.content,this.height);
			getItemFromId(this.content).contentWindow.document.open();
			getItemFromId(this.content).contentWindow.document.close();
			this.setTitle("Loading...");
		}
		centerItem(this.box);
		setItemWidth(this.shadow,getItemWidth(this.box));
		setItemHeight(this.shadow,getItemHeight(this.box));
		setItemPos(this.shadow,getItemX(this.box) + 8,getItemY(this.box) + 8);
		var shield = getItemFromId("dialog_mask");
		shield.style.height = getPageHeight() + "px";
		shield.style.width = getPageWidth() + "px";
		if (ie6)
			selectBoxHidden(true);
		objectDisplayStyle("dialog_mask","block");
		objectVisible(this.box,true);
		objectVisible(this.shadow,true);
	}

	dialog_box.prototype.hide = function()
	{
		if (this.is_iFrame)
			this.setiFrameURL("empty.php");
		if (ie6)
			selectBoxHidden(false);
		objectDisplayStyle("dialog_mask","none");
		objectVisible(this.box,false);
		objectVisible(this.shadow,false);
	}

	dialog_box.prototype.setTitle = function(title)
	{
		getItemFromId(this.title).innerHTML = title;
	}

	dialog_box.prototype.startDrag = function(event)
	{
		this.xOffset = getItemX(this.box) - mousex;
		this.yOffset = getItemY(this.box) - mousey;
		this.moveFP = this.move.bindEventListener(this);
		this.stopDragFP = this.stopDrag.bindEventListener(this);
		addListener(document,"mousemove",this.moveFP);
		addListener(document,"mouseup", this.stopDragFP);
		if (this.is_iFrame)
		{
			this.moveFromContentFP = this.moveFromContent.bindEventListener(this);
			addListener(getItemFromId(this.content).contentWindow.document,"mousemove", this.moveFromContentFP);
			addListener(getItemFromId(this.content).contentWindow.document,"mouseup", this.stopDragFP);
		}
		this.oldOnSelect = document.onselectstart;
		document.onselectstart=function(){return false};
	}

	dialog_box.prototype.move = function(event)
	{
		setItemPos(this.box,mousex + this.xOffset,mousey + this.yOffset);
		setItemPos(this.shadow,mousex + this.xOffset + 8,mousey + this.yOffset + 8);
	}

	dialog_box.prototype.moveFromContent = function(event)
	{
		if(ie4)
		{
			currmousex = getItemFromId(this.content).contentWindow.event.clientX; + document.body.scrollLeft;
			currmousey = getItemFromId(this.content).contentWindow.event.clientY; + document.body.scrollTop;
		}
		else
		{
			currmousex = event.pageX;
			currmousey = event.pageY;
		}

		setItemPos(this.box,currmousex + getItemX(this.content) + this.xOffset,currmousey + getItemY(this.content) + this.yOffset);
		setItemPos(this.shadow,currmousex + getItemX(this.content) + this.xOffset + 4,currmousey + getItemY(this.content) + this.yOffset + 4);
	}

	dialog_box.prototype.stopDrag = function(event)
	{
		removeListener(document,"mouseup",this.stopDragFP);
		removeListener(document,"mousemove",this.moveFP);
		if (this.is_iFrame)
		{
			removeListener(getItemFromId(this.content).contentWindow.document,"mouseup",this.stopDragFP);
			removeListener(getItemFromId(this.content).contentWindow.document,"mousemove",this.moveFromContentFP);
		}
		document.onselectstart = this.oldOnSelect;
	}
	/* END_ASIS */