// Copyright 2006-2007 Livesite Networks, LLC. All rights reserved.

function getElement(id){return document.getElementById?document.getElementById(id):document.all?document.all[id]:document.layers?document.layers[id]:false;}
function defined(name){var objects=name.split(".");var address_path=new String();for(var i=0;i<objects.length;i++){if(address_path.length>0){address_path+=".";}
address_path+=objects[i];var address_result=eval("typeof("+address_path+")");if(address_result=='undefined'){return false;}}
return true;}
function toggleVisibility(id){var elem=getElement(id);var visibility=getCSSAttribute(elem,"visibility");elem.style.visibility=visibility=="hidden"?"visible":"hidden";}
function toggleDisplay(id){var elem=getElement(id);var display=getCSSAttribute(elem,"display");elem.style.display=display=="none"?"block":"none";}
function getWindowSize(){var w=0;var h=0;if(typeof(window.innerWidth)=='number'){w=window.innerWidth;h=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){w=document.documentElement.clientWidth;h=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){w=document.body.clientWidth;h=document.body.clientHeight;}
return new Array(w,h);}
function getTop(element){return getOffset(element,'top');}
function getLeft(element){return getOffset(element,'left');}
function getWidth(element){return getDimension(element,'width');}
function getHeight(element){return getDimension(element,'height');}
function getOffset(element,attr){var offset=0;if(element){offset=attr=='top'?element.offsetTop:element.offsetLeft;offset+=getOffset(element.offsetParent,attr);}
return isNaN(offset)?0:offset;}
function getDimension(element,attr){var result=0;if(typeof(element)!='object'){element=getElement(element);}
if(element){result=attr=='height'?element.clientHeight:element.clientWidth;if(isNaN(result)||result<=0){result=getCSSAttribute(element,attr);result=parseInt(result.replace("\w",""));}}
return isNaN(result)?0:result;}
function getCSSAttribute(elem,key){var attr=false;if(elem){if(elem.style)attr=eval("elem.style."+key);if(!attr){if(elem.className){var classes=elem.className.split(/ /);for(var i=0;!attr&&(i<classes.length);i++){var rule=getCSSRule("."+classes[i]);if(rule){attr=rule.style[key];rule=false;}}}
if(!attr){if(elem.id){var rule=getCSSRule("#"+elem.id);if(rule){attr=rule.style[key];rule=false;}}}}}
return attr;}
function getCSSRule(target){var stylesheets=document.styleSheets?document.styleSheets:window.styleSheets;var rulekey="cssRules";var rule=false;if(document.all)rulekey="rules";if(stylesheets){for(var i=0;!rule&&(i<stylesheets.length);i++){if(stylesheets[i]&&stylesheets[i][rulekey]){for(var j=0;!rule&&(j<stylesheets[i][rulekey].length);j++){var cssrule=stylesheets[i][rulekey][j];var rulename=cssrule.selectorText;if(rulename==target){rule=cssrule;}}}}}
return rule;}
function getBody(){var bodies=document.getElementsByTagName('body');return bodies[0];}
function bodyAppend(elem){getBody().appendChild(elem);}
function createInlineFrame(){var obj;if(document.all){obj=document.createElement('<iframe frameborder="0">');}else{obj=document.createElement("iframe");obj.setAttribute('frameborder','none');}
return obj;}
function createJavaPlugin(path,classname,params,ver){if(!params)params=new Array();if(!ver)ver='1.4';var obj;if(document.all){obj=document.createElement("<object classid='clsid:8AD9C840-044E-11D1-B3E9-00805F499D93'>");}else{obj=document.createElement("object");obj.setAttribute('code',classname);obj.setAttribute('type','application/x-java-applet;version='+ver);}
params['archive']=path;params['code']=classname;params['MAYSCRIPT']='true';for(var key in params){var param=document.createElement("param");param.setAttribute('name',key);param.setAttribute('value',params[key]);obj.appendChild(param);}
return obj;}
function addFormParameter(form,key,val){var input=document.createElement("input");input.type="hidden";input.name=key;input.value=val;input.style.display="none";form.appendChild(input);}
function addFormParameters(form,params){if(!params)return;for(var key in params){addFormParameter(form,key,params[key]);}}
function removeChildren(id){var elem=typeof(id)=='object'?id:getElement(id);for(var idx=elem.childNodes.length-1;idx>=0;idx--){elem.removeChild(elem.childNodes[idx]);}}
var MASK_ID='lsn_mask';function showMask(){var dims=getWindowSize();var mask=getElement(MASK_ID);if(!mask){mask=document.createElement('div');mask.setAttribute('id',MASK_ID);bodyAppend(mask);}
mask.style.width=dims[0]+"px";mask.style.height=dims[1]+"px";mask.style.visibility='visible';}
function hideMask(){getElement(MASK_ID).style.visibility='hidden';}
function getCenteredXY(elem){elem=typeof(elem)=='object'?elem:getElement(elem);var dims=getWindowSize();var l=document.body.scrollLeft+document.documentElement.scrollLeft;var t=document.body.scrollTop+document.documentElement.scrollTop;return new Array(Math.round(l+(dims[0]/2)-(getWidth(elem)/2)),Math.round(t+(dims[1]/2)-(getHeight(elem)/2)));}
var EVENTS=new Array();function addEvent(tag,name,js){if(!EVENTS[tag]){EVENTS[tag]=new Array();}
var namespace=EVENTS[tag];if(!namespace[name]){namespace[name]=new Array();}
var events=namespace[name];events[events.length]=typeof(js)=='function'?js:new Function(js);}
function doEvents(tag,name,p){var retval=true;if(EVENTS[tag]&&EVENTS[tag][name]){for(var idx in EVENTS[tag][name]){var eventFunc=EVENTS[tag][name][idx];if(typeof(eventFunc)=="function"){var func_retval;if(p&&p.length){switch(p.length){case 1:func_retval=eventFunc(p[0]);break;case 2:func_retval=eventFunc(p[0],p[1]);break;case 3:func_retval=eventFunc(p[0],p[1],p[2]);break;case 4:func_retval=eventFunc(p[0],p[1],p[2],p[3]);break;case 5:func_retval=eventFunc(p[0],p[1],p[2],p[3],p[4]);break;}}else{func_retval=eventFunc();}
if(typeof(func_retval)!='undefined'){retval&=func_retval;}}}}
return retval;}
if(typeof(window.captureEvents)=='function'){window.captureEvents(Event.MOUSEMOVE,Event.MOUSEUP);}
function initEvent(target,tagName,eventName){var currentHandler=target[eventName];target['on'+eventName]=new Function("doEvents('"+tagName+"', '"+eventName+"', arguments)");if(typeof(currentHandler)=='function'){addEvent(tagName,eventName,currentHandler);}}
initEvent(window,'window','load');initEvent(window,'window','resize');if(document.all){initEvent(document,'window','mousemove');initEvent(document,'window','mouseup');}else{initEvent(window,'window','mousemove');initEvent(window,'window','mouseup');}
function fetchObject(url,params,method){var result=null;var req=fetch(url,params,method);var text=req.responseText;try{eval("result = "+text);}catch(err){result=err;}
return result;}
function fetchText(url,params,method){var req=fetch(url,params,method);return req.responseText;}
function fetchXML(url,params,method){var req=fetch(url,params,method);return req.responseXML;}
function fetchTree(url,params,method){return new Tree(fetchXML(url,params,method));}
function fetch(url,params,method){var req;if(!method)method=params?"POST":"GET";if(window.XMLHttpRequest){req=new XMLHttpRequest();}else if(window.ActiveXObject){req=new ActiveXObject("Microsoft.XMLHTTP");}
if(req){req.open(method,url,false);if(params){req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");}
req.send(params);return req;}
return null;}
function getXMLData(obj,key){if(obj.readyState==4&&obj.status==200){if(obj.responseXML!=null){var elem=obj.responseXML.getElementById(key)
if(elem&&elem.firstChild){return elem.firstChild.data;}else{throw"No element identified by: "+key;}}}
return null;}
function getContentWindow(id,verify){var content=document.getElementById(id);if(!content){content=window.frames[id];}
if(content){var cwin=content.contentWindow;if(verify){if(cwin.document.getElementById(verify)){return content.contentWindow;}}else{return content.contentWindow;}}
return false;}
function getContentDocument(frameid){var doc;if(document.all){doc=frames[frameid].document;}else{try{var iframe=document.getElementById(frameid);var doc=iframe.contentDocument;}catch(err){}}
return doc;}
function createEmail(name,domain){var href="mail";href+="to:";href+=name;href+="@"
href+=domain;document.location=href;}
function unpack_ncr(str){return str.replace(/&#([\da-f]{2,4});/gi,function($0,$1){return String.fromCharCode("0x"+$1);});}
function pack_ncr(str){return unpack_ncr(str).replace(/\W/g,function($0){return"&#"+$0.charCodeAt().toString(16).toUpperCase()+";";});}
function unpack_cgi(str){return str.replace(/%([\da-f]{2})/gi,function($0,$1){return String.fromCharCode("0x"+$1);});}
function pack_cgi(str){return(unpack_cgi(str).replace(/\W/g,function($0){var hex=$0.charCodeAt().toString(16).toUpperCase();hex=hex.length==1?"0"+hex:hex;return"%"+hex;}));}
function applyFilters(obj,filter_name){if(!document.all){return false;}
if(obj){obj.style.filter="progid:DXImageTransform.Microsoft."+filter_name;if(obj.filters){for(var i=0;i<obj.filters.length;i++){var filter=obj.filters[i];filter.Apply();return true;}}}}
function playFilters(obj){if(!document.all){return false;}
if(obj){if(obj.filters){for(var i=0;i<obj.filters.length;i++){var filter=obj.filters[i];filter.Play();return true;}}}}
var MOUSE_X=-1;var MOUSE_Y=-1;addEvent('window','mousemove',trackMousePosition);function trackMousePosition(e){var xy=getMouseXY(e);if(xy){MOUSE_X=xy[0];MOUSE_Y=xy[1];}}
function isMouseOver(){var result=false;for(var i=0;i<arguments.length;i++){var elem=arguments[i];if(typeof(elem)!='object'){elem=getElement(elem);}
if(!elem)continue;var t=getOffset(elem,'top');var l=getOffset(elem,'left');var w=getWidth(elem);var h=getHeight(elem);if(document.all){result=MOUSE_X>l&&MOUSE_X<(l+w)&&MOUSE_Y>t&&MOUSE_Y<(t+h);}else{result=MOUSE_X>=l&&MOUSE_X<(l+w)&&MOUSE_Y>=t&&MOUSE_Y<(t+h);}
if(result)break;}
return result;}
function getMouseXY(e){var x=-1;var y=-1;if(!e)e=window.event;if(e){if(e.pageX||e.pageY){x=e.pageX;y=e.pageY;}else if(e.clientX||e.clientY){x=e.clientX+document.body.scrollLeft+
document.documentElement.scrollLeft;y=e.clientY+document.body.scrollTop+
document.documentElement.scrollTop;}
return[x,y];}
return undefined;}
var MOVE_TARGET;addEvent('window','mousemove',"_moveElement(arguments);");addEvent('window','mouseup',"_removeMoveTarget();");addEvent('window','load',"MOVE_TARGET = _newMoveTarget();");function _newMoveTarget(){t=new Object();t.id="";t.orig_x=0;t.orig_y=0;t.orig_mx=0;t.orig_my=0;t.active=false;return t;}
function setMoveTarget(mozevent,id){stopWindowEvents();var elem=getElement(id);if(elem){var dims=getWindowSize();elem.style.position="absolute";MOVE_TARGET.id=id;MOVE_TARGET.active=true;MOVE_TARGET.orig_mx=MOUSE_X;MOVE_TARGET.orig_my=MOUSE_Y;MOVE_TARGET.orig_x=getOffset(elem,'left');MOVE_TARGET.orig_y=getOffset(elem,'top');MOVE_TARGET.max_x=dims[0]-getWidth(elem);MOVE_TARGET.max_y=dims[1]-getHeight(elem);}}
function _moveElement(mozevent){if(!MOVE_TARGET||!MOVE_TARGET.active)return;var id=MOVE_TARGET.id;var mouse_x=MOUSE_X;var mouse_y=MOUSE_Y;var delta_x=mouse_x-MOVE_TARGET.orig_mx;var delta_y=mouse_y-MOVE_TARGET.orig_my;var elem=getElement(id);var new_x=MOVE_TARGET.orig_x+delta_x;var new_y=MOVE_TARGET.orig_y+delta_y;if(new_x<MOVE_TARGET.max_x&&new_y<MOVE_TARGET.max_y&&new_x>0&&new_y>0){elem.style.left=(new_x).toString(10)+'px';elem.style.top=(new_y).toString(10)+'px';}}
function _removeMoveTarget(){restoreWindowEvents();MOVE_TARGET=_newMoveTarget();}
var EVENT_BUFFER=new Object();function stopWindowEvents(){if(document.all){EVENT_BUFFER.doc_onselectstart=document.onselectstart;EVENT_BUFFER.win_onmousedown=window.onmousedown;document.onselectstart=function(){return false;};window.onmousedown=function(){return false;};}else{EVENT_BUFFER.doc_onmousedown=document.onmousedown;document.onmousedown=function(){return false;};}}
function restoreWindowEvents(){if(!MOVE_TARGET||!MOVE_TARGET.active)return;if(document.all){document.onselectstart=EVENT_BUFFER.doc_onselectstart;window.onmousedown=EVENT_BUFFER.win_onmousedown;}else{document.onmousedown=EVENT_BUFFER.doc_onmousedown;}}
function Navigator(frame_id,data,custom){this.use_filters=false;this.show=_show;this.reset=_reset;this.first=_first;this.last=_last;this.prev=_prev;this.next=_next;this.jump=_jump;this.transition=_transition;for(var func in custom){var func_body=func=="onTransition"?custom[func]:"this.transition();"+custom[func];var escaped=func_body.replace(/([^\\])\"/g,"$1\\\"").replace(/(\\n|\n)/g,"");eval("this."+func+" = new Function( \""+escaped+"\" )");}
this.frame_id=frame_id;this.target_doc=getContentDocument(frame_id);this.target_win=getContentWindow(frame_id);this.frame=document.getElementById(frame_id);this.data=data;this.idx_current=0;this.idx_from=0;this.idx_first=0;this.idx_last=data.length-1;this.screen=data[0];this.motion="begin";this.filtering=false;this.navto=_navto;this.onDisplay=_onDisplay;this.filters=new Array();this.filters['begin']="Blinds(duration=.15,bands=1,direction=down)";this.filters['left']="Blinds(duration=.15,bands=1,direction=right)";this.filters['right']="Blinds(duration=.15,bands=1,direction=left)";this.filters['return']="Blinds(duration=.15,bands=1,direction=up)";return this;}
function _first(){this.navto(this.idx_first);}
function _last(){this.navto(this.idx_last);}
function _prev(){this.navto(this.idx_current-1);}
function _next(){this.navto(this.idx_current+1);}
function _jump(screen_id){for(var idx in this.data){if(this.data[idx].screen_id==screen_id){this.navto(idx);break;}}}
function _reset(){this.idx_current=this.idx_first;this.idx_from=this.idx_current;this.screen=this.data[this.idx_current];this.motion="begin";}
function _navto(index){if(index<this.idx_first)index=this.idx_first;if(index>this.idx_last)index=this.idx_last;this.motion=(index>this.idx_current)?"right":(index<this.idx_current)?"left":"return";this.idx_from=this.idx_current;this.idx_current=index;this.screen=this.data[index];this.show();}
function _show(){this.transition();if(this.target_doc){if(this.use_filters){this.filtering=applyFilters(this.frame,this.filters[this.motion]);}
if(this.target_doc.open("text/html","replace")){if(this.screen){trace("<span style='color: blue'>["+this.idx_current+"]"
+" "+this.screen.screen_id+"</span>");this.target_doc.write(this.screen.html);}else{trace("<span style='color: red'>["+this.idx_current+"]"
+" screen missing</span>");this.target_doc.write("<a style=\"position: absolute; top: 250px; left: 250px;\""
+"href=\"javascript:history.go(-1)\">Screen Missing</a>");}
this.target_doc.close();}
if(this.filtering){trace(" filter: "+this.motion+"("+this.filters[this.motion]+")");this.frame.onfilterchange=this.onDisplay;playFilters(this.frame);}}
this.motion="return";}
function _onDisplay(){if(this.filtering&&this.tagName!="IFRAME"){return;}
var win=typeof(this.target_win)=="undefined"?getContentWindow(this.id):this.target_win;try{trace(" "+typeof(win.begin)+" begin()");win.begin();}catch(err){trace(err);}
this.filtering=false;}
function _transition(){if(this.target_win){if(typeof(this.target_win.end)=="function"){trace(" "+typeof(this.target_win.end)+" end()");this.target_win.end();}}
if(typeof(this.onTransition)=="function"){this.onTransition();}}
function Tree(doc){if(doc){var node=doc.firstChild;while(node){var key=null;if(node.attributes){for(var i=0;i<node.attributes.length;i++){if(node.attributes[i].nodeName=='id'){key=node.attributes[i].nodeValue;break;}}}
if(!key)key=node.nodeName;if(null!=node.nodeValue){this[key]=node.nodeValue;}else{if(node.childNodes&&node.childNodes.length==1){var onlyChild=node.firstChild;if((onlyChild.nodeName=='#text')||(onlyChild.nodeName=='#cdata-section')){this[key]=onlyChild.nodeValue;}else{this[key]=new Tree(node);}}else{this[key]=new Tree(node);}}
node=node.nextSibling;}}
return this;}