if (!window.console || !console.firebug){
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

    window.console = {};
    for (var i = 0; i < names.length; ++i) {
        window.console[names[i]] = function() {}
    }
}

function $d(id) {
	return document.getElementById(id);
}

/**
 * 计算字符串长度
 *
 * @param string str 传入的字符串
 * @param string len 中文算几个字节
 *
 * @return int 返回字符串长度
 */
function cutstr(str, len){
	var byteLen = 0;
	len = len || 3;
	for(var i=0; i<str.length; i++){
	  if((/[\x00-\xff]/g).test(str.charAt(i))){
		byteLen += 1;
	  }else{
		byteLen += len;
	  }
	}
	return byteLen;
}

/**
 * 表单input字符输入长度计算及限定
 */
function changeNotice(e, limit, leng){
	var num = (limit - leng);
	if (0 > num) {
		e.text(0);
	} else {
		e.text(num);
		return false;
	}
}

function compute(e){
	var $tip = $('i', $('font#' + e.attr('tip')));
	var $limit = parseInt(e.attr('maxlength'));
	var $leng = mbstrlen(e.val());
	changeNotice($tip, $limit, $leng);
}

/**
 * 分页跳转
 */
function doPage(obj, callback, uri) {
	if (obj.value == '') {
		alert('请输入页码！');
		obj.focus();
	} else {
		if (!obj.value.replace(/[0-9]+/g, '').length) {
			url = uri.replace(/\[PAGE\]/g, obj.value);
            if(callback){
			    callback(url);
            }else{
                location.href = url;
            }
		} else {
			alert('您输入的页码有误，请重新输入！');
            obj.value = '';
			obj.focus();
		}
	}
}

/**
 * 加入收藏
 */
function addFavorite($sitename){
    if (document.all){
        window.external.addFavorite('http://'+location.hostname, $sitename);
    }else if(window.sidebar){
        window.sidebar.addPanel($sitename, 'http://'+location.hostname, "");
    }
}
/**
 * 设为首页
 */
function setHomepage(){
    if (document.all){
        document.body.style.behavior='url(#default#homepage)';
        document.body.setHomePage('http://'+location.hostname);
    }else if(window.sidebar){
        if(window.netscape){
            try{
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }catch (e){
                alert("该操作被浏览器拒绝，如果想启用该功能，请在地址栏内输入 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', 'http://'+location.hostname);
    }
}

/**
 * 设置cookie
 */
function setcookie(cookieName, cookieValue, seconds, path, domain, secure) {
	var expires = new Date();
	expires.setTime(expires.getTime() + seconds);
    hostname = location.hostname.substr(location.hostname.indexOf('.'));
	domain = !domain ? hostname : domain;
	path = !path ? '/' : path;
	document.cookie = escape(cookieName) + '=' + escape(cookieValue)
		+ (expires ? '; expires=' + expires.toGMTString() : '')
		+ (path ? '; path=' + path : '/')
		+ (domain ? '; domain=' + domain : '')
		+ (secure ? '; secure' : '');
}

/**
 * 读取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)));
}

/**
 * 数据loading开始
 */
function loading(text, jq) {
    $('div#loading_panel').remove();
    if(jq){
        jq.html('<img src="/images/common/ajax-loader-gray.gif" class="loadingimg" /><span id="text">' + text + '</span>');
        return false;
    }
    var panel = $('<div id="loading_panel"><img src="/images/common/ajax-loader-gray.gif" style="margin:0 3px;vertical-align:middle;" /><span id="text">Loading data, please wait ...</span></div>');
    $('body').append(panel);
    var left = ($('body').width() - panel.width())/2 - panel.width()/2 + 'px';
    panel.children('#text').html(text);
    panel.css({'left':left}).show();
}

/**
 * 数据loading结束
 */
function unloading(jq, code, message) {
    if(jq){
		code = parseInt(code, 10);
		if(isNaN(code)) {
			jq.html('');
			return false;
		}
        if(code == 1){
            jq.html('<img src="/images/common/ok.png" class="loadingimg" />');
        }else if(code == 0){
            jq.html('<img src="/images/common/error.png" class="loadingimg" />');
            if(message != 'undefined' && message){
                $.alertPopup({title:'错误', content:'<p class="span">'+message+'</p>'});
            }
        }else{
            jq.html('');
        }
        return false;
    }
    $('#loading_panel').remove();
}

/**
 * 测试数组中是否存在指定值
 */
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;
}

/**
 * 获取字符串长度
 */
function mb_strlen(str) {
	var len = 0;
	for(var i = 0; i < str.length; i++) {
		len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? 3 : 1;
	}
	return len;
}

/**
 * 截取字符串到指定长度
 */
function mb_cutstr(str, maxlen, dot) {
	var len = 0;
	var ret = '';
	var dot = !dot ? '...' : '';
	maxlen = maxlen - dot.length;
	for(var i = 0; i < str.length; i++) {
		len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? 3 : 1;
		if(len > maxlen) {
			ret += dot;
			break;
		}
		ret += str.substr(i, 1);
	}
	return ret;
}

/**
 * 复制内容到剪切板
 *
 * @param string text 被复制的内容
 * @param string alertmsg Alert 提示信息
 */
function copyToClipBoard(text, alertmsg) {
    if(!alertmsg){
        alertmsg = '复制到剪切板成功!';
    }
    if($.browser.msie) {
		clipboardData.setData('Text', text);
		alert(alertmsg);
	} else if(prompt('Press Ctrl+C Copy to Clipboard', text)) {
		alert(alertmsg);
	}
}

String.prototype.Query = function(name, value){
    var reg = new RegExp("(^|)"+ name +"=([^&]*)(|$)");
    var tmp = name + "=" + value;
    if(this.match(reg) != null){
        return this.replace(eval(reg),tmp);
    }else{
        if(this.match("[\?]")){
            return this + "&" + tmp;
        }else{
            return this + "?" + tmp;
        }
    }
}
