/* cookie 操作 */
function getCokad(name){var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); if(arr != null) return unescape(arr[2]); return null;}
function setCokad(hhours,name,value){var exp  = new Date();exp.setTime(exp.getTime() + hhours*60*60*1000); document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";}

function navChange(liid,tname,num,cid)
{		
		var cnum = cid + num;
		var n=0;
		var navlist = gd(liid).getElementsByTagName("a");
		//var navlist = $(liid).childNodes;
		for(var i=n;i<navlist.length;i++)
			{	
				var ccid = cid+(i+1);
				navlist[i].className = "";
				gd(ccid).style.display = "none";
			}
		num=num-1;
		navlist[num].className = tname;
		gd(cnum).style.display = "";
}

function gd(id) {
	if (document.getElementById && document.getElementById(id)) {
		return document.getElementById(id);
    } else if (document.all && document.all[id]) {
		return document.all[id];
	} else if (document.layers && document.layers[id]) {
		return document.layers[id];
	} else {
		return null;
    }
}
function searchchange(obj){
	gd('searcharea').className='hidden';
	gd('searchselect').innerHTML=obj.innerHTML;
}
function checkform(o){
	if(gd('searchselect').innerHTML == '作者') {
		o.srchuname.value = o.srchtxt.value;
		o.srchtxt.value = '';
		return true;
	} 
	return true;
}
function AddFavorite(sURL, sTitle)
{
    try
    {
        window.external.addFavorite(sURL, sTitle);
    }
    catch (e)
    {
        try
        {
            window.sidebar.addPanel(sTitle, sURL, "");
        }
        catch (e)
        {
            alert("加入收藏失败，请使用Ctrl+D进行添加");
        }
    }
}
function SetHome(obj,vrl){
        try{
                obj.style.behavior='url(#default#homepage)';obj.setHomePage(vrl);
        }
        catch(e){
                if(window.netscape) {
                        try {
                                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                        }
                        catch (e) {
                                alert("此操作被浏览器拒绝！\n请在浏览器地址栏输入“about:config”并回车\n然后将 [signed.applets.codebase_principal_support]的值设置为'true',双击即可。");
                        }
                        var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
                        prefs.setCharPref('browser.startup.homepage',vrl);
                 }
        }
}
function openScript(url, width, height){
 window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=no,location=yes,status=no' );
}


function $ (sID) {
	return document.getElementById(sID);
}
var bindNavLi = (function(){
	/** 浏览器基本信息 */
	var _ua = navigator.userAgent.toLowerCase();
	/** IE */
	var $ie = /msie/.test(_ua);
	/** FireFox */
	var $moz = /gecko/.test(_ua);
	/** Safari */
	var $safari = /webkit/.test(_ua);

	/**
	 * 根据元素的id获取对应节点的引用
	 * @param {String} id 节点的id或者节点本身
	 * @author stan | chaoliang@staff.sina.com.cn
	 */
	function $E(id){
		return typeof(id) == 'string' ? document.getElementById(id) : id;
	};
	/**
	 * @private
	 * @param {Function} func 函数引用
	 * @param {Object} object 指针
	 * @param {Array} args 函数用的参数
	 */
	function bind(func, object, args){
		args = args == null ? [] : args;
		return function(){
			func.apply(object, args);
		};
	};

	/**
	 * 获取Event对象
	 * @private
	 * @return {Event} event对象
	 * @author FlashSoft | fangchao@staff.sina.com.cn
	 * @update 08.02.23
	 * @example
	 * 			getEvent();
	 */
	var getEvent = function(){
		return window.event;
	};
	if ($moz) {
		getEvent = function(){
			var o = arguments.callee.caller;
			var e;
			var n = 0;
			while (o != null && n < 40) {
				e = o.arguments[0];
				if (e && (e.card == Event || e.card == MouseEvent)) {
					return e;
				}
				n++;
				o = o.caller;
			}
			return e;
		};
	}

	/**
	 * 禁止Event事件冒泡
	 * @private
	 * @author FlashSoft | fangchao@staff.sina.com.cn
	 * @update 08.02.23
	 * @example
	 * 			stopEvent();
	 */
	var stopEvent = function(){
		var ev = getEvent();
		ev.cancelBubble = true;
		ev.returnValue = false;
	};
	if ($moz) {
		stopEvent = function(){
			var ev = getEvent();
			ev.preventDefault();
			ev.stopPropagation();
		};
	}
	/**
	 * 在指定节点上绑定相应的事件
	 * @private
	 * @param {String} elm 需要绑定的节点id
	 * @param {Function} func 事件发生时相应的函数
	 * @param {String} evType 事件的类型如:click, mouseover
	 * @update 08.02.23
	 * @author Stan | chaoliang@staff.sina.com.cn
	 *         FlashSoft | fangchao@staff.sina.com.cn
	 * @example
	 * 		//鼠标点击testEle则alert "clicked"
	 * 		addEvent2("testEle",function () {
	 * 			alert("clicked")
	 * 		},'click');
	 */
	function addEvent2(elm, func, evType, useCapture){
		var elm = $E(elm);
		if (typeof useCapture == 'undefined') 
			useCapture = false;
		if (typeof evType == 'undefined') 
			evType = 'click';
		if (elm.addEventListener) {
			elm.addEventListener(evType, func, useCapture);
			return true;
		}
		else 
			if (elm.attachEvent) {
				var r = elm.attachEvent('on' + evType, func);
				return true;
			}
			else {
				elm['on' + evType] = func;
			}
	};

	/**
	 * <pre>
	 * 设定指定节点的样式
	 * </pre>
	 * @private
	 * @param {HTMLElement | Document} el 节点对象
	 * @param {String} property 样式名
	 * @param {String} val 样式值
	 * @author FlashSoft | fangchao@staff.sina.com.cn
	 * @update 08.02.23
	 * @example
	 * 			setStyle(document.body, "opacity", "0.2");
	 */
	var setStyle = function(el, property, val){
		switch (property) {
			case "opacity":
				el.style.filter = "alpha(opacity=" + (val * 100) + ")";
				if (!el.currentStyle || !el.currentStyle.hasLayout) {
					el.style.zoom = 1;
				}
				break;
			case "float":
				property = "styleFloat";
			default:
				el.style[property] = val;
		}
	};
	if ($moz) {
		setStyle = function(el, property, val){
			if (property == "float") {
				property = "cssFloat";
			}
			el.style[property] = val;
		};
	}
	/**
	 *
	 * @param {HTMLElement | Document} oParentNode 父节点
	 * @param {HTMLElement} oNode 需要判断的子节点
	 * @return {Boolean} 是否是父节点的子节点
	 * @author FlashSoft | fangchao@staff.sina.com.cn
	 */
	var contains = function(oParentNode, oNode){
		return oParentNode.contains(oNode);
	};
	if ($moz) {
		contains = function(oParentNode, oNode){
			do {
				if (oParentNode == oNode) 
					return true;
			}
			while (oNode = oNode.parentNode);
			return false;
		};
	}

	/**
	 * ajax类
	 * @author stan | chaoliang@staff.sina.com.cn
	 * @param {Object} url
	 * @param {Object} getArray
	 */
	var Ajax = function(url,getArray){
		this.url = url;
		if (getArray) {
			this.getArray = getArray;
		}
	};
	Ajax.prototype = {
		url : '/app/index/index_subnav.php?fid=47',
		getArray : {},
		createRequest : function() {
			var request = null;
			try {
				request = new XMLHttpRequest();
			} catch (trymicrosoft) {
				try {
					request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (othermicrosoft) {
					try {
						request = ActiveXObject("Microsoft.XMLHTTP");
					} catch (failed) {}
				}
			}
			if(request == null)
				alert("create request failed");
			else
				return request;
		},
		pushPara : function(key,value) {
			this.getArray[key] = value;
		},
		load : function(type, transport, parser) {
			var request = this.createRequest();
			var tmpArr = [];
			for (var key in this.getArray) {
				var value = this.getArray[key];
				if(value){
					tmpArr.push(key + '=' + value);
				}
			}
			var getString = tmpArr.join("&");
			request.onreadystatechange = function() {
				if(request.readyState == 4){
					var responseAsText = request.responseText;
					//trace("Ajax response : "+responseAsText,"#900","white");
					if (type == 'txt') {
						parser.call(this, responseAsText);
					}
					else 
						if (type == 'xml') {
							var xmldoc;
							if (!$ie) {
								var Dparser = new DOMParser();
								xmldoc = Dparser.parseFromString(responseAsText, "text/xml");
							}
							else 
								if (window.ActiveXObject) {
									xmldoc = request.responseXML;
								}
							parser.call(this, xmldoc);
						}
						else 
							if (type == 'json') {
								parser.call(this, eval(responseAsText));
							}
				}
			};
			//transport = transport || "GET";
			if(transport == "GET") {
				if(getString) {
					_url = this.url + "?" + getString;
				}else{
					_url = this.url;
				}
				request.open("GET",_url,true);
				request.send(null);
			} else{
				_url = this.url ;
				request.open("POST",_url,true);
				request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				trace(getString);
				request.send(getString);
			}
		}
	};

	// ----------------------------------------------------------------------------------------------------------

	var overNode = null;

	var cacheContent = {};

	var getTimer = null;

	var viewNum = 0;

	function liOver (oNode) {
		//try {

			setStyle($E("cid_20"), "visibility", "visible");
			if(overNode != null) {
				overNode.className = "";
			}
			oNode.className = "on";
			overNode = oNode;

			var getNum = oNode.id.split("_")[1];
			if(viewNum == getNum)return;
			if(cacheContent[getNum] == null) {
				cacheContent[getNum] = {};
			}
			if(cacheContent[getNum].data != null) {
				var grp_list = $E("box_21");
				grp_list.innerHTML = cacheContent[getNum].data;
				setTimeout(checkHeight, 1);
				viewNum = getNum;
				return;
			}
			if(cacheContent[getNum].run == true) {
				return;
			}
			clearTimeout(getTimer);
			getTimer = setTimeout(function () {
				cacheContent[getNum].ajax = new Ajax("/app/index/index_subnav.php?fid=" + getNum);
				cacheContent[getNum].run = true;
				cacheContent[getNum].ajax.load("xml", "GET", function (text) {
					cacheContent[getNum].data = formatXML(text);
					cacheContent[getNum].run = false;
					setTimeout(checkHeight, 1);
					viewNum = getNum;
				});
			}, 200);
		//}
		//catch(e) {}
	}
	function $t(s, o){
		if (o == null){
			return document.getElementsByTagName(s);
		}
		else{
			return o.getElementsByTagName(s);
		}
	}
	function $c(s){
		return document.createElement(s);
	}
	function isNull(_sVal){
		return (_sVal === "" || _sVal == null || _sVal == "undefined");
	}

	function checkHeight () {
		var grp_list = $E("box_20");
		if($E("box_21").offsetHeight > 190) {
			setStyle(grp_list, "height", "190px");
			setStyle(grp_list, "overflowY", "scroll");
		}
		else {
			setStyle(grp_list, "height", "");
			setStyle(grp_list, "overflowY", "");
		}
		grp_list.innerHTML = $E("box_21").innerHTML;

	}
	function formatXML(oXML) {
		var grp_list = $E("box_21");
		grp_list.innerHTML = "";
		var s = eval($t("info", oXML)[0].firstChild.nodeValue);
		for (var i = 0; i < s.length; i++) {
			var list = $c("div");
			list.className = "content";
			if (!isNull(s[i].sublist) && s[i].sublist.length > 0) {
				var _sw = "<div class='b_main'><a href='" + s[i].url + "' target='_blank'>" + s[i].title + "</a></div>";
				_sw += "<ul class='b_list'>";
				for (var sub_x = 0; sub_x < s[i].sublist.length; sub_x++) {
					_sw += "<li>";
					_sw += "<a href='" + s[i].sublist[sub_x].url + "' target='_blank'>" + s[i].sublist[sub_x].title + "</a></li>";
				}
				_sw += "</ul>";list.innerHTML = _sw;
			} 
			else {
				var _sw = "<div class='b_main'><a href='" + s[i].url + "' target='_blank'>" + s[i].title + "</a></div>";
				list.innerHTML = _sw;
			}
			grp_list.appendChild(list);
		}
		return grp_list.innerHTML;
	}
	var nav = function () {
		var i;
		var nodes = $("mainNav").getElementsByTagName("li");
		var len = nodes.length;
		for(i = 0; i < len; i ++ ) {
			addEvent2(nodes[i], bind(liOver, this, [nodes[i]]), "mouseover");
		}
		var cidNode = $E("cid_20");
		var topNavNode = $E("topNavBox");
		var mainNav = $E("mainNav");
		addEvent2(document.body, function () {
			if(contains(cidNode, getEvent().target || getEvent().srcElement) == false && contains(mainNav, getEvent().target || getEvent().srcElement) == false) {
				setStyle(cidNode, "visibility", "hidden");
				if(overNode)
					overNode.className = "";
			}
			else {
				setStyle(cidNode, "visibility", "visible");
			}
		}, "mousemove");

		addEvent2($E("btnclose"), function () {
			setStyle(cidNode, "visibility", "hidden");
			if(overNode)
				overNode.className = "";
		}, "click");
	};
	return nav;
})();



/*function ignoreError() {  return true;}
window.onerror = ignoreError;*/


