var windowFocus=true;var username;var chatHeartbeatCount=0;var minChatHeartbeat=5000;var maxChatHeartbeat=33000;var chatHeartbeatTime=minChatHeartbeat;var originalTitle;var blinkOrder=0;var chatboxFocus=new Array();var newMessages=new Array();var newMessagesWin=new Array();var chatBoxes=new Array();var chatTimeout=null;$(document).ready(function(){originalTitle=document.title;$([window,document]).blur(function(){windowFocus=false;}).focus(function(){windowFocus=true;document.title=originalTitle;});});function restructureChatBoxes(){align=0;for(x in chatBoxes){chatboxtitle=chatBoxes[x];if($("#chatbox_"+chatboxtitle).css('display')!='none'){if(align==0){$("#chatbox_"+chatboxtitle).css('right','50px');}else{width=(align)*(225+7)+48;$("#chatbox_"+chatboxtitle).css('right',width+'px');}
align++;}}}
function createChatBox(chatboxtitle,chatboxid,minimizeChatBox){if($("#chatbox_"+chatboxid).length>0){if($("#chatbox_"+chatboxid).css('display')=='none'){$("#chatbox_"+chatboxid).css('display','block');restructureChatBoxes();}
$("#chatbox_"+chatboxid+" .chatboxtextarea").focus();return;}
$(" <div />").attr("id","chatbox_"+chatboxid).addClass("chatbox").html('<div class="chatboxhead"><div class="chatboxtitle">'+chatboxtitle+'</div><div class="chatboxoptions"><a href="javascript:void(0)" onclick="javascript:toggleChatBoxGrowth(\''+chatboxid+'\')">-</a> <a href="javascript:void(0)" onclick="javascript:closeChatBox(\''+chatboxid+'\')">X</a></div><br clear="all"/></div><div class="chatboxcontent"></div><div class="chatboxinput"><textarea class="chatboxtextarea" onkeydown="javascript:return checkChatBoxInputKey(event,this,\''+chatboxtitle+'\',\''+chatboxid+'\');"></textarea></div>').appendTo($("body"));$("#chatbox_"+chatboxid).css('bottom','20px');chatBoxeslength=0;for(x in chatBoxes){if($("#chatbox_"+chatBoxes[x]).css('display')!='none'){chatBoxeslength++;}}
if(chatBoxeslength==0){$("#chatbox_"+chatboxid).css('right','50px');}else{width=(chatBoxeslength)*(225+7)+48;$("#chatbox_"+chatboxid).css('right',width+'px');}
chatBoxes.push(chatboxid);if(minimizeChatBox==1){minimizedChatBoxes=new Array();if($.cookie('chatbox_minimized')){minimizedChatBoxes=$.cookie('chatbox_minimized').split(/\|/);}
minimize=0;for(j=0;j<minimizedChatBoxes.length;j++){if(minimizedChatBoxes[j]==chatboxid){minimize=1;}}
if(minimize==1){$('#chatbox_'+chatboxid+' .chatboxcontent').css('display','none');$('#chatbox_'+chatboxid+' .chatboxinput').css('display','none');}}
chatboxFocus[chatboxid]=false;$("#chatbox_"+chatboxid+" .chatboxtextarea").blur(function(){chatboxFocus[chatboxid]=false;$("#chatbox_"+chatboxid+" .chatboxtextarea").removeClass('chatboxtextareaselected');}).focus(function(){chatboxFocus[chatboxid]=true;newMessages[chatboxid]=false;$('#chatbox_'+chatboxid+' .chatboxhead').removeClass('chatboxblink');$("#chatbox_"+chatboxid+" .chatboxtextarea").addClass('chatboxtextareaselected');});$("#chatbox_"+chatboxid).click(function(){if($('#chatbox_'+chatboxid+' .chatboxcontent').css('display')!='none'){$("#chatbox_"+chatboxid+" .chatboxtextarea").focus();}});if(chatboxid==0){$("#chatbox_"+chatboxid+" .chatboxtextarea").attr("disabled",true);}
$("#chatbox_"+chatboxid).show();}
function chatHeartbeat(){var itemsfound=0;if(windowFocus==false){var blinkNumber=0;var titleChanged=0;for(x in newMessagesWin){if(newMessagesWin[x]==true){++blinkNumber;if(blinkNumber>=blinkOrder){document.title=x+' says...';titleChanged=1;break;}}}
if(titleChanged==0){document.title=originalTitle;blinkOrder=0;}else{++blinkOrder;}}else{for(x in newMessagesWin){newMessagesWin[x]=false;}}
for(x in newMessages){if(newMessages[x]==true){if(chatboxFocus[x]==false){$('#chatbox_'+x+' .chatboxhead').toggleClass('chatboxblink');}}}
ajaxStartDisable();$.ajax({url:"sfChat/checkconversations",cache:false,dataType:"json",success:function(data){$.each(data.items,function(i,con){if(con){$.each(con,function(j,item){if(item){chatboxtitle=item.f;chatboxid=item.c;if($("#chatbox_"+chatboxid).length<=0){createChatBox(chatboxtitle,chatboxid);}
if($("#chatbox_"+chatboxid).css('display')=='none'){$("#chatbox_"+chatboxid).css('display','block');restructureChatBoxes();}
if(item.s==1){item.f=username;}
if(item.s==2){$("#chatbox_"+chatboxid+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxinfo">'+item.m+'</span></div>');}
else{newMessages[chatboxid]=true;newMessagesWin[chatboxid]=true;if(item.t==3){$("#chatbox_"+chatboxid+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxinfo">'+item.m+'</span></div>');$("#chatbox_"+chatboxid+" .chatboxtextarea").attr("disabled",true);}
else if(item.t==1){$("#chatbox_"+chatboxid+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxinfo">'+item.m+'</span></div>');}
else{avatar=getAvatar(item.d);$("#chatbox_"+chatboxid+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom"><img border="0" src="/images/chat/'+avatar+'" />&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+item.m+'</span></div>');}}
$("#chatbox_"+chatboxid+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxid+" .chatboxcontent")[0].scrollHeight);itemsfound+=1;if(item.t==2){closechat(chatboxid);removeChatBox(chatboxid);}
if(item.t==3){}}});}});chatHeartbeatCount++;if(itemsfound>0){chatHeartbeatTime=minChatHeartbeat;chatHeartbeatCount=1;}else if(chatHeartbeatCount>=10){chatHeartbeatTime*=2;chatHeartbeatCount=1;if(chatHeartbeatTime>maxChatHeartbeat){chatHeartbeatTime=maxChatHeartbeat;}}
chatTimeout=setTimeout('chatHeartbeat();',chatHeartbeatTime);ajaxStartEnable();}});}
function closeChatBox(chatboxid){if(chatboxid==0){closechat(chatboxid);bindchatbutton();}
else{closechat(chatboxid);$.post("sfChat/closechat",{chatbox:chatboxid},function(data){if(data==0){clearTimeout(chatTimeout);bindchatbutton();}});}}
function removeChatBox(chatboxid){$.post("sfChat/removechat",{chatbox:chatboxid},function(data){if(data==0){clearTimeout(chatTimeout);bindchatbutton();}});}
function bindchatbutton(){$("#chat-button").bind('click',inichat);$('#chat-button').html(__('Start chat'));}
function closechat(chatboxid){$('#chatbox_'+chatboxid).css('display','none');restructureChatBoxes();}
function toggleChatBoxGrowth(chatboxid){if($('#chatbox_'+chatboxid+' .chatboxcontent').css('display')=='none'){var minimizedChatBoxes=new Array();if($.cookie('chatbox_minimized')){minimizedChatBoxes=$.cookie('chatbox_minimized').split(/\|/);}
var newCookie='';for(i=0;i<minimizedChatBoxes.length;i++){if(minimizedChatBoxes[i]!=chatboxid){newCookie+=chatboxid+'|';}}
newCookie=newCookie.slice(0,-1)
$.cookie('chatbox_minimized',newCookie);$('#chatbox_'+chatboxid+' .chatboxcontent').css('display','block');$('#chatbox_'+chatboxid+' .chatboxinput').css('display','block');$("#chatbox_"+chatboxid+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxid+" .chatboxcontent")[0].scrollHeight);}else{var newCookie=chatboxid;if($.cookie('chatbox_minimized')){newCookie+='|'+$.cookie('chatbox_minimized');}
$.cookie('chatbox_minimized',newCookie);$('#chatbox_'+chatboxid+' .chatboxcontent').css('display','none');$('#chatbox_'+chatboxid+' .chatboxinput').css('display','none');}}
function checkChatBoxInputKey(event,chatboxtextarea,chatboxtitle,chatboxid){if(event.keyCode==13&&event.shiftKey==0){message=$(chatboxtextarea).val();message=message.replace(/^\s+|\s+$/g,"");$(chatboxtextarea).val('');$(chatboxtextarea).focus();$(chatboxtextarea).css('height','44px');if(message!=''){ajaxStartDisable();$.post("sfChat/sendmessage",{con:chatboxid,message:message},function(data){message=message.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;");avatar=getAvatar(data);$("#chatbox_"+chatboxid+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom"><img border="0" src="/images/chat/'+avatar+'" />&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+message+'</span></div>');$("#chatbox_"+chatboxid+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxid+" .chatboxcontent")[0].scrollHeight);ajaxStartEnable();});}
chatHeartbeatTime=minChatHeartbeat;chatHeartbeatCount=1;return false;}
var adjustedHeight=chatboxtextarea.clientHeight;var maxHeight=94;if(maxHeight>adjustedHeight){adjustedHeight=Math.max(chatboxtextarea.scrollHeight,adjustedHeight);if(maxHeight)
adjustedHeight=Math.min(maxHeight,adjustedHeight);if(adjustedHeight>chatboxtextarea.clientHeight)
$(chatboxtextarea).css('height',adjustedHeight+8+'px');}else{$(chatboxtextarea).css('overflow','auto');}}
function startChatSession(){ajaxStartDisable();$.ajax({url:"sfChat/startchatsession",cache:false,dataType:"json",success:function(data){username=data.username;$.each(data.items,function(i,item){if(item){chatboxtitle=item.f;chatboxid=item.c;if($("#chatbox_"+chatboxid).length<=0){createChatBox(chatboxtitle,chatboxid,1);}
hist=item.history;if(hist.length>0){for(i=0;i<hist.length;i++){avatar=getAvatar(hist[i].dir);$("#chatbox_"+chatboxid+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom"><img border="0" src="/images/chat/'+avatar+'">&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+hist[i].msg+'</span></div>');}}
else{if(item.s==1){items.f=username;}
if(item.s==2){$("#chatbox_"+chatboxid+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxinfo">'+item.m+'</span></div>');}}}});for(i=0;i<chatBoxes.length;i++){chatboxtitle=chatBoxes[i];$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);setTimeout('$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);',100);}
if(chatboxid!=0)chatHeartbeat();ajaxStartEnable();}});}
function inichat(){$('#chat-button').unbind('click');$('#chat-button').html(__('Started chat'));ajaxStartDisable();$.ajax({url:"sfChat/asignoperator",cache:false,dataType:"json",success:function(data){if(data.con==0){createChatBox(data.operator,data.con);$("#chatbox_"+data.con+" .chatboxtextarea").focus();if(data.msg!=''){$("#chatbox_"+data.con+" .chatboxcontent").html('<div class="chatboxmessage"><span class="chatboxinfo">'+data.msg+'</span></div>');}}
else{startChatSession();}
ajaxStartEnable();}})}
function reconectchat(chatboxid){removeChatBox(chatboxid);closechat(chatboxid);inichat();}
function getAvatar(dir){if(dir==0)return'avatar-user.png';else return'avatar-admin.png';}
jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';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();}
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;}};
