function Logger(serviceUrl,botId,debug){this.sessionId=null;var that=this;var $=jQuery;this.error=function(message){if(!debug){return}if(window.console){window.console.error(message)}logToServer("error",message)};this.warn=function(message){if(!debug){return}if(window.console){window.console.warn(message)}logToServer("warn",message)};this.info=function(message){if(!debug){return}if(window.console){window.console.info(message)}};this.debug=function(message){if(!debug){return}if(window.console){window.console.debug(message)}};this.mightLog=function(){return debug};function logToServer(severity,message){if(that.sessionId){$.ajax({type:"GET",url:serviceUrl,data:{severity:severity,message:message,session_id:that.sessionId,bot_id:botId,action:"log"},dataType:"jsonp"})}}}function AvatarPlayer(logger){var playerUrl=null;var api=null;var listeners={};var player;var currentConfiguration=null;var soundEnabled=true;var playLoadListener=null;var $=jQuery;function initPlayer(avatarContainerId,jsVarName,debug,avatarParameters){addListenerFirst("onLoad",function(){api=player.getApi();if(soundEnabled){player.getApi().ot_sound_enable()}else{player.getApi().ot_sound_disable()}});var flashVars={};flashVars["jsVarName"]=jsVarName;flashVars["debug"]=debug;for(var param in avatarParameters){if(avatarParameters.hasOwnProperty(param)&&param!=="jsVarName"&&param!=="debug"){flashVars[param]=avatarParameters[param]}}player=flashembed(avatarContainerId,{src:playerUrl,wmode:'transparent',cachebusting:true},flashVars);if(debug){setTimeout(function(){if(!api){logger.error("Flash player has not been initialized (checked after 7 seconds)")}},7000)}}this.start=function(avatarContainerId,avatarParameters,swfFilesUrl,avatarPlayerFileName,jsVarName){currentConfiguration=new Object();currentConfiguration.parameters=avatarParameters;currentConfiguration.swfUrl=swfFilesUrl;currentConfiguration.playerName=avatarPlayerFileName;playerUrl=swfFilesUrl+avatarPlayerFileName;initPlayer(avatarContainerId,jsVarName,logger.mightLog(),avatarParameters)};this.getCurrentConfiguration=function(){return currentConfiguration};function addListener(eventName,fn){if(listeners[eventName]==null){listeners[eventName]=new Array()}listeners[eventName].push(fn)}function removeListener(eventName,fn){var listenersArray=listeners[eventName];if(listenersArray==null){return}for(var i=0;i<listenersArray.length;i++){if(listenersArray[i]==fn){listenersArray.splice(i,1);return}}}function addListenerFirst(eventName,fn){if(listeners[eventName]==null){listeners[eventName]=new Array()}listeners[eventName].unshift(fn)}function fireListeners(eventName){var eventListeners=listeners[eventName];if(eventListeners==null){return}for(var i in eventListeners){eventListeners[i].call(eventName)}}this.fireEvent=function(eventName){fireListeners(eventName)};this.play=function(voices,videos){if(playLoadListener!=null){removeListener("onLoad",playLoadListener);playLoadListener=null}if(api&&typeof player.getApi().ot_play=='function'){player.getApi().ot_play(videos,voices)}else{playLoadListener=function(){if(playLoadListener===arguments.callee){playLoadListener=null}removeListener("onLoad",arguments.callee);player.getApi().ot_play(videos,voices)};addListener("onLoad",playLoadListener)}};this.isSoundEnabled=function(){return soundEnabled};function log(msg){if(console){console.log(msg)}}this.setSoundEnabled=function(){soundEnabled=true;if(api&&typeof player.getApi().ot_sound_enable=='function'){player.getApi().ot_sound_enable()}else{addListener("onLoad",function(){player.getApi().ot_sound_enable()})}};this.setSoundDisabled=function(){soundEnabled=false;if(api&&typeof player.getApi().ot_sound_disable=='function'){player.getApi().ot_sound_disable()}else{addListener("onLoad",function(){player.getApi().ot_sound_disable()})}}}function VirtualSpecialist(listening_id,input_text_id,send_button_id,avatar_container_id,vs_id,vs_hash,js_var_name,options){var bot_name="Wirtualny Specjalista";var user_name="Użytkownik";var ot_service_url="http://vs.onlinetools.pl/thin_client";var debug=false;var soundOnIconTitle="Włącz dźwięk avatara";var soundOffIconTitle="Wyłącz dźwięk avatara";var jsVarName=js_var_name;var vsId=avatar_container_id;var avatarPlayerFile="ot-player.swf";var emptyInputMessage="Tu wpisuj pytania do Wirtualnego Specjalisty";var isEmptyMessageSet=true;var startBoardFn=defaultStartBoard;var closeBoardFn=defaultCloseBoard;var boardWindows=new Object();var controlActionChangeFn=null;if(options){if(options.vs_name){bot_name=options.vs_name}if(options.user_name){user_name=options.user_name}if(options.service_url){ot_service_url=options.service_url}if(options.sound_on_icon_title){soundOnIconTitle=options.sound_on_icon_title}if(options.sound_off_icon_title){soundOffIconTitle=options.sound_off_icon_title}if(options.debug){debug=options.debug}if(options.vs_id){vsId=options.vs_id}}var log=new Logger(ot_service_url,vs_id,debug);var avatarPlayer=new AvatarPlayer(log);var restoreAvatarConfiguration=null;var text_input;var send_button;var listening;var sessionId;var inactiveTimerId=null;var inactivityPingTime=null;var soundEnabled=true;var soundImgElement=null;var soundEnabledIcon=null;var soundDisabledIcon=null;var history=null;var fbAccessToken=null;var activeBoards=new Object();var stopped=true;var backActionAvailable=false;var forwardActionAvailable=false;var $=jQuery;var that=this;this.sentenceFormatter=function(userName,text,container){container.append("<span class=\"ot_user_name\">"+userName+":</span>");container.append("<span class=\"ot_message\">"+text+"</span>")};this.linksFormatter=function(links,container){var linksDiv=$("<div></div>");linksDiv.addClass("ot_links");var linkUl=$("<ul></ul>");for(var i=0;i<links.length;i++){var link=links[i];var linkA=$("<a></a>");if(link.hasOwnProperty("id")){linkA.attr("href",link.id);ajaxifyLink(linkA)}else if(link.hasOwnProperty("url")){if(window.opener!=null){linkA.attr("href","javascript:window."+jsVarName+".openUrlInParent('"+escape(link.url)+"', true);")}else{linkA.attr("href",link.url);linkA.attr("target","_blank")}}var linkLi=$("<li></li>");linkA.html(link.label);linkA.appendTo(linkLi);linkLi.appendTo(linkUl)}linkUl.appendTo(linksDiv);linksDiv.appendTo(container)};function convertKeywordsToString(parametersArray){if(parametersArray.length==0){return null}var keywords="";for(var i=0;i<parametersArray.length;i++){var param=parametersArray[i];if(typeof param!="string"){continue}if(keywords.length>0){keywords+=";"}keywords+=param}return keywords}this.sendKeywords=function(){var keywords=convertKeywordsToString(arguments);if(keywords==null||keywords.length==0){return}var jsonData={keywords:keywords,session_id:sessionId,bot_id:vs_id,bot_hash:vs_hash};var lastArgument=arguments[arguments.length-1];if(typeof lastArgument=="object"){for(var key in lastArgument){if(lastArgument.hasOwnProperty(key)){var value=lastArgument[key];var valueType=typeof value;if(valueType=="string"||valueType=="number"||valueType=="boolean"){jsonData["vs_keyword_param_"+key]=value}}}}$.ajax({type:"GET",url:ot_service_url,data:jsonData,dataType:"jsonp",error:function(request,status,error){log.error("There was an error while sending keywords message to the server. Status: "+status+". Error "+error)},success:function(data,textStatus){if(data.hasOwnProperty("errorCode")&&data.hasOwnProperty("errorMessage")){log.error("Error received from server. Error code: "+data.errorCode+" message: "+data.errorMessage);return}processBotMessage(data,true)}})};this.openUrlInParent=function(url,escaped){if(escaped){window.opener.location=unescape(url)}else{window.opener.location=url}};this.openExternalPage=function(externalUrl){if(window.opener!=null){this.openUrlInParent(externalUrl,false)}else{var windowWidth=0,windowHeight=0;if(typeof(window.innerWidth)=='number'){windowWidth=window.innerWidth;windowHeight=window.innerHeight}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight}windowHeight-=10;windowWidth-=10;window.open(externalUrl,"_blank","top=0, left=0, width="+windowWidth+", height="+windowHeight+", menubar=yes, toolbar=yes, location=yes, status=yes, resizable=yes, scrollbars=yes, directories=yes")}};this.getPlayer=function(){return avatarPlayer};this.isSoundEnabled=function(){return this.getPlayer().isSoundEnabled()};this.setSoundEnabled=function(){this.getPlayer().setSoundEnabled();if(soundImgElement!=null){soundImgElement.attr("alt",soundOffIconTitle);soundImgElement.attr("title",soundOffIconTitle);soundImgElement.attr("src",soundEnabledIcon)}if($.cookies.test()){$.cookies.del("ot_sound_disabled_"+vsId)}};this.setSoundDisabled=function(){this.getPlayer().setSoundDisabled();if(soundImgElement!=null){soundImgElement.attr("alt",soundOnIconTitle);soundImgElement.attr("title",soundOnIconTitle);soundImgElement.attr("src",soundDisabledIcon)}if($.cookies.test()){$.cookies.set("ot_sound_disabled_"+vsId,"",{expiresAt:new Date(2099,1,1)})}};this.initSoundControl=function(elementId,_soundEnabledIcon,_soundDisabledIcon){soundEnabledIcon=_soundEnabledIcon;soundDisabledIcon=_soundDisabledIcon;var soundControlElement=$("#"+elementId);soundImgElement=$("<img></img>");soundImgElement.attr("alt",soundOffIconTitle);soundImgElement.attr("title",soundOffIconTitle);soundImgElement.attr("src",soundEnabledIcon);soundImgElement.appendTo(soundControlElement);soundControlElement.click(function(e){e.preventDefault();if(that.isSoundEnabled()){that.setSoundDisabled()}else{that.setSoundEnabled()}});if($.cookies.test()){var soundDisabledCookie=$.cookies.get("ot_sound_disabled_"+vsId);if(soundDisabledCookie!=null){this.setSoundDisabled()}}};this.setFbAccessToken=function(accessToken){fbAccessToken=accessToken};function defaultStartBoard(id,url,label,prefWidth,prefHeight,type){var boardWindow=boardWindows[id];if(boardWindow==null||boardWindow.closed){var windowOptions="resizable=yes,scrollbars=yes,status=no";if(prefWidth!=null){windowOptions+=",width="+prefWidth}if(prefHeight!=null){windowOptions+=",height="+prefHeight}boardWindow=window.open(url,vsId+id,windowOptions);boardWindows[id]=boardWindow}else{boardWindow.location=url;boardWindow.focus();if(prefHeight!=null&&prefWidth!=null){boardWindow.resizeTo(prefWidth,prefHeight)}}}function defaultCloseBoard(id){var boardWindow=boardWindows[id];if(boardWindow!=null&&!boardWindow.closed){boardWindow.close()}delete boardWindows[id]}this.initCustomBoard=function(startBoard,closeBoard){startBoardFn=startBoard;closeBoardFn=closeBoard};this.sendBoard=function(formName,formHash){var formElement=$("form[name='"+formName+"']");var boardData=[];processFormElementRecursively(formElement,boardData);var requestData={action:"iboard",session_id:sessionId,bot_id:vs_id,bot_hash:vs_hash,form_hash:formHash};for(var boardKey in boardData){requestData["board_values_"+boardKey]=boardData[boardKey]}$.ajax({type:"GET",url:ot_service_url,data:requestData,dataType:"jsonp",error:function(request,status,error){log.error("There was an error while sending control request (type: "+type+") to the server. Status: "+status+". Error "+error)},success:function(data,textStatus){if(data.hasOwnProperty("errorCode")&&data.hasOwnProperty("errorMessage")){log.error("Error received from server. Error code: "+data.errorCode+" message: "+data.errorMessage);return}else if(data.hasOwnProperty("validation_errors")){if(data.validation_errors.length>0){if(jQuery.ui&&jQuery.ui.dialog){var validationErrorDiv=$("<div></div>");validationErrorDiv.css("display","none");validationErrorDiv.attr("id","ot-validation-errors-dialog");validationErrorDiv.html(createValidationErrorsHtml(data));validationErrorDiv.appendTo($("body")[0]);validationErrorDiv.dialog({modal:true,resizable:false,autoOpen:false,width:300,draggable:false,title:"",close:function(event,ui){validationErrorDiv.remove()}});validationErrorDiv.dialog("open")}else{alert(createValidationErrorsTxt(data))}}}processBotMessage(data,true)}})};function createValidationErrorsTxt(data){var msg="";if(data.hasOwnProperty("title")){msg+=data.title+"\n"}if(data.hasOwnProperty("validation_errors")){var validationErrors=data.validation_errors;for(var i=0;i<validationErrors.length;i++){if(i>0){msg+="\n"}msg+=" - "+validationErrors[i]}}return msg}function createValidationErrorsHtml(data){var msg="";if(data.hasOwnProperty("title")){msg+="<p>"+data.title+"</p>"}if(data.hasOwnProperty("validation_errors")){msg+="<ul>";var validationErrors=data.validation_errors;for(var i=0;i<validationErrors.length;i++){msg+="<li>"+validationErrors[i]+"</li>"}msg+="</ul>"}return msg}var processFormElementRecursively=function(formElement,dataArray){formElement.children().each(function(){var jqueryElement=$(this);var tagName=this.tagName.toLowerCase();if(tagName==="input"){var name=jqueryElement.attr("name");if(typeof name==="undefined"){return}var type=jqueryElement.attr("type");if(typeof type==="undefined"){return}if(type==="submit"&&name!==document.pressed){return}if(type==="checkbox"){dataArray[name]=jqueryElement.attr("checked")}else{dataArray[name]=jqueryElement.val()}}else if(tagName==="textarea"||tagName==="select"){var name=jqueryElement.attr("name");if(typeof name==="undefined"){return}dataArray[name]=jqueryElement.val()}else{processFormElementRecursively(jqueryElement,dataArray)}})};function controlAction(type){$.ajax({type:"GET",url:ot_service_url,data:{action:"control",type:type,session_id:sessionId,bot_id:vs_id,bot_hash:vs_hash},dataType:"jsonp",error:function(request,status,error){log.error("There was an error while sending control request (type: "+type+") to the server. Status: "+status+". Error "+error)},success:function(data,textStatus){if(data.hasOwnProperty("errorCode")&&data.hasOwnProperty("errorMessage")){log.error("Error received from server. Error code: "+data.errorCode+" message: "+data.errorMessage);return}processBotMessage(data,true)}})}this.back=function(){if(backActionAvailable){controlAction("back")}};this.forward=function(){if(forwardActionAvailable){controlAction("forward")}};function linkSend(linkId){$.ajax({type:"GET",url:ot_service_url,data:{link_id:linkId,session_id:sessionId,bot_id:vs_id,bot_hash:vs_hash},dataType:"jsonp",error:function(request,status,error){log.error("There was an error while sending link id to the server. Status: "+status+". Error "+error)},success:function(data,textStatus){if(data.hasOwnProperty("errorCode")&&data.hasOwnProperty("errorMessage")){log.error("Error received from server. Error code: "+data.errorCode+" message: "+data.errorMessage);return}processBotMessage(data,true)}})}function ajaxifyLink(linkElement){linkElement.click(function(e){e.preventDefault();linkSend(linkElement.attr("href"))})}function sendPing(){$.ajax({type:"GET",url:ot_service_url,data:{action:"ping",session_id:sessionId,bot_id:vs_id,bot_hash:vs_hash},dataType:"jsonp",error:function(request,status,error){log.error("There was an error while sending ping to the server. Status: "+status+". Error "+error)},success:function(data,textStatus){if(data.hasOwnProperty("errorCode")&&data.hasOwnProperty("errorMessage")){log.error("Error received from server. Error code: "+data.errorCode+" message: "+data.errorMessage);return}processBotMessage(data,true)}})}function arraySize(obj){var size=0,key;for(key in obj){if(obj.hasOwnProperty(key)){size++}}return size}function processBotMessage(data,saveInHistory){if(stopped){return}var dialogEntry=$("<div></div>");dialogEntry.addClass("ot_dialog_entry");var containsMessage=false;if(data.hasOwnProperty("session_id")){sessionId=data.session_id}if(data.hasOwnProperty("ping_time")){var pingTime=data.ping_time;if(pingTime>0){setTimeout(function(){sendPing()},pingTime)}}if(inactiveTimerId!=null){clearTimeout(inactiveTimerId)}if(inactivityPingTime!=null){inactiveTimerId=setTimeout(function(){sendPing()},inactivityPingTime)}var videos=new Array();if(data.hasOwnProperty("videos")){$.each(data.videos,function(i,item){videos.push(item)})}var audios=new Array();if(data.hasOwnProperty("audios")){$.each(data.audios,function(i,item){audios.push(item)})}if(data.hasOwnProperty("text")){containsMessage=true;that.sentenceFormatter(bot_name,data.text,dialogEntry)}var containsLinks=false;if(data.hasOwnProperty("links")&&data.links!=null&&data.links.constructor==Array&&data.links.length>0){containsLinks=true}if(containsMessage||containsLinks){$(".ot_links").remove();if(containsLinks){that.linksFormatter(data.links,dialogEntry)}else{that.linksFormatter(new Array(0),dialogEntry)}}var containsBoards=data.hasOwnProperty("boards");if(containsMessage&&arraySize(activeBoards)>0){if(containsBoards){for(var boardId in activeBoards){var containsBoard=false;for(var board in data.boards){if(board.hasOwnProperty("id")&&board.id===boardId){containsBoard=true;break}}if(!containsBoard){closeBoardFn(boardId);delete activeBoards[boardId]}}}else{for(var boardId in activeBoards){closeBoardFn(boardId);delete activeBoards[boardId]}}}if(containsMessage){dialogEntry.appendTo(listening);listening.get(0).scrollTop=listening.get(0).scrollHeight}var backAvailable=backActionAvailable;var forwardAvailable=forwardActionAvailable;if(data.hasOwnProperty("back_available")){backAvailable=data.back_available}if(data.hasOwnProperty("forward_available")){forwardAvailable=data.forward_available}updateControlActionStatuses(backAvailable,forwardAvailable);if(data.hasOwnProperty("external_url")){that.openExternalPage(data.external_url)}if(data.hasOwnProperty("avatar_change")){var avatarChangeData=data.avatar_change;if(!avatarChangeData.hasOwnProperty("permanent")||!avatarChangeData.permanent){if(restoreAvatarConfiguration==null){restoreAvatarConfiguration=avatarPlayer.getCurrentConfiguration()}}else if(restoreAvatarConfiguration!=null&&avatarChangeData.hasOwnProperty("permanent")&&avatarChangeData.permanent){restoreAvatarConfiguration=null}initAvatarPlayer(avatarChangeData)}else if(restoreAvatarConfiguration!=null&&(containsMessage||containsBoards)){avatarPlayer.start(avatar_container_id,restoreAvatarConfiguration.parameters,restoreAvatarConfiguration.swfUrl,restoreAvatarConfiguration.playerName,jsVarName);restoreAvatarConfiguration=null}if(videos.length>0||audios.length>0){avatarPlayer.play(audios,videos)}if(containsBoards){for(var i=0;i<data.boards.length;i++){var board=data.boards[i];var prefHeight=null;var prefWidth=null;var label=null;var id=null;if(board.hasOwnProperty("id")){id=board.id}if(board.hasOwnProperty("label")){label=board.label}if(board.hasOwnProperty("width")){prefWidth=board.width}if(board.hasOwnProperty("height")){prefHeight=board.height}if(board.hasOwnProperty("url")){activeBoards[id]=board.url;var url=board.url;if(board.hasOwnProperty("type")&&board.type==="iboard"){url+="?bot_id="+vs_id+"&session_id="+sessionId+"&type=thin"+"&js_var_name="+jsVarName}startBoardFn(id,url,label,prefWidth,prefHeight,board.type)}}}}function updateControlActionStatuses(backAvailable,forwardAvailable){var changed=false;if(backAvailable!=backActionAvailable){backActionAvailable=backAvailable;changed=true}if(forwardAvailable!=forwardActionAvailable){forwardActionAvailable=forwardAvailable;changed=true}if(changed&&controlActionChangeFn!=null){controlActionChangeFn(backActionAvailable,forwardActionAvailable)}}this.setControlActionChangeListener=function(changeFn){if(changeFn==null){controlActionChangeFn=null}else if(changeFn.constructor==Function){controlActionChangeFn=changeFn}};function appendUserMessage(message){var dialogEntry=$("<div></div>");dialogEntry.addClass("ot_dialog_entry");dialogEntry.appendTo(listening);that.sentenceFormatter(user_name,message,dialogEntry);listening.get(0).scrollTop=listening.get(0).scrollHeight}function botSend(){var textInputValue=$.trim(text_input.val());if(textInputValue==""){return}appendUserMessage(textInputValue);text_input.val("");$.ajax({type:"GET",url:ot_service_url,data:{text:textInputValue,session_id:sessionId,bot_id:vs_id,bot_hash:vs_hash},dataType:"jsonp",error:function(request,status,error){log.error("There was an error while sending text to the server. Status: "+status+". Error "+error)},success:function(data,textStatus){if(data.hasOwnProperty("errorCode")&&data.hasOwnProperty("errorMessage")){log.error("Error received from server. Error code: "+data.errorCode+" message: "+data.errorMessage);return}processBotMessage(data,true)}})}function getUrlParameter(name){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(window.location.href);if(results==null){return null}else{return unescape(results[1])}}function sendBoardData(formName,boardData){var requestData=[];requestData["action"]="iboard";requestData["session_id"]=sessionId;requestData["bot_id"]=vsId;requestData["bot_hash"]=vs_hash;for(var propertyName in boardData){requestData["board_values_"+propertyName]=boardData[propertyName]}$.ajax({type:"GET",url:ot_service_url,data:requestData,dataType:"jsonp",error:function(request,status,error){log.error("There was an error while sending  board values to the server. Status: "+status+". Error "+error)},success:function(data,textStatus){if(data.hasOwnProperty("errorCode")&&data.hasOwnProperty("errorMessage")){log.error("Error received from server. Error code: "+data.errorCode+" message: "+data.errorMessage);return}processBotMessage(data,true)}})}this.start=function(){send_button=$("#"+send_button_id);if(send_button.length!=1){if(send_button.length===0){log.error("Object with id "+send_button_id+" not found.")}else{log.error("There is more than one object with id "+send_button_id)}throw"WRONG_SEND_BUTTON_ID"}text_input=$("#"+input_text_id);if(text_input.length!=1){if(text_input.length===0){log.error("Object with id "+input_text_id+" not found.")}else{log.error("There is more than one object with id "+input_text_id)}throw"WRONG_INPUT_TEXT_ID"}listening=$("#"+listening_id);if(listening.length!=1){if(listening.length===0){log.error("Object with id "+listening_id+" not found.")}else{log.error("There is more than one object with id "+listening_id)}throw"WRONG_LISTENING_ID"}var avatar_container=$("#"+avatar_container_id);if(avatar_container.length!=1){if(avatar_container.length===0){log.error("Object with id "+avatar_container_id+" not found.")}else{log.error("There is more than one object with id "+avatar_container_id)}throw"WRONG_AVATAR_CONTAINER_ID"}var loginDataParameters={action:"login",bot_id:vs_id,bot_hash:vs_hash};if($.cookies.test()){var cookiesSessionId=$.cookies.get("ot_session_id_"+vsId);if(cookiesSessionId!=null){loginDataParameters.session_id=cookiesSessionId}}if(options!=null&&options.restore_session!=null){loginDataParameters.restore_session=options.restore_session}if(options!=null&&options.startup_keywords!=null){loginDataParameters.startup_keywords=options.startup_keywords}if(options!=null&&options.new_session_keywords!=null){loginDataParameters.new_session_keywords=options.new_session_keywords}var urlKeywords=getUrlParameter("vs_keywords");if(urlKeywords!=null){loginDataParameters.startup_keywords=urlKeywords;loginDataParameters.new_session_keywords=urlKeywords}loginDataParameters.url_address=window.location.href;if(fbAccessToken!=null){loginDataParameters.fb_access_token=fbAccessToken}$.ajax({type:"GET",url:ot_service_url,data:loginDataParameters,dataType:"jsonp",error:function(request,status,error){log.error("There was an error while logging in to the server. Status: "+status+". Error "+error)},success:function(data,textStatus){if(data.hasOwnProperty("errorCode")&&data.hasOwnProperty("errorMessage")){log.error("Error received from server. Error code: "+data.errorCode+" message: "+data.errorMessage);if(data.errorCode==12&&data.hasOwnProperty("reject_img_url")){var rejectImg=$("<img/>");rejectImg.attr("src",data.reject_img_url);rejectImg.appendTo(avatar_container)}return}if(!((data.hasOwnProperty("avatarParameters")||(data.hasOwnProperty("idleVideos")&&data.hasOwnProperty("speechVideos")))&&data.hasOwnProperty("swfFilesUrl")&&data.hasOwnProperty("sessionId"))){log.error("Login response is incomplete.")}else{stopped=false;if(options.empty_input_message!=null){emptyInputMessage=options.empty_input_message}else if(data.hasOwnProperty("emptyInputMessage")){emptyInputMessage=data.emptyInputMessage}setEmptyInputMessage();initAvatarPlayer(data);if(data.hasOwnProperty("inactivityPingTime")){inactivityPingTime=data.inactivityPingTime}sessionId=data.sessionId;if(data.history){loadHistory(data.history)}log.sessionId=sessionId;if($.cookies.test()){$.cookies.set("ot_session_id_"+vsId,sessionId)}if(data.output){processBotMessage(data.output,true)}setTimeout(function(){sendPing()},1000)}}});send_button.click(sendButtonAction);text_input.keypress(textInputEnterAction)};function initAvatarPlayer(jsonElement){var avatarParameters=null;if(jsonElement.hasOwnProperty("avatarParameters")){avatarParameters=jsonElement.avatarParameters}else{avatarParameters={};avatarParameters["idleVideos"]=jsonElement.idleVideos;avatarParameters["speechVideos"]=jsonElement.speechVideos}if(jsonElement.hasOwnProperty("avatarSwfFileName")){avatarPlayerFile=jsonElement.avatarSwfFileName}if(options&&options.avatar_player_name){avatarPlayerFile=options.avatar_player_name}if(options&&options.avatar_parameters){for(var key in options.avatar_parameters){if(!avatarParameters.hasOwnProperty(key)){avatarParameters[key]=options.avatar_parameters[key]}}}avatarPlayer.start(avatar_container_id,avatarParameters,jsonElement.swfFilesUrl,avatarPlayerFile,jsVarName)}this.stop=function(){isEmptyMessageSet=true;stopped=true;if(send_button!=null){send_button.unbind("click",sendButtonAction);send_button.unbind("click",sendButtonActionFake);send_button.click(sendButtonActionFake)}if(text_input!=null){text_input.unbind("keypress",textInputEnterAction);text_input.unbind("blur",textInputBlurAction);text_input.unbind("focus",textInputFocusAction);text_input.val("");text_input.removeClass("ot_empty_input")}};function textInputEnterAction(e){if(e.which==13||e.which==10){e.preventDefault();botSend()}}function sendButtonActionFake(e){e.preventDefault()}function sendButtonAction(e){e.preventDefault();if(!isEmptyMessageSet){botSend();checkEmptyInputMessage()}}function textInputFocusAction(){if(isEmptyMessageSet){if(text_input.val()===emptyInputMessage){text_input.val("")}else{isEmptyMessageSet=false}text_input.removeClass("ot_empty_input")}}function textInputBlurAction(){checkEmptyInputMessage()}function setEmptyInputMessage(){text_input.val(emptyInputMessage);text_input.addClass("ot_empty_input");text_input.focus(textInputFocusAction);text_input.blur(textInputBlurAction);text_input.change()}function checkEmptyInputMessage(){var textInputValue=text_input.val();if(textInputValue==""){isEmptyMessageSet=true;text_input.addClass("ot_empty_input");text_input.val(emptyInputMessage)}else{isEmptyMessageSet=false}}function loadHistory(history){if(history==null||history.constructor!=Array){return}for(var i=0;i<history.length;i++){var historyEntry=history[i];if(!historyEntry.hasOwnProperty("type")||!historyEntry.hasOwnProperty("data")){continue}var type=historyEntry.type;var data=historyEntry.data;if(type=="user"){if(data!=null&&data.constructor==String){appendUserMessage(data)}}else if(type=="bot"){if(data!=null){processBotMessage(data,false)}}}var backAvailable=false;var forwardAvailable=false;if(history.length>0){backAvailable=true}updateControlActionStatuses(backAvailable,forwardAvailable)}}

