//////////////////////////////////////////////////////////////////////////////////////////////////
//      ______                                            _____                                 //
//      |__   _|            _    ____                    / ____| _               _  _           //
//         | |  _   _  ___ | |_ |  _ \  _   _  _ __     | (___  | |_  _   _   __| |(_)  ___     //
//     __  | | | | | |/ __|| __|| |_) || | | || '_ \      \___ \| __|| | | | / _` || | / _ \    //
//     \ \_/ / | |_| |\__ \| |_ |  _ < | |_| || | | |    ____) || |_ | |_| || (_| || || (_) |   //
//      \___/   \__,_||___/ \__||_| \_\ \__,_||_| |_|   |_____/  \__| \__,_| \__,_||_| \___/    //
//                                                                                              //
//                    ____   _         _     __                                                 //
//                   |  _ \ | |  __ _ | |_  / _|  ___   _ __  _ __ ___                          //
//                   | |_) || | / _` || __|| |_  / _ \ | '__|| '_ ` _ \                         //
//                   |  __/ | || (_| || |_ |  _|| (_) || |   | | | | | |                        //
//                   |_|    |_| \__,_| \__||_|   \___/ |_|   |_| |_| |_|     v1.01              //
//                                                                                              //
//                                                                                              //
//                                          Copyrights (c) 2005 Powerd By JustRun Studio        //
//                                                        All Rights Reserved.                  //
//                                                                                              //
//                                                                                              //
//////////////////////////////////////////////////////////////////////////////////////////////////

SCROLL_ACCEL = 10; //滑动的加速度 1-100有效
SCROLL_TIME = 300; //滑动时间(毫秒)

var expandState = false;

//判断浏览器

o_navigator = navigator.userAgent;
var isIE = (o_navigator.indexOf("MSIE") > -1) ? 1 : 0;
var isIE5 = (o_navigator.indexOf("MSIE 5") > -1) ? 1 : 0;
var isMac = (o_navigator.indexOf("Mac") > -1) ? 1 : 0;
var isOpera = (o_navigator.indexOf("Opera") > -1) ? 1 : 0;
var isIE50 = (o_navigator.indexOf("MSIE 5.0") > -1) ? 1 : 0;
var isIE55 = (o_navigator.indexOf("MSIE 5.5") > -1) ? 1 : 0;
var isIE6 = (o_navigator.indexOf("MSIE 6.0") > -1) ? 1 : 0;
var isNN6 = (o_navigator.indexOf("Netscape6") > -1) ? 1 : 0;
var isDOM = (document.getElementById) ? 1 : 0;
isIE = (isIE && !isOpera);

//树结点常数
var TreeIcon = {
	"TI_OPEN" : "../Images/TreeIcons/FOpen.gif",
	"TI_CLOSE" : "../Images/TreeIcons/FClose.gif",
	"TI_I" : "../Images/TreeIcons/I.gif",
	"TI_L" : "../Images/TreeIcons/L.gif",
	"TI_T" : "../Images/TreeIcons/T.gif",
	"TI_LMINUS" : "../Images/TreeIcons/Lminus.gif",
	"TI_LPLUS" : "../Images/TreeIcons/Lplus.gif",
	"TI_RMINUS" : "../Images/TreeIcons/Rminus.gif",
	"TI_RPLUS" : "../Images/TreeIcons/Rplus.gif",
	"TI_TMINUS" : "../Images/TreeIcons/Tminus.gif",
	"TI_TPLUS" : "../Images/TreeIcons/Tplus.gif",
	"TI_BLANK" : "../Images/TreeIcons/Blank.gif",
	"NI_DEFAULT" : "../Images/TreeIcons/Leaf.gif",
	"NI_LOCATION" : "../Images/TreeIcons/NodeChecked.gif"
}

/*******************************************************************************************
原型：			FormatNumber(srcStr,nAfterDot)
创建者：		Newskyline
创建时间：	14:15 2004-12-27
功能描述：	格式化小数
输入参数：	srcStr:			待格式化的数字
						nAfterDot:	小数点后的位数
返回值：		无
*******************************************************************************************/
function FormatNumber(srcStr,nAfterDot){
	var srcStr,nAfterDot;
	var resultStr,nTen;
	srcStr = "" + srcStr + "";
	strLen = srcStr.length;
	dotPos = srcStr.indexOf(".",0);
	if (dotPos == -1){
			resultStr = srcStr+".";
			for (i=0;i<nAfterDot;i++){
					resultStr = resultStr+"0";
			}
			return resultStr;
	}
	else{
			if ((strLen - dotPos - 1) >= nAfterDot){
					nAfter = dotPos + nAfterDot + 1;
					nTen =1;
					for(j=0;j<nAfterDot;j++){
							nTen = nTen*10;
					}
					resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
					return resultStr;
			}
			else{
					resultStr = srcStr;
					for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
							resultStr = resultStr+"0";
					}
					return resultStr;
			}
	}
}

// Example:
// alert( readCookie("myCookie") );
function readCookie(name)
{
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1)
    { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}

// Example:
// writeCookie("myCookie", "my name", 24);
// Stores the string "my name" in the cookie "myCookie" which expires after 24 hours.
function writeCookie(name, value, hours)
{
  var expire = "";
  if(hours != null)
  {
    expire = new Date((new Date()).getTime() + hours * 3600000);
    expire = "; expires=" + expire.toGMTString();
  }
  document.cookie = name + "=" + escape(value) + expire;
}


function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

var objDiv;
var Scroller = function(){
/*	var startTime,startHeight,endHeight,dist,accel;
	var aniTimer;*/
	aDiv	:	null;
}

Scroller.show = function(){
	with(this.aDiv){
		this.startTime = (new Date()).getTime();
		this.startHeight = 0;
		this.endHeight = scrollHeight;
		this.dist = this.endHeight;
		this.accel = this.dist / SCROLL_TIME / SCROLL_TIME;
		if (this.aniTimer) this.aniTimer = window.clearInterval(this.aniTimer);
		this.aniTimer = window.setInterval("Scroller.slide()", parseInt(100/SCROLL_ACCEL));
	}
}

Scroller.hide = function(){
	with(this.aDiv){
		this.startTime = (new Date()).getTime();
		this.startHeight = scrollHeight;
		this.endHeight = 0;
		this.dist = -this.startHeight;
		this.accel = this.dist / SCROLL_TIME / SCROLL_TIME;
		if (this.aniTimer) this.aniTimer = window.clearInterval(this.aniTimer);
		this.aniTimer = window.setInterval("Scroller.slide()", parseInt(100/SCROLL_ACCEL));
	}
}

Scroller.slide = function(){
	with(this){
		var now = (new Date()).getTime();
		var elapsed = now - startTime;
		if (elapsed > SCROLL_TIME) endScroll();
		else {
			var t = SCROLL_TIME - elapsed;
			var ny = endHeight - t * t * accel;
			jumpTo(ny);
		}
	}
}

Scroller.jumpTo = function(ny){
	var alpha = Math.abs(parseInt(ny*100/this.dist));
	with(this.aDiv){
		style.height = ny;
		scrollTop = ny;
		filters.alpha.opacity = alpha;
	}
}

Scroller.endScroll = function() {
	if (this.aniTimer) this.aniTimer = window.clearTimeout(this.aniTimer);
	with(this.aDiv){
		style.overflowY="";
		style.height = "";
		if(this.endHeight==0){
			style.display = "none";
			//filters.alpha.opacity = 0;
		}
		//else{
		filters.alpha.opacity = 100;
		//}
	}
}

function CheckRelative(objChk){
	var objDiv = objChk.parentNode.nextSibling;
	var objInput;
	var i;
	//选取所有子结点
	objInput = objDiv.getElementsByTagName("input");
	for(i=0;i<objInput.length;i++){
		objInput[i].checked = objChk.checked;
	}
	//选取所有父结点(如果需要)
	if(objChk.checked){
		objInput = objChk;
		//debugger;
		objDiv = objInput.parentNode.parentNode.previousSibling
		while(objDiv && objDiv.className=="TreeNode"){
			objInput = objDiv.getElementsByTagName("input");
			if(objInput){
				objInput[0].checked = true;
				objDiv = objInput[0].parentNode.parentNode.previousSibling;
			}
			else{
				objDiv = null;
			}
		}
	}
}

function FullExpand(divName,blnExpand){
	var objTree = document.getElementById(divName);
	var objDiv,objImg,objContent;
	var blnTransImg;
	var i,j;
	if(objTree){
		objDiv = objTree.getElementsByTagName("div");
		for(i=0;i<objDiv.length;i++){
			if(objDiv[i].className == "TreeNode"){
				objImg = objDiv[i].getElementsByTagName("img");
				objContent = objDiv[i].nextSibling;
				blnTransImg = (blnExpand != (objContent.style.display == 'block'))
				if(blnTransImg){
					for(j=0;j<objImg.length;j++){
						TransNodeImg(objImg[j]);
					}
				}
				if(blnExpand){
					objContent.style.display = "block";
				}
				else{
					objContent.style.display = "none";
				}
			}
		}
	}
}

function NodeExpand(objImg,divName){
	objDiv = document.getElementById(divName);
	if(objDiv){
		TransNodeImg(objImg);
		TransNodeImg(objImg.nextSibling);
		if(objDiv.style.display =='block'){
			if(isIE){
				objDiv.style.overflowY="hidden";
				Scroller.aDiv = objDiv;
				Scroller.hide();
			}
			else{
				objDiv.style.display = "none";
			}
		}
		else{
			if(isIE){
				objDiv.style.display = 'block';
				objDiv.filters.alpha.opacity = 100;
				objDiv.style.overflowY="hidden";
				objDiv.style.height=0;
				Scroller.aDiv = objDiv;
				Scroller.show();
			}
			else{
				objDiv.style.display = "block";
			}
		}
	}
}

function TransNodeImg(imgObj){
	var oldSrc,newSrc;
	
	oldSrc = imgObj.src.replace(/.*\/([a-zA-Z]+)\.gif/,"$1").toLowerCase();
	switch(oldSrc){
		case 'lminus':
			newSrc = TreeIcon['TI_LPLUS'];
			break;
		case 'lplus':
			newSrc = TreeIcon['TI_LMINUS'];
			break;
		case 'tminus':
			newSrc = TreeIcon['TI_TPLUS'];
			break;
		case 'tplus':
			newSrc = TreeIcon['TI_TMINUS'];
			break;
		case 'fclose':
			newSrc = TreeIcon['TI_OPEN'];
			break;
		case 'fopen':
			newSrc = TreeIcon['TI_CLOSE'];
			break;
	}
	if(newSrc){imgObj.src = newSrc};
}

//选择所有的CheckBox
function SelectAll(objForm,chkName,checked){
	var i;
	var objChks = objForm.document.getElementsByName(chkName);
	if(!objChks){
		return;
	}
	for(i=0;i<objChks.length;i++){
		objChks[i].checked = checked;
	}
}
