kukit.sa=new function(){var sa=this;sa.ServerAction=function(){this.initialize=function(name,oper){this.oper=oper;this.url=oper.kssParms.kssUrl;if(typeof(this.url)=='undefined'){this.url=name;}
this.calculateAbsoluteURL=function(url){if(url.match(RegExp('/^https?:\/\//'))){return url;}else{var result=kukit.engine.baseUrl+'/'+url;return result;}};this.url=this.calculateAbsoluteURL(this.url);this.notifyServer();};this.calculateAbsoluteURL=function(url){if(url.match(RegExp('/^https?:\/\//'))){return url;}else{var result=kukit.engine.baseUrl+url;return result;}};this.notifyServer=function(){var self=this;var sendHook=function(queueItem){self.oper.queueItem=queueItem;self.reallyNotifyServer();};var timeoutHook=function(queueItem){self.oper.queueItem=queueItem;self.processError('timeout');};kukit.engine.requestManager.notifyServer(sendHook,this.url,timeoutHook);};this.reallyNotifyServer=function(){var domDoc=new XMLHttpRequest();var self=this;var notifyServer_done=function(){self.notifyServer_done(domDoc);};var query=new kukit.fo.FormQuery();for(var key in this.oper.parms){query.appendElem(key,this.oper.parms[key]);}
var submitForm=this.oper.kssParms.kssSubmitForm;if(submitForm){for(var i=0;i<submitForm.length;i++){var item=submitForm[i];query.appendElem(item[0],item[1]);}}
var encoded=query.encode();var ts=new Date().getTime();var tsurl=this.url+"?kukitTimeStamp="+ts;domDoc.open("POST",tsurl,true);domDoc.onreadystatechange=notifyServer_done;domDoc.setRequestHeader("Content-Type","application/x-www-form-urlencoded");domDoc.send(encoded);};this.notifyServer_done=function(domDoc){;;;var msg='Request readyState = '+domDoc.readyState+'.';;;;kukit.logDebug(msg);if(domDoc.readyState==4){var success=this.oper.queueItem.receivedResult();if(success){try{this.processResult(domDoc);}catch(e){;;;if(e.name=='RuleMergeError'||e.name=='EventBindError'){;;;throw kukit.err.eventSetupError(e);;;;}
if(e.name=='ResponseParsingError'){;;;kukit.E='Response parsing error: '+e;this.processError(kukit.E);}else if(e.name=='ExplicitError'){this.processError(e.info.kw.errorcommand);}else{throw e;}}}};};this.processResult=function(domDoc){var dom;var commandstags=[];if(domDoc.responseXML){dom=domDoc.responseXML;commandstags=kukit.dom.getNsTags(dom,'commands');if(commandstags.length!=1){dom=null;}}
if(dom==null){var payload=domDoc.getResponseHeader('X-KSSCOMMANDS');if(payload){try{dom=(new DOMParser()).parseFromString(payload,"text/xml");}catch(e){;;;kukit.E='Error parsing X-KSSCOMMANDS header.';throw kukit.err.responseParsingError(kukit.E);}
commandstags=kukit.dom.getNsTags(dom,'commands');if(commandstags.length!=1){dom=null;}}
if(dom==null){var payload=domDoc.getResponseHeader('X-KSSCOMMANDS');if(payload){try{dom=(new DOMParser()).parseFromString(payload,"text/xml");}catch(e){;;;kukit.E='Error parsing X-KSSCOMMANDS header.';throw kukit.err.responseParsingError(kukit.E);}
commandstags=kukit.dom.getNsTags(dom,'commands');if(commandstags.length!=1){dom=null;}}else if(commandstags.length==0){dom=function(text){var doc;if(window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async=false;doc.loadXML(text);}else{doc=(new DOMParser()).parseFromString(text,"application/xml");}
return doc;}(domDoc.responseText);commandstags=kukit.dom.getNsTags(dom,'commands');}else{;;;dom=domDoc.responseXML;;;;kukit.E='Unknown server error (invalid KSS response, no error';;;;kukit.E+=' info received)';;;;if(dom&&dom.parseError&&(dom.parseError!=0)){;;;kukit.E+=' : '+Sarissa.getParseErrorText(dom);;;;}
throw kukit.err.responseParsingError(kukit.E);}}
if(dom==null){;;;kukit.E='Neither xml nor html payload.';throw kukit.err.responseParsingError(msg);}
var commands=kukit.dom.getNsTags(dom,'command');if(commands.length==0){;;;kukit.log('No commands in kukit response');return;}
var command_processor=new kukit.cp.CommandProcessor();command_processor.parseCommands(commands,domDoc);kukit.engine.beginSetupEventsCollection();command_processor.executeCommands(this.oper);kukit.engine.finishSetupEventsCollection();};this.processError=function(errorcommand){var error_action=null;if(this.oper.eventRule){var error_action=this.oper.eventRule.actions.getErrorActionFor(this.oper.action);};;;var reason='';;;;if(typeof(errorcommand)=='string'){;;;;;;reason=', client_reason="'+errorcommand+'" ';;;;}else if(typeof(errorcommand)!='undefined'){;;;;;;;;;;;;;;;reason=', server_reason="'+errorcommand.parms.message+'" ';;;;}
if(error_action){;;;kukit.E='Request failed at url '+this.oper.queueItem.url;;;;kukit.E+=', rid='+this.oper.queueItem.rid+reason;;;;kukit.E+=', will be handled by action "'+error_action.name+'"';;;;kukit.logWarning(kukit.E);error_action.execute(this.oper);}else{;;;dom=domDoc.responseXML;;;;kukit.E='Unknown server error (invalid KSS response, no error';;;;kukit.E+=' info received)';;;;if(dom&&dom.parseError&&(dom.parseError!=0)){;;;kukit.E+=' : '+Sarissa.getParseErrorText(dom);;;;}
throw kukit.err.responseParsingError(kukit.E);}}
if(dom==null){;;;kukit.E='Neither xml nor html payload.';throw kukit.err.responseParsingError(msg);}
var commands=kukit.dom.getNsTags(dom,'command');if(commands.length==0){;;;kukit.log('No commands in kukit response');return;}
var command_processor=new kukit.cp.CommandProcessor();command_processor.parseCommands(commands,domDoc);kukit.engine.beginSetupEventsCollection();command_processor.executeCommands(this.oper);kukit.engine.finishSetupEventsCollection();};this.processError=function(errorcommand){var error_action=null;if(this.oper.eventRule){var error_action=this.oper.eventRule.actions.getErrorActionFor(this.oper.action);};;;var reason='';;;;if(typeof(errorcommand)=='string'){;;;;;;reason=', client_reason="'+errorcommand+'" ';;;;}else if(typeof(errorcommand)!='undefined'){;;;;;;;;;;;;;;;reason=', server_reason="'+errorcommand.parms.message+'" ';;;;}
if(error_action){;;;kukit.E='Request failed at url '+this.oper.queueItem.url;;;;kukit.E+=', rid='+this.oper.queueItem.rid+reason;;;;kukit.E+=', will be handled by action "'+error_action.name+'"';;;;kukit.logWarning(kukit.E);error_action.execute(this.oper);}else{;;;kukit.E='Request failed at url '+this.oper.queueItem.url;;;;kukit.E+=', rid='+this.oper.queueItem.rid+reason;;;;kukit.logError(kukit.E);;;;return;}};this.initialize.apply(this,arguments);};}();var carousel_interval;if(jq('#carousel')){var carousel_rotate=function(){features=jq('.carousel-banner');if(features.length<2)
return;jq('.carousel-banner:visible').fadeOut(300);jq('.carousel-button.selected').removeClass('selected');next=jq('.carousel-banner:visible').next('.carousel-banner');if(next.length){next.fadeIn(300);jq('#carousel-button-'+next.attr('id').substr(16)).addClass('selected')}
else{jq('#carousel-banner-0').fadeIn(300);jq('.carousel-button:first').addClass('selected')}};jq(function(){if(typeof(carousel_rotate_frequency)!="undefined"){if(carousel_rotate_frequency==0)
return;carousel_interval=setInterval(carousel_rotate,carousel_rotate_frequency);setTimeout(function(){jq('#carousel .link-https, #carousel .link-external').each(function(){jq(this).replaceWith(jq(this).html())})},1000);jq('#carousel').hover(function(){clearInterval(carousel_interval)},function(){carousel_interval=setInterval(carousel_rotate,carousel_rotate_frequency)})}})}
