var wChat = new Object;

wChat.w = false;
wChat.chat = false;
wChat.xpos = 0;
wChat.ypos = 0;
wChat.xFpos = 0;
wChat.yFpos = 0;
wChat.bIE = 0;
wChat.bOp = 0;
wChat.bFF = 0;
wChat.verBr = navigator.userAgent;
wChat.XMLHttpRequestObject = false;
wChat.XMLObjectList = new Object;
wChat.XMLObjectNum = 0;
wChat.msg = false;
wChat.msgList = new Object;
wChat.messageList = new Object;
wChat.lostTime = 0;
wChat.msgBox = false;
wChat.comn = 0;
wChat.operator = false;
wChat.userList = new Object;
wChat.userListActive = new Object;
wChat.userListMessage = new Object;
wChat.loadDataInterval = 0;
wChat.loadUserInterval = 0;
wChat.marqueeTitleId = 0;
wChat.infoBox = false;

wChat.toggle = function() {
        toggle(this.w);
}

wChat.loadCoordEvent = function(e) {
        if (!e) e = window.event;
        if (e.pageX || e.pageY) {
                this.xpos = e.pageX;
                this.ypos = e.pageY;
        } else if (e.clientX || e.clientY) {
                this.xpos = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
                this.ypos = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
        }
        if(navigator.userAgent.indexOf("MSIE") != -1){
                this.ypos += 2;
                this.xpos += 2;
        }
}

wChat.wMove = function(e) {
        wChat.loadCoordEvent(e);
        var html = document.documentElement;
        wChat.w.style.left = (wChat.xpos - wChat.xFpos) + 'px';
        wChat.w.style.top = (wChat.ypos - wChat.yFpos) + 'px';
        setCookie('wChatLeft', wChat.xpos - wChat.xFpos - html.scrollLeft);
        setCookie('wChatTop', wChat.ypos - wChat.yFpos - html.scrollTop);
}

wChat.load = function() {
        //if(getCookie('wChatClose') == 'true') return false;
        if(this.verBr.indexOf("Opera") != -1) this.bOp = 1;
        else {
                if(this.verBr.indexOf("MSIE") != -1) this.bIE=1;
                else this.bFF=1;
        }
        wChat.w = document.getElementById('wChat');
        if(!wChat.w) return false;
        show(wChat.w);
        if(getCookie('wChatMinimize') == 'true') wChat.wMinimizeWindow();
        else {
                wChat.loadDataForm();
                window.onresize = wChat.onresize;
        }
        window.onscroll = wChat.onscroll;
}

wChat.ajaxAdd = function(urlD, typeD, fnD) {
        wChat.XMLObjectList["xml"+wChat.XMLObjectNum++] = {url:urlD, type:typeD, fn:fnD};
        for(var xml in wChat.XMLObjectList) {
                wChat.ajaxData();
                break;
        }
}

wChat.ajaxData = function() {
        /*
        if(!wChat.XMLHttpRequestObject)
        {
                if (window.XMLHttpRequest) wChat.XMLHttpRequestObject = new XMLHttpRequest();
                else if (window.ActiveXObject) wChat.XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
        }
        */
        if(wChat.XMLObjectList) {
                for(var xml in wChat.XMLObjectList)
                {
                        if (window.XMLHttpRequest) wChat.XMLHttpRequestObject = new XMLHttpRequest();
                        else if (window.ActiveXObject) wChat.XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
                        if(wChat.XMLObjectList[xml].type != 'POST') wChat.XMLObjectList[xml].type = 'GET';
                        wChat.XMLHttpRequestObject.open(wChat.XMLObjectList[xml].type, "admin/mechanisms/chat/ajax.php"+wChat.XMLObjectList[xml].url);
                        wChat.XMLHttpRequestObject.onreadystatechange = wChat.XMLObjectList[xml].fn;
                        wChat.XMLHttpRequestObject.send(null);
                        delete wChat.XMLObjectList[xml];
                        break;
                }
        }
}

wChat.msgListEcho = function() {
        wChat.lostTime = wChat.msgList.lostTime;
        var wM = wChat.msgList.messages;
        for(var msg in wM) {
                if((wChat.comn == wM[msg].comn) || (!wChat.operator)) {
                        var d = document.createElement('div');
                        d.innerHTML = wM[msg].message.replace(/(?:(http|ftp):\/\/?\w*.\w{2,4}\S*)/g, '<a href="$&" target="_blank">$&</a>');
                        wChat.msgBox.appendChild(d);
                }
                if(wChat.operator && wChat.messageList['m'+wM[msg].comn]) {
                        wChat.messageList['m'+wM[msg].comn]['t'+wM[msg].dt] = wM[msg].message;
                        if(!wChat.userListMessage["m"+wM[msg].comn]) {
                                wChat.nmUserActive(document.getElementById("m"+wM[msg].comn));
                        }
                }
                delete wM[msg];
        }
        wChat.msgBox.scrollTop = wChat.msgBox.offsetHeight + 7000;
}

wChat.loadData = function(msg) {
        if(!msg) msg = '';
        // Получаем и отправляем данные
        wChat.ajaxAdd("?d=msg&msg="+encodeURIComponent(msg)+"&time="+wChat.lostTime+"&comn="+wChat.comn, 'GET', wChat.ajaxFormData);
        if(wChat.loadDataInterval === 0) wChat.loadDataInterval = setInterval(function() { wChat.loadData('') }, 3000);
}

wChat.ajaxObject = function(obj) {
        wChat.msgList = obj;
}

wChat.ajaxUserObject = function(obj) {
        wChat.userList = obj;
}

wChat.ajaxFormData = function() {
        if (wChat.XMLHttpRequestObject.readyState == 4 &&
            wChat.XMLHttpRequestObject.status == 200) {
                    eval(wChat.XMLHttpRequestObject.responseText);
                    //alert(wChat.XMLHttpRequestObject.responseText);
                    if(typeof(wChat.msgList) == 'object') wChat.msgListEcho();
                    wChat.ajaxData();
        }
}

wChat.userActive = function(th) {
        var id = wChat.userListActive[th.id];
        if((wChat.comn != id) && (id > 0)) {
                if(wChat.comn > 0) {
                        var lost = document.getElementById("m"+wChat.comn);
                        if(lost) {
                                if(lost.getElementsByTagName('strong')[0]) {
                                        lost.innerHTML = lost.getElementsByTagName('strong')[0].innerHTML;
                                }
                        }
                }
                wChat.comn = id;
                var s = document.createElement('strong');
                s.innerHTML = th.innerHTML;
                th.innerHTML = '';
                th.appendChild(s);
                wChat.msgBox.innerHTML = '';
                var wM = wChat.messageList['m'+wChat.comn];
                for(var msg in wM) {
                        var d = document.createElement('div');
                        d.innerHTML = wM[msg].replace(/(?:(http|ftp):\/\/?\w*.\w{2,4}\S*)/g, '<a href="$&" target="_blank">$&</a>');;
                        wChat.msgBox.appendChild(d);
                }
                if(wChat.userListMessage['m'+wChat.comn]) {
                        wChat.nmUserDeactive(th);
                }
                wChat.msgBox.scrollTop = wChat.msgBox.offsetHeight + 200;
                wChat.loadData();
        }
}

wChat.userListEdit = function() {
        var wU = wChat.userList;
        var wA = wChat.userListActive;
        var user = document.getElementById('wChatUserList');
        if(!user) return false;
/*
        for(var a in wA) {
                if(!wU[a]) {
                        var us = document.getElementById(a);
                        if(us) us.parentNode.removeChild(us);
                        delete wChat.messageList[a];
                        if(a == 'm'+wChat.comn) {
                                wChat.comn = 0;
                        }
                }
        }
*/
        for(var u in wU) {
                if(!wA[u]) {
                        var d = document.createElement('span');
                        d.innerHTML = 'User '+wU[u];
                        d.id = u;
                        d.onclick = function() { wChat.userActive(this) };
                        user.appendChild(d);
                        wA[u] = wU[u];
                        wChat.messageList[u] = {};
                }
        }
        if(!wChat.comn) {
                wChat.userActive(user.getElementsByTagName('span')[0]);
        }
}

wChat.ajaxUserList = function() {
        if (wChat.XMLHttpRequestObject.readyState == 4 &&
            wChat.XMLHttpRequestObject.status == 200) {
                    eval(wChat.XMLHttpRequestObject.responseText);
                    //alert(wChat.XMLHttpRequestObject.responseText);
                    if(typeof(wChat.userList) == 'object') wChat.userListEdit();
                    wChat.ajaxData();
        }
}

wChat.loadUserList = function() {
        wChat.ajaxAdd("?d=userlist", 'GET', wChat.ajaxUserList);
        if(wChat.loadUserInterval === 0) wChat.loadUserInterval = setInterval(function() { wChat.loadUserList() }, 10000);
}

wChat.ajaxForm = function() {
        wChat.w.onmouseover = null;
        wChat.w.onmouseout = null;
        if (wChat.XMLHttpRequestObject.readyState == 4 &&
            wChat.XMLHttpRequestObject.status == 200) {
                    if(trim(wChat.XMLHttpRequestObject.responseText) == '') {
                            hide(wChat.w);
                            return false;
                    }
                    wChat.w.innerHTML = wChat.XMLHttpRequestObject.responseText;
                    // Определяем тип данных
                    if(document.getElementById('wChatLogin')) {
                            wChat.w.className = 'wChatLogin';

                    } else if(document.getElementById('wChatMessageText')) {
                            if(getCookie('wChatLeft') && getCookie('wChatTop')) {
                                    wChat.w.style.left = getCookie('wChatLeft') + 'px';
                                    wChat.w.style.top = getCookie('wChatTop') + 'px';
                            } else {
                                    var html = document.documentElement;
                                    wChat.w.style.left = parseInt(html.clientWidth) / 2 - parseInt(wChat.w.offsetWidth) / 2 + html.scrollLeft + 'px';
                                    wChat.w.style.top = parseInt(html.clientHeight) / 2 - parseInt(wChat.w.offsetHeight) / 2 + html.scrollTop + 'px';
                                    setCookie('wChatLeft', parseInt(wChat.w.style.left) - html.scrollLeft);
                                    setCookie('wChatTop', parseInt(wChat.w.style.top) - html.scrollTop);
                            }
                            wChat.wChatActive(true);
                            wChat.msgBox = document.getElementById('wChatMessageBox');
                            var but = document.getElementById('wChatMessageBoxButton');
                            if(but) but.onclick = wChat.goMessage;
                            wChat.msg = document.getElementById('wChatMessageText');
                            wChat.msg.onkeydown = function(e) {
                                    e = e || window.event;
                                    if(e.keyCode == 13) {
                                            wChat.goMessage();
                                    }
                            }
                            wChat.msg.onfocus = function() {
                                    if(this.value == 'Введите сообщение ') this.value = '';
                                    this.className = 'wChatMessageNewText';
                            }
                            wChat.msg.onblur = function() {
                                    if(this.value == '') {
                                            this.value = 'Введите сообщение ';
                                            this.className = 'wChatMessageOldText';
                                    }
                            }
                            wChat.msg.focus();
                            if(wChat.bFF) wChat.msg.parentNode.style.marginTop = '8px';
                            if(document.getElementById('wChatUserList')) {
                                    wChat.operator = true;
                            }
                            if(wChat.operator) wChat.loadUserList();
                            else wChat.loadData();
                            if((wChat.getCookie('wChatOw') > 0) &&
                               (wChat.getCookie('wChatOh') > 0)) {
                                    window.resizeTo(wChat.getCookie('wChatOw') + 5, wChat.getCookie('wChatOh') + 50);
                            }
                            if((wChat.getCookie('wChatOt') > 0) &&
                               (wChat.getCookie('wChatOl') > 0)) {
                                    window.moveTo(wChat.getCookie('wChatOt'), wChat.getCookie('wChatOl'));
                            }
                            var move = document.getElementById('wChatMove');
                            if(move) {
                                    move.onmousedown = function(e) {
                                            wChat.loadCoordEvent(e);
                                            wChat.xFpos = wChat.xpos - wChat.w.offsetLeft;
                                            wChat.yFpos = wChat.ypos - wChat.w.offsetTop;
                                            document.onmousemove = wChat.wMove;
                                            if(wChat.bOp || wChat.bFF) move.addEventListener("onmousedown", wChat.wMove, false);
                                    }
                                    move.onmouseup = function() {
                                            document.onmousemove = null;
                                    }
                                    var min = document.getElementById('wChatMin');
                                    if(min) {
                                            min.onclick = wChat.wMinimizeWindow;
                                    }
                                    wChat.w.className = 'wChatWindow';
                                    wChat.ajaxAdd("?d=opinfo", 'GET', wChat.ajaxFormData);
                            }
                            wChat.onresize();
                            wChat.ajaxData();
                    } else {
                            wChat.w.onmouseover = wChat.newUserMouseOver;
                            wChat.w.onmouseout = wChat.newUserMouseOut;
                            wChat.w.className = 'wChatUser';
                            if(!getCookie('wChatStart')) {
                                    setCookie('wChatStart', true);
                                    wChat.newUserMouseOver();
                                    setTimeout(wChat.newUserMouseOut, 3000);
                            }
                    }
                    wChat.onscroll();
                    //wChat.show(wChat.w);
        }
}

wChat.getElementComputedStyle = function(elem, prop)
{
  if (typeof elem!="object") elem = document.getElementById(elem);

  // external stylesheet for Mozilla, Opera 7+ and Safari 1.3+
  if (document.defaultView && document.defaultView.getComputedStyle)
  {
    if (prop.match(/[A-Z]/)) prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
    return document.defaultView.getComputedStyle(elem, "").getPropertyValue(prop);
  }

  // external stylesheet for Explorer and Opera 9
  if (elem.currentStyle)
  {
    var i;
    while ((i=prop.indexOf("-"))!=-1) prop = prop.substr(0, i) + prop.substr(i+1,1).toUpperCase() + prop.substr(i+2);
    return elem.currentStyle[prop];
  }

  return "";
}

wChat.newUserMouseConf = {over:false, out:false, max:0, min:-310, speed:50, step:15, timeout:2500}

wChat.newUserMouseOver = function() {
        if(wChat.w.className != 'wChatUser') return false;
        var c = wChat.newUserMouseConf;
        if(c.out) c.out = false;
        var mleft = parseInt(wChat.getElementComputedStyle(wChat.w, "margin-left"));
        if(mleft < c.max) {
                c.over = true;
                wChat.w.style.marginLeft = ((mleft + c.step < c.max) ? mleft + c.step : c.max) + 'px';
                if(mleft == c.max) {
                        c.over = false;
                } else {
                        setTimeout(wChat.newUserMouseOver, c.speed);
                }
        }
}

wChat.newUserMouseOut = function() {
        if(wChat.w.className != 'wChatUser') return false;
        var c = wChat.newUserMouseConf;
        var mleft = parseInt(wChat.getElementComputedStyle(wChat.w, "margin-left"));
        if(!c.out && mleft > c.min) {
                c.over = false;
                wChat.newUserMouseConf.out = true;
                setTimeout(wChat.newUserMouseOut, c.timeout);
        } else if(!c.over) {
                if(mleft > c.min) {
                        wChat.w.style.marginLeft = ((mleft - c.step) ? mleft - c.step : c.min) + 'px';
                        if(mleft == c.min) {
                                c.out = false;
                        } else {
                                setTimeout(wChat.newUserMouseOut, c.speed);
                        }
                }
        } else c.out = false;
}

/*
wChat.ajaxNewUser = function() {
        if (wChat.XMLHttpRequestObject.readyState == 4 &&
            wChat.XMLHttpRequestObject.status == 200) {

                    //wChat.w.
        }
}

wChat.loadNewUser = function(data) {
        if(!data) data = '';
        this.w.className = 'wChat';
        wChat.ajaxAdd('?d=newuser'+data, 'GET', this.ajaxNewUser);
}
*/
wChat.loadDataForm = function(chat) {
        // Получаем данные формы
        wChat.ajaxAdd('?d=form&chat='+((chat)?'true':'false'), 'GET', wChat.ajaxForm);
}

wChat.wMinimizeWindow = function() {
        wChat.w.innerHTML = '<div id="wChatMinimizeTrue">Вернуться к разговору с оператором</div>';
        wChat.w.className = 'wChatUser';
        wChat.w.style.left = '0px';
        wChat.w.style.top = '50%';
        setCookie('wChatMinimize', 'true');
        wChat.w.onmouseover = wChat.newUserMouseOver;
        wChat.w.onmouseout = wChat.newUserMouseOut;
        wChat.w.className = 'wChatUser';
        document.getElementById('wChatMinimizeTrue').onclick = wChat.wMinimize;
        setTimeout(wChat.newUserMouseOut, 1000);
        //clearInterval(wChat.loadDataInterval);
}

wChat.wResizeWindow = function(wTop, wLeft, wWidth, wHeight) {
        wChat.w.style.top = wTop + 'px';
        wChat.w.style.left = wLeft + 'px';
        wChat.w.style.width = wWidth + 'px';
        wChat.w.style.height = wHeight + 'px';
}

wChat.wMinimize = function() {
        if(getCookie('wChatMinimize') == 'true')
        {
                wChat.messageList = new Object();
                wChat.lostTime = 0;
                wChat.loadDataForm();
                setCookie('wChatMinimize', 'false');
        } else wChat.wMinimizeWindow();
}

wChat.wClose = function() {
        if(this.chat) {
                var confirmed = confirm('Вы действительно хотите закончить разговор?');
                this.chat = !confirmed;
        }
        if(!this.chat) {
                this.w.innerHTML = '';
                this.w.style.display = 'none';
                setCookie('wChatClose', 'true', { expires: 7200 });
                this.wChatActive(false);
        }
}

wChat.goOp = function() {
        var data = document.getElementById('wChatSystemData');
        if(isHidden(data)) {
                data.innerHTML = '<iframe scrolling="no" src="admin/mechanisms/chat/ajax.php?d=redirect&comn='+wChat.comn+'" width="99%" height="20" align="left">Ваш браузер не поддерживает плавающие фреймы!</iframe>';
                show(data);
        } else hide(data);
        wChat.onresize();
}

wChat.userInfo = function() {
        var data = document.getElementById('wChatSystemData');
        if(isHidden(data)) {
                data.innerHTML = '<iframe scrolling="yes" src="admin/mechanisms/chat/ajax.php?d=info&comn='+wChat.comn+'" width="99%" height="300" style="margin-bottom:10px;" align="left">Ваш браузер не поддерживает плавающие фреймы!</iframe>';
                show(data);
        } else hide(data);
        wChat.onresize();
}

wChat.closeOp = function() {
        var confirmed = confirm('Вы действительно хотите завершить разговор?');
        if(confirmed) {
                wChat.ajaxAdd("?d=userlist&comn="+wChat.comn, 'GET', wChat.ajaxUserList);
        }
}

wChat.exitOp = function() {
        var confirmed = confirm('Вы действительно хотите выйти?');
        if(confirmed) {
                var html = document.documentElement;
                wChat.ajaxAdd('?d=login&ow='+html.clientWidth+'&oh='+html.clientHeight+((wChat.bIE)?'&ot='+window.screenTop+'&ol='+window.screenLeft:'&ot='+window.screenY+'&ol='+window.screenX)+'&exit', 'GET', this.ajaxForm);
                clearInterval(wChat.loadDataInterval);
                clearInterval(wChat.loadUserInterval);
                wChat.userListActive = new Object();
                wChat.messageList = new Object();
                wChat.comn = 0;
                wChat.lostTime = 0;
                wChat.clearTitle();
        }
}

wChat.unloadFile = function() {
        var data = document.getElementById('wChatSystemData');
        if(isHidden(data)) {
                data.innerHTML = '<iframe scrolling="no" src="admin/mechanisms/chat/ajax.php?d=upload&comn='+wChat.comn+'" width="99%" height="20" align="left">Ваш браузер не поддерживает плавающие фреймы!</iframe>';
                show(data);
        } else hide(data);
        wChat.onresize();
}

wChat.dataHide = function() {
        var data = document.getElementById('wChatSystemData');
        if(!isHidden(data)) hide(data);
        wChat.onresize();
}

wChat.wChatActive = function(type) {
        if(type != true) type = false;
        wChat.chat = type;
}

wChat.goMessage = function() {
        if(wChat.msg) {
                if(wChat.msg.value != '')
                {
                        if(wChat.operator) {
                                if(wChat.comn > 0) {
                                        wChat.loadData(wChat.msg.value);
                                        wChat.msg.value = '';
                                } else {
                                        alert('Нет активного пользователя для отправки сообщения');
                                }
                        } else {
                                wChat.loadData(wChat.msg.value);
                                wChat.msg.value = '';
                        }
                }
        }
        wChat.msg.focus();
}

// Operators part

wChat.openOperatorChat = function() {
        OpenM("chatoperator.php", 300, 360);
}

wChat.loadOpDataForm = function(th) {
        // Получаем данные формы
        this.w.className = 'wChatOp';
        wChat.ajaxAdd('?d=login'+((th)?'&login='+th.login.value+'&pass='+th.pass.value:'')+'&resize', 'GET', this.ajaxForm);
}

wChat.loadOp = function() {
        if(this.verBr.indexOf("Opera") != -1) this.bOp = 1;
        else {
                if(this.verBr.indexOf("MSIE") != -1) this.bIE=1;
                else this.bFF=1;
        }
        this.w = document.getElementById('wChatOp');
        if(!this.w) return false;
        wChat.loadOpDataForm();
        window.onresize = wChat.onresize;
}

// wChat.userListMessage

wChat.playNewMessage = function() {
        // play
}

wChat.marqueeTitle = function(seed, looped) {
        var msg = "*** У Вас новое сообщение ***";
        var putout = " ";
        var c = 1;
        if (looped > 10) { document.title="<Thanks !>"; }
        else if (seed > 100) {
                seed--;
                var cmd = "wChat.marqueeTitle("+seed+","+looped+")";
                timerTwo = window.setTimeout(cmd, 100);
        } else if (seed <= 100 && seed > 0) {
                for(c = 0; c < seed; c++) { putout += " "; }
                putout += msg.substring(0, 100 - seed);
                seed--;
                var cmd = "wChat.marqueeTitle("+seed+","+looped+")";
                document.title = putout;
                wChat.marqueeTitleId = window.setTimeout(cmd, 100);
        } else if (seed <= 0) {
                if (-seed < msg.length) {
                        putout += msg.substring(-seed, msg.length);
                        seed--;
                        var cmd = "wChat.marqueeTitle(" + seed + "," + looped + ")";
                        document.title = putout;
                        wChat.marqueeTitleId = window.setTimeout(cmd, 100);
                } else {
                        wChat.marqueeTitle(100, 1);
                }
        } else {
                document.title = " ";
                looped++;
                var cmd = "wChat.marqueeTitle(100, "+looped+")";
                wChat.marqueeTitleId = window.setTimeout(cmd, 75);
        }
}

wChat.clearTitle = function() {
        clearTimeout(wChat.marqueeTitleId);
        wChat.marqueeTitleId = 0;
        document.title = "Система общения";
}

wChat.nmUserActive = function(th) {
        window.focus();
        if(th.id != "m"+wChat.comn) {
                wChat.userListMessage[th.id] = true;
                th.className = 'wChatNewMsg';
                if(wChat.marqueeTitleId == 0) {
                        wChat.marqueeTitle();
                }
        }
}

wChat.nmUserDeactive = function(th) {
        delete wChat.userListMessage[th.id];
        th.className = ' ';
        var newMsg = false;
        for(var u in wChat.userListMessage) {
                newMsg = true;
                break;
        }
        if(!newMsg) {
                wChat.clearTitle();
        }
}

//

wChat.addEvent = function(elem, evType, fn) {
        if (elem.addEventListener) {
                elem.addEventListener(evType, fn, false);
                return fn;
        }
        iefn = function() { fn.call(elem) }
        elem.attachEvent('on' + evType, iefn);
        return iefn;
}

wChat.getCookie = function(name) {
        var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"))
        return matches ? decodeURIComponent(matches[1]) : undefined
}

wChat.onresize = function() {
        if((wChat.chat == true) && (wChat.operator == true)) {
                var html = document.documentElement;
                wChat.w.style.width = (html.clientWidth - 50) + 'px';
                wChat.w.style.height = (html.clientHeight - 50) + 'px';
                wChat.msg.style.width = (html.clientWidth - 125) + 'px';
                wChat.msgBox.style.width = (html.clientWidth - 60) + 'px';
                var msgBoxHeightPlus = 0;
                var data = document.getElementById('wChatSystemData');
                if(data) {
                        var dataFrame = data.getElementsByTagName('iframe')[0];
                        if(dataFrame) {
                                msgBoxHeightPlus = dataFrame.offsetHeight;
                        }
                }
                wChat.msgBox.style.height = (html.clientHeight - 130 - msgBoxHeightPlus) + 'px';
        }
}

wChat.onscroll = function() {
        if(wChat.operator == false) {
                var html = document.documentElement;
                if(wChat.w.className == 'wChatWindow') {
                        wChat.w.style.top = (parseInt(getCookie('wChatTop')) + html.scrollTop) + 'px';
                        wChat.w.style.left = (parseInt(getCookie('wChatLeft')) + html.scrollLeft) + 'px';
                } else {
                        wChat.w.style.top = parseInt(html.clientHeight) / 2 + html.scrollTop + 'px';
                        wChat.w.style.left = '0px';
                }
        }
}

wChat.fixPNG = function(element)
{
        if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
        {
                var src;

                if (element.tagName=='IMG')
                {
                        if (/\.png$/.test(element.src))
                        {
                                src = element.src;
                                element.src = "img/pix.gif";
                        }
                }
                else
                {
                        src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
                        if (src)
                        {
                                src = src[1];
                                element.runtimeStyle.backgroundImage="none";
                        }
                }

                if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
        }
}

wChat.ajaxOperatorInfo = function(d) {
        if(typeof(d) == 'object') {
                if(!wChat.infoBox) wChat.infoBox = document.getElementById('wChatInfoBox');
                if(wChat.infoBox) {
                        if(d.foto == '') d.foto = 'shablon/default/img/noimg.jpg';
                        wChat.infoBox.innerHTML = '<div>С Вами говорит менеджер<br>'+d.fio+'</div><img src="admin/mechanisms/chat/'+d.foto+'" width="60" height="60" alt="">';
                }
        }
}
