var pca = 0;
var onlinThumb = 0;
var onlinChat = 0;
var onlnPicName = 'onlin.gif';
var onlnPicNameH = 'onlinh.gif';
function mousePageXY(e)
{
var x = 0, y = 0;
if (!e) e = window.event;
if (e.pageX || e.pageY)
{
x = e.pageX;
y = e.pageY;
}
else if (e.clientX || e.clientY)
{
x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}
return {"x":x, "y":y};
}
var divOnlineSmall;
function slideDivHor(dH){
var deltaHor = dH;
var endX = 0;
divOnlineSmall.style.left = (parseInt(divOnlineSmall.style.left) + deltaHor) + 'px';
if (parseInt(divOnlineSmall.style.left) < endX - deltaHor) {
setTimeout('slideDivHor(' + (dH+2) + ')',20);
} else {
divOnlineSmall.style.left = endX + 'px';
}
}
function initOnline(){
var now = new Date();
if ((now.getHours() > 17 ) || (now.getHours() < 8) ){
onlnPicName = 'olof1.gif';
onlnPicNameH = 'olof2.gif';
}
var t = 210;
var w = 260;
var h = 79;
var d = 0;
var ont = insPanel(0,d-w,t,w,h, '#dddddd','onlinThumb');
ont.hidd = 1;
ont.style.backgroundImage = "url('/img/onlin/bg.gif')";
ont.h = h;
ont.w = w;
ont.olcb = 0;
var HeaderText = drawText(ont, 10, 10, 'Онлайн консультация', "#ffffff");
HeaderText.style.fontSize = '15px';
var HintBlock = insPanel(0,0,0,0,0,"#7cc6ff");
HintBlock.style.position = 'absolute';
var HintBlockText = drawText(HintBlock, 5, 3, '', "#ffffff");
HintBlock.text = HintBlockText;
HintBlock.hidden = 0;
var StartChatBlock = fullRect(ont,2,25,w-50,h-28,trans,0,0,0,0,"#7F9FBF");
var StartChatText = drawText(StartChatBlock, 74, 22, 'Начать разговор', "#ffffff");
StartChatText.style.fontSize = '15px';
StartChatBlock.style.cursor = 'pointer';
StartChatBlock.onclick = function(){
EmptyDiv(HintBlock);
if (!onlinChat) initChat(ont)
else onlinChat.style.display = 'block';
};
StartChatBlock.onmouseover = function(){
HintBlock.style.width = '110px';
HintBlock.style.height = '23px';
HintBlock.hidden = 0;
HintBlock.text.innerHTML = 'Начать разговор';
};
StartChatBlock.onmouseout = function(){
HintBlock.style.width = '0px';
HintBlock.style.height = '0px';
HintBlock.text.innerHTML = '';
HintBlock.hidden = 1;
};
StartChatBlock.onmousemove = function(e){
var mCur = mousePageXY(e);
HintBlock.style.left = mCur.x + 20 + 'px';
HintBlock.style.top = mCur.y + 20 + 'px';
};
imagRect(ont, 20,42,35,26, "/img/onlin/bklogo3.gif");
var ShowPic = imagRect(ont, w,0,30,79, "/img/onlin/" + onlnPicName);
divOnlineSmall = ont;
ShowPic.style.cursor = 'pointer';
ShowPic.onclick = function(){
if (ont.hidd) {
ShowPic.src = '/img/onlin/' + onlnPicNameH;
ont.hidd = 0;
slideDivHor(1);
if (onlinChat) onlinChat.style.display = 'block';
} else {
ShowPic.src = '/img/onlin/'+ onlnPicName;
hideOnline();
}
};
ShowPic.onmouseover = function(){
HintBlock.style.width = '120px';
HintBlock.style.height = '23px';
HintBlock.hidden = 0;
if (ont.hidd) { HintBlock.text.innerHTML = 'Развернуть панель'; }
else { HintBlock.text.innerHTML = 'Свернуть панель';};
};
ShowPic.onmouseout = function(){
HintBlock.style.width = '0px';
HintBlock.style.height = '0px';
HintBlock.text.innerHTML = '';
HintBlock.hidden = 1;
};
ShowPic.onmousemove = function(e){
var mCur = mousePageXY(e);
HintBlock.style.left = mCur.x + 20 + 'px';
HintBlock.style.top = mCur.y + 20 + 'px';
};
ont.ShowPic = ShowPic;
onlinThumb = ont;
return ont;
}
function initChat(onp){
var t = 290;
var l = 0;
var w = 400;
var h0 = 253;
var h1 = 600;
var ont = insPanel(0,l,t,w,h0, '#dddddd','onlinThumb');
ont.t = t;
ont.l = l;
ont.w = w;
ont.h0 = h0;
ont.h1 = h1;
onp.olcb = ont;
var sht = fullRect(ont,7,7,w-4,h0-4,"#000000",0,0,0,0,"#000000");
setOpact(sht,0.20);
ont.sht = sht;
// задний блок
var ozb = fullRect(ont,0,0,w,h0,"#FFFFFF",1,1,1,1,"#7F9FBF");
ont.ozb = ozb;
fullRect(ont, 0 ,0 ,w, 25,"#D3D3D3" ,
1,1,1,1,"#7F9FBF");
fontText(false,false,1,0);
drawText(ont, 10, 5,"Онлайн консультация" ,
"#FFFFFF");
loweRect(ont, w-23, 5,15,15, 1 );
var xxx =
drawText(ont, w-19, 4, "x","#D68F0C");
moveRect(ont, 0 ,0 ,w-2, 25, trans );
var but =
fillRect(ont, w-23, 5,15,15, trans );
but.title = "закрыть";
but.onclick = function(){
hideOnline();
};
xxx.onclick = function(){
hideOnline();
};
xxx.style.cursor= "default";
fDefault( );
ont.hidd = 1;
var HintBlock = insPanel(0,0,0,0,0,"#ff0000");
HintBlock.style.position = 'absolute';
var HintBlockText = drawText(HintBlock, 5, 3, '', "#ffffff");
HintBlock.text = HintBlockText;
HintBlock.hidden = 0;
var StarterBlock = insPanel(ont,0,0,0,0,"#ffffff");
var aboutText = 'Вы можете ввести свое имя и вопрос оператору.
После нажатия кнопки "Отправить" Ваше сообщение
будет обработано оператором.';
var AboutText = drawText(StarterBlock, 10, 40, '', "#0060a9");
AboutText.innerHTML = aboutText;
var NameText = drawText(StarterBlock, 10, 98, 'Ваше имя:', "#0060a9");
var MessageText = drawText(StarterBlock, 10, 120, 'Ваш вопрос:', "#0060a9");
var clientNameInput = editText(StarterBlock, 90,95,w-100,20,0,'', '#333333', '#ffffff');
var clientMessage = memoText(StarterBlock, 10,137,w-20,75, 0, '', '#333333', '#ffffff');
clientMessage.style.overflow = "auto";
var btnStart = fillRect(StarterBlock, w/2-50,h0-30,100,20, '#72a81b');
var btnStartText = drawText(btnStart, 15, 2, 'Отправить', "#ffffff");
btnStartText.style.fontWeight = 'bold';
btnStart.style.cursor= "pointer";
btnStart.onclick = function(){
if (clientNameInput.value.length < 1) {
clientNameInput.focus();
fadeRect(clientNameInput,150,"#FD5711","#FFFFFF");
} else
if (clientMessage.value.length < 1) {
clientMessage.focus();
fadeRect(clientMessage,150,"#FD5711","#FFFFFF");
} else
{
ont.ClientName = clientNameInput.value;
ont.ClientMessage = clientMessage.value;
EmptyDiv(HintBlock);
EmptyDiv(StarterBlock);
CreateChatDialog(ont);
}
};
btnStart.onmouseout = function(){
btnStart.style.backgroundColor = '#72a81b';
HintBlock.style.width = '0px';
HintBlock.style.height = '0px';
HintBlock.text.innerHTML = '';
HintBlock.hidden = 1;
};
btnStart.onmouseover = function(){
btnStart.style.backgroundColor = '#a5d525';
HintBlock.style.backgroundColor = '#7cc6ff';
HintBlock.style.width = '135px';
HintBlock.style.height = '23px';
HintBlock.hidden = 0;
HintBlock.text.innerHTML = 'Отправить сообщение';
};
btnStart.onmousemove = function(e){
var mCur = mousePageXY(e);
HintBlock.style.left = mCur.x + 20 + 'px';
HintBlock.style.top = mCur.y + 20 + 'px';
};
onlinChat = ont;
return ont;
}
function CreateChatDialog(Block){
var t = 140; // отступ сверху
var chatH = 326;
var messH = 63;
var ChatBlock = insPanel(Block,0,0,0,0,"#ffffff");
// увеличение панели обратной связи до рабочего размера
Block.style.height = Block.h1 + 'px';
Block.ozb.style.height = Block.h1 + 'px';
Block.sht.style.height = Block.h1-2 + 'px';
// хинт
var HintBlock = insPanel(0,0,0,0,0,"#ff0000");
HintBlock.style.position = 'absolute';
HintBlockText = drawText(HintBlock, 5, 3, '', "#ffffff");
HintBlock.text = HintBlockText;
HintBlock.hidden = 0;
var ChatHeaderBlock = fullRect(ChatBlock,10,t-20,146,20,"#7cc6ff",1,1,1,0,"#7F9FBF");
var ChatHeader = drawText(ChatHeaderBlock, 3, 2, 'Диалог с консультантом', "#ffffff");
var inittext = 'Здравствуйте!
Подождите, пожалуйста. Оператор ответит вам в ближайшее время.';
inittext += '
' + Block.ClientName + ': ' + Block.ClientMessage;
var ClientMessage0 = Block.ClientMessage;
var ChatBorder = drawRect(ChatBlock, 10,t,Block.w-20,chatH, '#7F9FBF');
var Chat = insPanel(ChatBlock, 15,t+5,Block.w-20-10,chatH-10, '#ffffff', 'onlineChat');
Chat.style.overflow = "auto";
Chat.style.color = '#333333';
Chat.innerHTML = inittext;
ChatBlock.Chat = Chat;
ChatBlock.ClientName = Block.ClientName;
onlinChat.ChatText = Chat;
var ChatHeaderBlock = fullRect(ChatBlock,10,t + chatH +10,105,20,"#7cc6ff",1,1,1,0,"#7F9FBF");
var ClientMessHeader = drawText(ChatHeaderBlock, 3, 2, 'Ваше сообщение', "#ffffff");
var ClientMess = memoText(ChatBlock, 10,t + chatH + 30,Block.w-20,messH, 0, 'Введите текст вашего сообщения...', '#333333', '#ffffff');
onlinChat.ClientMessage = ClientMess;
ClientMess.style.overflow = "auto";
ClientMess.onclick = function(){
if (ClientMess.value == 'Введите текст вашего сообщения...') {
ClientMess.value = '';
}
};
var isCtrl = false;
ClientMess.isCtrl = isCtrl;
ClientMess.onkeyup=function(e){
if(e.which == 17) ClientMess.isCtrl=false;
}
ClientMess.onkeydown=function(e){
if(e.which == 17) ClientMess.isCtrl=true;
if(e.which == 13 && ClientMess.isCtrl == true)
{
clientSendMess(ChatBlock);
return false;
}
}
ChatBlock.ClientMess = ClientMess;
var btnSend = fillRect(ChatBlock, Block.w/2-50,Block.h1-30,100,20, '#72a81b');
var btnSendText = drawText(btnSend, 15, 2, 'Отправить', "#ffffff");
btnSendText.style.fontWeight = 'bold';
btnSend.style.cursor= "pointer";
btnSend.onclick = function(){
clientSendMess(ChatBlock);
};
btnSend.onmouseout = function(){
btnSend.style.backgroundColor = '#72a81b';
HintBlock.style.width = '0px';
HintBlock.style.height = '0px';
HintBlock.text.innerHTML = '';
HintBlock.hidden = 1;
};
btnSend.onmouseover = function(){
btnSend.style.backgroundColor = '#a5d525';
HintBlock.style.backgroundColor = '#7cc6ff';
HintBlock.style.width = '215px';
HintBlock.style.height = '20px';
HintBlock.hidden = 0;
HintBlock.text.innerHTML = 'Нажмите для отправки сообщения';
};
btnSend.onmousemove = function(e){
var mCur = mousePageXY(e);
HintBlock.style.left = mCur.x + 20 + 'px';
HintBlock.style.top = mCur.y - 20 + 'px';
};
var ChatFotoBlock = fullRect(ChatBlock,Block.w-103,35,93,93,"#ffffff",1,1,1,1,"#7F9FBF");
var ChatFoto = imagRect(ChatFotoBlock, 20,28,50,34, "/img/onlin/bk2.gif" );
var TopText = drawText(ChatBlock, 10, 40, '', "#e4f3fe");
TopText.innerHTML = 'БалтКам
Онлайн-консультация';
TopText.style.fontSize = '24px';
onlinChat.ChatText.style.backgroundPosition = "center";
onlinChat.ChatText.style.backgroundRepeat = "no-repeat";
onlinChat.ChatText.style.backgroundImage = 'url("/img/onlin/load.gif")';
AjaxPost('/onlin.java','act0' + '' + Block.ClientName + '-mess-' + ClientMessage0,clientInitSession);
}
function clientInitSession(str){
var strs=str.split("\n");
onlinChat.ClientID = strs[0];
onlinChat.ChatText.style.backgroundImage = '';
var disclamer = drawText(onlinChat, 10, 30, '', "#000000");
disclamer.innerHTML = strs[1];
onlinChat.disclamer = disclamer;
pca = 1;
PeriodCheckAnswer();
}
function clientSendMess(chat){
if (onlinChat.ClientMessage.value.length > 0) {
onlinChat.ChatText.style.backgroundImage = 'url("/img/onlin/load.gif")';
AjaxPost('/onlin.java','act1' + onlinChat.ClientID + onlinChat.ClientMessage.value,clientMessageSend);
} else {
}
}
function clientMessageSend(str){
if (str == 1){
onlinChat.ChatText.innerHTML += '
' + onlinChat.ClientName + ': ' + onlinChat.ClientMessage.value.replace(/\r\n|\r|\n/g,'
');
onlinChat.ChatText.scrollTop = onlinChat.ChatText.scrollHeight;
onlinChat.ClientMessage.value = '';
onlinChat.ChatText.style.backgroundImage = '';
} else {
alert('Ошибка отправки, попробуйте еще раз.')
onlinChat.ChatText.style.backgroundImage = '';
}
}
function clientGetMessage(){
AjaxPost('/onlin.java','act2'+onlinChat.ClientID,clientMessageGet)
}
function clientMessageGet(str){
if (str.substr(0,5)=='close') {
EmptyDiv(onlinThumb);
EmptyDiv(onlinChat);
if (pca==1) {alert('Диалог завершен со стороны оператора.');}
pca = 0;
} else {
var strs=str.split("##ms##");
var strss;
for (i=1; i < strs.length; i++) {
strss = strs[i].split("##ans##"); // разбор ответа сервера
onlinChat.ChatText.innerHTML += '
' + strss[0] + ': ' + strss[1].replace(/\r\n|\r|\n/g,'
');
}
onlinChat.ChatText.scrollTop = onlinChat.ChatText.scrollHeight;
}
}
function hideOnline(){
onlinThumb.hidd = 1;
onlinThumb.style.left = -onlinThumb.w + 'px';
if (onlinChat != 0) onlinChat.style.display = 'none';
pca = 0;
}
function PeriodCheckAnswer(){
clientGetMessage();
if (pca) setTimeout('PeriodCheckAnswer()',10000);
}