/*
// @fileoverview  基础函数库
// @author Leo.lu | leo.lu@eastsin.com
*/

/**
 * document.getElementById 的快捷方式
 * @param {String} id字串
 */
function $(el){
	var $_el = typeof(el) == "string" ? document.getElementById(el) : el;
	return $_el;
}

/**
 * 非IE浏览器增加contains方法
 * @example obj.contains(obj);
 */
if(!(/msie/).test(navigator.userAgent.toLowerCase())){
	if(typeof(HTMLElement) != "undefined") {
		HTMLElement.prototype.contains = function (obj){
			while(obj != null && typeof(obj.tagName) != "undefind"){
				if(obj == this) return true;
				obj = obj.parentNode;
			}
			return false;
		};
	}
}

/**
 * 判断某字符串是否在目标数组中
 * @param {String}  目标关键字
 * @param {Array}   目标数组
 * @param {Boolean}   是否全等(即完全相同)
 */
function $inArr(key, arr, same) {
	if(!same) return arr.join(' ').indexOf(key) != -1;
	for (var i=0, l = arr.length; i< l ; i++) if(arr[i]==key) return true;
	return false;
}

/**
 * 为对象添加 className
 * @param {Object} 需要添加className的节点
 * @param {String}  要添加的 className
 */
function $addClassName(el, cls) {
	var el = $(el);
	if(!el) return;
	var clsNames = el.className.split(/\s+/);
	if(!$inArr(cls, clsNames, true)) el.className += ' '+cls;
};

/**
 * 为对象指定 className
 * @param {Object} 需要添加className的节点
 * @param {String}  要添加的 className
 */
function $setClassName(el, cls) {
	var el = $(el);
	if(!el) return;
	el.className = cls;
};

/**
 * 为对象删除 className
 * @param {Object} 需要删除className的节点
 * @param {String}  要删除的 className
 */
function $removeClassName(el, cls) {
	var el = $(el);
	if(!el) return;
	el.className = el.className.replace(new RegExp("(^|\\s+)" + cls + "(\\s+|$)"), ' ');
};

/**
 * 在指定节点上绑定相应的事件
 * @method $addEvent
 * @param {String} elm 需要绑定的节点id
 * @param {Function} func 事件发生时响应的函数
 * @param {String} evType 事件的类型如:click, mouseover
 * @global $addEvent
 * @example
 * 		//鼠标点击testEle则alert "clicked"
 * 		$addEvent("testEle",function () {
 * 			alert("clicked")
 * 		},'click');
 */
function $addEvent(elm, func, evType, useCapture){
	var elm = $(elm);
	if(!elm) return;
	var useCapture = useCapture || false;
	var evType = 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;
	}
}

/**
 * 当文档载入后执行一段函数
 * @param {Function} 要执行的函数
 */
function onReady(func){
	if(typeof(func) != "function") return;
	if(window.addEventListener){
		window.addEventListener("load", func, false);
	}else{
		window.attachEvent("onload", func);
	}
}

/**
 * innerHTML 的快捷方式
 * @param {object} 执行对象
 * @param {String} 要插入的数据
 */
function inner(obj, data){
	if(typeof(obj) != "object") return;
	obj.innerHTML = data;
}

/**
 * 获取当前对象所应用的样式
 * @param {Object} 目标对象
 * @param {String}  需要获取的样式属性
 */
function GetCurrentStyle(el, prop) {
	if (el.currentStyle) {
		return el.currentStyle[prop];
	}else if (window.getComputedStyle) {
		prop = prop.replace(/([A-Z])/g, "-$1");
		prop = prop.toLowerCase();
		return window.getComputedStyle(el, "").getPropertyValue(prop);
	}
	return null;
}

/**
 * 切换HTML元素显示/隐藏状态
 * @param {Object} 目标对象
 * @param {String} 元素 display 状态字符 ( 'none' , 'block', '');
 */
function toggle(el, flag){
	if(!el) return;
	var curState = GetCurrentStyle(el, 'display');
	if(typeof flag == 'undefined') flag = (curState == 'none' ? 'block' : 'none');
	el.style.display = flag;
}

/**
 * 显示一个HTML元素
 * @param {Object} 目标对象
 */
function $show(el){
	el.style.display = "block";
}

/**
 * 隐藏一个HTML元素
 * @param {Object} 目标对象
 */
function $hide(el){
	el.style.display = "none";
}

/**
 * 返回时间戳
 */
function Time(){
	return new Date().getTime();
}

function trim(string){
	return string.replace(/(^\s+)|\s+$/g,"");
}

/**
 * keyword search From Baidu.com
 */
function keysearch(el){
	if(el.length > 0){
		$("sf").target = "_blank";
		$("sf").submit();
	}
}

function _init(){
	var tjcp = $("tjcp");
	var cpxx = $("cpxx");
	tjcp.onmouseover = function(){
		tjcp.className = "current";
		cpxx.className = "";
		$show($("tjcp_box"))
		$hide($("cpxx_box"));
	}
	cpxx.onmouseover = function(){
		tjcp.className = "";
		cpxx.className = "current";
		$hide($("tjcp_box"))
		$show($("cpxx_box"));
	}
}


function setHomepage(url){
	if (document.all){
		document.body.style.behavior='url(#default#homepage)';
		document.body.setHomePage(url);
	}else if(window.sidebar){
		if(window.netscape){
			try{
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
			}catch (e){
				alert( "抱歉!您的浏览器不支持直接设为首页" );
			}
		}
		var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
		prefs.setCharPref('browser.startup.homepage',url);
	}
}


function AddFavorite(sURL, sTitle){
	try{
		window.external.addFavorite(sURL, sTitle);
	}catch (e){
		try{
			window.sidebar.addPanel(sTitle, sURL, "");
		}catch (e){
			alert("加入收藏失败，请使用Ctrl+D进行添加");
		}
	}
}
