
if(typeof LITHIUM=="undefined"){var LITHIUM={};};if(typeof LITHIUM.ActiveCast=="undefined"){LITHIUM.ActiveCast={};};LITHIUM.ActiveCast.Util={createContainer:function(parentElementId,obj){var parentElement=$Util.getElm(parentElementId);if(parentElement!=null){if(obj){obj.down=function(element){return $Util.getChildElementByID(parentElement,element)};}
if(parentElement.tagName=="SCRIPT"){if(parentElement.parentNode&&parentElement.parentNode.tagName!="HEAD"){var divContainer=document.createElement("div");divContainer.setAttribute("id",parentElementId+"-"+(new Date()).getTime());parentElement.parentNode.insertBefore(divContainer,parentElement);parentElement=divContainer;}
else{return false;}}
return parentElement;}
return false;},extend:function(destination,source){for(var property in source){destination[property]=source[property];}
return destination;},verifyContextNotNull:function(context){for(var property in context){if(context[property]==null){return false;}}
return true;},trunCateStringbyWords:function(string,numberOfWords){var truncatedString="";if(typeof string!='undefined'&&string!=null){if(numberOfWords>-1){string=string.toString();splits=string.split(" ",numberOfWords);truncatedString=splits.join(" ");}
else{truncatedString=string;}}
return truncatedString;},getElm:function(aID){return(document.getElementById)?document.getElementById(aID):(document.all)?document.all[aID]:(document.layers)?document.layers[aId]:null;},stripMarkup:function(string){var newLineToWhiteSpaceRegExp=/<([^<\b\r>]*)>/g;var newLineToWhiteSpace=string.replace(newLineToWhiteSpaceRegExp," ");var mtoc=/<([^<>]*)>/g;return newLineToWhiteSpace.replace(mtoc,"");},createCookie:function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else{var expires="";}
document.cookie=name+"="+value+expires+"; path=/";},readCookie:function(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;},eraseCookie:function(name){this.createCookie(name,"",-1);},isArray:function(obj){return(obj.constructor.toString().indexOf("Array")==-1)?false:true;},getChildElementByID:function(parentElement,childElementId){var element;if(parentElement.hasChildNodes()){for(var i=0,childElement;childElement=parentElement.childNodes[i];i++){if(childElement.getAttribute&&childElement.getAttribute("id")!=null&&childElement.getAttribute("id")==childElementId){element=childElement;}if(element==null){element=this.getChildElementByID(childElement,childElementId);}}}
return element;},createNamedElement:function(type,name){var element=null;try{element=document.createElement('<'+type+' name="'+name+'">');}catch(e){}
if(!element||element.nodeName!=type.toUpperCase()){element=document.createElement(type);element.name=name;}
return element;},getElementsByClassName:function(oElm,strTagName,strClassName){var arrElements=(strTagName=="*"&&oElm.all)?oElm.all:oElm.getElementsByTagName(strTagName);var arrReturnElements=new Array();strClassName=strClassName.replace(/\-/g,"\\-");var oRegExp=new RegExp("(^|\\s)"+strClassName+"(\\s|$)");var oElement;for(var i=0;i<arrElements.length;i++){oElement=arrElements[i];if(oRegExp.test(oElement.className)){arrReturnElements.push(oElement);}}
return(arrReturnElements)},setupHrefTarget:function(target){var allowedFormattedTargets=new Array("_blank","_self","_parent","_top");var allowedUnFormattedTargets=new Array("blank","self","parent","top");if(target!=null||target!=""){try{if(allowedFormattedTargets.indexOf(target)!=-1){return target;}
if(allowedUnFormattedTargets.indexOf(target)!=-1){return"_"+target;}}catch(e){return"_self";}}
return"_self";},inlineScript:function(url,callback){var scriptId=(new Date()).getTime();var modifiedCallback="document.getElementsByTagName('head').item(0).removeChild($Util.getElm('"+scriptId+"'));"+callback;var fullUrl=url+"&callback="+modifiedCallback+"&noCacheIE="+scriptId;var scriptObj=document.createElement("script");scriptObj.setAttribute("type","text/javascript");scriptObj.setAttribute("src",fullUrl);scriptObj.setAttribute("id",scriptId);document.getElementsByTagName("head").item(0).appendChild(scriptObj);return null;},verifySuccessResponse:function(data){return data&&data.response&&data.response.status=="success";},verifyErrorResponse:function(data){return data&&data.response&&data.response.status=="error";}};if(typeof LITHIUM.initialized=="undefined"){LITHIUM.initialized=true;LITHIUM.ActiveCast.Messages=function(){var localMessages={};return{set:function(messages){$Util.extend(localMessages,messages||{});},get:function(key){var str=localMessages[key];if(arguments.length>1){for(var i=1;i<arguments.length;i++){var re=new RegExp('\\{'+(i-1)+'\\}','gm');str=str.replace(re,arguments[i]);}}
return str;}}}();LITHIUM.ActiveCast.Urls=function(){var localUrls={};return{set:function(urls){$Util.extend(localUrls,urls||{});},get:function(key,context){return new EJS({text:localUrls[key]}).render(context||{});}}}();LITHIUM.ActiveCast.Templates=function(){var localTemplates={};return{set:function(templates){$Util.extend(localTemplates,templates||{});},get:function(key){return localTemplates[key];}}}();LITHIUM.ActiveCast.Cache=function(){var cache={};return{lookup:function(type,id){return cache[type][id];},createCallback:function(type,item){if(typeof cache[type]=="undefined"){cache[type]=new Array();}
item.id=cache[type].length;cache[type].push(item);item.type=type;var callbackPrefix="LITHIUM.ActiveCast.Cache.lookup('"+item.type+"','"+item.id+"').";return function(method){return callbackPrefix+method;}}}}();$Util=LITHIUM.ActiveCast.Util;$Urls=LITHIUM.ActiveCast.Urls.get;$Templates=LITHIUM.ActiveCast.Templates.get;$Messages=LITHIUM.ActiveCast.Messages.get;}

LITHIUM.ActiveCast.getLatestThreads=function(nodeId,options){latestThreads=new LITHIUM.ActiveCast.LatestThreads(nodeId,options);latestThreads.render();};LITHIUM.ActiveCast.LatestThreads=function(nodeId,options){this.options={parentElementId:"ACTIVECAST-LT",maxNumberOfMessages:10,numSubjectWords:-1,numBodyWords:-1,hrefTarget:"_self",displayNodeLabel:true,displayNodeTitle:true}
$Util.extend(this.options,options||{});this.urlContext={pageSize:this.options.maxNumberOfMessages,nodeId:nodeId}
this.callback=LITHIUM.ActiveCast.Cache.createCallback("latestThreads",this);}
LITHIUM.ActiveCast.LatestThreads.prototype={render:function(){this.parentElement=$Util.createContainer(this.options.parentElementId,this);$Util.inlineScript($Urls("latestThreads",this.urlContext),this.callback("addMessagesToContext"));},addMessagesToContext:function(data){if(data.response.status=="success"){this.messagesForDisplay=new Array();var threads=data.response.threads.thread;if($Util.isArray(threads)){for(var i=0,thread;thread=threads[i];i++){this.messagesForDisplay.push(thread.messages.topic);}}else if(threads){this.messagesForDisplay.push(threads.messages.topic);}
if(this.options.displayNodeTitle){$Util.inlineScript($Urls("latestThreads.nodeTitle",this.urlContext),this.callback("addTitleToContext"));}else{this.title="";this.renderTemplate();}}},addTitleToContext:function(data){if(data.response.status=="success"){this.title=data.response.value.$;}
this.renderTemplate();},renderTemplate:function(){var context={messagesForDisplay:this.messagesForDisplay,displayNodeLabel:this.options.displayNodeLabel,displayNodeTitle:this.options.displayNodeTitle,title:this.title}
new EJS({text:$Templates("latestThreads")}).update(this.parentElement,context);}}

String.prototype.rsplit=function(regex){var item=this;var result=regex.exec(item);var retArr=new Array();while(result!=null)
{var first_idx=result.index;var last_idx=regex.lastIndex;if((first_idx)!=0)
{var first_bit=item.substring(0,first_idx);retArr.push(item.substring(0,first_idx));item=item.slice(first_idx);}
retArr.push(result[0]);item=item.slice(result[0].length);result=regex.exec(item);}
if(!item=='')
{retArr.push(item);}
return retArr;};String.prototype.chop=function(){return this.substr(0,this.length-1);}
var EjsScanner=function(source,left,right){this.left_delimiter=left+'%'
this.right_delimiter='%'+right
this.double_left=left+'%%'
this.double_right='%%'+right
this.left_equal=left+'%='
this.left_comment=left+'%#'
if(left=='[')
this.SplitRegexp=/(\[%%)|(%%\])|(\[%=)|(\[%#)|(\[%)|(%\]\n)|(%\])|(\n)/;else
this.SplitRegexp=new RegExp('('+this.double_left+')|(%%'+this.double_right+')|('+this.left_equal+')|('+this.left_comment+')|('+this.left_delimiter+')|('+this.right_delimiter+'\n)|('+this.right_delimiter+')|(\n)')
this.source=source;this.stag=null;this.lines=0;};EjsView=function(data){this.data=data}
EjsView.prototype.partial=function(options,data){if(!data)data=this.data;return new EJS(options).render(data);}
EjsScanner.to_text=function(input){if(input==null||input===undefined)
return'';if(input instanceof Date)
return input.toDateString();if(input.toString)
return input.toString()
return'';}
EjsScanner.prototype={scan:function(block){scanline=this.scanline;regex=this.SplitRegexp;if(!this.source=='')
{var source_split=this.source.rsplit(/\n/);for(var i=0;i<source_split.length;i++){var item=source_split[i];this.scanline(item,regex,block);}}},scanline:function(line,regex,block){this.lines++
var line_split=line.rsplit(regex);for(var i=0;i<line_split.length;i++){var token=line_split[i];if(token!=null){try{block(token,this);}catch(e){throw{type:'EjsScanner',line:this.lines}}}}}};var EjsBuffer=function(pre_cmd,post_cmd){this.line=new Array();this.script="";this.pre_cmd=pre_cmd;this.post_cmd=post_cmd;for(var i=0;i<this.pre_cmd.length;i++)
{this.push(pre_cmd[i]);}}
EjsBuffer.prototype={push:function(cmd){this.line.push(cmd);},cr:function(){this.script=this.script+this.line.join('; ');this.line=new Array();this.script=this.script+"\n";},close:function(){if(this.line.length>0)
{for(var i=0;i<this.post_cmd.length;i++)
{this.push(pre_cmd[i]);}
this.script=this.script+this.line.join('; ');line=null;}}};EjsCompiler=function(source,left){this.pre_cmd=['___ejsO = "";'];this.post_cmd=new Array();this.source=' ';if(source!=null)
{if(typeof source=='string')
{source=source.replace(/\r\n/g,"\n");source=source.replace(/\r/g,"\n");this.source=source;}
else if(source.innerHTML)
{this.source=source.innerHTML;}
if(typeof this.source!='string')
{this.source="";}}
left=left||'<'
var right='>'
switch(left){case'[':right=']'
break;case'<':break;default:throw left+' is not a supported deliminator'
break;}
this.scanner=new EjsScanner(this.source,left,right);this.out='';}
EjsCompiler.prototype={compile:function(options){options=options||{};this.out='';var put_cmd="___ejsO += ";var insert_cmd=put_cmd;var buff=new EjsBuffer(this.pre_cmd,this.post_cmd);var content='';var clean=function(content)
{content=content.replace(/\\/g,'\\\\');content=content.replace(/\n/g,'\\n');content=content.replace(/"/g,'\\"');return content;}
this.scanner.scan(function(token,scanner){if(scanner.stag==null)
{switch(token){case'\n':content=content+"\n";buff.push(put_cmd+'"'+clean(content)+'";');buff.cr()
content='';break;case scanner.left_delimiter:case scanner.left_equal:case scanner.left_comment:scanner.stag=token;if(content.length>0)
{buff.push(put_cmd+'"'+clean(content)+'"');}
content='';break;case scanner.double_left:content=content+scanner.left_delimiter;break;default:content=content+token;break;}}
else{switch(token){case scanner.right_delimiter:switch(scanner.stag){case scanner.left_delimiter:if(content[content.length-1]=='\n')
{content=content.chop();buff.push(content);buff.cr();}
else{buff.push(content);}
break;case scanner.left_equal:buff.push(insert_cmd+"(EjsScanner.to_text("+content+"))");break;}
scanner.stag=null;content='';break;case scanner.double_right:content=content+scanner.right_delimiter;break;default:content=content+token;break;}}});if(content.length>0)
{buff.push(put_cmd+'"'+clean(content)+'"');}
buff.close();this.out=buff.script+";";var to_be_evaled='this.process = function(_CONTEXT,_VIEW) { try { with(_VIEW) { with (_CONTEXT) {'+this.out+" return ___ejsO;}}}catch(e){e.lineNumber=null;throw e;}};";try{eval(to_be_evaled);}catch(e){if(typeof JSLINT!='undefined'){JSLINT(this.out)
for(var i=0;i<JSLINT.errors.length;i++){var error=JSLINT.errors[i];if(error.reason!="Unnecessary semicolon."){error.line++;var e=new Error();e.lineNumber=error.line;e.message=error.reason;if(options.url)
e.fileName=options.url;throw e;}}}else{throw e;}}}}
EJS=function(options){this.set_options(options)
if(options.url){var template=EJS.get(options.url,this.cache)
if(template)return template;if(template==EJS.INVALID_PATH)return null;this.text=EJS.request(options.url)
if(this.text==null){throw'There is no template at '+options.url}
this.name=options.url}else if(options.element)
{if(typeof options.element=='string'){var name=options.element
options.element=document.getElementById(options.element)
if(options.element==null)throw name+'does not exist!'}
if(options.element.value){this.text=options.element.value}else{this.text=options.element.innerHTML}
this.name=options.element.id
this.type='['}
var template=new EjsCompiler(this.text,this.type);template.compile(options);EJS.update(this.name,this);this.template=template}
EJS.config=function(options){EJS.cache=options.cache!=null?options.cache:EJS.cache
EJS.type=options.type!=null?options.type:EJS.type
var templates_directory={}
EJS.get=function(path,cache){if(cache==false)return null;if(templates_directory[path])return templates_directory[path];return null;}
EJS.update=function(path,template){if(path==null)return;templates_directory[path]=template}
EJS.INVALID_PATH=-1;}
EJS.config({cache:true,type:'<'})
EJS.prototype={render:function(object){var v=new EjsView(object);return this.template.process.call(v,object,v);},out:function(){return this.template.out},set_options:function(options){this.type=options.type!=null?options.type:EJS.type
this.cache=options.cache!=null?options.cache:EJS.cache
this.text=options.text!=null?options.text:null
this.name=options.name!=null?options.name:null},update:function(element,options){if(typeof element=='string'){element=document.getElementById(element)}
if(options==null){_template=this;return function(object){EJS.prototype.update.call(_template,element,object)}}
if(typeof options=='string'){params={}
params.url=options
_template=this;params.onComplete=function(request){var object=eval(request.responseText)
EJS.prototype.update.call(_template,element,object)}
EJS.ajax_request(params)}else
{element.innerHTML=this.render(options)}}}

LITHIUM.ActiveCast.Message={createMessage:function(options,message,numberOffset){this.options={numSubjectWords:15,numBodyWords:15,hrefTarget:"_self"}
$Util.extend(this.options,options||{});var subjectText=(message.subject)?message.subject.$:"";var subjectLenth=subjectText.length;subjectText=$Util.trunCateStringbyWords(subjectText,this.options.numSubjectWords);if(subjectText.length<subjectLenth&&subjectText!=""){subjectText+=$Messages("message.truncatedSubjectText");}
var bodyText=message.body?$Util.stripMarkup(message.body.$.toString()):"";var bodyLength=bodyText.length;var useBodyMoreLink=false;var bodyMoreLink="";bodyText=$Util.trunCateStringbyWords(bodyText,this.options.numBodyWords);if(bodyText.length<bodyLength&&bodyText!=""){useBodyMoreLink=true;bodyMoreLink=$Messages("message.truncatedBodyText");}
var context={hrefTarget:this.options.hrefTarget,msgUrl:message.view_href||"#",messageSubject:subjectText,messageBody:bodyText,useBodyMoreLink:useBodyMoreLink,bodyMoreLink:bodyMoreLink,message:message,threadCssClass:"ac_thread"+(numberOffset||0)%2,useKudosCount:message.kudosCount||false};return new EJS({text:$Templates("message")}).render(context);}};

LITHIUM.ActiveCast.MessageList={create:function(messages,options){this.options={numSubjectWords:-1,numBodyWords:-1,hrefTarget:"_self",displayNodeLabel:true,displayNodeTitle:true}
$Util.extend(this.options,options||{});var context={messages:messages,messageDisplayOptions:{numSubjectWords:this.options.numSubjectWords,numBodyWords:this.options.numBodyWords,hrefTarget:this.options.hrefTarget}}
return new EJS({text:$Templates("messageList")}).render(context);}}

LITHIUM.ActiveCast.Messages.set({"message.truncatedSubjectText":"...","message.author":"Author: {0}","message.posted":"Posted: {0}","message.kudosCount":"Number of Kudos: {0}","message.truncatedBodyText":"...[More]"});
LITHIUM.ActiveCast.Templates.set({"message":"<div class=\"ac_message <%= threadCssClass %>\"> \n\t<h2 class=\"ac_subject\"> \n\t\t<a href=\"<%= msgUrl %>\" target=\"<%= $Util.setupHrefTarget(this.hrefTarget) %>\"> \n\t\t\t<%= messageSubject %> \n\t\t<\/a> \n\t<\/h2> \n\t<ul class=\"ac_msginfo\" classname=\"ac_msginfo\"> \n\t\t\n\t\t<li class=\"ac_posted\" classname=\"ac_posted\">\n\t\t\t<%= $Messages(\"message.posted\", message.post_time.view_date) %>\n\t\t<\/li>\n\t\t<% if (useKudosCount) { %>\n\t\t\t<li class=\"ac_kudoCount\" classname=\"ac_kudoCount\">\n\t\t\t\t<%= $Messages(\"message.kudosCount\", message.kudosCount) %>\t\t\t\t\n\t\t\t<\/li>\n\t\t<% } %>\n\t<\/ul> \n<\/div>"});
LITHIUM.ActiveCast.Templates.set({"messageList":"<div id=\"AC_MESSAGES\" class=\"AC_MESSAGES\">\t \n\t<% for (var i = 0; i < messages.length; i++) { %>\n\t\t<%= LITHIUM.ActiveCast.Message.createMessage(messageDisplayOptions, messages[i], i) %>\n\t<% } %>\t\n<\/div>\n"});
LITHIUM.ActiveCast.Messages.set({"latestThreads.separator":":","latestThreads.title":"{1}"});
LITHIUM.ActiveCast.Urls.set({"latestThreads.nodeTitle":"http://discuss.fico.com/blaze/restapi/vc/boards/id/<%= nodeId %>/title?xslt=json.xsl","latestThreads":"http://discuss.fico.com/blaze/restapi/vc/boards/id/<%= nodeId %>/threads?xslt=json.xsl&restapi.format_detail=full_list_element&restapi.response_style=view&message_viewer.topic_sort_order=topic_start_date&page_size=<%= pageSize %>"});
LITHIUM.ActiveCast.Templates.set({"latestThreads":"<% if (displayNodeLabel) { \t\t\t\n\t\tvar htmlTitle = \"\", separator = \"\";\n\t\tif(displayNodeTitle) { \n\t\t\thtmlTitle = \"<span id='AC_NODE_TITLE'>\" + title + \"<\/span>\";\n\t\t\tseparator = $Messages(\"latestThreads.separator\");\t\t\t\n\t\t} %>\n\t\t<h1 id=\"AC_HEADER\"><%= $Messages(\"latestThreads.title\", separator, htmlTitle) %><\/h1>\n<% } %>\n<%= LITHIUM.ActiveCast.MessageList.create(messagesForDisplay, options) %>\n"});
