//公共
//sanda lwq

/*---------------------------------------------------------------------
	函数
---------------------------------------------------------------------*/

///////////////////////////////// DOM操作 /////////////////////////////////

//简化取ID对应元素的操作
function $(id) {
	return document.getElementById(id);
}

//查找XML中某个元素的文本
function getChildElementText(parentNode, childTagName) {
    var childTag = parentNode.getElementsByTagName(childTagName);
    return childTag[0].firstChild ? childTag[0].firstChild.nodeValue : '';
}

//判断是否 undefined
function isUndefined(variable) {
	return typeof variable == 'undefined' ? true : false;
}

//属性的枚举
function enum_p(obj) {
	var str='';
	for(var name in obj){
		if (obj[name] != null)
		{
			str = str + "<br>" + name + ":" + obj[name];
		}
	}
	return str;
}

//回收内存
function FreeMemory(x){
	var obj;
	for(obj in x) {
		x[obj] = null;
	}
	x = null;
	//CollectGarbage();
}

///////////////////////////////// 字符串或数字操作 /////////////////////////////////

//Trim
function StrTrim(Str) {
   return Str.replace(/(^\s*)|(\s*$)/g, "");
}

///////////////////////////////// 数组操作 /////////////////////////////////

//pop
function arraypop(a) {
	if(typeof a != 'object' || !a.length) {
		return null;
	} else {
		var response = a[a.length - 1];
		a.length--;
		return response;
	}
}

//push
function arraypush(a, value) {
	a[a.length] = value;
	return a.length;
}

//in
function in_array(needle, haystack) {
	if(typeof needle == 'string') {
		for(var i in haystack) {
			if(haystack[i] == needle) {
					return true;
			}
		}
	}
	return false;
}

//减字符串元素	(lwq)
function arraydelstr(a, str) {
	if(typeof a != 'object' || !a.length) {
		return null;
	} else {
		for (var i=0;i<a.length;i++)
		{
			if (a[i]==str)
			{
				a[i]=null;
				return true;//找到并已删除
			}
		}
		return false;//找不到
	}
}

//加字符串元素	(lwq)
function arrayaddstr(a, str) {
	if(typeof a != 'object') {
		return null;
	} else {
		for (var i=0;i<a.length;i++)
		{
			if (a[i]==null)
			{
				a[i]=str;
				return true;//找到空间并已插入
			}
		}
		a[a.length] = str;
		return false;//找不到空间, 在后面追加
	}
}

///////////////////////////////// 操作cookie /////////////////////////////////

//读cookie
function getcookie(name) {
	var cookie_start = document.cookie.indexOf(name);
	var cookie_end = document.cookie.indexOf(";", cookie_start);
	return cookie_start == -1 ? '' : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)));
}

//写cookie
function setcookie(cookieName, cookieValue, seconds, path, domain, secure) {
	var expires = new Date();
	expires.setTime(expires.getTime() + seconds);
	document.cookie = escape(cookieName) + '=' + escape(cookieValue)
		+ (expires ? '; expires=' + expires.toGMTString() : '')
		+ (path ? '; path=' + path : '/')
		+ (domain ? '; domain=' + domain : '')
		+ (secure ? '; secure' : '');
}

///////////////////////////////// 加密解密转换 /////////////////////////////////

//转换成可在URL中作为参数传递的字符	(lwq)
function lwqEnCode(str) 
{ 
	var s = str; 
	if (s.length == 0) return ""; 
	//符号
	s = s.replace(/\n/g, "_br~"); 
	s = s.replace(/\"/g, "_quot~"); 
	s = s.replace(/#/g, "_35~"); 
	s = s.replace(/%/g, "_37~"); 
	s = s.replace(/&/g, "_amp~"); 
	s = s.replace(/\'/g, "_39~"); 
	s = s.replace(/\(/g, "_40~"); 
	s = s.replace(/\)/g, "_41~"); 
	s = s.replace(/\*/g, "_42~"); 
	s = s.replace(/\+/g, "_43~"); 
	s = s.replace(/:/g, "_58~"); 
	s = s.replace(/;/g, "_59~"); 
	s = s.replace(/</g, "_lt~"); 
	s = s.replace(/=/g, "_61~"); 
	s = s.replace(/>/g, "_gt~"); 
	s = s.replace(/\?/g, "_63~"); 
	s = s.replace(/@/g, "_64~"); 
	s = s.replace(/ /g, "_nbsp~"); 
	//SQL关键字
	s = s.replace(/alter/ig, "a_lter"); 
	s = s.replace(/and/ig, "a_nd"); 
	s = s.replace(/create/ig, "c_reate"); 
	s = s.replace(/count/ig, "c_ount"); 
	s = s.replace(/char/ig, "c_har"); 
	s = s.replace(/chr/ig, "c_hr"); 
	s = s.replace(/declare/ig, "d_eclare"); 
	s = s.replace(/delete/ig, "d_elete"); 
	s = s.replace(/drop/ig, "d_rop"); 
	s = s.replace(/exec/ig, "e_xec"); 
	s = s.replace(/from/ig, "f_rom"); 
	s = s.replace(/insert/ig, "i_nsert"); 
	s = s.replace(/join/ig, "j_oin"); 
	s = s.replace(/master/ig, "m_aster"); 
	s = s.replace(/mid/ig, "m_id"); 
	s = s.replace(/select/ig, "s_elect"); 
	s = s.replace(/set/ig, "s_et"); 
	s = s.replace(/truncate/g, "t_runcate"); 
	s = s.replace(/update/ig, "u_pdate"); 
	return s; 
} 

//还原成可在HTML表现的字符	(lwq)
function lwqDeCode(str) 
{ 
	var s = str; 
	if (s.length == 0) return ""; 
	//符号
	s = s.replace(/_br~/g, "<br>"); 
	s = s.replace(/_quot~/g, "&quot;"); 
	s = s.replace(/_35~/g, "#"); 
	s = s.replace(/_37~/g, "%"); 
	s = s.replace(/_amp~/g, "&amp;"); 
	s = s.replace(/_39~/g, "&#39"); 
	s = s.replace(/_40~/g, "("); 
	s = s.replace(/_41~/g, ")"); 
	s = s.replace(/_42~/g, "*"); 
	s = s.replace(/_43~/g, "+"); 
	s = s.replace(/_58~/g, ":"); 
	s = s.replace(/_59~/g, "&#59"); 
	s = s.replace(/_lt~/g, "&lt;"); 
	s = s.replace(/_61~/g, "="); 
	s = s.replace(/_gt~/g, "&gt;"); 
	s = s.replace(/_63~/g, "?"); 
	s = s.replace(/_64~/g, "@"); 
	s = s.replace(/_nbsp~/g, " "); 
	//SQL关键字
	s = s.replace(/a_lter/ig, "alter"); 
	s = s.replace(/a_nd/g, "and"); 
	s = s.replace(/c_reate/ig, "create"); 
	s = s.replace(/c_ount/g, "count"); 
	s = s.replace(/c_har/g, "char"); 
	s = s.replace(/c_hr/g, "chr"); 
	s = s.replace(/d_eclare/g, "declare"); 
	s = s.replace(/d_elete/ig, "delete"); 
	s = s.replace(/d_rop/ig, "drop"); 
	s = s.replace(/e_xec/g, "exec"); 
	s = s.replace(/f_rom/g, "from"); 
	s = s.replace(/i_nsert/g, "insert"); 
	s = s.replace(/j_oin/ig, "join"); 
	s = s.replace(/m_aster/g, "master"); 
	s = s.replace(/m_id/g, "mid"); 
	s = s.replace(/s_elect/g, "select"); 
	s = s.replace(/s_et/g, "set"); 
	s = s.replace(/t_runcate/g, "truncate"); 
	s = s.replace(/u_pdate/g, "update"); 
	return s; 
} 

///////////////////////////////// 浏览器相关 /////////////////////////////////

//解析按键
	/*调用方法
	function send_text_kp(e){
		var keyVar = KeyResolve(e);
		if (keyVar) {
			if(keyVar.keyCode == 13 && keyVar.ctrlKey) {
				......
			} 
		}
	}
	//以属性方法赋值可兼容IE和FF
	$('send_text').onkeydown = send_text_kp; 
	*/
function KeyResolve(e) {
	//在IE中不能截获ALT+key
	var keyCode,shiftKey,ctrlKey,altKey;
	var RV = {
		keyCode: 0,
		shiftKey: false,
		ctrlKey: false,
		altKey: false
	};
	if (! is_ie) {
		RV.keyCode=e.keyCode; 
		RV.shiftKey=e.shiftKey;
		RV.ctrlKey=e.ctrlKey;
		RV.altKey=e.altKey;
	} 
	if (is_ie) {
		RV.keyCode=event.keyCode;
		RV.shiftKey=event.shiftKey;
		RV.ctrlKey=event.ctrlKey;
		RV.altKey=event.altKey;
	}
	//忽略Shift, Ctrl, Alt
	if (RV.keyCode == 16 || RV.keyCode == 17 || RV.keyCode == 18) {
		return null;
	}else{
		return RV;
	}
}

//用javascript接收QueryString
var Request = {
	QueryString : function(item){
		var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)","i"));
		return svalue ? svalue[1] : svalue;
	}
}

//加入收藏夹
function bookmark(url, title){
	//如果没有给参数, 用默认值
	if (! title)
	{
		title=document.title;
	}
	if (! url)
	{
		url=document.location.href;
	}
	if (window.sidebar) {
		window.sidebar.addPanel(title, url,"");
	} else if ( window.opera && window.print ) {
		var mbm = document.createElement('a');
		mbm.setAttribute('rel','sidebar');
		mbm.setAttribute('href',url);
		mbm.setAttribute('title',title);
		mbm.click();
	} else if ( document.all ) {
		window.external.AddFavorite( url, title);
	}
}

/*---------------------------------------------------------------------
	开始
---------------------------------------------------------------------*/

//分析浏览器版本
var userAgent = navigator.userAgent.toLowerCase();
var is_webtv = userAgent.indexOf('webtv') != -1;
var is_kon = userAgent.indexOf('konqueror') != -1;
var is_mac = userAgent.indexOf('mac') != -1;
var is_saf = userAgent.indexOf('applewebkit') != -1 || navigator.vendor == 'Apple Computer, Inc.';
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko' && !is_saf) && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ns = userAgent.indexOf('compatible') == -1 && userAgent.indexOf('mozilla') != -1 && !is_opera && !is_webtv && !is_saf;
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera && !is_saf && !is_webtv) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);

//检测浏览器是否移动版本
var is_mobile = userAgent.indexOf('mobile') != -1;
