﻿/*----------------------------------------------------------------
Copyright (C) 2009 Subcon China Corporation
File function:常用JS函数于功能模块(依赖于jquery)
Create tag:lyan 2009-5-13
----------------------------------------------------------------*/
// get the culture of client
jQuery.GetLang = function() {
    var language = "";
    // custom variables of calendar
    var MonthConfig, WeekConfig, CloseConfig, TodayConfig, ClearConfig;
    var cookieValue = null;
    
    if (document.cookie && document.cookie != '') {
        var cookies = document.cookie.split(';');
        for (var i = 0; i < cookies.length; i++) {
            var cookie = cookies[i].replace(/(^\s*)|(\s*$)/g, "") ;//替换开头和结尾的空格 （2010-06-30 李春涛）
            if (cookie.substring(0, "CultureName".length + 1) == ("CultureName" + '=')) {
                cookieValue = decodeURIComponent(cookie.substring("CultureName".length + 1));
                break;
            }
        }
    }
    
    if (cookieValue) {
        language = cookieValue;
    }
    else {
        if (navigator.appName == "Netscape") {
            language = navigator.language;
        }
        else {
            language = navigator.browserLanguage;
        }
    }
    language = language.toLowerCase();
    
    return language;
}

if (jQuery.GetLang().indexOf("zh-cn") >= 0) {
    document.writeln("<script src='/javascript/Lang/zh-cn.js' type='text/javascript'></script>");
}
else {
    document.writeln("<script src='/javascript/Lang/en.js' type='text/javascript'></script>");
}
document.writeln("<script src='/javascript/jjp.js'></script>");

//document.domain = "subconchina.com";
// 添加到收藏夹
// 用法:
// $.addFav('http://www.subconchina.com','SubConChina');
jQuery.addFav = function(url, title) {
    if (window.sidebar && "object" == typeof (window.sidebar) && "function" == typeof (window.sidebar.addPanel)) {
        window.sidebar.addPanel(title, url, "")
    }
    else {
        if (document.all && "object" == typeof (window.external)) {
            window.external.addFavorite(url, title)
        }
    }
};

// check if form value changed
// true if changed else false
jQuery.IsFormChanged = function() {
    var isChanged = false;
    var form = document.forms[0];
    for (var i = 0; i < form.elements.length; i++) {
        var element = form.elements[i];
        var type = element.type;
        if (type == "text" || type == "hidden" || type == "textarea" || type == "button") {
            if (element.value != element.defaultValue) {
                isChanged = true;
                break;
            }
        } else if (type == "radio" || type == "checkbox") {
            if (element.checked != element.defaultChecked) {
                isChanged = true;
                break;
            }
        } else if (type == "select-one" || type == "select-multiple") {
            for (var j = 0; j < element.options.length; j++) {
                if (element.options[j].selected != element.options[j].defaultSelected) {
                    isChanged = true;
                    break;
                }
            }
        } else {
            //  etc...
        }
    }
    return isChanged;
}

// xss encode to forbid xxx hack
jQuery.XSSEncode = function(s) {
    if (!s.isEmpty()) {
        s = s.replace(/\'/g, "&#39;"); //no HTML equivalent as &apos is not cross browser supported
        s = s.replace(/\"/g, "&#34;"); //or &quot;
        s = s.replace(/</g, "&#60;");
        s = s.replace(/>/g, "&#62;");
        return s;
    } else {
        return "";
    }
}

// 设置主页
// 用法:
// $.setHome(this,'http://www.subconchina.com/')
jQuery.setHome = function(obj, url) {
    try {
        obj.style.behavior = 'url(#default#homepage)'; obj.setHomePage(url);
    }
    catch (e) {
        if (window.netscape) {
            try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }
            catch (e) {
                alert(g_lang_145 + "\n" + g_lang_146 + "'about:config'" + g_lang_147 + "\n" + g_lang_148 + " [signed.applets.codebase_principal_support]" + g_lang_149 + "'true'," + g_lang_150);
            }
            try {
                var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
                prefs.setCharPref('browser.startup.homepage', url);
            } catch (e) { }
        }
    }
}

// 获取窗体客户端的可见高度和宽度
// 用法:
// $.getClientSize(window)
jQuery.getClientSize = function(w) {
    if ($.browser.msie) {     //IE浏览器
        var oSize, doc = w.document.documentElement;
        oSize = (doc && doc.clientWidth) ? doc : w.document.body;

        if (oSize) {
            return { w: oSize.clientWidth, h: oSize.clientHeight }; //返回客户端宽度和高度
        }
        else {
            return { w: 0, h: 0 }; //否则都返回0
        }
    }
    else {
        return { w: w.innerWidth, h: w.innerHeight };
    }
}

// 获取scroll top of window
// 用法:
// $.getScrollTop()
jQuery.getScrollTop = function() {
    var scrollTop = 0;
    if (document.documentElement && document.documentElement.scrollTop) {
        scrollTop = document.documentElement.scrollTop;
    }
    else if (document.body) {
        scrollTop = document.body.scrollTop;
    }
    return scrollTop;
}

// 判断是否dtd模式
// 用法:
// $.isDTD(window.document)
jQuery.isDTD = function(doc) {
    return ('CSS1Compat' == (doc.compatMode || 'CSS1Compat'));
}

// 设置透明度
// e:要设置透明度的元素
// opac:透明度
// 用法:
// $.setOpacity(document.getElementById('div'), 0.50);
jQuery.setOpacity = function(e, opac) {
    if ($.browser.msie) {
        opac = Math.round(opac * 100);
        e.style.filter = (opac > 100 ? '' : 'alpha(opacity=' + opac + ')');
    }
    else {
        e.style.opacity = opac;
    }
}

// 获取页面元素的位置
// 用法:
// $.getWindowPosiotion(window)
jQuery.getWindowPosiotion = function(w) {
    if ($.browser.msie) {
        var doc = w.document;
        var oPos = { X: doc.documentElement.scrollLeft, Y: doc.documentElement.scrollTop };
        if (oPos.X > 0 || oPos.Y > 0) return oPos;
        return { X: doc.body.scrollLeft, Y: doc.body.scrollTop };
    }
    else {
        return { X: w.pageXOffset, Y: w.pageYOffset };
    }
}

// 为元素设置样式
// 用法:
// $.setStyle(document.getElementById('demo'), { 'width': '100%'});
jQuery.setStyle = function(e, dict) {
    var style = e.style;
    for (var n in dict) { style[n] = dict[n]; }
}

// 为弹出层设置固定样式
jQuery.popStyle = function(e) {
    e.style.cssText = 'margin:0;padding:0;background-image:none;background-color:transparent;border:0;';
}

// 取消默认事件
jQuery.notDoDefaultEvt = function(evt) {
    if (evt.preventDefault) {
        evt.preventDefault();
    } else {
        evt.returnValue = false;
    }
}

// 禁止冒泡
jQuery.cancelBubble = function(evt) {
    var e = (evt) ? evt : window.event;
    if (window.event) {
        e.cancelBubble = true;
    } else {
        //e.preventDefault(); 
        e.stopPropagation();
    }
}

// 为dom添加事件
// o:元素
// e:事件名称，去掉'on'
// l:处理事件handler
jQuery.addEvent = function(o, e, l) {
    if ($.browser.msie) {
        o.attachEvent('on' + e, l);
    }
    else {
        o.addEventListener(e, l, false);
    }
}

// 为dom移除事件
// o:元素
// e:事件名称，去掉'on'
// l:处理事件handler
jQuery.removeEvent = function(o, e, l) {
    if ($.browser.msie)
        o.detachEvent('on' + e, l);
    else
        o.removeEventListener(e, l, false);
}

// 取消右键事件
jQuery.cancelRMenu = function(doc) {
    doc.oncontextmenu = function(e) {
        e = e || event || this.parentWindow.event;
        var o = e.srcElement || e.target;
        if (!(o.type == 'password' || o.type == 'text' || o.type == 'textarea')) {
            if ($.browser.msie) {
                e.returnValue = false;
            } else {
                e.preventDefault();
            }
        }
    };
}

// 获取Document
jQuery.getDocument = function(e) {
    return e.ownerDocument || e.document;
}

// 移除节点
jQuery.removeNode = function(n) {
    return n.parentNode.removeChild(n);
}
// jQuery操作cookie的插件
// 用法:
// $.cookie('the_cookie'); // 取得cookie
// $.cookie('the_cookie', 'the_value'); // 设置cookie
// $.cookie('the_cookie', 'the_value', { expires: 7 }); // 设置cookie并设置过期时间，如果设置整数会帮你自动转换为天，其它时间请自行定义
// $.cookie('the_cookie', '', { expires: -1 });// 删除cookie  或者$.cookie('the_cookie', null); 也可以
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') {
        // 如果值和名字都有，那么就设置cookie
        options = options || {};
        if (value === null) {
            value = '';
            options = $.extend({}, options);
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else {
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

// 构造distinct的实体
jQuery.entityMap = function() {
    //定义json所需结构数组
    this.jsonArray = new Array();

    //实体key value结构
    var subEntity = function(key, value) {
        this.key = key;
        this.value = value;
    };

    this.setAttribute = function(key, value, replaceValue) {
        for (var i = 0; i < this.jsonArray.length; i++) {
            if (this.jsonArray[i].key === key) {
                if (replaceValue) {// if null value replace.
                    if (this.jsonArray[i].value == "") {
                        this.jsonArray[i].value = ""; // still with null value
                    }
                    // else do nothing
                }
                else {
                    if (this.jsonArray[i].value == "") {// have not value
                        this.jsonArray[i].value = value; // just set the new value
                    }
                    else {
                        this.jsonArray[i].value = this.jsonArray[i].value + "," + value; // normal add
                    }
                }
                return;
            }
        }
        if (replaceValue) {
            // not have a value ,push a new null entity
            this.jsonArray.push(new subEntity(key, ""));
        }
        else {
            // normal add key/value pair
            if (value == "" && $('input[name=' + key + ']').length > 0)
                value = " ";
            this.jsonArray.push(new subEntity(key, value));
        }
    };
}

// 替换特殊字符
$.quoteString = function(string)
// Places quotes around a string, inteligently.
// If the string contains no control characters, no quote characters, and no
// backslash characters, then we can safely slap some quotes around it.
// Otherwise we must also replace the offending characters with safe escape
// sequences.
{
    var escapeable = /["\\\x00-\x1f\x7f-\x9f]/g;
    var meta = {    // table of character substitutions
        '"': '\\"',
        '\\': '\\\\'
    };
    if (escapeable.test(string)) {
        return '"' + string.replace(escapeable, function(a) {
            var c = meta[a];
            if (typeof c === 'string') {
                return c;
            }
            c = a.charCodeAt();
            return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
        }) + '"';
    }
    return '"' + string + '"';
};

// form to json提取form内元素转换为json格式的字符串
// 用法: 
// json_string = formToJSON();
jQuery.formToJSON = function(form) {
    var tagArr = new Array();
    tagArr.push(form.getElementsByTagName('input'));
    tagArr.push(form.getElementsByTagName('textarea'));
    tagArr.push(form.getElementsByTagName('select'));
    var item = new $.entityMap();
    for (var j = 0; j < tagArr.length; j++) {
        var cn = tagArr[j];
        for (var i = 0; i < cn.length; i++) {
            // 如果为	Element | 元素
            if (cn[i].nodeType == 1) {
                //if (cn[i].name.indexOf("__") >= 0) {
                //                    var tempName = cn[i].name.substring(0, cn[i].name.length - 3);
                var tempName = cn[i].name; //.substring(0, cn[i].name.indexOf("__"));
                //alert(cn[i].type);
                switch (cn[i].type) {

                    case 'radio':
                    case 'checkbox':
                        if (!cn[i].checked) {
                            if (cn[i].getAttribute("ignore") == "true") { break; }
                            if (tempName.indexOf("R_fReqDetail") >= 0) {
                                tempName = "R_fReqDetail"; // 主要需求特殊处理
                            }
                            item.setAttribute(tempName, encodeURIComponent(cn[i].value), true);
                            break;
                        }
                    case 'hidden':
                    case 'textarea':
                    case 'select-one':
                    case 'select-multiple':
                    case 'text':
                        if (cn[i].getAttribute("rule") != null) {
                            // if need check the rule
                            // get the value and rule
                            if (!jQuery.simpleValidate(cn[i].value, cn[i].getAttribute("rule"))) {
                                // focus error element
                                $("#" + cn[i].getAttribute("id")).focus();
                                // marked with error message
                                jQuery.SubConErrorTip(cn[i].getAttribute("id"));
                                // disable the submit
                                return false;
                            }
                        }
                        if (tempName.indexOf("R_fReqDetail") >= 0) {
                            tempName = "R_fReqDetail"; // 主要需求特殊处理
                        }
                        if (cn[i].getAttribute("ignore") == "true") { break; }
                        item.setAttribute(tempName, encodeURIComponent(cn[i].value));
                        break;
                    default:
                        //alert(cn[i].type);
                        break;
                }
            }
            //}
        }
    }
    var itemResult = new Array();
    for (var i = 0; i < item.jsonArray.length; i++) {
        itemResult.push($.quoteString(item.jsonArray[i]["key"]) + ":" + $.quoteString(item.jsonArray[i]["value"].replace(/(^\s*)|(\s*$)/g, "")));
    }
    return "{" + itemResult.join(",") + "}";
}

// get the string lenth of chars
jQuery.StrCharLen = function(str) {
    var byteLen = 0, len = str.length;
    if (str) {
        for (var i = 0; i < len; i++) {
            if (str.charCodeAt(i) > 255) {
                byteLen += 2;
            }
            else {
                byteLen++;
            }
        }
        return byteLen;
    }
    else {
        return 0;
    }
}

// validate forms single
jQuery.simpleValidate = function(inputValue, rules) {
    var ruleArr = rules.split(' ');
    var flag = true;
    for (var i = 0; i < ruleArr.length; i++) {
        var chackStr = ruleArr[i];
        if (ruleArr[i].indexOf(':') >= 0) {
            chackStr = ruleArr[i].split(':')[0];
        }
        switch (chackStr) {
            case "int":
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                // http: //docs.jquery.com/Plugins/Validation/Methods/digits
                flag = /^\d+$/.test(inputValue);
                break;
            case "float":
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                // http://docs.jquery.com/Plugins/Validation/Methods/number
                flag = /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(inputValue);
                break;
            case "eng":  //liwei modify 0424 
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                flag = true; //!(/[^\x00-\xff]/g.test(inputValue));
                break;
            case "required":
                if ($.trim(inputValue) == "") {
                    flag = false;
                }
                break;
            case "url":
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
                flag = /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(inputValue);
                break;
            case "email":
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                // http://docs.jquery.com/Plugins/Validation/Methods/email
                flag = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(inputValue);
                break;
            case "date":
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                // http://docs.jquery.com/Plugins/Validation/Methods/date
                flag = !/Invalid|NaN/.test(new Date(inputValue));
                break;
            case "percent":
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                flag = /^((\d{1,2}(\.\d{1,2})?)|100|100.00)$/.test(inputValue);
                break;
            case "length":
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                var length = parseInt(ruleArr[i].split(':')[1]);
                if (inputValue.length != length) {
                    return false;
                }
                break;
            case "maxcount": // max count of a string 
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                var mycount = parseInt(ruleArr[i].split(':')[1]);
                if (inputValue.length > mycount) {
                    return false;
                }
                break;
            case "charmaxcount": // max char count of a string 
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                var mycount = parseInt(ruleArr[i].split(':')[1]);
                var mylen = $.StrCharLen(inputValue);
                if (mylen > mycount) {
                    return false;
                }
                break;
            case "lengthin": // check length of the string in the (min,max)
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                var strLen = inputValue.length;
                var myMin = parseInt(ruleArr[i].split(':')[1]);
                var myMax = parseInt(ruleArr[i].split(':')[2]);
                if (strLen < myMin || strLen > myMax) {
                    return false;
                }
                break;
            case "charlengthin": // check char length of the string in the (min,max), code>255 is two chars
                if (inputValue == "") {
                    flag = true;
                    break;
                }
                var strLen = $.StrCharLen(inputValue);
                var myMin = parseInt(ruleArr[i].split(':')[1]);
                var myMax = parseInt(ruleArr[i].split(':')[2]);
                if (strLen < myMin || strLen > myMax) {
                    return false;
                }
                break;
        }
        if (flag === false) {
            return false;
        }
    }
    return flag;
}

jQuery.SubConErrorFlash = function(objId) {
    var me = document.getElementById(objId);
    if (me.style.borderColor.indexOf('red') >= 0) {
        me.style.border = '1px solid #CC6600';
    } else {
        me.style.border = '2px solid red';
    }
}

// error tip
jQuery.SubConErrorTip = function(objId) {
    $("#" + objId).focus();

    var time = setInterval("jQuery.SubConErrorFlash('" + objId + "')", 400);
    $("#" + objId).blur(function() {
        clearInterval(time);
        $(this).css("border", "1px solid #CCCCCC");
    });
}

// 取得url中的参数QueryString，如果参数不存在，返回null
// 用法:
// value = $(document).getUrlParam("paramName"); // 取得当前页面的参数
// value = $('#imgLink').getUrlParam("paramName"); //取得指定元素的src或者href中的参数
jQuery.fn.extend({
    getUrlParam: function(strParamName) {

        strParamName = escape(unescape(strParamName)).toLowerCase();
        var returnVal = new Array();
        var qString = null;
        if ($(this).attr("nodeName") == "#document") {
            //document-handler
            if (window.location.search.toLowerCase().search(strParamName) > -1) {
                var s = window.location.search;
                var eindex = s.lastIndexOf("#");
                if (eindex > 0) {
                    s = s.substring(0, eindex);
                }
                qString = s.substr(1, window.location.search.length).split("&");
            }

        } else if ($(this).attr("src") != "undefined") {
            var strHref = $(this).attr("src");
            if (strHref.indexOf("?") > -1) {
                var strQueryString = strHref.substr(strHref.indexOf("?") + 1);
                qString = strQueryString.split("&");
            }
        } else if ($(this).attr("href") != "undefined") {
            var strHref = $(this).attr("href")
            if (strHref.indexOf("?") > -1) {
                var strQueryString = strHref.substr(strHref.indexOf("?") + 1);
                qString = strQueryString.split("&");
            }
        } else {
            return null;
        }
        if (qString == null) return null;

        for (var i = 0; i < qString.length; i++) {
            if (escape(unescape(qString[i].split("=")[0])).toLowerCase() == strParamName) {
                returnVal.push(qString[i].split("=")[1]);
            }
        }

        if (returnVal.length == 0) {
            return null;
        }
        else if (returnVal.length == 1) {
            return returnVal[0];
        }
        else {
            return returnVal;
        }
    }
});


// subconchina分页控件
// 调用方法:
// $('#')包含的为分页按钮容器。填充表单方法请于pageclick方法中自行完成。具体参考示例。参数为，当前页号，页面总数，翻页按钮回调事件方法
// $("#pager").pager({ pagenumber: pageclickednumber, pagecount: totalPage, buttonClickCallback: PageClick });
// 参数说明
// pagenumber:当前页号
// pagecount:总页数
// buttonClickCallback:当按下分页按钮时的回调方法
(function($) {

    $.fn.pager = function(options) {
        var opts = $.extend({}, $.fn.pager.defaults, options);
        return this.each(function() {
            // 设置分页按钮
            $(this).empty().append(renderpager(parseInt(options.pagenumber), parseInt(options.pagecount), parseInt(options.pagerecords), options.buttonClickCallback, options.IsHideNumber));
        });
    };

    // 根据参数设置分页
    function renderpager(pagenumber, pagecount, pagerecords, buttonClickCallback, IsHideNumber) {
        // 设置分页容器
        var $pager = $('<ul></ul>');
        // 添加上一页和首页按钮

        if (!IsHideNumber) {
            // 添加上一页和首页按钮
            $pager.append(renderButton('first', pagenumber, pagecount, buttonClickCallback)).append(renderButton('prev', pagenumber, pagecount, buttonClickCallback, IsHideNumber));
            // 默认显示5个分页按钮
            var startPoint = 1;
            var endPoint = 5;

            if (pagenumber > 2) {
                startPoint = pagenumber - 2;
                endPoint = pagenumber + 2;
            }

            if (endPoint > pagecount) {
                startPoint = pagecount - 4;
                endPoint = pagecount;
            }

            if (startPoint < 1) {
                startPoint = 1;
            }

            // 设置分页按钮
            for (var page = startPoint; page <= endPoint; page++) {
                var currentButton = $('<li><a href="javascript:;" onclick="return false;">' + page + '</a></li>');

                page == pagenumber ? currentButton.addClass('a_current').html(page) : currentButton.click(function() { try { buttonClickCallback($(this).find("a").html()); } catch (e) { } });
                currentButton.appendTo($pager);
            }
            // 加入下一页按钮和最后一页按钮
            $pager.append(renderButton('next', pagenumber, pagecount, buttonClickCallback)).append(renderButton('last', pagenumber, pagecount, buttonClickCallback));
        }
        else {
            if (pagecount == 0) {
                pagenumber = 0;
            }
            $pager.append('<li class="a_pd_pagall">' + pagenumber + '/' + pagecount + g_lang_151 + pagerecords + g_lang_152 + '</li>');
            //$pager.append(renderButton('prev', pagenumber, pagecount, buttonClickCallback, IsHideNumber));
            //$pager.append(renderButton('next', pagenumber, pagecount, buttonClickCallback));
        }

        return $pager;
    }

    // 对首页上一页下一页尾页按钮进行设置
    function renderButton(buttonLabel, pagenumber, pagecount, buttonClickCallback) {

        var showTxt;
        var $Button;

        var destPage = 1;

        // 对页面进行判断
        switch (buttonLabel) {
            case "first":
                destPage = 1;
                showTxt = g_lang_153;
                break;
            case "prev":
                destPage = pagenumber - 1;
                showTxt = g_lang_154;
                break;
            case "next":
                destPage = pagenumber + 1;
                showTxt = g_lang_155;
                break;
            case "last":
                destPage = pagecount;
                showTxt = g_lang_156;
                break;
        }

        // 分页按钮细节
        if (buttonLabel == "first" || buttonLabel == "prev") {
            $Button = $('<li><a href="javascript:;" onclick="return false;">' + showTxt + '</a></li>');
            pagenumber <= 1 ? $Button.css('display', 'none') : $Button.click(function() { buttonClickCallback(destPage); });
        }
        else {
            $Button = $('<li><a href="javascript:;" onclick="return false;">' + showTxt + '</a></li>');
            pagenumber >= pagecount ? $Button.css('display', 'none') : $Button.click(function() { buttonClickCallback(destPage); });
        }
        return $Button;
    }

    // 初始化
    $.fn.pager.defaults = {
        pagenumber: 1,
        pagecount: 1
    };

})(jQuery);

// 切换导航条
// 用法:把这个方法加入到document.ready方法里面，会自动切换
jQuery.ChangeMenu = function() {
    $(".a_public_Mheadtwo li").each(function(i) {
        if (i < $(".a_public_Mheadtwo li").length - 1) {
            $(this).attr("class", "a_public_MheadNo");
        }
    });
    var subconHref = window.location;
    subconHref = subconHref.toString().toLowerCase();

    if (subconHref.indexOf("/manage/a/") >= 0 || subconHref.indexOf("/manage/b/") >= 0 || subconHref.indexOf("/manage/d/") >= 0 || subconHref.indexOf("/manage/company/") >= 0) {
        //企业信息录入
        $(".a_public_Mheadtwo li[@menu=baseinfo]").eq(0).attr("class", "a_public_MheadOk");
    }
    else if (subconHref.indexOf("/manage/product/") >= 0) {
        // 产品
        $(".a_public_Mheadtwo li[@menu=product]").eq(0).attr("class", "a_public_MheadOk");
    }
    else if (subconHref.indexOf("/manage/order/") >= 0) {
        // 订单
        $(".a_public_Mheadtwo li[@menu=order]").eq(0).attr("class", "a_public_MheadOk");
    }
    else if (subconHref.indexOf("/manage/favorites/") >= 0) {
        //收藏
        $(".a_public_Mheadtwo li[@menu=favorite]").eq(0).attr("class", "a_public_MheadOk");
    }
    else if (subconHref.indexOf("/manage/mail/") >= 0) {
        //邮件
        $(".a_public_Mheadtwo li[@menu=mail]").eq(0).attr("class", "a_public_MheadOk");
    }
    else if (subconHref.indexOf("/manage/report/") >= 0) {
        //作业报表
        $(".a_public_Mheadtwo li[@menu=workreport]").eq(0).attr("class", "a_public_MheadOk");
    }
    else if (subconHref.indexOf("/manage/user") >= 0) {
        //帐户管理
        $(".a_public_Mheadtwo li[@menu=account]").eq(0).attr("class", "a_public_MheadOk");
    } else {
        $(".a_public_Mheadtwo li").eq(0).attr("class", "a_public_MheadOk");
    }

    //快捷导航
    if ($("#quick_location_parent").length > 0) {
        $("#quick_location").appendTo($("#a_main"));
        $("#quick_location_parent").mouseover(function(e) {
            var offset = $("#quick_location_parent").offset();
            $("#quick_location").css({
                left: offset.left - 371 + 80,
                top: offset.top - 6
            }).show();
        }).mouseout(function(e) {
            var dom = e.srcElement || e.target;
            var dclass = dom.tagName.toLowerCase();

            if (dclass != "span") {
                $("#quick_location").hide();
            }
        });
        $("#quick_location").mouseover(function(e) {
            var x = e.pageX;
            var y = e.pageY;
            var offset = $("#quick_location_parent").offset();
            if (x < (offset.left - 8) && y < (offset.top + 26)) {
                $("#quick_location").hide();
            }
            else {
                $("#quick_location").show();
            }
        }).mouseout(function(e) {
            $("#quick_location").hide();
        });
    }
}

// 管理中心导航切换
$(window).load(function() {
    try {
        if (location.href.toLowerCase().indexOf("/manage/") >= 0) {
            jQuery.ChangeMenu();
        }
    } catch (e) { }
});

// 编辑信息时左侧菜单条的收缩
// 用法:
// 传入子菜单所在DIV的ID即可，如 $.slideUpDownPanel('_baseinfoBar')
jQuery.slideUpDownPanel = function(controlID) {
    if ($("#" + controlID).css("display") == "none") {
        $("#" + controlID).slideDown();
    }
    else {
        $("#" + controlID).slideUp();
    }

}

// 切换工作区
// 对左侧菜单进行切换
jQuery.changeWorkSpace = function(obj) {
    $(".a_reg_leitwo2").each(function() {
        $(this).removeClass("a_pubmousehover");
    });
    $(obj).addClass("a_pubmousehover");
}

// 切换语言环境
jQuery.changeLanguage = function(custLan) {
    //首先检测是否启用cookie，否则无法切换
    $.cookie('subcon_test_cookie_enable', 'testdata');
    if ($.cookie('subcon_test_cookie_enable') != 'testdata') {
        alert(g_lang_157 + "cookie, " + g_lang_158);
        return false;
    }
    // 删除测试用cookie
    $.cookie('subcon_test_cookie_enable', null);
    // 删除原来的信息
    $.cookie('CultureName', null);
    try {
        SUBCON.COMMON.AddCookie();
    }
    catch (e)
    { }
    
    // 添加新的信息
    $.cookie('CultureName', custLan, { expires: 1, path: '/' });

    var loc = location.href;
    if (loc.indexOf("#") >= 0) {
        var pos = parseInt(loc.indexOf("#"));
        loc = loc.substring(0, pos);
        location.href = loc;
    }
    else {
        location.reload();
    }
}

/*----------------------------------------------------------------
下面是加入的一些后缀扩展
----------------------------------------------------------------*/

// 模仿C#中的String.Format功能
// 用法:
// var demo = "I Love {0}, and You Love {1} !How are {0}!";
// alert(demo.Format("You","Me"));
String.prototype.Format = function() {
    var args = arguments;
    return this.replace(/\{(\d+)\}/g, function(m, i) {
        return args[i];
    });
};

// 去除字符串两边的空格
// 用法:
// var value=$("#control").val().trim();  // 可以用jQuery的 $.trim($("#control").val());代替
String.prototype.trim = function() {
    return this.replace(/(^\s+)|(\s+$)/g, "");
}

// 检测字符串是否为空
// 用法:
// if(flag.isEmpty()){} //判断是否为空
String.prototype.isEmpty = function() {
    return !(/.?[^\s  ]+/.test(this));
}

//取得元不素的位置 黄捷 2009-7-9
//取得top,$("#myid").offset().top; 取left则$("#myid").offset().left
function getElementPos(elementId) {
    var ua = navigator.userAgent.toLowerCase();
    var isOpera = (ua.indexOf('opera') != -1);
    var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
    var el = document.getElementById(elementId);
    if (el.parentNode === null || el.style.display == 'none') {
        return false;
    }
    var parent = null;
    var pos = [];
    var box;
    if (el.getBoundingClientRect)    //IE
    {
        box = el.getBoundingClientRect();
        var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
        var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
        return { x: box.left + scrollLeft, y: box.top + scrollTop };
    } else if (document.getBoxObjectFor)    // gecko   
    {
        box = document.getBoxObjectFor(el);
        var borderLeft = (el.style.borderLeftWidth) ? parseInt(el.style.borderLeftWidth) : 0;
        var borderTop = (el.style.borderTopWidth) ? parseInt(el.style.borderTopWidth) : 0;
        pos = [box.x - borderLeft, box.y - borderTop];
    } else    // safari & opera   
    {
        pos = [el.offsetLeft, el.offsetTop];
        parent = el.offsetParent;
        if (parent != el) {
            while (parent) {
                pos[0] += parent.offsetLeft;
                pos[1] += parent.offsetTop;
                parent = parent.offsetParent;
            }
        }
        if (ua.indexOf('opera') != -1 || (ua.indexOf('safari') != -1 && el.style.position == 'absolute')) {
            pos[0] -= document.body.offsetLeft;
            pos[1] -= document.body.offsetTop;
        }
    }
    if (el.parentNode) {
        parent = el.parentNode;
    } else {
        parent = null;
    }
    while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors
        pos[0] -= parent.scrollLeft;
        pos[1] -= parent.scrollTop;
        if (parent.parentNode) {
            parent = parent.parentNode;
        } else {
            parent = null;
        }
    }
    return { x: pos[0], y: pos[1] };
}

// letter search
var flag = true;
function letterShowOrHide() {
    var v = $("#endend_24").find("a");
    for (var i = 0; i < v.length; i++) {
        v[i].onclick = function() {
            $("#letterShow").css("display", "none");
            $("#letterShow").show("slow", function() {
                flag = false;
            });
            $(".a_sh_dmore").hide();
            $("#endend_24 > a").css("color", "#ffffff");
            var u = window.location + "";

            if (u.lastIndexOf("/") == u.length - 1 || u.toLowerCase().indexOf("index.aspx") >= 0) {
                $("#letterShow").css("left", getElementPos("endend_24").x + 80);
            }
            else {
                $("#letterShow").css("left", getElementPos("endend_24").x + 170);
            }


            this.style.color = "#ff9b05";

            $("#ifrUrl").attr("src", "/searchresult/LetterQuery.aspx?CLS=" + $("#letterShow").attr("rel") + "&L=" + this.innerHTML.toString() + "&R=" + Math.random())
        }
    }
}


///错误处理
function GoToError() {
    alert(g_lang_161);
}

///表单提交
function SubmitForm(urlString, NewWindow) {
    var form = document.forms[0];
    form.action = urlString;
    if (NewWindow == "1") {
        form.target = "_blank";
    }
    else {
        form.target = "_self";
    }
    form.submit();
}

///联系客户
function ContactNowByLook() {
    var urlString = "", ActionType = "", ActionKeyId = "";
    ActionType = $.trim($("#ActionType").val());
    ActionKeyId = $.trim($("#ActionKeyId").val());
    if (ActionType != null && ActionKeyId != null && ActionType != "" && ActionKeyId != "") {
        urlString = "/Pages/SendMessage.aspx";
        SubmitForm(urlString, "1");
    }
    else {
        GoToError();
        return;
    }
}
//add by wangfc 2010-01-19 
var div_waitmsg_html = '<div id="waitmsg-container" style="display:none;padding: 10px;border:yellow 1px solid;width:300px;width:150px;"><span id="waitmsg">&nbsp;</span></div>';
jQuery.ajaxReal = jQuery.ajax;
jQuery.waitMsg = '';
$(document).ready(function() {
    if ($('#waitmsg-container').length <= 0) {
        $('body').append(div_waitmsg_html);
    }
});
jQuery.extend({
    ajax: function(opt) {
        if (opt['waitMsg'] !== undefined || jQuery.waitMsg.length > 0) {
            var msg = opt['waitMsg'] !== undefined ? opt['waitMsg'] !== undefined : jQuery.waitMsg;
            $('#waitmsg').html(msg);
            $('#waitmsg-container').popup();
            //$().OpenWin.ShowTip(opt['waitMsg']);
            var orfunc = opt['complete'];
            opt['complete'] = function(XMLHttpRequest, textStatus) {
                //$().OpenWin.HideTip();
                jQuery.waitMsg = '';
                disablePopups();
                if (orfunc !== undefined) {
                    orfunc(XMLHttpRequest, textStatus);
                }
            };
        }
        jQuery.ajaxReal(opt);
    }
});

function TipInstallerHelper(url, resourcekey) {
    ids = $("input:text,textarea").map(function() {
        return $(this).attr("id");
    }).get().join(",");
    jQuery.post(url, { resource: resourcekey, ids: ids }, function(evt) {
        //alert(evt);
    });
}
var divhtml_info = "<div class=\"a_reg_xuanchui\" id=\"CM_INFO_TIP\" style=\"display:none\"> <div class=\"a_reg_xuanleft\"> <img src=\"/Images/Reg/regxuanchi.gif\" class=\"a_moto_sxzy\" alt=\"\" /></div> <div class=\"a_reg_xuanright\"> <img src=\"/Images/Reg/regxuanchitu.gif\" class=\"a_moto_sxzy\" alt=\"\" /> <span id=\"CM_INFO_TIP_CON\"></span> </div> </div>";
var divhtml_err = "<div class=\"a_reg_xuanchuic\" id=\"CM_ERR_TIP\" style=\"display:none\"> <div class=\"a_reg_xuanleft\"> <img src=\"/Images/Reg/regxuanchi.gif\" class=\"a_moto_sxzy\" alt=\"\" /></div> <div class=\"a_reg_xuanrightc\"> <img src=\"/Images/Reg/del.gif\" class=\"a_moto_sxzy\" alt=\"\" /> <span id=\"CM_ERR_TIP_CON\"></span> </div> </div>";
var tips_data = { success: false };
function TipInstall2InputReal(data, url, resourcekey) {
    if (data.success) {
        for (var i = 0; i < data.tips.length; i++) {
            if (data.tips[i][0].length == 0) {
                continue;
            }
            var obj2 = $('#' + data.tips[i][0]);
            if (obj2.length <= 0) {
                continue;
            }
            if (data.translate != -1 || data.tips[i][1].length > 0) {
                obj2.bind('focus', function() {
                    // hide error tip
                    $("#CM_ERR_TIP").hide();
                    if ($(this).attr("tip") == null) {
                        $("#CM_INFO_TIP").hide();
                    }
                    else {
                        // get tip content
                        var temptip = $(this).attr("tip");
                        $("#CM_INFO_TIP_CON").html(temptip);
                        $("#CM_INFO_TIP").css("top", $(this).offset().top);
                        if ($(this).attr("stick") == "true") {
                            // fix position
                            var fix = $(this).parent().find("input").eq(0);
                            $("#CM_INFO_TIP").css("left", fix.offset().left + 280);
                        }
                        else {
                            $("#CM_INFO_TIP").css("left", $(this).offset().left + $(this).width() + 10);
                        }
                        $("#CM_INFO_TIP").show();
                    }
                    return false;
                });
                $('#' + data.tips[i][0]).bind('blur', function() {
                    // lose focus do
                    $("#CM_INFO_TIP_CON").html('');
                    $("#CM_INFO_TIP").hide();
                    return false;
                });
            }
            obj2.attr('tip', data.tips[i][1]);
            /*
            if (data.translate == -1) {
            if (data.tips[i][1].length > 0) {
            obj2.attr('tip', data.tips[i][1]);
            }
            continue;
            }
            if (data.translate == 1) {
            var word = (data.tips[i][data.tips[i].length - 1] == '1' || data.tips[i][2] == '1') ? g_lang_162 : g_lang_163;
            obj2.attr('tip', data.tips[i][1]
            + "<a href='#' onmouseover=\"javascript:window.open('/Manage/translate.aspx?rk="
            + resourcekey + "&ck=" + data.tips[i][0] + "&translate=1&istip=1"
            + "','addtips','width=500,height=450,status=0,toolbar=0,menubar=0');return false;\")'>[" + word + "]</a>");

            }
            else { //从sys_directoryaudit中取得 等审数据
            if (data.tips[i][3] == '1') {
            obj2.attr('tip', data.tips[i][1]
            + "<a href='#' onmouseover=\"javascript:window.open('/Manage/translate.aspx?rk="
            + resourcekey + "&ck=" + data.tips[i][0] + "&translate=0&istip=1"
            + "','addtips','width=500,height=450,status=0,toolbar=0,menubar=0');return false;\")'>[" + g_lang_164 + "]</a>");
            }
            }
            */
        }
    }
}
function TipInstall2Input(url, resourcekey) {
    if ($("input:text,textarea").length <= 1) {
        return;
    }
    if ($('#CM_INFO_TIP').length <= 0) {
        $('body').prepend(divhtml_info);
    }
    if ($('#CM_ERR_TIP') <= 0) {
        $('body').prepend(divhtml_err);
    }
    if (!tips_data.success) {
        jQuery.getJSON(url, { method: 'gettips', resource: resourcekey }, function(data) {
            tips_data = data;
            TipInstall2InputReal(tips_data, url, resourcekey);
            //alert(tips_data.success);
        });
        return;
    }
    //TipInstall2InputReal(tips_data, url, resourcekey);
}
function Tipinstaller() {
    var prefix = "/Asmx/";
    //TipInstallerHelper(prefix + 'TipsAddHandler.ashx', document.location.pathname.substring(prefix.length));

    TipInstall2Input(prefix + 'TipsAddHandler.ashx', document.location.pathname.substring(prefix.length));
    /*
    $('span[classkey]').each(function() {
        $(this).bind('click', function() {
            window.open('/Manage/translate.aspx?ck=' + $(this).attr('classkey') + '&rk=' + $(this).attr('resourcekey')
                             + '&translate=' + $(this).attr('translate'), '_blank', 'width=500,height=450,status=0,toolbar=0,menubar=0');
            return false;
        });
    });
    */
    $(':button').each(function() {
        val = $(this).val();
        idx = val.indexOf("<");
        if (idx > 1) {
            $(this).val(val.substr(0, idx));
        }
    });

}

$(document).ready(function() {
    Tipinstaller();
    //StartTranslation();
});

/* 新在线翻译 */
function StartTranslation() {
    if ($("#translationBlock").length <= 0) {
        var templateDiv = '<div id="translationBar" style="border:5px solid #ff0000;width:30px;height:20px;display:block;display:block;position:absolute;left:20px;top:120px;background:#ffff00;cursor:pointer;">翻译</div>' +
                      '<div id="translationBlock" style="border:1px solid #999;width:700px;height:400px;position:absolute;left:20px;top:120px;display:none;background:#fff;z-index:999999999;">' +
                      '<div style="margin:0 0 0 0;border:4px solid #ccc;top:0;left:0;right:0;bottom:0;position: absolute;">' +
                      '<div id="translationTitle" style="height: 24px;margin: 0px;cursor: move;color:#333333;background-image:  url(/Images/popup/popup_all.gif);background-repeat: repeat-x;background-position: 0 0;border: 0px solid #4297d7;">' +
                      '<span style="position: relative;left: 15px;top: 4px;color: #000;font: 14px Tahoma, Arial, sans-serif;font-weight: bold;">在线翻译工具</span>' +
                      '<div id="translationClose" style="position: absolute;top: 5px;right: 15px;width: 17px;height: 17px;cursor: default;background-image: url(/Images/popup/popup_all.gif);background-repeat: no-repeat;background-position: 0px -35px;" title="close"></div></div>' +
                      '<div style="padding: 0px;overflow:hidden;width:692px;height:368px;"><iframe frameborder="0" style="overflow:visible;" width="100%" height="100%" scrolling="yes" allowtransparency="false" src="/Template/MiniTranslation.aspx"></iframe></div>' +
                      '</div></div>';
        $("body").append(templateDiv);

        $("#translationClose").mouseover(function() {
            $(this).css("backgroundPosition", "-17px -35px");
        }).mouseout(function() {
            $(this).css("backgroundPosition", "0px -35px");
        }).click(function() {
            $("#translationBlock").fadeOut();
            $("#translationBar").show();
        });

        $("#translationBar").css("left", $("#a_main").offset().left);
        $("#translationBar").click(function() {
            $(this).hide();
            $("#translationBlock").fadeIn();
        });
        
        
        $("#translationBlock").css("left", $("#a_main").offset().left);
        
        
        $("#translationTitle").mousedown(function(e) {
            var x = null;
            var y = null;
            var fintop = null;
            var finleft = null;
            var divtop = null;
            var divleft = null;
            var divheight = null;
            var divwidth = null;
            var sheight = null;
            var swidth = null;
            var moveheight = null;
            var mx = null;
            var my = null;
            x = e.pageX;
            y = e.pageY;
            divtop = parseInt($("#translationBlock").css("top"));
            divleft = parseInt($("#translationBlock").css("left"));
            divwidth = parseInt($("#translationBlock").css("width"));
            divheight = parseInt($("#translationBlock").css("height"));
            swidth = parseInt(screen.width);
            sheight = parseInt(screen.height);
            movewidth = swidth - 25 - divwidth;
            moveheight = sheight - 180 - divheight;
            $("body").mousemove(function(e) {
                mx = e.pageX - x; finleft = divleft + mx + 5;
                my = e.pageY - y; fintop = divtop + my + 5;
                if (fintop > 0) {
                    $("#translationBlock,#translationBar").css("top", fintop + "px");

                }
                else {
                    // 限制不能拖出左上角
                    $("#translationBlock,#translationBar").css("top", 0 + "px");
                }
                if (finleft > 0) {
                    $("#translationBlock,#translationBar").css("left", finleft + "px");
                }
                else {
                    $("#translationBlock,#translationBar").css("left", 0 + "px");
                }
            });
            $("body").mouseup(function() {
                $("body").unbind("mousemove");
            });
            $("#translationTitle").mouseup(function() {
                $("#translationTitle").unbind("mousemove");
            });
        });
    }
    else {
        $("#translationBlock").show();
    }
}
function refreshPage() {
    var loc = location.href;
    if (loc.indexOf("#") >= 0) {
        loc = loc.substring(0, loc.indexOf("#"));
    }
    if (loc.indexOf('?') < 0) {
        location.href = loc + "?transrd=" + Math.random();
    }
    else {
        if (loc.indexOf("transrd") >= 0) {
            location.href = loc.substring(0, loc.indexOf('transrd')) + "transrd=" + Math.random();
        }
        else {
            location.href = loc + "&transrd=" + Math.random();
        }
    }
}