﻿///=======================================================
/// Author:  Carl.Zhao
/// Date:    2009-11-07
/// Desc:    该文件中包含了一些常用的JS函数
///=======================================================
var Common = {};
Common.AddEvent = function (o, a, b) {
    o.attachEvent ? o.attachEvent('on' + a, function () { b.call(o); }) : o.addEventListener(a, b, false);
};
Common.Select = {
    Clear: function (o) {
        o.options.length = 0;
    },
    Add: function (o, v, t) {
        o.options.add(new Option(t, v));
    },
    Text: function (o) {
        return o.options[o.selectedIndex].text;
    },
    Value: function (o) {
        return o.options[o.selectedIndex].value;
    }
};
Common.GetFileInfo = {
    FileName: function (v) {
        return v.empty() ? '' : v.match(/([^\/]+)\.\w+$/)[1];
    },
    FullName: function (v) {
        return v.empty() ? '' : v.match(/([^\/]+)\.\w+$/)[0];
    }

};
function getElem(obj)
{
    return document.getElementById(obj);
}

function getElemValue(obj)
{
    return document.getElementById(obj).value;
}

///=======================================================
/// Function Name:checkIsEmpty
/// Function Desc:检查文本框中是否有值
///=======================================================
function checkIsEmpty(obj)
{
    if(obj != null)
    {
        if(document.getElementById(obj).value.trim() == "")
            return false;        
        return true;
    }
}

///=======================================================
/// Function Name:checkTextLength
/// Function Desc:检查文本框中输入文本的长度是否符合要求
///=======================================================
function checkTextLength(obj, length)
{
    if(obj != null)
    {
        if(document.getElementById(obj).value.trim().length > length)
            return false;        
        return true;
    }
}

///=======================================================
/// Function Name:trim
/// Function Desc:删除左右两端的空格
///=======================================================
function trim(str)
{
    return str.replace(/(^\s*)|(\s*$)/g, "");
}

///=======================================================
/// Function Name:ltrim
/// Function Desc:删除左边的空格
///=======================================================
function ltrim(str)
{
    return str.replace(/(^\s*)/g,"");
}

///=======================================================
/// Function Name:rtrim
/// Function Desc:删除右边的空格
///=======================================================
function rtrim(str)
{
    return str.replace(/(\s*$)/g,"");
}

///=======================================================
/// Function Name:trim、ltrim、rtrim
/// Function Desc:删除字符串两端、左、右空格
///=======================================================
String.prototype.trim  = function(){return this.replace(/(^\s*)|(\s*$)/g, "");}   
String.prototype.ltrim = function(){return this.replace(/(^\s*)/g, "");}   
String.prototype.rtrim = function(){return this.replace(/(\s*$)/g, "");}  
String.prototype.empty = function() { return this.trim() == "";};
String.prototype.number = function() {return /^[+-]?\d+(\.\d+)?$/.test(this);};
String.prototype.pic = function() {return /^.+.(gif|jpg|jpeg|png|bmp)$/i.test(this);};
String.prototype.truncated = function(l) { var s = this.trim(); return s.length > l ? s.substring(0, l) : s;};
String.prototype.confirm = function(v) {return this.trim() == v.trim();}; 
String.prototype.format = function() { var args = arguments;return this.replace(/\{(\d+)\}/g, function(m, i) {return args[i];});};

///=======================================================
/// Function Name:checkIsDecimal
/// Function Desc:检验输入的数字是否为货币类型
///=======================================================
function checkIsDecimal(value,length)
{
    value = new String(value);
    
    if(value.match(/^[0-9]{1,}\.{0,1}[0-9]{0,}$/g) == null)
        return false;
        
    var sp = value.split(".");
    if(sp.length == 1)
    {
        if(sp[0].trim().length < 1)
	    {
            return false;
	    }        
    }
    else if(sp.length == 2)
    {
        if(sp[0].trim().length < 1 || sp[1].length != length)
        {	    
            return false;
	    }
    }
    else
    {	
        return false;
    }
    
    return true;
}

///=======================================================
/// Function Name:checkIsDecimal
/// Function Desc:检验输入的数字是非负浮点型
///=======================================================
function checkIsNumberic(value)
{
    value = new String(value);
    
    if(value.match(/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$/g) == null)
        return false;
        
    return true;
}

///=======================================================
/// Function Name:checkIsCharAndNum
/// Function Desc:输入框中只能输入文字、数字和字母
///=======================================================
function checkIsCharAndNum(obj)
{
    var value = document.getElementById(obj).value;
    var reg = /^([A-Z]|[^u4E00-u9FA5]|[a-z]|[\d])*$/g; 
        
    if(reg.exec(value) == null)
    {  
        return false;	
    }
            
    return true;
}

///=======================================================
/// Function Name:checkNumber
/// Function Desc:输入框中只能输入数字
///=======================================================
function checkNumber(value)
{
    var number = value.trim();    
    var reg = /[^0-9]/g; 
        
    if(reg.exec(number) == null)
    {                
        return true;
    }
    
    return false;
}

///=======================================================
/// Function Name:checkLetter
/// Function Desc:输入框中只能输入字母
///=======================================================
function checkLetter(value)
{
    var chars = value.trim();    
    var reg = /[^A-Za-z]/g; 
        
    if(reg.exec(chars) == null)
    {  
        return true;	
    } 
    
    return false;
}

///=======================================================
/// Function Name:checkChinese
/// Function Desc:输入框中只能输入中文字符
///=======================================================
function checkChinese(value)
{
    var chars = value.trim(); 
    var reg = /[^\u4E00-\u9FA5]/g;         
    if(reg.exec(chars) == null)
    {                
        return true;
    }    
    return false;
}

///=======================================================
/// Function Name:checkEmail
/// Function Desc:检查文本框中输入的Email是否正确
///=======================================================
 function checkEmail(str)
{
    var r = false;
    var parat=/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    		  	          
    if(parat.exec(str) == null)                    
       r = false;
    else                
       r = true;
    return r;
}


///=======================================================
/// Function Name:checkMobile
/// Function Desc:检查文本框中输入的是否为手机号码，手机号
/// 码可为11位或12位，当为11位时第一个数字必需为1第二个数
/// 字为3或5，如果为12位手机号时第一个数字必需为0，第二个
/// 数字必需为1，第三个数定为3或5
///=======================================================
function checkMobile(val)
{
    var number = val;   
	if(val.trim() == '') 
	    return false;
	
    var r = false;
    var regx = /^(130|131|132|133|134|135|136|137|138|139|158|159)\d{8}$/;   
    var regx2 = /^(0130|0131|0132|0133|0134|0135|0136|0137|0138|0139|0158|0159)\d{8}$/;
    var regx3 = /^(13|15|18)\d{9}$/;
    var regx4 = /^(013|015|018)\d{9}$/;    

    if(number.length == 12)
    { 
   	    if(regx4.exec(number) == null)                
            r = false;
        else               
            r = true; 
    }
    if(number.length == 11)
    {
         if(regx3.exec(number) == null)                
            r = false;
        else               
            r = true;
	}        
    return r;
}

///=======================================================
/// Function Name:checkTelNum
/// Function Desc:检查文本框中输入的是座机号码
///=======================================================
function checkTelNum(number)
{
   
    var t = false;       
    var patrn=/^[0-9]{7,8}$/;
    var patrn1=/^[0-9]{3,4}[-]{1}[0-9]{7,8}[-]{1}[0-9]{2,4}$/;
    var patrn2=/^[0-9]{3,4}[-]{1}[0-9]{7,8}$/;
    var patrn3=/^[0-9]{7,8}[-]{1}[0-9]{2,4}$/;	    
    if(patrn.exec(number) == null && patrn1.exec(number)==null && patrn2.exec(number) == null && patrn3.exec(number) == null)
    {                
       t=false;
    }
    else
    {                
       t=true;
    }        
    return t;
}


///=======================================================
/// Function Name:checkIDNO
/// Function Desc:检查文本框中输入身份证号码
///=======================================================
function checkIDNO(str)
{
    var number = str;   
	if(str.trim() == '') 
	    return false;
	    
	if (number.trim().length == 15) 
        re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); 
    else if (number.trim().length == 18) 
        re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); 
    else 
        return false; 
        
    var a = number.trim().match(re); 
    if (a != null) 
    { 
        if (number.trim().length==15) 
        { 
            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); 
            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
        } 
        else 
        { 
            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); 
            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
        } 
        if (!B) 
            return false;
    } 
     
    return true; 
}

///=======================================================
/// Function Name:checkHtml
/// Function Desc:检查文本框中输入内容是否含有HTML标记
///=======================================================
function checkHtml(value)
{
    var chars = value;   

 	var reg = /[\<\>\<>\/>\<\/>]/g;    
 
    if(reg.exec(chars) == null)
    {                
       return true;
    }    
       return false;      	   
}

///=======================================================
/// Function Name:getParasValue
/// Function Desc:获取URL中的参数值
///=======================================================
function getParasValue(name)
{
    var str = window.location.search;
    if (str.indexOf(name) != -1)
    {
        var pos_start = str.indexOf(name) + name.length + 1;
        var pos_end = str.indexOf("&",pos_start);
        if (pos_end == -1)
        {
            return str.substring(pos_start);
        }
        else
        {
            return str.substring(pos_start,pos_end)
        }
    }
    else
    {
        return "";
    }
}

///=======================================================
/// Function Name:Encrypt
/// Function Desc:JS字符串加密
///=======================================================
function Encrypt(str, pwd) {
    if (str == "") return "";
    str = escape(str);
    if (!pwd || pwd == "") { var pwd = "1234"; }
    pwd = escape(pwd);
    if (pwd == null || pwd.length <= 0) {
        alert("Please enter a password with which to encrypt the message.");
        return null;
    }
    var prand = "";
    for (var I = 0; I < pwd.length; I++) {
        prand += pwd.charCodeAt(I).toString();
    }
    var sPos = Math.floor(prand.length / 5);
    var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos * 2) + prand.charAt(sPos * 3) + prand.charAt(sPos * 4) + prand.charAt(sPos * 5));

    var incr = Math.ceil(pwd.length / 2);
    var modu = Math.pow(2, 31) - 1;
    if (mult < 2) {
        alert("Algorithm cannot find a suitable hash. Please choose a different password. \nPossible considerations are to choose a more complex or longer password.");
        return null;
    }
    var salt = Math.round(Math.random() * 1000000000) % 100000000;
    prand += salt;
    while (prand.length > 10) {
        prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
    }
    prand = (mult * prand + incr) % modu;
    var enc_chr = "";
    var enc_str = "";
    for (var I = 0; I < str.length; I++) {
        enc_chr = parseInt(str.charCodeAt(I) ^ Math.floor((prand / modu) * 255));
        if (enc_chr < 16) {
            enc_str += "0" + enc_chr.toString(16);
        } else
            enc_str += enc_chr.toString(16);
        prand = (mult * prand + incr) % modu;
    }
    salt = salt.toString(16);
    while (salt.length < 8) salt = "0" + salt;
    enc_str += salt;
    return enc_str;
}

///=======================================================
/// Function Name:Encrypt
/// Function Desc:JS字符串解密
///=======================================================
function Decrypt(str, pwd) {
    if (str == "") return "";
    if (!pwd || pwd == "") { var pwd = "1234"; }
    pwd = escape(pwd);
    if (str == null || str.length < 8) {
        alert("A salt value could not be extracted from the encrypted message because it's length is too short. The message cannot be decrypted.");
        return;
    }
    if (pwd == null || pwd.length <= 0) {
        alert("Please enter a password with which to decrypt the message.");
        return;
    }
    var prand = "";
    for (var I = 0; I < pwd.length; I++) {
        prand += pwd.charCodeAt(I).toString();
    }
    var sPos = Math.floor(prand.length / 5);
    var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos * 2) + prand.charAt(sPos * 3) + prand.charAt(sPos * 4) + prand.charAt(sPos * 5));
    var incr = Math.round(pwd.length / 2);
    var modu = Math.pow(2, 31) - 1;
    var salt = parseInt(str.substring(str.length - 8, str.length), 16);
    str = str.substring(0, str.length - 8);
    prand += salt;
    while (prand.length > 10) {
        prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
    }
    prand = (mult * prand + incr) % modu;
    var enc_chr = "";
    var enc_str = "";
    for (var I = 0; I < str.length; I += 2) {
        enc_chr = parseInt(parseInt(str.substring(I, I + 2), 16) ^ Math.floor((prand / modu) * 255));
        enc_str += String.fromCharCode(enc_chr);
        prand = (mult * prand + incr) % modu;
    }
    return unescape(enc_str);
}

///=======================================================
/// Function Name:cutString
/// Function Desc:截取过长的字符串
///=======================================================
function cutString(value,length)
{
    var str = "";
    
    if(value != "")
    {
        if(value.length > length)
            str = value.substring(0,length) + "...";
        else
            str = value;
    }
    
    return str;
}
///=======================================================
/// Function Name:AddFavorite
/// Function Desc:添加到收藏夹
///=======================================================
function AddFavorite(sURL, sTitle) {
        try {
            window.external.addFavorite(sURL, sTitle);
        }
        catch (e) {
            try {
                window.sidebar.addPanel(sTitle, sURL, "");
            }
            catch (e) {
                alert("加入收藏失败，请使用Ctrl+D进行添加");
            }
        }
    }
///=======================================================
/// Function Name:SetHome
/// Function Desc:设置主页
///=======================================================
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 Name:checkStyle
/// Function Desc:党政机关首页选项样式
///=======================================================
function checkStyle(num){
    if(num == 0) {
        document.getElementById('divDefault').style.display = "block";
        document.getElementById('divDetails').style.display = "none";
        document.getElementById("wd").innerHTML='<span title="ntalker支持" id="wdk_user_'+AccessNsid+'" class="wdk_user_status_span" style="padding-left: 1px; margin-top: 3px; display: block;"> <a alt="跟我聊天" style="padding: 0px; overflow: visible; display: inline;" href="message.shtml"><img border="0" src="http://common.nsid.cn/Message/tip04no.gif" id="wdk_presence_'+AccessNsid+'" style="display: inline; left: 0px; top: 0px;" name="wdk_presence_image" /></a></span>';
        document.getElementById("wp").innerHTML='';
    }
    else {
        document.getElementById('divDefault').style.display = "none";
        document.getElementById('divDetails').style.display = "block";
        document.getElementById("wd").innerHTML='';
        document.getElementById("wp").innerHTML='<span title="ntalker支持" id="wdk_user_'+AccessNsid+'" class="wdk_user_status_span" style="padding-left: 1px; margin-top: 3px; display: block;"> <a alt="跟我聊天" style="padding: 0px; overflow: visible; display: inline;" href="message.shtml"><img border="0" src="http://common.nsid.cn/Message/tip04no.gif" id="wdk_presence_'+AccessNsid+'" style="display: inline; left: 0px; top: 0px;" name="wdk_presence_image" /></a></span>';
        for(var i = 1;i <= 5; i++) {
            if(i == num)
                document.getElementById("a" + i).className = "e";
            else
                document.getElementById("a" + i).className = "";
        }
    }
}
///=======================================================
/// Function Name:setCookie
/// Function Desc:设定Cookie值
///=======================================================
function setCookie(name, value){
    var expdate = new Date();
    var argv = setCookie.arguments;
    var argc = setCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
    document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
    +((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
    +((secure == true) ? "; secure" : "");
}
///=======================================================
/// Function Name:getCookieVal
/// Function Desc:获得Cookie解码后的值
///=======================================================
function getCookieVal(offset)
{
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1)
        endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}
///=======================================================
/// Function Name:getCookie
/// Function Desc:获得Cookie的原始值
///=======================================================
function getCookie(name){
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen)
    {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
            return getCookieVal (j);
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    return null;
}
///=======================================================
/// Function Name:delCookie
/// Function Desc:删除Cookie
///=======================================================
function delCookie(name){
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    var cval = getCookie (name);
    document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}
function ReplyOnblur() {
    var txtReply = document.getElementById("txtMessage");
    if (txtReply.value == "发表意见请在此对话框中输入,最多可输入500字的评论")
        txtReply.value = "";
}

function getCount() {
    var l = document.getElementById("count");
    if (l != undefined && l != null) {
        var c = document.getElementById("txtMessage");
        //alert(500-c.value.length);
        var cc = (500 - c.value.length);
        l.innerHTML = cc;
        if (cc < 0) {
            alert('输入内容过多');
            return false;
        }
    }
}