/*
更新：2008-09-08
//一般性的页面都要调用此公共文件
*/

var lang = new Array();
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);

//快捷方式
function $(id) {
	return document.getElementById(id);
}

//menu.js有用到此函数
function doane(event) {
	e = event ? event : window.event;
	if(is_ie) {
		e.returnValue = false;
		e.cancelBubble = true;
	} else if(e) {
		e.stopPropagation();
		e.preventDefault();
	}
}

//获得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' : '');
}

//判断一个值是否是一个数组的元素，只能判断字串数组或数字数组
function in_array(needle, haystack) {
	if(typeof needle == 'string' || typeof needle == 'number') {
		for(var i in haystack) {
			if(haystack[i] == needle) {
					return true;
			}
		}
	}
	return false;
}

//点击复制一段文字，免除ctrl+c。
function setcopy(text, alertmsg){
	if(is_ie) {
		clipboardData.setData('Text', text);
		alert(alertmsg);
	} else if(prompt('请用 Ctrl+C 复制内容！', text)) {
		alert(alertmsg);
	}
}

//判断是否定义一个变量，menu.js有用到
function isUndefined(variable) {
	return typeof variable == 'undefined' ? true : false;
}

//获得一个字符串的长度，区分汉字、字母，汉字算2个
function mb_strlen(str,charset) {
	var len = 0;
	if(isUndefined(charset)) charset = "gb2312";
	for(var i = 0; i < str.length; i++) {
		len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1;
	}
	return len;
}

//获得一个字符串的长度，不区分汉字、字母,汉字算1个
function strlen(str) {
	return (is_ie && str.indexOf('\n') != -1) ? str.replace(/\r?\n/g, '_').length : str.length;
}

//剔除字串两头的空字符
function trim(str) {
	return (str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, '');
}

//返回：去除右边的空格后的字串
function strRtrim(str){
	return str.replace(/(\s*$)/g, ""); 
}

//返回：去除左边的空格后的字串
function strLtrim(str){
	return this.replace(/(^\s*)/g, ""); 
}

// 截取固定长度子字符串 sSource为字符串iLen为长度 
function getInterceptedStr(sSource, iLen){ 
    if(sSource.replace(/[^\x00-\xff]/g,"xx").length <= iLen) 
    { 
        return sSource; 
    } 
    var ELIDED = ""; 
     
    var str = ""; 
    var l = 0; 
    var schar; 
    for(var i=0; schar=sSource.charAt(i); i++) 
    { 
        str += schar; 
        l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1); 
        if(l >= iLen - ELIDED.length) 
        { 
            break; 
        } 
    } 
    str += ELIDED; 
     
    return str; 
}

//字串累加类，处理字串累加的效率比较高
function LsyString(){
	this.arr = new Array();
	this.append = function(){
	   this.arr.push.apply(this.arr, arguments);
	}
	this.toString = function(){
	   return this.arr.join('');
	}
}

