﻿function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

function GoLogin(loginUrl) {
    location.replace(loginUrl + location.href);
}

function buildAjaxUrl(PathWithoutQuery,QueryArray)
{
    PathWithoutQuery+="?"
    for(i=0;i<QueryArray.length;i++) 
    {
        PathWithoutQuery+=QueryArray[i][0]+"="+QueryArray[i][1];
        if(i<QueryArray.length)
        {
            PathWithoutQuery+="&";
        }
        else
        {
            PathWithoutQuery+="seed="+Math.random();
        }
    }
    return PathWithoutQuery
}

// 验证Email格式
function isEmailAddress(emailAddress) {
    var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
    if (emailAddress != "") {
        if (myreg.test(emailAddress)) {
            return true;
        }
    }
    return false;
}

// 验证手机号码格式是否正确
function isMobileNumber(mobileNumber) {
    mobileNumber = mobileNumber;
    var myreg = /^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/;
    if (mobileNumber != "") {
        if (myreg.test(mobileNumber)) {
            return true;
        }
    }
    return false;
}
function isUserApp(userApp) {
    var reg = /^[\d|_]*[a-zA-Z]+[\d|_]*$/;
    if (reg.test(userApp)) {
        return true;
    }
    return false;
}

function $copy(copyText, onSuccess) {

 if(document.all) {
 if(clipboardData.setData('Text', copyText))
 alert("信息复制成功！你可以使用Ctrl+V粘贴给朋友 ");
 } else if(prompt('请按 Ctrl+C 复制到剪切板', copyText)) {
 alert("信息复制成功！你可以使用Ctrl+V粘贴给朋友 ");
 if(onSuccess)onSuccess();
 } 
}

function copyToClipboard(txt) {
    if (window.clipboardData) {
        window.clipboardData.clearData();
        window.clipboardData.setData('Text', txt);
    }
    else if (navigator.userAgent.indexOf('Opera') != -1) {
        window.location = txt;
    }
    else if (window.netscape) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        }
        catch (e) {
            alert('!!被浏览器拒绝！\n请在浏览器地址栏输入’about:config’并回车\n然后将’signed.applets.codebase_principal_support’设置为’true’');
        }
        var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
        if (!clip)
            return;
        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
        if (!trans)
            return;
        trans.addDataFlavor('text/unicode');
        var str = new Object();
        var len = new Object();
        var str = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);
        var copytext = txt;
        str.data = copytext;
        trans.setTransferData("text/unicode", str, copytext.length * 2);
        var clipid = Components.interfaces.nsIClipboard;
        if (!clip)
            return false;
        clip.setData(trans, null, clipid.kGlobalClipboard);
    }
    return true;
}
// html编码
function HtmlEncode(str) {
    var d = document.createElement('div');
    d.innerText = str;
    d.textContent = str;
    return d.innerHTML;
};

function GetPlainText(str){
    var d=document.createElement('div');
    d.innerHTML=str;
    return (d.innerText||d.textContent);
}

function NotifyNewMessage(){
    if(document.newMsgNotification){
        clearInterval(document.newMsgNotification);
    }
    document.newMsgNotification=setInterval(function(){
        if(document.title=='【新消息】_i易车-易车网BitAuto.com')
            document.title='【　　　】_i易车-易车网BitAuto.com';
        else
            document.title='【新消息】_i易车-易车网BitAuto.com';},1000);

    GetNewMessageCounts();
}

function NewMsgSound(){
    var msgsound=$('msgsound');
    if(msgsound){
        msgsound.innerHTML='<embed src="http://js.inc.baa.bitautotech.com/201001/newmsg_sound.1.0.swf" width="0" height="0"></embed>';
    }
}

function NewSysMsgSound(){
    var msgsound=$('msgsound');
    if(msgsound){
        msgsound.innerHTML='<embed src="http://js.inc.baa.bitautotech.com/201001/sysmsg_sound.1.0.swf" width="0" height="0"></embed>';
    }
}

function StopNotifyNewMessage(){
    if(document.newMsgNotification){
        clearInterval(document.newMsgNotification);
    }
}

function HasNewMessages() {
    if(!document.normalTitle)
        document.normalTitle=document.title;
    new $Ajax.Request('http://i.bitauto.com/ajax/MessageCenter/HasNewMessages.aspx', {
        method: 'post',
        onComplete: function(transport) {
            if (transport.responseText == '1') {
                $('newmsg').show();
            }
            else if(transport.responseText == '0'){
                $('newmsg').hide();
                StopNotifyNewMessage();
                document.title=document.normalTitle;
            }
            else if(transport.responseText == '2') {
                $('newmsg').show();
                NewMsgSound();
                NotifyNewMessage();
            }
            else if(transport.responseText == '3') {
                $('newmsg').show();
                NewSysMsgSound();
                NotifyNewMessage();
            }
        }
    });
}

function NewSiteMessages() {
    if ($('newsitemsg').innerHTML == '0') {
        new $Ajax.Request('http://i.bitauto.com/ajax/MessageCenter/GetNewSiteMessageCount.aspx?seed=' + Math.random(), {
            method: 'get',
            onComplete: function(transport) {
                if (transport.responseText != '0') {
                    $('newsitemsg').innerHTML = '[' + transport.responseText + ']';
                    $('newsitemsg').show();
                    s=$('msgsummary');
                    if(s){
                        s=s.getElementsBySelector('a')[0];
                        s.innerHTML='<em>'+transport.responseText+'</em>条新';
                    }
                }
                else {
                    $('newsitemsg').innerHTML = '';
                    $('newsitemsg').hide();
                }
            }
        });
    }
}

function NewSystemMessages() {
    if ($('newsysmsg').innerHTML == '0') {
        new $Ajax.Request('http://i.bitauto.com/ajax/MessageCenter/GetNewSystemMessageCount.aspx?seed=' + Math.random(), {
            method: 'get',
            onComplete: function(transport) {
                if (transport.responseText != '0') {
                    $('newsysmsg').innerHTML = '[' + transport.responseText + ']';
                    $('newsysmsg').show();
                    s=$('msgsummary');
                    if(s){
                        s=s.getElementsBySelector('a')[1];
                        s.innerHTML='<em>'+transport.responseText+'</em>条新';
                    }
                }
                else {
                    $('newsysmsg').innerHTML = '';
                    $('newsysmsg').hide();
                }
            }
        });
    }
}
function NewFriendRequest() {
    if ($('newfreq').innerHTML == '0') {
        new $Ajax.Request('http://i.bitauto.com/ajax/MessageCenter/GetNewFriendRequestCount.aspx?seed=' + Math.random(), {
            method: 'get',
            onComplete: function(transport) {
                if (transport.responseText != '0') {
                    $('newfreq').innerHTML = '[' + transport.responseText + ']';
                    $('newfreq').show();
                    s=$('msgsummary');
                    if(s){
                        s=s.getElementsBySelector('a')[2];
                        s.innerHTML='<em>'+transport.responseText+'</em>条新';
                    }
                }
                else {
                    $('newfreq').innerHTML = '';
                    $('newfreq').hide();
                }
            }
        });
    }
}
function NewMessageBoard() {
    if ($('newmb').innerHTML == '0') {
        new $Ajax.Request('http://i.bitauto.com/ajax/MessageCenter/GetNewMessageBoardCount.aspx?seed=' + Math.random(), {
            method: 'get',
            onComplete: function(transport) {
                if (transport.responseText != '0') {
                    $('newmb').innerHTML = '[' + transport.responseText + ']';
                    $('newmb').show();
                    s=$('msgsummary');
                    if(s){
                        s=s.getElementsBySelector('a')[3];
                        s.innerHTML='<em>'+transport.responseText+'</em>条新';
                    }
                }
                else {
                    $('newmb').innerHTML = '';
                    $('newmb').hide();
                }
            }
        });
    }
}
function HeadSeachFriend(url) {
    $("headkeyword").value = $F("headkeyword").strip();
    if ($F("headkeyword") == $("headkeyword").watermark || $F("headkeyword") == '') {
        $("headkeyword").value = '';
        $("headkeyword").select();
    }
    else if ($F("headkeyword").length < 2) {
        alert("请至少输入2个字符")
    }
    else if ($F("headkeyword").length > 50) {
        alert("您输入的字符过长")
    }
    else {
        var keyword = $F("headkeyword");
        var reg = /^(?:[^\-\]\\`~!@#$%^&*()+={}|[:"";'<>?,.\/\s]{2,50})$/
        if (reg.test(keyword)) {
            window.location.href = url + "friend/FriendSeachResult_keyword_" + encodeURI(keyword) + "_1.html";
        }
        else {
            alert("请您输入合法字符(中文,英文,汉字)");
        }
    }
}

function GetNewMessageCounts() {
    NewSiteMessages();
    NewSystemMessages();
    NewFriendRequest();
    NewMessageBoard();
}

var friend = {};
friend.AddCategory = function(categoryName) {
    if (categoryName.length > 0) {
        new $Ajax.Request('/Ajax/FriendsCenter/AddFriendCategory.aspx', {
            method: 'post',
            parameters: { category: categoryName },
            onComplete: function(transport) {
                if(transport.responseText == "0") {
                        alert('分组名称已存在，请重新输入！');
                    }
                    else if(transport.responseText == "-1")
                    {
                        alert('最多只能添加20个分组；');
                    }
                 
                   else{
                    $('fclist').innerHTML += '<li><input type="checkbox" name="c" value="' + transport.responseText + '" checked="checked" />' + HtmlEncode(categoryName) + '</li>';
                    $('newfcname').value='';
                    $('newfc').hide();
                    $('addnewfc').show();
                    Reposition();
                }
            }
        });
    }
};
function BindWaterMark(dom, watermark, initFocus) {
    dom = $(dom);
    if (dom) {
        dom.stopObserving('focus');
        dom.stopObserving('blur');
        dom.watermark = watermark;
        if (dom.value == '') {
            dom.value = dom.watermark;
            dom.style.color='#999';
        }
        else{
            dom.style.color='#333';
        }
        dom.observe('focus', function(event) {
            if (dom.value == dom.watermark) {
                dom.style.color='#333';
                dom.value = '';
            }
        });

        dom.observe('blur', function(event) {
            if (dom.value == '') {
                dom.style.color='#999';
                dom.value = dom.watermark;
            }
        });
        if(typeof initFocus!='undefined' && initFocus){
            dom.focus();
        }
    }
}

function BindContentBox(dom, onCtrlEnter, initFocus, maxLength) {
    dom = $(dom);
    if (dom) {
        dom.blur();
        if(typeof initFocus!='undefined' && initFocus)
            dom.focus();
        if(typeof maxLength=='undefined' || maxLength<=0)
            maxLength=140;
        dom.stopObserving('keydown');
        dom.observe('keydown', function(event) {
            if (dom.value.length >= maxLength) {
                var range = true;
                if (document.selection && document.selection.createRange().text.length == 0) range = false;
                else if (dom.selectionStart && dom.selectionEnd && dom.selectionStart == dom.selectionEnd) range = false;
                if (event.keyCode == 86 && event.ctrlKey && range == false) Event.stop(event);
                if (event.keyCode != 8 && event.keyCode != 46 && !event.ctrlKey && range == false) Event.stop(event);
            }
            if (event.ctrlKey && event.keyCode == 13) {
                if (dom.value.length > maxLength) dom.value = dom.value.substring(0, maxLength);
                if (typeof onCtrlEnter != 'undefined' && onCtrlEnter && !IsSensitive(dom.value)) {
                    onCtrlEnter();
                    dom.value=dom.watermark||'';
                    Event.stop(event);
                }
            }
        });

        dom.observe('change', function(event) {
            if (dom.value.length > maxLength) dom.value = dom.value.substring(0, maxLength);
        });
    }
};

function ExpandBox(dom, watermark, onSubmit, btnText){
    dom=$(dom);
    if(dom){
        $$('.lyhf_h').each(function(s){
            if(typeof s.Shrink!='undefined' && s.Shrink && s!=dom){
                s.Shrink();
            }
        });
    
        if(!document.dom_nHTML){
            InitBindExpandBox();
        }
        dom.innerHTML=document.dom_nHTML

        dom.className='lyhf_h';
        if(!dom.Shrink)
            dom.Shrink=function(event){
                if(dom.ContentField.value.length==0){
                    if(typeof event == 'undefined' || (event.element()!=dom && event.element().descendantOf(dom)==false)){
                        ShrinkBox(dom, watermark, onSubmit);
                        Event.stopObserving(document.documentElement, 'click', dom.Shrink);
                    }
                }
            };
        Event.stopObserving(dom, 'click', dom.Expand);
        $(document.documentElement).observe('click', dom.Shrink);
        if(typeof onSubmit=='undefined' || !onSubmit){
            onSubmit=function(event, dom){
                alert(dom.ContentField.value);
            }
        }
        dom.getElementsBySelector('textarea').each(function(s){
            dom.ContentField=s;
            s.focus();
            BindContentBox(s, function(){onSubmit(event, dom);}, true);
            throw $break;
        });
        dom.getElementsBySelector('input[type="button"]').each(function(s){
            if(typeof btnText!='undefined'&& btnText)
                s.value=btnText;
            s.observe('click', function(){onSubmit(event, dom);});
            throw $break;
        });
        Event.stop(event);
    }
}

function InitBindExpandBox(){
    new $Ajax.Request('/Ajax/Common/GetExpandBox.aspx',{
        method:'post',
        asynchronous: false,
        onComplete: function(transport){
            document.dom_nHTML=transport.responseText;
        }
    });
}

function ShrinkBox(dom, watermark, onSubmit, btnText){
    dom=$(dom);
    if(dom){
        dom.className='lyhf';
        dom.watermark=watermark;
        dom.innerHTML='<p><em class="border"><input type="text" class="text" value="'+HtmlEncode(watermark)+'" readonly="readonly" /></em></p>';
        if(!dom.Expand)
            dom.Expand=function(event){
                ExpandBox(dom, watermark, onSubmit, btnText);
                Event.stopObserving(dom, 'click', dom.Expand);
            };
        dom.observe('click',dom.Expand);

    }
}

function Reposition() {
    var dom = $T.UI.ModalPopup.DOM != null ? $T.UI.ModalPopup.DOM : $T.UI.Confirm.DOM;
    if (dom) {
        if ($B.IE6 == true) {
            dom.style.position = 'absolute';
            dom.style.top = Math.floor(document.documentElement.scrollTop + document.documentElement.clientHeight / 2) + 'px';
            dom.style.left = Math.floor(document.documentElement.scrollLeft + document.documentElement.clientWidth / 2) + 'px';
        } else {
            dom.style.top = '50%';
            dom.style.left = '50%';
        }
        dom.style.marginLeft = (dom.offsetWidth / -2) + 'px';
        dom.style.marginTop = (dom.offsetHeight / -2) + 'px';
    }
}

function BindClose(container){
    var slt=function(selector){ return $$(selector);};
    container=$(container);
    if(typeof container!='undefined' && container && container.getElementsBySelector)
        slt=function(selector){ return $(container).getElementsBySelector(selector);};
    slt('li,dl').each(
        function(s){
            Event.stopObserving(s,'mouseenter');
            Event.stopObserving(s,'mouseleave');
            s.observe('mouseenter',function(event){
                event.element().getElementsBySelector('.close').each(
                    function(s){
                        s.show();
                        throw $break;
                    }
                );
            });
            s.observe('mouseleave',function(event){
                event.element().getElementsBySelector('.close').each(
                    function(s){
                        s.hide();
                        throw $break;
                    }
                );
            });
        }
    );
    slt('li .close,dl .close').each(
        function(s){
            s.hide();
        }
    );
}

function IsSensitive(content){
    var result=false;
    new $Ajax.Request('/Ajax/Common/IsSensitive.aspx',{
        method:'post',
        parameters: {content: content},
        asynchronous: false,
        onComplete: function(transport){
            if(transport.responseText=='1'){
                alert('内容非法');
                result= true;
                $(event).stop();
            }else{
                result= false;
            }
        }
    });
    return result;
}

var imgAppnum=0;
function GetPic(src, size){
    var imgApp = ["http://pic.baa.com.cn/img/",
            "http://img1.baa.com.cn/img/",
            "http://img2.baa.com.cn/img/",
            "http://img3.baa.com.cn/img/",
            "http://img4.baa.com.cn/img/"];
    imgAppnum = (imgAppnum + 1) % 5

    if (size.height && size.width) {
        return imgApp[imgAppnum] + new EncodeUtils().EncodeB64([src, '_=_', size.width, 'max'].join('')) + '.jpg';
    }
    else {
        return imgApp[imgAppnum] + new EncodeUtils().EncodeB64([src, '_=_', size, 'max'].join('')) + '.jpg';
    }
}
function ResizePic(dom, size, srcAttr){
    if(!dom.rsrc){
        if(typeof srcAttr=='undefined' || !srcAttr)
            dom.rsrc=dom.src;
        else
            dom.rsrc=dom.attributes[srcAttr].value;
        dom.rsrc=GetPic(dom.rsrc, size);
        dom.src=dom.rsrc;
    }
}
/*firefox*/
function __firefox(){
    HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
    window.constructor.prototype.__defineGetter__("event", __window_event);
    Event.prototype.__defineGetter__("srcElement", __event_srcElement);
}
function __element_style(){
    return this.style;
}
function __window_event(){
    return __window_event_constructor();
}
function __event_srcElement(){
    return this.target;
}
function __window_event_constructor(){
    if(document.all){
        return window.event;
    }
    var _caller = __window_event_constructor.caller;
    while(_caller!=null){
        var _argument = _caller.arguments[0];
        if(_argument){
            var _temp = _argument.constructor;
            if(_temp.toString().indexOf("Event")!=-1){
                return _argument;
            }
        }
        _caller = _caller.caller;
    }
    return null;
}
if(window.addEventListener){
    __firefox();
}
/*end firefox*/


// BASE 64
function EncodeUtils(){
 this.keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
}

EncodeUtils.create=function(){};

EncodeUtils.prototype.EncodeB64=function(rawStr) {
 var escapedStr = encodeURIComponent(rawStr);
 var count = 0;
 var ints = new Array();
 var b64Str = "";
 for(var i=0,size=escapedStr.length;i<size;i++){
  var ch = escapedStr.charAt(i);
  if(ch=='%'){
   ints.push(parseInt(escapedStr.charAt(i+1),16)*16+parseInt(escapedStr.charAt(i+2),16));
   i += 2;
  }else{
   ints.push(ch.charCodeAt());
  }
  if(count++ == 2){
   b64Str += this.GetB64Str(ints);
   count = 0;
   ints.length = 0;
  }
 }
 b64Str += this.GetB64Str(ints);
 return b64Str;
};

EncodeUtils.prototype.GetB64Str=function(ints){
 if(ints.length==0) return "";
 var rawLen = ints.length;
 while(ints.length<3){
  ints.push(0);
 }
 var ch1 = this.keyStr.charAt(ints[0] >> 2);
 var ch2 = this.keyStr.charAt(((ints[0] & 3) << 4) | (ints[1] >> 4));
 var ch3 = this.keyStr.charAt(((ints[1] & 15) << 2) | (ints[2] >> 6));
 var ch4 = this.keyStr.charAt(ints[2] & 63);
 if(rawLen==1){ch3='=';ch4='=';}
 if(rawLen==2){ch4='=';}
 return ch1+ch2+ch3+ch4;
};



