//Var declaration
var tdSelected = String();//this variable is use to indicate what td is selected, it is use in 'ChangeURL' function.
var originalClassName = "";//this var is use in ModuleMouseIn and ModuleMouseOut function, here is saved  when the user put the mouse in the tr of and item and use when the user out of the item 
var realSize = Number();// is the real size of the div when the div will be open. this value is set in ShowSelected function and use in CloseDiv function
var divToResize;//is the div to be open or close for the CloseDiv function. This value is set in ShowSelecte and use in CloseDiv function.
var rootDirectory;//
var inProgress = false;

//Public Function
function SetStatusBarTitle(title) {
	window.status = title;
}
function ChangeURL(obj,url) {


	//SetTitle(obj.id);
	var id = obj.id.substring(9);
	//if ( tdSelected == "td"+id){ return; }
	if (document.getElementById(tdSelected)!=null){ 
		document.getElementById(tdSelected).parentElement.className = "";
	}
	document.getElementById("td"+id).parentElement.className = "ModuleSelected";
	tdSelected = "td"+id;
	originalClassName = "ModuleSelected";
	
	/**/
	//window.open(url, 'body');
	parent.document.getElementById("body").src = url;
}

function ShowSelected(id) {
	if (inProgress == true) {
//		alert('no na');
		return;
	}
	/**/
	var _tr = document.getElementById("tr"+id);
	var _img = document.getElementById("img"+id);
	
	var _div = document.getElementById("div"+id);
	
	
	if (_div.style.display == "") {
	
		_div.height = _tr.clientHeight;
		_img.src = "../images/arrowRight.ico";
		divToResize = _div;
		
		_div.style.overflow = "hidden";
		inProgress = false;
		CloseDiv(true);
	}
	else {
		_img.src = "../images/arrowDown.ico";
		_div.style.overflow = "visible";
		
		_tr.style.display  = "";
		_div.style.display = "";

		realSize = _tr.clientHeight;
		_div.style.display = "none";
		_tr.style.display  = "none";
		_div.height = 0;
		divToResize = _div;
		inProgress = true;
		CloseDiv(false);
	}
}
/*
function StartPage() {
	var _startPage = document.getElementById("startPage").value;
	var _tr = document.getElementById("tr"+_startPage);
	var regx = new RegExp("[0-9]");
	ChangeURL(_tr, "http://google.com");

	while(_startPage.length > 0) {
		_startPage = ContainerID(_startPage);
		
		if (!_startPage.match(regx)) {
			break;
		}
				
		if (_startPage.length > 0){
			document.getElementById("div"+_startPage).style.display = "";
			document.getElementById("tr"+_startPage).style.display = "";
		}
		

	}

}
*/
//Utilities
function ContainerID(id) {
	var _tr = document.getElementById("tr_parent"+id);
	var divContainerID = _tr.parentElement.parentElement.parentElement.id;
	
	return divContainerID.substring(3);
}
function SetTitle(id) {
	var titleText = "";
	var subTitle = "";
	var conID = id.substring(9);
	var regx = new RegExp("[0-9]");

	while(conID.length > 0) {
		if (!conID.match(regx)) {
			break;
		}

		if (titleText.length > 0) {
			titleText = document.getElementById("td"+conID).innerHTML +" > "+ titleText;
		}
		else { 
			titleText = document.getElementById("td"+conID).innerHTML;
		}

		conID = ContainerID(conID);
	}

	var _first = Number(titleText.indexOf(">"));
	var _TitleLength = titleText.length;
	var _Title = titleText.substring(0,_first+1);
	var _subTitle = titleText.substring(_first+1, _TitleLength);
	
	parent.up.lblTitle.innerHTML = "<span id='Title'>"+_Title+"</span><span id='SubTitle'>"+_subTitle+"&nbsp;&nbsp;&nbsp;</span>";
	
	//window.status = titleText;
}
function ModuleMouseIn(obj) {
	originalClassName = obj.className;
	obj.className = "ModuleOver";
}
function ModuleMouseOut(obj) {
	obj.className = originalClassName;
}



function CloseDiv(isClose) {
	var newSize;
	var resizeSpeed = 15;

	if (Number(realSize) <= 40 && isClose != true){
		resizeSpeed = 5;
	}
	
	//alert(realSize);
	/*alert(isClose);
	alert(resizeSpeed);*/
	
	

	if (isClose == true) {
		newSize = divToResize.height - resizeSpeed;
		if (newSize <= 10) { 
			document.getElementById(divToResize.id).style.display = "none"; 
			document.getElementById("tr"+divToResize.id.substring(3)).style.display = "none";

			inProgress = false;
			return;
		}
	}
	else {
		newSize = divToResize.height + resizeSpeed;

		document.getElementById(divToResize.id).style.overflow = "hidden";
		document.getElementById(divToResize.id).style.display = ""; 
		document.getElementById("tr"+divToResize.id.substring(3)).style.display = "";

		if (newSize >= realSize) { 
			document.getElementById(divToResize.id).style.overflow = "visible";
			
			document.getElementById(divToResize.id).height = ""; 
			document.getElementById(divToResize.id).style.height = ""; 
			realSize = 0;

			inProgress = false;
			return;
		}
	}
	document.getElementById(divToResize.id).height = newSize; 
	document.getElementById(divToResize.id).style.height = newSize+"px"; 
	
	setTimeout("CloseDiv("+isClose+")", 1);
}

function ShowHideAll(option) {	
	CloseContextMenu();	
	obj = document.getElementsByTagName("div");
	var intID;
	

	for(i = 0; i < obj.length; i++){
		try {
			intID = obj[i].id.substring(3,obj[i].id.length);
		
			if (option) {
				document.getElementById("img"+intID).src = "../images/arrowDown.ico";
				obj[i].style.overflow = "visible";
				obj[i].style.display = "";
				document.getElementById("tr"+intID).style.display = "";
			}
			else {
				document.getElementById("img"+intID).src = "../images/arrowRight.ico";
				obj[i].style.overflow = "visible";			
				obj[i].style.display = "none";
				document.getElementById("tr"+intID).style.display = "none";
			}
		}
		catch(e){
			//the div id is out of menu content;
		};
	}
}

function ContextMenu(obj) {	
	var _divMenu = document.getElementById("divMenu")
	contextMenu.style.display = "block";
	contextMenu.style.position = "absolute";
	contextMenu.style.left = event.clientX - 5;
	//contextMenu.style.top = event.clientY + document.body.scrollTop - 5;
	contextMenu.style.top = event.clientY + _divMenu.scrollTop - 5;
	//alert("event.clientY: "+event.clientY+" document.body.scrollTop: "+_divMenu.scrollTop)
}
function ContextOverMouse(obj) {	
	obj.className = "ContextItemOver";
}

function ContextOutMouse(obj) {
	obj.className = "ContextItemNormal";
}

function CloseContextMenu() {
	contextMenu.style.display = "none";
}

var closing = -1;
function AutoCloseCM(){
	if (closing == -1) return;
	
	closing++;	
	if (closing > 60) {
		CloseContextMenu();	
		return;	
	}
	
	setTimeout("AutoCloseCM()", 5);
	return;
}
