window['kobj_ts'] = '20120124192519';function KrlExternalResource(url)
{this.name=null;this.url=url;this.loaded=false;this.requested=false;this.type=null;this.css_selector=null;this.data=null;}
KrlExternalResource.prototype.load=function(){if(this.requested)
{return;}
if(this.type=="css"){KOBJ.load_style_sheet_link(this.url);this.did_load();}
else
{if(this.name)
{KOBJ.require(this.url,{data_type:"other"})}
else
{KOBJ.require(this.url);}}};KrlExternalResource.prototype.is_loaded=function(){if(this.type=="css")
{this.loaded=true;return this.loaded;}
KOBJ.loggers.resources.trace("Resource think it is loaded?  ",this.url,this.loaded);return this.loaded;};KrlExternalResource.prototype.did_load=function(){this.loaded=true;this.requested=false;KOBJ.loggers.resources.trace("Resource was told it was loaded ",this.url);$KOBJ.each(KOBJ.applications,function(index,app){app.execute_pending_closures();});};function KrlDataSet(config)
{this.name=config["name"];this.data=config["data"];}function KrlApplication(app)
{this.app_id=app;this.data_set_load_requested=false;this.external_resources=null;this.named_external_resources={};this.data_sets=null;this.delay_execution=false;this.page_params={};this.version="blue";this.app_vars={};this.pending_closures={};}
KrlApplication.prototype.store_data_sets=function(datasetdata)
{this.data_sets=datasetdata;this.execute_pending_closures();};KrlApplication.prototype.get_named_resource=function(name)
{return this.named_external_resources[name]};KrlApplication.prototype.add_external_resources=function(resources){var my_resources=this.external_resources||{};myself=this
$KOBJ.each(resources,function(index){var a_resource=resources[index];my_resources[a_resource.url]=a_resource;if(a_resource.name){myself.named_external_resources[a_resource.name]=a_resource;}});this.external_resources=my_resources;};KrlApplication.prototype.is_data_loaded=function()
{return this.data_sets!=null;};KrlApplication.prototype.reload=function()
{KOBJEventManager.add_out_of_bound_event(this,"pageview");};KrlApplication.prototype.reload_later=function(delay)
{var func="KOBJ.get_application('"+this.app_id+"').reload();";setTimeout(func,delay);};KrlApplication.prototype.raise_event=function(event_name,parameters,other_app_id)
{var other_app=null;if(typeof(other_app_id)!="undefined"&&other_app_id!=null)
{other_app=KOBJ.get_application(other_app_id);if(other_app==null)
{other_app=KOBJ.add_app_config({rids:[other_app_id]});other_app=KOBJ.get_application(other_app_id);other_app.clone_app_params(this);}}
else
{other_app=this;}
var all_data={};if(typeof(parameters)!="undefined"&&parameters!=null){all_data["param_data"]=parameters;}
KOBJEventManager.add_out_of_bound_event(other_app,event_name,true,all_data);};KrlApplication.prototype.clone_app_params=function(app){var other_app_id=app.app_id;var myself=this;$KOBJ.each(app.page_params,function(k,v){if(k==other_app_id+":kynetx_app_version")
{if(v.indexOf("dev")!=-1)
{myself.page_params[myself.app_id+":kynetx_app_version"]="dev";}
else
{myself.page_params[myself.app_id+":kynetx_app_version"]=v.split(",")[0];}}});};KrlApplication.prototype.page_vars_as_url=function(){var param_str="";var our_app_id=this.app_id;$KOBJ.each(this.page_params,function(k,v){if(k==our_app_id+":kynetx_app_version")
{if(v.indexOf("dev")!=-1)
{param_str+="&"+k+"=dev";}
else
{param_str+="&"+k+"="+v.split(",")[0];}}
else
{param_str+="&"+k+"="+v;}});return param_str;};KrlApplication.prototype.are_resources_loaded=function()
{var is_loaded=true;if(this.external_resources!=null)
{$KOBJ.each(this.external_resources,function(index,value){if(!value.is_loaded()){is_loaded=false;}});}
KOBJ.loggers.resources.trace("All app resources loaded? ",is_loaded);return is_loaded;};KrlApplication.prototype.execute_closure=function(guid,a_closure)
{if(!this.is_data_loaded()||!this.are_resources_loaded())
{KOBJ.loggers.application.trace("Adding closure to pending list "+this.app_id+" : "+guid);this.pending_closures[guid]=a_closure;}
else
{this.pending_closures[guid]=a_closure;this.execute_pending_closures();}};KrlApplication.prototype.execute_pending_closures=function()
{if(!this.is_data_loaded()||!this.are_resources_loaded())
{return;}
var myself=this;$KOBJ.each(this.pending_closures,function(guid,the_closure){KOBJ.loggers.application.trace("Executing Closure "+myself.app_id+" - "+guid);try
{(function($){(function(jQuery){the_closure($KOBJ);})($KOBJ);})($KOBJ);}
catch(err)
{KOBJ.loggers.general.error("Closure Executed with error "+myself.app_id+" - "+guid,err);KOBJ.errorstack_submit(KOBJ.default_error_stack_key,err,{name:"unknown",id:myself.app_id});}
KOBJEventManager.event_fire_complete(guid,myself);});this.pending_closures={};};KrlApplication.prototype.run=function()
{this.load_data_sets();KOBJEventManager.add_out_of_bound_event(this,"pageview");};KrlApplication.prototype.fire_event=function(event,data,guid,domain)
{this.load_data_sets();var url=[KOBJ.proto()+
KOBJ.eval_host+
KOBJ.kns_port,this.version,'event',domain,event,this.app_id,guid].join("/");var all_vars={};if(typeof(kvars)!="undefined"||typeof(kvars)=="object"){$KOBJ.extend(true,all_vars,kvars);}
$KOBJ.extend(true,all_vars,this.app_vars);params=[];if(data["param_data"]!=null)
{params=params.concat(data["param_data"]);}
if(data["submit_data"]!=null)
{var this_app=this;$KOBJ.each(data["submit_data"],function(index){value=data["submit_data"][index];params.push({"name":(this_app.app_id+":"+value["name"]),"value":value["value"]});});}
if(event!="pageview"){params.push({name:"element",value:data.selector});}
params.push({name:"kvars",value:$KOBJ.toJSON(all_vars)});if(event=="pageview"){params.push({name:"caller",value:KOBJ.location('href')});params.push({name:"referer",value:KOBJ.document.referrer});params.push({name:"title",value:KOBJ.document.title});params.push({name:"frag",value:KOBJ.location('hash')});}
var event_url=url+"?"+
$KOBJ.param(params)+
KOBJ.extra_page_vars_as_url()+
this.page_vars_as_url();KOBJ.require(event_url);};KrlApplication.prototype.fire_callbacks=function(guid)
{};KrlApplication.prototype.load_data_sets=function()
{if(!this.is_data_loaded()&&!this.data_set_load_requested)
{var data_url=KOBJ.proto()+KOBJ.init_host+KOBJ.kns_port+"/js/datasets/"+this.app_id+"/?t=t"+
this.page_vars_as_url();KOBJ.require(data_url);}};KrlApplication.prototype.update_from_config=function(a_config)
{if(a_config.delayExecution){this.delay_execution=true;}
var my_self=this;$KOBJ.each(a_config,function(key,value){if(key.match("^"+my_self.app_id)){my_self.page_params[key]=value;}
else
{KOBJ.add_extra_page_var(key,value);}});};if(typeof($KOBJ)=='undefined'){(function(window,undefined){var document=window.document,navigator=window.navigator,location=window.location;var jQuery=(function(){var jQuery=function(selector,context){return new jQuery.fn.init(selector,context,rootjQuery);},_jQuery=window.jQuery,_$=window.$,rootjQuery,quickExpr=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,rnotwhite=/\S/,trimLeft=/^\s+/,trimRight=/\s+$/,rdigit=/\d/,rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,rvalidchars=/^[\],:{}\s]*$/,rvalidescape=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rvalidtokens=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rvalidbraces=/(?:^|:|,)(?:\s*\[)+/g,rwebkit=/(webkit)[ \/]([\w.]+)/,ropera=/(opera)(?:.*version)?[ \/]([\w.]+)/,rmsie=/(msie) ([\w.]+)/,rmozilla=/(mozilla)(?:.*? rv:([\w.]+))?/,rdashAlpha=/-([a-z]|[0-9])/ig,rmsPrefix=/^-ms-/,fcamelCase=function(all,letter){return(letter+"").toUpperCase();},userAgent=navigator.userAgent,browserMatch,readyList,DOMContentLoaded,toString=Object.prototype.toString,hasOwn=Object.prototype.hasOwnProperty,push=Array.prototype.push,slice=Array.prototype.slice,trim=String.prototype.trim,indexOf=Array.prototype.indexOf,class2type={};jQuery.fn=jQuery.prototype={constructor:jQuery,init:function(selector,context,rootjQuery){var match,elem,ret,doc;if(!selector){return this;}
if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this;}
if(selector==="body"&&!context&&document.body){this.context=document;this[0]=document.body;this.selector=selector;this.length=1;return this;}
if(typeof selector==="string"){if(selector.charAt(0)==="<"&&selector.charAt(selector.length-1)===">"&&selector.length>=3){match=[null,selector,null];}else{match=quickExpr.exec(selector);}
if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;doc=(context?context.ownerDocument||context:document);ret=rsingleTag.exec(selector);if(ret){if(jQuery.isPlainObject(context)){selector=[document.createElement(ret[1])];jQuery.fn.attr.call(selector,context,true);}else{selector=[doc.createElement(ret[1])];}}else{ret=jQuery.buildFragment([match[1]],[doc]);selector=(ret.cacheable?jQuery.clone(ret.fragment):ret.fragment).childNodes;}
return jQuery.merge(this,selector);}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){if(elem.id!==match[2]){return rootjQuery.find(selector);}
this.length=1;this[0]=elem;}
this.context=document;this.selector=selector;return this;}
}else if(!context||context.jquery){return(context||rootjQuery).find(selector);}else{return this.constructor(context).find(selector);}
}else if(jQuery.isFunction(selector)){return rootjQuery.ready(selector);}
if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context;}
return jQuery.makeArray(selector,this);},selector:"",jquery:"1.7.kobj",length:0,size:function(){return this.length;},toArray:function(){return slice.call(this,0);},get:function(num){return num==null?this.toArray():(num<0?this[this.length+num]:this[num]);},pushStack:function(elems,name,selector){var ret=this.constructor();if(jQuery.isArray(elems)){push.apply(ret,elems);}else{jQuery.merge(ret,elems);}
ret.prevObject=this;ret.context=this.context;if(name==="find"){ret.selector=this.selector+(this.selector?" ":"")+selector;}else if(name){ret.selector=this.selector+"."+name+"("+selector+")";}
return ret;},each:function(callback,args){return jQuery.each(this,callback,args);},ready:function(fn){jQuery.bindReady();readyList.add(fn);return this;},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1);},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},slice:function(){return this.pushStack(slice.apply(this,arguments),"slice",slice.call(arguments).join(","));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},end:function(){return this.prevObject||this.constructor(null);},push:push,sort:[].sort,splice:[].splice};jQuery.fn.init.prototype=jQuery.fn;jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2;}
if(typeof target!=="object"&&!jQuery.isFunction(target)){target={};}
if(length===i){target=this;--i;}
for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue;}
if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[];}else{clone=src&&jQuery.isPlainObject(src)?src:{};}
target[name]=jQuery.extend(deep,clone,copy);}else if(copy!==undefined){target[name]=copy;}}}}
return target;};jQuery.extend({noConflict:function(deep){if(window.$===jQuery){window.$=_$;}
if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery;}
return jQuery;},isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++;}else{jQuery.ready(true);}},ready:function(wait){if((wait===true&&!--jQuery.readyWait)||(wait!==true&&!jQuery.isReady)){if(!document.body){return setTimeout(jQuery.ready,1);}
jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return;}
readyList.fireWith(document,[jQuery]);if(jQuery.fn.trigger){jQuery(document).trigger("ready").unbind("ready");}}},bindReady:function(){if(readyList){return;}
readyList=jQuery.Callbacks("once memory");if(document.readyState==="complete"){return setTimeout(jQuery.ready,1);}
if(document.addEventListener){document.addEventListener("DOMContentLoaded",DOMContentLoaded,false);window.addEventListener("load",jQuery.ready,false);}else if(document.attachEvent){document.attachEvent("onreadystatechange",DOMContentLoaded);window.attachEvent("onload",jQuery.ready);var toplevel=false;try{toplevel=window.frameElement==null;}catch(e){}
if(document.documentElement.doScroll&&toplevel){doScrollCheck();}}},isFunction:function(obj){return jQuery.type(obj)==="function";},isArray:Array.isArray||function(obj){return jQuery.type(obj)==="array";},isWindow:function(obj){return obj&&typeof obj==="object"&&"setInterval"in obj;},isNumeric:function(obj){return obj!=null&&rdigit.test(obj)&&!isNaN(obj);},type:function(obj){return obj==null?String(obj):class2type[toString.call(obj)]||"object";},isPlainObject:function(obj){if(!obj||jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false;}
try{if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false;}}catch(e){return false;}
var key;for(key in obj){}
return key===undefined||hasOwn.call(obj,key);},isEmptyObject:function(obj){for(var name in obj){return false;}
return true;},error:function(msg){throw msg;},parseJSON:function(data){if(typeof data!=="string"||!data){return null;}
data=jQuery.trim(data);if(window.JSON&&window.JSON.parse){return window.JSON.parse(data);}
if(rvalidchars.test(data.replace(rvalidescape,"@")
.replace(rvalidtokens,"]")
.replace(rvalidbraces,""))){return(new Function("return "+data))();}
jQuery.error("Invalid JSON: "+data);},parseXML:function(data){var xml,tmp;try{if(window.DOMParser){tmp=new DOMParser();xml=tmp.parseFromString(data,"text/xml");}else{xml=new ActiveXObject("Microsoft.XMLDOM");xml.async="false";xml.loadXML(data);}}catch(e){xml=undefined;}
if(!xml||!xml.documentElement||xml.getElementsByTagName("parsererror").length){jQuery.error("Invalid XML: "+data);}
return xml;},noop:function(){},globalEval:function(data){if(data&&rnotwhite.test(data)){(window.execScript||function(data){window["eval"].call(window,data);})(data);}},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()===name.toUpperCase();},each:function(object,callback,args){var name,i=0,length=object.length,isObj=length===undefined||jQuery.isFunction(object);if(args){if(isObj){for(name in object){if(callback.apply(object[name],args)===false){break;}}}else{for(;i<length;){if(callback.apply(object[i++],args)===false){break;}}}
}else{if(isObj){for(name in object){if(callback.call(object[name],name,object[name])===false){break;}}}else{for(;i<length;){if(callback.call(object[i],i,object[i++])===false){break;}}}}
return object;},trim:trim?function(text){return text==null?"":trim.call(text);}:function(text){return text==null?"":text.toString().replace(trimLeft,"").replace(trimRight,"");},makeArray:function(array,results){var ret=results||[];if(array!=null){var type=jQuery.type(array);if(array.length==null||type==="string"||type==="function"||type==="regexp"||jQuery.isWindow(array)){push.call(ret,array);}else{jQuery.merge(ret,array);}}
return ret;},inArray:function(elem,array,i){var len;if(array){if(indexOf){return indexOf.call(array,elem,i);}
len=array.length;i=i?i<0?Math.max(0,len+i):i:0;for(;i<len;i++){if(i in array&&array[i]===elem){return i;}}}
return-1;},merge:function(first,second){var i=first.length,j=0;if(typeof second.length==="number"){for(var l=second.length;j<l;j++){first[i++]=second[j];}}else{while(second[j]!==undefined){first[i++]=second[j++];}}
first.length=i;return first;},grep:function(elems,callback,inv){var ret=[],retVal;inv=!!inv;for(var i=0,length=elems.length;i<length;i++){retVal=!!callback(elems[i],i);if(inv!==retVal){ret.push(elems[i]);}}
return ret;},map:function(elems,callback,arg){var value,key,ret=[],i=0,length=elems.length,isArray=elems instanceof jQuery||length!==undefined&&typeof length==="number"&&((length>0&&elems[0]&&elems[length-1])||length===0||jQuery.isArray(elems));if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret[ret.length]=value;}}
}else{for(key in elems){value=callback(elems[key],key,arg);if(value!=null){ret[ret.length]=value;}}}
return ret.concat.apply([],ret);},guid:1,proxy:function(fn,context){if(typeof context==="string"){var tmp=fn[context];context=fn;fn=tmp;}
if(!jQuery.isFunction(fn)){return undefined;}
var args=slice.call(arguments,2),proxy=function(){return fn.apply(context,args.concat(slice.call(arguments)));};proxy.guid=fn.guid=fn.guid||proxy.guid||jQuery.guid++;return proxy;},access:function(elems,key,value,exec,fn,pass){var length=elems.length;if(typeof key==="object"){for(var k in key){jQuery.access(elems,k,key[k],exec,fn,value);}
return elems;}
if(value!==undefined){exec=!pass&&exec&&jQuery.isFunction(value);for(var i=0;i<length;i++){fn(elems[i],key,exec?value.call(elems[i],i,fn(elems[i],key)):value,pass);}
return elems;}
return length?fn(elems[0],key):undefined;},now:function(){return(new Date()).getTime();},uaMatch:function(ua){ua=ua.toLowerCase();var match=rwebkit.exec(ua)||ropera.exec(ua)||rmsie.exec(ua)||ua.indexOf("compatible")<0&&rmozilla.exec(ua)||[];return{browser:match[1]||"",version:match[2]||"0"};},sub:function(){function jQuerySub(selector,context){return new jQuerySub.fn.init(selector,context);}
jQuery.extend(true,jQuerySub,this);jQuerySub.superclass=this;jQuerySub.fn=jQuerySub.prototype=this();jQuerySub.fn.constructor=jQuerySub;jQuerySub.sub=this.sub;jQuerySub.fn.init=function init(selector,context){if(context&&context instanceof jQuery&&!(context instanceof jQuerySub)){context=jQuerySub(context);}
return jQuery.fn.init.call(this,selector,context,rootjQuerySub);};jQuerySub.fn.init.prototype=jQuerySub.fn;var rootjQuerySub=jQuerySub(document);return jQuerySub;},browser:{}});jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase();});browserMatch=jQuery.uaMatch(userAgent);if(browserMatch.browser){jQuery.browser[browserMatch.browser]=true;jQuery.browser.version=browserMatch.version;}
if(jQuery.browser.webkit){jQuery.browser.safari=true;}
if(rnotwhite.test("\xA0")){trimLeft=/^[\s\xA0]+/;trimRight=/[\s\xA0]+$/;}
rootjQuery=jQuery(document);if(document.addEventListener){DOMContentLoaded=function(){document.removeEventListener("DOMContentLoaded",DOMContentLoaded,false);jQuery.ready();};}else if(document.attachEvent){DOMContentLoaded=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",DOMContentLoaded);jQuery.ready();}};}
function doScrollCheck(){if(jQuery.isReady){return;}
try{document.documentElement.doScroll("left");}catch(e){setTimeout(doScrollCheck,1);return;}
jQuery.ready();}
if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return jQuery;});}
return jQuery;})();var flagsCache={};function createFlags(flags){var object=flagsCache[flags]={},i,length;flags=flags.split(/\s+/);for(i=0,length=flags.length;i<length;i++){object[flags[i]]=true;}
return object;}
jQuery.Callbacks=function(flags){flags=flags?(flagsCache[flags]||createFlags(flags)):{};var
list=[],stack=[],memory,firing,firingStart,firingLength,firingIndex,add=function(args){var i,length,elem,type,actual;for(i=0,length=args.length;i<length;i++){elem=args[i];type=jQuery.type(elem);if(type==="array"){add(elem);}else if(type==="function"){if(!flags.unique||!self.has(elem)){list.push(elem);}}}},fire=function(context,args){args=args||[];memory=!flags.memory||[context,args];firing=true;firingIndex=firingStart||0;firingStart=0;firingLength=list.length;for(;list&&firingIndex<firingLength;firingIndex++){if(list[firingIndex].apply(context,args)===false&&flags.stopOnFalse){memory=true;break;}}
firing=false;if(list){if(!flags.once){if(stack&&stack.length){memory=stack.shift();self.fireWith(memory[0],memory[1]);}}else if(memory===true){self.disable();}else{list=[];}}},self={add:function(){if(list){var length=list.length;add(arguments);if(firing){firingLength=list.length;}else if(memory&&memory!==true){firingStart=length;fire(memory[0],memory[1]);}}
return this;},remove:function(){if(list){var args=arguments,argIndex=0,argLength=args.length;for(;argIndex<argLength;argIndex++){for(var i=0;i<list.length;i++){if(args[argIndex]===list[i]){if(firing){if(i<=firingLength){firingLength--;if(i<=firingIndex){firingIndex--;}}}
list.splice(i--,1);if(flags.unique){break;}}}}}
return this;},has:function(fn){if(list){var i=0,length=list.length;for(;i<length;i++){if(fn===list[i]){return true;}}}
return false;},empty:function(){list=[];return this;},disable:function(){list=stack=memory=undefined;return this;},disabled:function(){return!list;},lock:function(){stack=undefined;if(!memory||memory===true){self.disable();}
return this;},locked:function(){return!stack;},fireWith:function(context,args){if(stack){if(firing){if(!flags.once){stack.push([context,args]);}}else if(!(flags.once&&memory)){fire(context,args);}}
return this;},fire:function(){self.fireWith(this,arguments);return this;},fired:function(){return!!memory;}};return self;};var
sliceDeferred=[].slice;jQuery.extend({Deferred:function(func){var doneList=jQuery.Callbacks("once memory"),failList=jQuery.Callbacks("once memory"),progressList=jQuery.Callbacks("memory"),state="pending",lists={resolve:doneList,reject:failList,notify:progressList},promise={done:doneList.add,fail:failList.add,progress:progressList.add,state:function(){return state;},isResolved:doneList.fired,isRejected:failList.fired,then:function(doneCallbacks,failCallbacks,progressCallbacks){deferred.done(doneCallbacks).fail(failCallbacks).progress(progressCallbacks);return this;},always:function(){return deferred.done.apply(deferred,arguments).fail.apply(deferred,arguments);},pipe:function(fnDone,fnFail,fnProgress){return jQuery.Deferred(function(newDefer){jQuery.each({done:[fnDone,"resolve"],fail:[fnFail,"reject"],progress:[fnProgress,"notify"]},function(handler,data){var fn=data[0],action=data[1],returned;if(jQuery.isFunction(fn)){deferred[handler](function(){returned=fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().then(newDefer.resolve,newDefer.reject,newDefer.notify);}else{newDefer[action+"With"](this===deferred?newDefer:this,[returned]);}});}else{deferred[handler](newDefer[action]);}});}).promise();},promise:function(obj){if(obj==null){obj=promise;}else{for(var key in promise){obj[key]=promise[key];}}
return obj;}},deferred=promise.promise({}),key;for(key in lists){deferred[key]=lists[key].fire;deferred[key+"With"]=lists[key].fireWith;}
deferred.done(function(){state="resolved";},failList.disable,progressList.lock).fail(function(){state="rejected";},doneList.disable,progressList.lock);if(func){func.call(deferred,deferred);}
return deferred;},when:function(firstParam){var args=sliceDeferred.call(arguments,0),i=0,length=args.length,pValues=new Array(length),count=length,pCount=length,deferred=length<=1&&firstParam&&jQuery.isFunction(firstParam.promise)?firstParam:jQuery.Deferred(),promise=deferred.promise();function resolveFunc(i){return function(value){args[i]=arguments.length>1?sliceDeferred.call(arguments,0):value;if(!(--count)){deferred.resolveWith(deferred,args);}};}
function progressFunc(i){return function(value){pValues[i]=arguments.length>1?sliceDeferred.call(arguments,0):value;deferred.notifyWith(promise,pValues);};}
if(length>1){for(;i<length;i++){if(args[i]&&args[i].promise&&jQuery.isFunction(args[i].promise)){args[i].promise().then(resolveFunc(i),deferred.reject,progressFunc(i));}else{--count;}}
if(!count){deferred.resolveWith(deferred,args);}}else if(deferred!==firstParam){deferred.resolveWith(deferred,length?[firstParam]:[]);}
return promise;}});jQuery.support=(function(){var div=document.createElement("div"),documentElement=document.documentElement,all,a,select,opt,input,marginDiv,support,fragment,body,testElementParent,testElement,testElementStyle,tds,events,eventName,i,isSupported;div.setAttribute("className","t");div.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/><nav></nav>";all=div.getElementsByTagName("*");a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return{};}
select=document.createElement("select");opt=select.appendChild(document.createElement("option"));input=div.getElementsByTagName("input")[0];support={leadingWhitespace:(div.firstChild.nodeType===3),tbody:!div.getElementsByTagName("tbody").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/top/.test(a.getAttribute("style")),hrefNormalized:(a.getAttribute("href")==="/a"),opacity:/^0.55/.test(a.style.opacity),cssFloat:!!a.style.cssFloat,unknownElems:!!div.getElementsByTagName("nav").length,checkOn:(input.value==="on"),optSelected:opt.selected,getSetAttribute:div.className!=="t",enctype:!!document.createElement("form").enctype,submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};input.checked=true;support.noCloneChecked=input.cloneNode(true).checked;select.disabled=true;support.optDisabled=!opt.disabled;try{delete div.test;}catch(e){support.deleteExpando=false;}
if(!div.addEventListener&&div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function(){support.noCloneEvent=false;});div.cloneNode(true).fireEvent("onclick");}
input=document.createElement("input");input.value="t";input.setAttribute("type","radio");support.radioValue=input.value==="t";input.setAttribute("checked","checked");div.appendChild(input);fragment=document.createDocumentFragment();fragment.appendChild(div.lastChild);support.checkClone=fragment.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="";div.style.width=div.style.paddingLeft="1px";body=document.getElementsByTagName("body")[0];testElement=document.createElement(body?"div":"body");testElementStyle={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};if(body){jQuery.extend(testElementStyle,{position:"absolute",left:"-999px",top:"-999px"});}
for(i in testElementStyle){testElement.style[i]=testElementStyle[i];}
testElement.appendChild(div);testElementParent=body||documentElement;testElementParent.insertBefore(testElement,testElementParent.firstChild);support.appendChecked=input.checked;support.boxModel=div.offsetWidth===2;if("zoom"in div.style){div.style.display="inline";div.style.zoom=1;support.inlineBlockNeedsLayout=(div.offsetWidth===2);div.style.display="";div.innerHTML="<div style='width:4px;'></div>";support.shrinkWrapBlocks=(div.offsetWidth!==2);}
div.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";tds=div.getElementsByTagName("td");isSupported=(tds[0].offsetHeight===0);tds[0].style.display="";tds[1].style.display="none";support.reliableHiddenOffsets=isSupported&&(tds[0].offsetHeight===0);div.innerHTML="";if(document.defaultView&&document.defaultView.getComputedStyle){marginDiv=document.createElement("div");marginDiv.style.width="0";marginDiv.style.marginRight="0";div.appendChild(marginDiv);support.reliableMarginRight=(parseInt((document.defaultView.getComputedStyle(marginDiv,null)||{marginRight:0}).marginRight,10)||0)===0;}
if(div.attachEvent){for(i in{submit:1,change:1,focusin:1}){eventName="on"+i;isSupported=(eventName in div);if(!isSupported){div.setAttribute(eventName,"return;");isSupported=(typeof div[eventName]==="function");}
support[i+"Bubbles"]=isSupported;}}
jQuery(function(){var container,outer,inner,table,td,offsetSupport,conMarginTop=1,ptlm="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",vb="visibility:hidden;border:0;",style="style='"+ptlm+"border:5px solid #000;padding:0;'",html="<div "+style+"><div></div></div>"+
"<table "+style+" cellpadding='0' cellspacing='0'>"+
"<tr><td></td></tr></table>";body=document.getElementsByTagName("body")[0];if(!body){return;}
container=document.createElement("div");container.style.cssText=vb+"width:0;height:0;position:static;top:0;margin-top:"+conMarginTop+"px";body.insertBefore(container,body.firstChild);testElement=document.createElement("div");testElement.style.cssText=ptlm+vb;testElement.innerHTML=html;container.appendChild(testElement);outer=testElement.firstChild;inner=outer.firstChild;td=outer.nextSibling.firstChild.firstChild;offsetSupport={doesNotAddBorder:(inner.offsetTop!==5),doesAddBorderForTableAndCells:(td.offsetTop===5)};inner.style.position="fixed";inner.style.top="20px";offsetSupport.fixedPosition=(inner.offsetTop===20||inner.offsetTop===15);inner.style.position=inner.style.top="";outer.style.overflow="hidden";outer.style.position="relative";offsetSupport.subtractsBorderForOverflowNotVisible=(inner.offsetTop===-5);offsetSupport.doesNotIncludeMarginInBodyOffset=(body.offsetTop!==conMarginTop);body.removeChild(container);testElement=container=null;jQuery.extend(support,offsetSupport);});testElement.innerHTML="";testElementParent.removeChild(testElement);testElement=fragment=select=opt=body=marginDiv=div=input=null;return support;})();jQuery.boxModel=jQuery.support.boxModel;var rbrace=/^(?:\{.*\}|\[.*\])$/,rmultiDash=/([A-Z])/g;jQuery.extend({cache:{},uuid:0,expando:"jQuery"+(jQuery.fn.jquery+Math.random()).replace(/\D/g,""),noData:{"embed":true,"object":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000","applet":true},hasData:function(elem){elem=elem.nodeType?jQuery.cache[elem[jQuery.expando]]:elem[jQuery.expando];return!!elem&&!isEmptyDataObject(elem);},data:function(elem,name,data,pvt){if(!jQuery.acceptData(elem)){return;}
var privateCache,thisCache,ret,internalKey=jQuery.expando,getByName=typeof name==="string",isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:elem[jQuery.expando]&&jQuery.expando,isEvents=name==="events";if((!id||!cache[id]||(!isEvents&&!pvt&&!cache[id].data))&&getByName&&data===undefined){return;}
if(!id){if(isNode){elem[jQuery.expando]=id=++jQuery.uuid;}else{id=jQuery.expando;}}
if(!cache[id]){cache[id]={};if(!isNode){cache[id].toJSON=jQuery.noop;}}
if(typeof name==="object"||typeof name==="function"){if(pvt){cache[id]=jQuery.extend(cache[id],name);}else{cache[id].data=jQuery.extend(cache[id].data,name);}}
privateCache=thisCache=cache[id];if(!pvt){if(!thisCache.data){thisCache.data={};}
thisCache=thisCache.data;}
if(data!==undefined){thisCache[jQuery.camelCase(name)]=data;}
if(isEvents&&!thisCache[name]){return privateCache.events;}
if(getByName){ret=thisCache[name];if(ret==null){ret=thisCache[jQuery.camelCase(name)];}}else{ret=thisCache;}
return ret;},removeData:function(elem,name,pvt){if(!jQuery.acceptData(elem)){return;}
var thisCache,i,l,internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(!cache[id]){return;}
if(name){thisCache=pvt?cache[id]:cache[id].data;if(thisCache){if(jQuery.isArray(name)){name=name;}else if(name in thisCache){name=[name];}else{name=jQuery.camelCase(name);if(name in thisCache){name=[name];}else{name=name.split(" ");}}
for(i=0,l=name.length;i<l;i++){delete thisCache[name[i]];}
if(!(pvt?isEmptyDataObject:jQuery.isEmptyObject)(thisCache)){return;}}}
if(!pvt){delete cache[id].data;if(!isEmptyDataObject(cache[id])){return;}}
if(jQuery.support.deleteExpando||!cache.setInterval){delete cache[id];}else{cache[id]=null;}
if(isNode){if(jQuery.support.deleteExpando){delete elem[jQuery.expando];}else if(elem.removeAttribute){elem.removeAttribute(jQuery.expando);}else{elem[jQuery.expando]=null;}}},_data:function(elem,name,data){return jQuery.data(elem,name,data,true);},acceptData:function(elem){if(elem.nodeName){var match=jQuery.noData[elem.nodeName.toLowerCase()];if(match){return!(match===true||elem.getAttribute("classid")!==match);}}
return true;}});jQuery.fn.extend({data:function(key,value){var parts,attr,name,data=null;if(typeof key==="undefined"){if(this.length){data=jQuery.data(this[0]);if(this[0].nodeType===1&&!jQuery._data(this[0],"parsedAttrs")){attr=this[0].attributes;for(var i=0,l=attr.length;i<l;i++){name=attr[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.substring(5));dataAttr(this[0],name,data[name]);}}
jQuery._data(this[0],"parsedAttrs",true);}}
return data;}else if(typeof key==="object"){return this.each(function(){jQuery.data(this,key);});}
parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length){data=jQuery.data(this[0],key);data=dataAttr(this[0],key,data);}
return data===undefined&&parts[1]?this.data(parts[0]):data;}else{return this.each(function(){var $this=jQuery(this),args=[parts[0],value];$this.triggerHandler("setData"+parts[1]+"!",args);jQuery.data(this,key,value);$this.triggerHandler("changeData"+parts[1]+"!",args);});}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});}});function dataAttr(elem,key,data){if(data===undefined&&elem.nodeType===1){var name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:jQuery.isNumeric(data)?parseFloat(data):rbrace.test(data)?jQuery.parseJSON(data):data;}catch(e){}
jQuery.data(elem,key,data);}else{data=undefined;}}
return data;}
function isEmptyDataObject(obj){for(var name in obj){if(name==="data"&&jQuery.isEmptyObject(obj[name])){continue;}
if(name!=="toJSON"){return false;}}
return true;}
function handleQueueMarkDefer(elem,type,src){var deferDataKey=type+"defer",queueDataKey=type+"queue",markDataKey=type+"mark",defer=jQuery._data(elem,deferDataKey);if(defer&&(src==="queue"||!jQuery._data(elem,queueDataKey))&&(src==="mark"||!jQuery._data(elem,markDataKey))){setTimeout(function(){if(!jQuery._data(elem,queueDataKey)&&!jQuery._data(elem,markDataKey)){jQuery.removeData(elem,deferDataKey,true);defer.fire();}},0);}}
jQuery.extend({_mark:function(elem,type){if(elem){type=(type||"fx")+"mark";jQuery._data(elem,type,(jQuery._data(elem,type)||0)+1);}},_unmark:function(force,elem,type){if(force!==true){type=elem;elem=force;force=false;}
if(elem){type=type||"fx";var key=type+"mark",count=force?0:((jQuery._data(elem,key)||1)-1);if(count){jQuery._data(elem,key,count);}else{jQuery.removeData(elem,key,true);handleQueueMarkDefer(elem,type,"mark");}}},queue:function(elem,type,data){var q;if(elem){type=(type||"fx")+"queue";q=jQuery._data(elem,type);if(data){if(!q||jQuery.isArray(data)){q=jQuery._data(elem,type,jQuery.makeArray(data));}else{q.push(data);}}
return q||[];}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),fn=queue.shift(),hooks={};if(fn==="inprogress"){fn=queue.shift();}
if(fn){if(type==="fx"){queue.unshift("inprogress");}
jQuery._data(elem,type+".run",hooks);fn.call(elem,function(){jQuery.dequeue(elem,type);},hooks);}
if(!queue.length){jQuery.removeData(elem,type+"queue "+type+".run",true);handleQueueMarkDefer(elem,type,"queue");}}});jQuery.fn.extend({queue:function(type,data){if(typeof type!=="string"){data=type;type="fx";}
if(data===undefined){return jQuery.queue(this[0],type);}
return this.each(function(){var queue=jQuery.queue(this,type,data);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},delay:function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=setTimeout(next,time);hooks.stop=function(){clearTimeout(timeout);};});},clearQueue:function(type){return this.queue(type||"fx",[]);},promise:function(type,object){if(typeof type!=="string"){object=type;type=undefined;}
type=type||"fx";var defer=jQuery.Deferred(),elements=this,i=elements.length,count=1,deferDataKey=type+"defer",queueDataKey=type+"queue",markDataKey=type+"mark",tmp;function resolve(){if(!(--count)){defer.resolveWith(elements,[elements]);}}
while(i--){if((tmp=jQuery.data(elements[i],deferDataKey,undefined,true)||(jQuery.data(elements[i],queueDataKey,undefined,true)||jQuery.data(elements[i],markDataKey,undefined,true))&&jQuery.data(elements[i],deferDataKey,jQuery.Callbacks("once memory"),true))){count++;tmp.add(resolve);}}
resolve();return defer.promise();}});var rclass=/[\n\t\r]/g,rspace=/\s+/,rreturn=/\r/g,rtype=/^(?:button|input)$/i,rfocusable=/^(?:button|input|object|select|textarea)$/i,rclickable=/^a(?:rea)?$/i,rboolean=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,getSetAttribute=jQuery.support.getSetAttribute,nodeHook,boolHook,fixSpecified;jQuery.fn.extend({attr:function(name,value){return jQuery.access(this,name,value,true,jQuery.attr);},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name);});},prop:function(name,value){return jQuery.access(this,name,value,true,jQuery.prop);},removeProp:function(name){name=jQuery.propFix[name]||name;return this.each(function(){try{this[name]=undefined;delete this[name];}catch(e){}});},addClass:function(value){var classNames,i,l,elem,setClass,c,cl;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,this.className));});}
if(value&&typeof value==="string"){classNames=value.split(rspace);for(i=0,l=this.length;i<l;i++){elem=this[i];if(elem.nodeType===1){if(!elem.className&&classNames.length===1){elem.className=value;}else{setClass=" "+elem.className+" ";for(c=0,cl=classNames.length;c<cl;c++){if(!~setClass.indexOf(" "+classNames[c]+" ")){setClass+=classNames[c]+" ";}}
elem.className=jQuery.trim(setClass);}}}}
return this;},removeClass:function(value){var classNames,i,l,elem,className,c,cl;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,this.className));});}
if((value&&typeof value==="string")||value===undefined){classNames=(value||"").split(rspace);for(i=0,l=this.length;i<l;i++){elem=this[i];if(elem.nodeType===1&&elem.className){if(value){className=(" "+elem.className+" ").replace(rclass," ");for(c=0,cl=classNames.length;c<cl;c++){className=className.replace(" "+classNames[c]+" "," ");}
elem.className=jQuery.trim(className);}else{elem.className="";}}}}
return this;},toggleClass:function(value,stateVal){var type=typeof value,isBool=typeof stateVal==="boolean";if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,this.className,stateVal),stateVal);});}
return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),state=stateVal,classNames=value.split(rspace);while((className=classNames[i++])){state=isBool?state:!self.hasClass(className);self[state?"addClass":"removeClass"](className);}}else if(type==="undefined"||type==="boolean"){if(this.className){jQuery._data(this,"__className__",this.className);}
this.className=this.className||value===false?"":jQuery._data(this,"__className__")||"";}});},hasClass:function(selector){var className=" "+selector+" ",i=0,l=this.length;for(;i<l;i++){if(this[i].nodeType===1&&(" "+this[i].className+" ").replace(rclass," ").indexOf(className)>-1){return true;}}
return false;},val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.nodeName.toLowerCase()]||jQuery.valHooks[elem.type];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret;}
ret=elem.value;return typeof ret==="string"?ret.replace(rreturn,""):ret==null?"":ret;}
return undefined;}
isFunction=jQuery.isFunction(value);return this.each(function(i){var self=jQuery(this),val;if(this.nodeType!==1){return;}
if(isFunction){val=value.call(this,i,self.val());}else{val=value;}
if(val==null){val="";}else if(typeof val==="number"){val+="";}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+"";});}
hooks=jQuery.valHooks[this.nodeName.toLowerCase()]||jQuery.valHooks[this.type];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val;}});}});jQuery.extend({valHooks:{option:{get:function(elem){var val=elem.attributes.value;return!val||val.specified?elem.value:elem.text;}},select:{get:function(elem){var value,i,max,option,index=elem.selectedIndex,values=[],options=elem.options,one=elem.type==="select-one";if(index<0){return null;}
i=one?index:0;max=one?index+1:options.length;for(;i<max;i++){option=options[i];if(option.selected&&(jQuery.support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value;}
values.push(value);}}
if(one&&!values.length&&options.length){return jQuery(options[index]).val();}
return values;},set:function(elem,value){var values=jQuery.makeArray(value);jQuery(elem).find("option").each(function(){this.selected=jQuery.inArray(jQuery(this).val(),values)>=0;});if(!values.length){elem.selectedIndex=-1;}
return values;}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(elem,name,value,pass){var ret,hooks,notxml,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return undefined;}
if(pass&&name in jQuery.attrFn){return jQuery(elem)[name](value);}
if(!("getAttribute"in elem)){return jQuery.prop(elem,name,value);}
notxml=nType!==1||!jQuery.isXMLDoc(elem);if(notxml){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(rboolean.test(name)?boolHook:nodeHook);}
if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return undefined;}else if(hooks&&"set"in hooks&&notxml&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}else{elem.setAttribute(name,""+value);return value;}}else if(hooks&&"get"in hooks&&notxml&&(ret=hooks.get(elem,name))!==null){return ret;}else{ret=elem.getAttribute(name);return ret===null?undefined:ret;}},removeAttr:function(elem,value){var propName,attrNames,name,l,i=0;if(elem.nodeType===1){attrNames=(value||"").split(rspace);l=attrNames.length;for(;i<l;i++){name=attrNames[i].toLowerCase();propName=jQuery.propFix[name]||name;jQuery.attr(elem,name,"");elem.removeAttribute(getSetAttribute?name:propName);if(rboolean.test(name)&&propName in elem){elem[propName]=false;}}}},attrHooks:{type:{set:function(elem,value){if(rtype.test(elem.nodeName)&&elem.parentNode){jQuery.error("type property can't be changed");}else if(!jQuery.support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val;}
return value;}}},value:{get:function(elem,name){if(nodeHook&&jQuery.nodeName(elem,"button")){return nodeHook.get(elem,name);}
return name in elem?elem.value:null;},set:function(elem,value,name){if(nodeHook&&jQuery.nodeName(elem,"button")){return nodeHook.set(elem,value,name);}
elem.value=value;}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(elem,name,value){var ret,hooks,notxml,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return undefined;}
notxml=nType!==1||!jQuery.isXMLDoc(elem);if(notxml){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];}
if(value!==undefined){if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}else{return(elem[name]=value);}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}else{return elem[name];}}},propHooks:{tabIndex:{get:function(elem){var attributeNode=elem.getAttributeNode("tabindex");return attributeNode&&attributeNode.specified?parseInt(attributeNode.value,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:undefined;}}}});jQuery.attrHooks.tabindex=jQuery.propHooks.tabIndex;boolHook={get:function(elem,name){var attrNode,property=jQuery.prop(elem,name);return property===true||typeof property!=="boolean"&&(attrNode=elem.getAttributeNode(name))&&attrNode.nodeValue!==false?name.toLowerCase():undefined;},set:function(elem,value,name){var propName;if(value===false){jQuery.removeAttr(elem,name);}else{propName=jQuery.propFix[name]||name;if(propName in elem){elem[propName]=true;}
elem.setAttribute(name,name.toLowerCase());}
return name;}};if(!getSetAttribute){fixSpecified={name:true,id:true};nodeHook=jQuery.valHooks.button={get:function(elem,name){var ret;ret=elem.getAttributeNode(name);return ret&&(fixSpecified[name]?ret.nodeValue!=="":ret.specified)?ret.nodeValue:undefined;},set:function(elem,value,name){var ret=elem.getAttributeNode(name);if(!ret){ret=document.createAttribute(name);elem.setAttributeNode(ret);}
return(ret.nodeValue=value+"");}};jQuery.attrHooks.tabindex.set=nodeHook.set;jQuery.each(["width","height"],function(i,name){jQuery.attrHooks[name]=jQuery.extend(jQuery.attrHooks[name],{set:function(elem,value){if(value===""){elem.setAttribute(name,"auto");return value;}}});});jQuery.attrHooks.contenteditable={get:nodeHook.get,set:function(elem,value,name){if(value===""){value="false";}
nodeHook.set(elem,value,name);}};}
if(!jQuery.support.hrefNormalized){jQuery.each(["href","src","width","height"],function(i,name){jQuery.attrHooks[name]=jQuery.extend(jQuery.attrHooks[name],{get:function(elem){var ret=elem.getAttribute(name,2);return ret===null?undefined:ret;}});});}
if(!jQuery.support.style){jQuery.attrHooks.style={get:function(elem){return elem.style.cssText.toLowerCase()||undefined;},set:function(elem,value){return(elem.style.cssText=""+value);}};}
if(!jQuery.support.optSelected){jQuery.propHooks.selected=jQuery.extend(jQuery.propHooks.selected,{get:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex;}}
return null;}});}
if(!jQuery.support.enctype){jQuery.propFix.enctype="encoding";}
if(!jQuery.support.checkOn){jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={get:function(elem){return elem.getAttribute("value")===null?"on":elem.value;}};});}
jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]=jQuery.extend(jQuery.valHooks[this],{set:function(elem,value){if(jQuery.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0);}}});});var rnamespaces=/\.(.*)$/,rformElems=/^(?:textarea|input|select)$/i,rperiod=/\./g,rspaces=/ /g,rescape=/[^\w\s.|`]/g,rtypenamespace=/^([^\.]*)?(?:\.(.+))?$/,rhoverHack=/\bhover(\.\S+)?/,rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|contextmenu)|click/,rquickIs=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,quickParse=function(selector){var quick=rquickIs.exec(selector);if(quick){quick[1]=(quick[1]||"").toLowerCase();quick[3]=quick[3]&&new RegExp("(?:^|\\s)"+quick[3]+"(?:\\s|$)");}
return quick;},quickIs=function(elem,m){return((!m[1]||elem.nodeName.toLowerCase()===m[1])&&(!m[2]||elem.id===m[2])&&(!m[3]||m[3].test(elem.className)));},hoverHack=function(events){return jQuery.event.special.hover?events:events.replace(rhoverHack,"mouseenter$1 mouseleave$1");};jQuery.event={add:function(elem,types,handler,data,selector){var elemData,eventHandle,events,t,tns,type,namespaces,handleObj,handleObjIn,quick,handlers,special;if(elem.nodeType===3||elem.nodeType===8||!types||!handler||!(elemData=jQuery._data(elem))){return;}
if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;}
if(!handler.guid){handler.guid=jQuery.guid++;}
events=elemData.events;if(!events){elemData.events=events={};}
eventHandle=elemData.handle;if(!eventHandle){elemData.handle=eventHandle=function(e){return typeof jQuery!=="undefined"&&(!e||jQuery.event.triggered!==e.type)?jQuery.event.dispatch.apply(eventHandle.elem,arguments):undefined;};eventHandle.elem=elem;}
types=hoverHack(types).split(" ");for(t=0;t<types.length;t++){tns=rtypenamespace.exec(types[t])||[];type=tns[1];namespaces=(tns[2]||"").split(".").sort();special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:tns[1],data:data,handler:handler,guid:handler.guid,selector:selector,namespace:namespaces.join(".")},handleObjIn);if(selector){handleObj.quick=quickParse(selector);if(!handleObj.quick&&jQuery.expr.match.POS.test(selector)){handleObj.isPositional=true;}}
handlers=events[type];if(!handlers){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false);}else if(elem.attachEvent){elem.attachEvent("on"+type,eventHandle);}}}
if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}
if(selector){handlers.splice(handlers.delegateCount++,0,handleObj);}else{handlers.push(handleObj);}
jQuery.event.global[type]=true;}
elem=null;},global:{},remove:function(elem,types,handler,selector){var elemData=jQuery.hasData(elem)&&jQuery._data(elem),t,tns,type,namespaces,origCount,j,events,special,handle,eventType,handleObj;if(!elemData||!(events=elemData.events)){return;}
types=hoverHack(types||"").split(" ");for(t=0;t<types.length;t++){tns=rtypenamespace.exec(types[t])||[];type=tns[1];namespaces=tns[2];if(!type){namespaces=namespaces?"."+namespaces:"";for(j in events){jQuery.event.remove(elem,j+namespaces,handler,selector);}
return;}
special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;eventType=events[type]||[];origCount=eventType.length;namespaces=namespaces?new RegExp("(^|\\.)"+namespaces.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;if(handler||namespaces||selector||special.remove){for(j=0;j<eventType.length;j++){handleObj=eventType[j];if(!handler||handler.guid===handleObj.guid){if(!namespaces||namespaces.test(handleObj.namespace)){if(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector){eventType.splice(j--,1);if(handleObj.selector){eventType.delegateCount--;}
if(special.remove){special.remove.call(elem,handleObj);}}}}}}else{eventType.length=0;}
if(eventType.length===0&&origCount!==eventType.length){if(!special.teardown||special.teardown.call(elem,namespaces)===false){jQuery.removeEvent(elem,type,elemData.handle);}
delete events[type];}}
if(jQuery.isEmptyObject(events)){handle=elemData.handle;if(handle){handle.elem=null;}
jQuery.removeData(elem,["events","handle"],true);}},customEvent:{"getData":true,"setData":true,"changeData":true},trigger:function(event,data,elem,onlyHandlers){if(elem&&(elem.nodeType===3||elem.nodeType===8)){return;}
var type=event.type||event,namespaces=[],cache,exclusive,i,cur,old,ontype,special,handle,eventPath,bubbleType;if(type.indexOf("!")>=0){type=type.slice(0,-1);exclusive=true;}
if(type.indexOf(".")>=0){namespaces=type.split(".");type=namespaces.shift();namespaces.sort();}
if((!elem||jQuery.event.customEvent[type])&&!jQuery.event.global[type]){return;}
event=typeof event==="object"?event[jQuery.expando]?event:new jQuery.Event(type,event):new jQuery.Event(type);event.type=type;event.isTrigger=true;event.exclusive=exclusive;event.namespace=namespaces.join(".");event.namespace_re=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;ontype=type.indexOf(":")<0?"on"+type:"";if(onlyHandlers||!elem){event.preventDefault();}
if(!elem){cache=jQuery.cache;for(i in cache){if(cache[i].events&&cache[i].events[type]){jQuery.event.trigger(event,data,cache[i].handle.elem,true);}}
return;}
event.result=undefined;if(!event.target){event.target=elem;}
data=data!=null?jQuery.makeArray(data):[];data.unshift(event);special=jQuery.event.special[type]||{};if(special.trigger&&special.trigger.apply(elem,data)===false){return;}
eventPath=[[elem,special.bindType||type]];if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;old=null;for(cur=elem.parentNode;cur;cur=cur.parentNode){eventPath.push([cur,bubbleType]);old=cur;}
if(old&&old===elem.ownerDocument){eventPath.push([old.defaultView||old.parentWindow||window,bubbleType]);}}
for(i=0;i<eventPath.length;i++){cur=eventPath[i][0];event.type=eventPath[i][1];handle=(jQuery._data(cur,"events")||{})[event.type]&&jQuery._data(cur,"handle");if(handle){handle.apply(cur,data);}
handle=ontype&&cur[ontype];if(handle&&jQuery.acceptData(cur)){handle.apply(cur,data);}
if(event.isPropagationStopped()){break;}}
event.type=type;if(!event.isDefaultPrevented()){if((!special._default||special._default.apply(elem.ownerDocument,data)===false)&&!(type==="click"&&jQuery.nodeName(elem,"a"))&&jQuery.acceptData(elem)){if(ontype&&elem[type]&&((type!=="focus"&&type!=="blur")||event.target.offsetWidth!==0)&&!jQuery.isWindow(elem)){old=elem[ontype];if(old){elem[ontype]=null;}
jQuery.event.triggered=type;elem[type]();jQuery.event.triggered=undefined;if(old){elem[ontype]=old;}}}}
return event.result;},dispatch:function(event){event=jQuery.event.fix(event||window.event);var handlers=((jQuery._data(this,"events")||{})[event.type]||[]),delegateCount=handlers.delegateCount,args=[].slice.call(arguments,0),run_all=!event.exclusive&&!event.namespace,specialHandle=(jQuery.event.special[event.type]||{}).handle,handlerQueue=[],i,j,cur,ret,selMatch,matched,matches,handleObj,sel,hit,related;args[0]=event;event.delegateTarget=this;if(delegateCount&&!event.target.disabled&&!(event.button&&event.type==="click")){for(cur=event.target;cur!=this;cur=cur.parentNode||this){selMatch={};matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector;hit=selMatch[sel];if(handleObj.isPositional){hit=(hit||(selMatch[sel]=jQuery(sel))).index(cur)>=0;}else if(hit===undefined){hit=selMatch[sel]=(handleObj.quick?quickIs(cur,handleObj.quick):jQuery(cur).is(sel));}
if(hit){matches.push(handleObj);}}
if(matches.length){handlerQueue.push({elem:cur,matches:matches});}}}
if(handlers.length>delegateCount){handlerQueue.push({elem:this,matches:handlers.slice(delegateCount)});}
for(i=0;i<handlerQueue.length&&!event.isPropagationStopped();i++){matched=handlerQueue[i];event.currentTarget=matched.elem;for(j=0;j<matched.matches.length&&!event.isImmediatePropagationStopped();j++){handleObj=matched.matches[j];if(run_all||(!event.namespace&&!handleObj.namespace)||event.namespace_re&&event.namespace_re.test(handleObj.namespace)){event.data=handleObj.data;event.handleObj=handleObj;ret=(specialHandle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}}}
return event.result;},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode;}
return event;}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement wheelDelta".split(" "),filter:function(event,original){var eventDoc,doc,body,button=original.button,fromElement=original.fromElement;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0);}
if(!event.relatedTarget&&fromElement){event.relatedTarget=fromElement===event.target?original.toElement:fromElement;}
if(!event.which&&button!==undefined){event.which=(button&1?1:(button&2?3:(button&4?2:0)));}
return event;}},fix:function(event){if(event[jQuery.expando]){return event;}
var i,prop,originalEvent=event,fixHook=jQuery.event.fixHooks[event.type]||{},copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=jQuery.Event(originalEvent);for(i=copy.length;i;){prop=copy[--i];event[prop]=originalEvent[prop];}
if(!event.target){event.target=originalEvent.srcElement||document;}
if(event.target.nodeType===3){event.target=event.target.parentNode;}
if(event.metaKey===undefined){event.metaKey=event.ctrlKey;}
return fixHook.filter?fixHook.filter(event,originalEvent):event;},special:{ready:{setup:jQuery.bindReady},focus:{delegateType:"focusin",noBubble:true},blur:{delegateType:"focusout",noBubble:true},beforeunload:{setup:function(data,namespaces,eventHandle){if(jQuery.isWindow(this)){this.onbeforeunload=eventHandle;}},teardown:function(namespaces,eventHandle){if(this.onbeforeunload===eventHandle){this.onbeforeunload=null;}}}},simulate:function(type,elem,event,bubble){var e=jQuery.extend(new jQuery.Event(),event,{type:type,isSimulated:true,originalEvent:{}});if(bubble){jQuery.event.trigger(e,null,elem);}else{jQuery.event.dispatch.call(elem,e);}
if(e.isDefaultPrevented()){event.preventDefault();}}};jQuery.event.handle=jQuery.event.dispatch;jQuery.removeEvent=document.removeEventListener?function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false);}}:function(elem,type,handle){if(elem.detachEvent){elem.detachEvent("on"+type,handle);}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props);}
if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=(src.defaultPrevented||src.returnValue===false||src.getPreventDefault&&src.getPreventDefault())?returnTrue:returnFalse;}else{this.type=src;}
if(props){jQuery.extend(this,props);}
this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true;};function returnFalse(){return false;}
function returnTrue(){return true;}
jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return;}
if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return;}
if(e.stopPropagation){e.stopPropagation();}
e.cancelBubble=true;},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation();},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(orig,fix){jQuery.event.special[orig]=jQuery.event.special[fix]={delegateType:fix,bindType:fix,handle:function(event){var target=this,related=event.relatedTarget,handleObj=event.handleObj,selector=handleObj.selector,oldType,ret;if(!related||handleObj.origType===event.type||(related!==target&&!jQuery.contains(target,related))){oldType=event.type;event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=oldType;}
return ret;}};});if(!jQuery.support.submitBubbles){jQuery.event.special.submit={setup:function(){if(jQuery.nodeName(this,"form")){return false;}
jQuery.event.add(this,"click._submit keypress._submit",function(e){var elem=e.target,form=jQuery.nodeName(elem,"input")||jQuery.nodeName(elem,"button")?elem.form:undefined;if(form&&!form._submit_attached){jQuery.event.add(form,"submit._submit",function(event){if(this.parentNode){jQuery.event.simulate("submit",this.parentNode,event,true);}});form._submit_attached=true;}});},teardown:function(){if(jQuery.nodeName(this,"form")){return false;}
jQuery.event.remove(this,"._submit");}};}
if(!jQuery.support.changeBubbles){jQuery.event.special.change={setup:function(){if(rformElems.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){jQuery.event.add(this,"propertychange._change",function(event){if(event.originalEvent.propertyName==="checked"){this._just_changed=true;}});jQuery.event.add(this,"click._change",function(event){if(this._just_changed){this._just_changed=false;jQuery.event.simulate("change",this,event,true);}});}
return false;}
jQuery.event.add(this,"beforeactivate._change",function(e){var elem=e.target;if(rformElems.test(elem.nodeName)&&!elem._change_attached){jQuery.event.add(elem,"change._change",function(event){if(this.parentNode&&!event.isSimulated){jQuery.event.simulate("change",this.parentNode,event,true);}});elem._change_attached=true;}});},handle:function(event){var elem=event.target;if(this!==elem||event.isSimulated||event.isTrigger||(elem.type!=="radio"&&elem.type!=="checkbox")){return event.handleObj.handler.apply(this,arguments);}},teardown:function(){jQuery.event.remove(this,"._change");return rformElems.test(this.nodeName);}};}
if(!jQuery.support.focusinBubbles){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var attaches=0,handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event),true);};jQuery.event.special[fix]={setup:function(){if(attaches++===0){document.addEventListener(orig,handler,true);}},teardown:function(){if(--attaches===0){document.removeEventListener(orig,handler,true);}}};});}
jQuery.fn.extend({on:function(types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=selector;selector=undefined;}
for(type in types){this.on(type,selector,data,types[type],one);}
return this;}
if(data==null&&fn==null){fn=selector;data=selector=undefined;}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined;}else{fn=data;data=selector;selector=undefined;}}
if(fn===false){fn=returnFalse;}else if(!fn){return this;}
if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments);};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);}
return this.each(function(){jQuery.event.add(this,types,fn,data,selector);});},one:function(types,selector,data,fn){return this.on.call(this,types,selector,data,fn,1);},off:function(types,selector,fn){if(types&&types.preventDefault&&types.handleObj){var handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.type+"."+handleObj.namespace:handleObj.type,handleObj.selector,handleObj.handler);return this;}
if(typeof types==="object"){for(var type in types){this.off(type,selector,types[type]);}
return this;}
if(selector===false||typeof selector==="function"){fn=selector;selector=undefined;}
if(fn===false){fn=returnFalse;}
return this.each(function(){jQuery.event.remove(this,types,fn,selector);});},bind:function(types,data,fn){return this.on(types,null,data,fn);},unbind:function(types,fn){return this.off(types,null,fn);},live:function(types,data,fn){jQuery(this.context).on(types,this.selector,data,fn);return this;},die:function(types,fn){jQuery(this.context).off(types,this.selector||"**",fn);return this;},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){return arguments.length==1?this.off(selector,"**"):this.off(types,selector,fn);},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){if(this[0]){return jQuery.event.trigger(type,data,this[0],true);}},toggle:function(fn){var args=arguments,guid=fn.guid||jQuery.guid++,i=0,toggler=function(event){var lastToggle=(jQuery._data(this,"lastToggle"+fn.guid)||0)%i;jQuery._data(this,"lastToggle"+fn.guid,lastToggle+1);event.preventDefault();return args[lastToggle].apply(this,arguments)||false;};toggler.guid=guid;while(i<args.length){args[i++].guid=guid;}
return this.click(toggler);},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver);}});jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+
"change select submit keydown keypress keyup error contextmenu").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){if(fn==null){fn=data;data=null;}
return arguments.length>0?this.bind(name,data,fn):this.trigger(name);};if(jQuery.attrFn){jQuery.attrFn[name]=true;}
if(rkeyEvent.test(name)){jQuery.event.fixHooks[name]=jQuery.event.keyHooks;}
if(rmouseEvent.test(name)){jQuery.event.fixHooks[name]=jQuery.event.mouseHooks;}});(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,expando="sizcache"+(Math.random()+'').replace('.',''),done=0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true,rBackslash=/\\/g,rReturn=/\r\n/g,rNonWord=/\W/;[0,0].sort(function(){baseHasDuplicate=false;return 0;});var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;var origContext=context;if(context.nodeType!==1&&context.nodeType!==9){return[];}
if(!selector||typeof selector!=="string"){return results;}
var m,set,checkSet,extra,ret,cur,pop,i,prune=true,contextXML=Sizzle.isXML(context),parts=[],soFar=selector;do{chunker.exec("");m=chunker.exec(soFar);if(m){soFar=m[3];parts.push(m[1]);if(m[2]){extra=m[3];break;}}}while(m);if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context,seed);}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift();}
set=posProcess(selector,set,seed);}}}else{if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])){ret=Sizzle.find(parts.shift(),context,contextXML);context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0];}
if(context){ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;if(parts.length>0){checkSet=makeArray(set);}else{prune=false;}
while(parts.length){cur=parts.pop();pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}
if(pop==null){pop=context;}
Expr.relative[cur](checkSet,pop,contextXML);}}else{checkSet=parts=[];}}
if(!checkSet){checkSet=set;}
if(!checkSet){Sizzle.error(cur||selector);}
if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else if(context&&context.nodeType===1){for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&Sizzle.contains(context,checkSet[i]))){results.push(set[i]);}}}else{for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i]);}}}}else{makeArray(checkSet,results);}
if(extra){Sizzle(extra,origContext,results,seed);Sizzle.uniqueSort(results);}
return results;};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1);}}}}
return results;};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set);};Sizzle.matchesSelector=function(node,expr){return Sizzle(expr,null,null,[node]).length>0;};Sizzle.find=function(expr,context,isXML){var set,i,len,match,type,left;if(!expr){return[];}
for(i=0,len=Expr.order.length;i<len;i++){type=Expr.order[i];if((match=Expr.leftMatch[type].exec(expr))){left=match[1];match.splice(1,1);if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(rBackslash,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break;}}}}
if(!set){set=typeof context.getElementsByTagName!=="undefined"?context.getElementsByTagName("*"):[];}
return{set:set,expr:expr};};Sizzle.filter=function(expr,set,inplace,not){var match,anyFound,type,found,item,filter,left,i,pass,old=expr,result=[],curLoop=set,isXMLFilter=set&&set[0]&&Sizzle.isXML(set[0]);while(expr&&set.length){for(type in Expr.filter){if((match=Expr.leftMatch[type].exec(expr))!=null&&match[2]){filter=Expr.filter[type];left=match[1];anyFound=false;match.splice(1,1);if(left.substr(left.length-1)==="\\"){continue;}
if(curLoop===result){result=[];}
if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true;}else if(match===true){continue;}}
if(match){for(i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);pass=not^found;if(inplace&&found!=null){if(pass){anyFound=true;}else{curLoop[i]=false;}}else if(pass){result.push(item);anyFound=true;}}}}
if(found!==undefined){if(!inplace){curLoop=result;}
expr=expr.replace(Expr.match[type],"");if(!anyFound){return[];}
break;}}}
if(expr===old){if(anyFound==null){Sizzle.error(expr);}else{break;}}
old=expr;}
return curLoop;};Sizzle.error=function(msg){throw"Syntax error, unrecognized expression: "+msg;};var getText=Sizzle.getText=function(elem){var i,node,nodeType=elem.nodeType,ret="";if(nodeType){if(nodeType===1){if(typeof elem.textContent==='string'){return elem.textContent;}else if(typeof elem.innerText==='string'){return elem.innerText.replace(rReturn,'');}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem);}}}else if(nodeType===3||nodeType===4){return elem.nodeValue;}}else{for(i=0;(node=elem[i]);i++){if(node.nodeType!==8){ret+=getText(node);}}}
return ret;};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href");},type:function(elem){return elem.getAttribute("type");}},relative:{"+":function(checkSet,part){var isPartStr=typeof part==="string",isTag=isPartStr&&!rNonWord.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag){part=part.toLowerCase();}
for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}
checkSet[i]=isPartStrNotTag||elem&&elem.nodeName.toLowerCase()===part?elem||false:elem===part;}}
if(isPartStrNotTag){Sizzle.filter(part,checkSet,true);}},">":function(checkSet,part){var elem,isPartStr=typeof part==="string",i=0,l=checkSet.length;if(isPartStr&&!rNonWord.test(part)){part=part.toLowerCase();for(;i<l;i++){elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName.toLowerCase()===part?parent:false;}}}else{for(;i<l;i++){elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part;}}
if(isPartStr){Sizzle.filter(part,checkSet,true);}}},"":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!rNonWord.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck;}
checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML);},"~":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!rNonWord.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck;}
checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML);}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m&&m.parentNode?[m]:[];}},NAME:function(match,context){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i]);}}
return ret.length===0?null:ret;}},TAG:function(match,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(match[1]);}}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(rBackslash,"")+" ";if(isXML){return match;}
for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").replace(/[\t\n\r]/g," ").indexOf(match)>=0)){if(!inplace){result.push(elem);}}else if(inplace){curLoop[i]=false;}}}
return false;},ID:function(match){return match[1].replace(rBackslash,"");},TAG:function(match,curLoop){return match[1].replace(rBackslash,"").toLowerCase();},CHILD:function(match){if(match[1]==="nth"){if(!match[2]){Sizzle.error(match[0]);}
match[2]=match[2].replace(/^\+|\s*/g,'');var test=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(match[2]==="even"&&"2n"||match[2]==="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0;}
else if(match[2]){Sizzle.error(match[0]);}
match[0]=done++;return match;},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1]=match[1].replace(rBackslash,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name];}
match[4]=(match[4]||match[5]||"").replace(rBackslash,"");if(match[2]==="~="){match[4]=" "+match[4]+" ";}
return match;},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop);}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret);}
return false;}}else if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true;}
return match;},POS:function(match){match.unshift(true);return match;}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden";},disabled:function(elem){return elem.disabled===true;},checked:function(elem){return elem.checked===true;},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex;}
return elem.selected===true;},parent:function(elem){return!!elem.firstChild;},empty:function(elem){return!elem.firstChild;},has:function(elem,i,match){return!!Sizzle(match[3],elem).length;},header:function(elem){return(/h\d/i).test(elem.nodeName);},text:function(elem){var attr=elem.getAttribute("type"),type=elem.type;return elem.nodeName.toLowerCase()==="input"&&"text"===type&&(attr===type||attr===null);},radio:function(elem){return elem.nodeName.toLowerCase()==="input"&&"radio"===elem.type;},checkbox:function(elem){return elem.nodeName.toLowerCase()==="input"&&"checkbox"===elem.type;},file:function(elem){return elem.nodeName.toLowerCase()==="input"&&"file"===elem.type;},password:function(elem){return elem.nodeName.toLowerCase()==="input"&&"password"===elem.type;},submit:function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&"submit"===elem.type;},image:function(elem){return elem.nodeName.toLowerCase()==="input"&&"image"===elem.type;},reset:function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&"reset"===elem.type;},button:function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&"button"===elem.type||name==="button";},input:function(elem){return(/input|select|textarea|button/i).test(elem.nodeName);},focus:function(elem){return elem===elem.ownerDocument.activeElement;}},setFilters:{first:function(elem,i){return i===0;},last:function(elem,i,match,array){return i===array.length-1;},even:function(elem,i){return i%2===0;},odd:function(elem,i){return i%2===1;},lt:function(elem,i,match){return i<match[3]-0;},gt:function(elem,i,match){return i>match[3]-0;},nth:function(elem,i,match){return match[3]-0===i;},eq:function(elem,i,match){return match[3]-0===i;}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array);}else if(name==="contains"){return(elem.textContent||elem.innerText||getText([elem])||"").indexOf(match[3])>=0;}else if(name==="not"){var not=match[3];for(var j=0,l=not.length;j<l;j++){if(not[j]===elem){return false;}}
return true;}else{Sizzle.error(name);}},CHILD:function(elem,match){var first,last,doneName,parent,cache,count,diff,type=match[1],node=elem;switch(type){case"only":case"first":while((node=node.previousSibling)){if(node.nodeType===1){return false;}}
if(type==="first"){return true;}
node=elem;case"last":while((node=node.nextSibling)){if(node.nodeType===1){return false;}}
return true;case"nth":first=match[2];last=match[3];if(first===1&&last===0){return true;}
doneName=match[0];parent=elem.parentNode;if(parent&&(parent[expando]!==doneName||!elem.nodeIndex)){count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count;}}
parent[expando]=doneName;}
diff=elem.nodeIndex-last;if(first===0){return diff===0;}else{return(diff%first===0&&diff/first>=0);}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match;},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||!!elem.nodeName&&elem.nodeName.toLowerCase()===match;},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ")
.indexOf(match)>-1;},ATTR:function(elem,match){var name=match[1],result=Sizzle.attr?Sizzle.attr(elem,name):Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":!type&&Sizzle.attr?result!=null:type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!==check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false;},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array);}}}};var origPOS=Expr.match.POS,fescape=function(all,num){return"\\"+(num-0+1);};for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+(/(?![^\[]*\])(?![^\(]*\))/.source));Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source.replace(/\\(\d+)/g,fescape));}
var makeArray=function(array,results){array=Array.prototype.slice.call(array,0);if(results){results.push.apply(results,array);return results;}
return array;};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType;}catch(e){makeArray=function(array,results){var i=0,ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var l=array.length;i<l;i++){ret.push(array[i]);}}else{for(;array[i];i++){ret.push(array[i]);}}}
return ret;};}
var sortOrder,siblingCheck;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0;}
if(!a.compareDocumentPosition||!b.compareDocumentPosition){return a.compareDocumentPosition?-1:1;}
return a.compareDocumentPosition(b)&4?-1:1;};}else{sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0;}else if(a.sourceIndex&&b.sourceIndex){return a.sourceIndex-b.sourceIndex;}
var al,bl,ap=[],bp=[],aup=a.parentNode,bup=b.parentNode,cur=aup;if(aup===bup){return siblingCheck(a,b);}else if(!aup){return-1;}else if(!bup){return 1;}
while(cur){ap.unshift(cur);cur=cur.parentNode;}
cur=bup;while(cur){bp.unshift(cur);cur=cur.parentNode;}
al=ap.length;bl=bp.length;for(var i=0;i<al&&i<bl;i++){if(ap[i]!==bp[i]){return siblingCheck(ap[i],bp[i]);}}
return i===al?siblingCheck(a,bp[i],-1):siblingCheck(ap[i],b,1);};siblingCheck=function(a,b,ret){if(a===b){return ret;}
var cur=a.nextSibling;while(cur){if(cur===b){return-1;}
cur=cur.nextSibling;}
return 1;};}
(function(){var form=document.createElement("div"),id="script"+(new Date()).getTime(),root=document.documentElement;form.innerHTML="<a name='"+id+"'/>";root.insertBefore(form,root.firstChild);if(document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[];}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match;};}
root.removeChild(form);root=form=null;})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i]);}}
results=tmp;}
return results;};}
div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2);};}
div=null;})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div"),id="__sizzle__";div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return;}
Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&!Sizzle.isXML(context)){var match=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(query);if(match&&(context.nodeType===1||context.nodeType===9)){if(match[1]){return makeArray(context.getElementsByTagName(query),extra);}else if(match[2]&&Expr.find.CLASS&&context.getElementsByClassName){return makeArray(context.getElementsByClassName(match[2]),extra);}}
if(context.nodeType===9){if(query==="body"&&context.body){return makeArray([context.body],extra);}else if(match&&match[3]){var elem=context.getElementById(match[3]);if(elem&&elem.parentNode){if(elem.id===match[3]){return makeArray([elem],extra);}}else{return makeArray([],extra);}}
try{return makeArray(context.querySelectorAll(query),extra);}catch(qsaError){}
}else if(context.nodeType===1&&context.nodeName.toLowerCase()!=="object"){var oldContext=context,old=context.getAttribute("id"),nid=old||id,hasParent=context.parentNode,relativeHierarchySelector=/^\s*[+~]/.test(query);if(!old){context.setAttribute("id",nid);}else{nid=nid.replace(/'/g,"\\$&");}
if(relativeHierarchySelector&&hasParent){context=context.parentNode;}
try{if(!relativeHierarchySelector||hasParent){return makeArray(context.querySelectorAll("[id='"+nid+"'] "+query),extra);}}catch(pseudoError){}finally{if(!old){oldContext.removeAttribute("id");}}}}
return oldSizzle(query,context,extra,seed);};for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop];}
div=null;})();}
(function(){var html=document.documentElement,matches=html.matchesSelector||html.mozMatchesSelector||html.webkitMatchesSelector||html.msMatchesSelector;if(matches){var disconnectedMatch=!matches.call(document.createElement("div"),"div"),pseudoWorks=false;try{matches.call(document.documentElement,"[test!='']:sizzle");}catch(pseudoError){pseudoWorks=true;}
Sizzle.matchesSelector=function(node,expr){expr=expr.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!Sizzle.isXML(node)){try{if(pseudoWorks||!Expr.match.PSEUDO.test(expr)&&!/!=/.test(expr)){var ret=matches.call(node,expr);if(ret||!disconnectedMatch||node.document&&node.document.nodeType!==11){return ret;}}}catch(e){}}
return Sizzle(expr,null,null,[node]).length>0;};}})();(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(!div.getElementsByClassName||div.getElementsByClassName("e").length===0){return;}
div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return;}
Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1]);}};div=null;})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var match=false;elem=elem[dir];while(elem){if(elem[expando]===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1&&!isXML){elem[expando]=doneName;elem.sizset=i;}
if(elem.nodeName.toLowerCase()===cur){match=elem;break;}
elem=elem[dir];}
checkSet[i]=match;}}}
function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var match=false;elem=elem[dir];while(elem){if(elem[expando]===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1){if(!isXML){elem[expando]=doneName;elem.sizset=i;}
if(typeof cur!=="string"){if(elem===cur){match=true;break;}}else if(Sizzle.filter(cur,[elem]).length>0){match=elem;break;}}
elem=elem[dir];}
checkSet[i]=match;}}}
if(document.documentElement.contains){Sizzle.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):true);};}else if(document.documentElement.compareDocumentPosition){Sizzle.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16);};}else{Sizzle.contains=function(){return false;};}
Sizzle.isXML=function(elem){var documentElement=(elem?elem.ownerDocument||elem:0).documentElement;return documentElement?documentElement.nodeName!=="HTML":false;};var posProcess=function(selector,context,seed){var match,tmpSet=[],later="",root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"");}
selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet,seed);}
return Sizzle.filter(later,tmpSet);};Sizzle.attr=jQuery.attr;Sizzle.selectors.attrMap={};jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;})();var runtil=/Until$/,rparentsprev=/^(?:parents|prevUntil|prevAll)/,rmultiselector=/,/,isSimple=/^.[^:#\[\.,]*$/,slice=Array.prototype.slice,POS=jQuery.expr.match.POS,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({find:function(selector){var self=this,i,l;if(typeof selector!=="string"){return jQuery(selector).filter(function(){for(i=0,l=self.length;i<l;i++){if(jQuery.contains(self[i],this)){return true;}}});}
var ret=this.pushStack("","find",selector),length,n,r;for(i=0,l=this.length;i<l;i++){length=ret.length;jQuery.find(selector,this[i],ret);if(i>0){for(n=length;n<ret.length;n++){for(r=0;r<length;r++){if(ret[r]===ret[n]){ret.splice(n--,1);break;}}}}}
return ret;},has:function(target){var targets=jQuery(target);return this.filter(function(){for(var i=0,l=targets.length;i<l;i++){if(jQuery.contains(this,targets[i])){return true;}}});},not:function(selector){return this.pushStack(winnow(this,selector,false),"not",selector);},filter:function(selector){return this.pushStack(winnow(this,selector,true),"filter",selector);},is:function(selector){return!!selector&&(typeof selector==="string"?POS.test(selector)?jQuery(selector,this.context).index(this[0])>=0:jQuery.filter(selector,this).length>0:this.filter(selector).length>0);},closest:function(selectors,context){var ret=[],i,l,cur=this[0];if(jQuery.isArray(selectors)){var level=1;while(cur&&cur.ownerDocument&&cur!==context){for(i=0;i<selectors.length;i++){if(jQuery(cur).is(selectors[i])){ret.push({selector:selectors[i],elem:cur,level:level});}}
cur=cur.parentNode;level++;}
return ret;}
var pos=POS.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(i=0,l=this.length;i<l;i++){cur=this[i];while(cur){if(pos?pos.index(cur)>-1:jQuery.find.matchesSelector(cur,selectors)){ret.push(cur);break;}else{cur=cur.parentNode;if(!cur||!cur.ownerDocument||cur===context||cur.nodeType===11){break;}}}}
ret=ret.length>1?jQuery.unique(ret):ret;return this.pushStack(ret,"closest",selectors);},index:function(elem){if(!elem){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1;}
if(typeof elem==="string"){return jQuery.inArray(this[0],jQuery(elem));}
return jQuery.inArray(elem.jquery?elem[0]:elem,this);},add:function(selector,context){var set=typeof selector==="string"?jQuery(selector,context):jQuery.makeArray(selector&&selector.nodeType?[selector]:selector),all=jQuery.merge(this.get(),set);return this.pushStack(isDisconnected(set[0])||isDisconnected(all[0])?all:jQuery.unique(all));},andSelf:function(){return this.add(this.prevObject);}});function isDisconnected(node){return!node||!node.parentNode||node.parentNode.nodeType===11;}
jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return jQuery.dir(elem,"parentNode");},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until);},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until);},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until);},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until),args=slice.call(arguments);if(!runtil.test(name)){selector=until;}
if(selector&&typeof selector==="string"){ret=jQuery.filter(selector,ret);}
ret=this.length>1&&!guaranteedUnique[name]?jQuery.unique(ret):ret;if((this.length>1||rmultiselector.test(selector))&&rparentsprev.test(name)){ret=ret.reverse();}
return this.pushStack(ret,name,args.join(","));};});jQuery.extend({filter:function(expr,elems,not){if(not){expr=":not("+expr+")";}
return elems.length===1?jQuery.find.matchesSelector(elems[0],expr)?[elems[0]]:[]:jQuery.find.matches(expr,elems);},dir:function(elem,dir,until){var matched=[],cur=elem[dir];while(cur&&cur.nodeType!==9&&(until===undefined||cur.nodeType!==1||!jQuery(cur).is(until))){if(cur.nodeType===1){matched.push(cur);}
cur=cur[dir];}
return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir]){if(cur.nodeType===1&&++num===result){break;}}
return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){r.push(n);}}
return r;}});function winnow(elements,qualifier,keep){qualifier=qualifier||0;if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){var retVal=!!qualifier.call(elem,i,elem);return retVal===keep;});}else if(qualifier.nodeType){return jQuery.grep(elements,function(elem,i){return(elem===qualifier)===keep;});}else if(typeof qualifier==="string"){var filtered=jQuery.grep(elements,function(elem){return elem.nodeType===1;});if(isSimple.test(qualifier)){return jQuery.filter(qualifier,filtered,!keep);}else{qualifier=jQuery.filter(qualifier,filtered);}}
return jQuery.grep(elements,function(elem,i){return(jQuery.inArray(elem,qualifier)>=0)===keep;});}
function createSafeFragment(document){var list=nodeNames.split(" "),safeFrag=document.createDocumentFragment();if(safeFrag.createElement){while(list.length){safeFrag.createElement(list.pop());}}
return safeFrag;}
var nodeNames="abbr article aside audio canvas datalist details figcaption figure footer "+
"header hgroup mark meter nav output progress section summary time video",rinlinejQuery=/ jQuery\d+="(?:\d+|null)"/g,rleadingWhitespace=/^\s+/,rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,rtagName=/<([\w:]+)/,rtbody=/<tbody/i,rhtml=/<|&#?\w+;/,rnoInnerhtml=/<(?:script|style)/i,rnocache=/<(?:script|object|embed|option|style)/i,rnoshimcache=new RegExp("<(?:"+nodeNames.replace(" ","|")+")","i"),rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/\/(java|ecma)script/i,rcleanScript=/^\s*<!(?:\[CDATA\[|\-\-)/,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},safeFragment=createSafeFragment(document);wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!jQuery.support.htmlSerialize){wrapMap._default=[1,"div<div>","</div>"];}
jQuery.fn.extend({text:function(text){if(jQuery.isFunction(text)){return this.each(function(i){var self=jQuery(this);self.text(text.call(this,i,self.text()));});}
if(typeof text!=="object"&&text!==undefined){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));}
return jQuery.text(this);},wrapAll:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i));});}
if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}
wrap.map(function(){var elem=this;while(elem.firstChild&&elem.firstChild.nodeType===1){elem=elem.firstChild;}
return elem;}).append(this);}
return this;},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}
return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes);}}).end();},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.appendChild(elem);}});},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.insertBefore(elem,this.firstChild);}});},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this);});}else if(arguments.length){var set=jQuery(arguments[0]);set.push.apply(set,this.toArray());return this.pushStack(set,"before",arguments);}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});}else if(arguments.length){var set=this.pushStack(this,"after",arguments);set.push.apply(set,jQuery(arguments[0]).toArray());return set;}},remove:function(selector,keepData){for(var i=0,elem;(elem=this[i])!=null;i++){if(!selector||jQuery.filter(selector,[elem]).length){if(!keepData&&elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"));jQuery.cleanData([elem]);}
if(elem.parentNode){elem.parentNode.removeChild(elem);}}}
return this;},empty:function(){for(var i=0,elem;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"));}
while(elem.firstChild){elem.removeChild(elem.firstChild);}}
return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);});},html:function(value){if(value===undefined){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(rinlinejQuery,""):null;}else if(typeof value==="string"&&!rnoInnerhtml.test(value)&&(jQuery.support.leadingWhitespace||!rleadingWhitespace.test(value))&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(var i=0,l=this.length;i<l;i++){if(this[i].nodeType===1){jQuery.cleanData(this[i].getElementsByTagName("*"));this[i].innerHTML=value;}}
}catch(e){this.empty().append(value);}}else if(jQuery.isFunction(value)){this.each(function(i){var self=jQuery(this);self.html(value.call(this,i,self.html()));});}else{this.empty().append(value);}
return this;},replaceWith:function(value){if(this[0]&&this[0].parentNode){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this),old=self.html();self.replaceWith(value.call(this,i,old));});}
if(typeof value!=="string"){value=jQuery(value).detach();}
return this.each(function(){var next=this.nextSibling,parent=this.parentNode;jQuery(this).remove();if(next){jQuery(next).before(value);}else{jQuery(parent).append(value);}});}else{return this.length?this.pushStack(jQuery(jQuery.isFunction(value)?value():value),"replaceWith",value):this;}},detach:function(selector){return this.remove(selector,true);},domManip:function(args,table,callback){var results,first,fragment,parent,value=args[0],scripts=[];if(!jQuery.support.checkClone&&arguments.length===3&&typeof value==="string"&&rchecked.test(value)){return this.each(function(){jQuery(this).domManip(args,table,callback,true);});}
if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);args[0]=value.call(this,i,table?self.html():undefined);self.domManip(args,table,callback);});}
if(this[0]){parent=value&&value.parentNode;if(jQuery.support.parentNode&&parent&&parent.nodeType===11&&parent.childNodes.length===this.length){results={fragment:parent};}else{results=jQuery.buildFragment(args,this,scripts);}
fragment=results.fragment;if(fragment.childNodes.length===1){first=fragment=fragment.firstChild;}else{first=fragment.firstChild;}
if(first){table=table&&jQuery.nodeName(first,"tr");for(var i=0,l=this.length,lastIndex=l-1;i<l;i++){callback.call(table?root(this[i],first):this[i],results.cacheable||(l>1&&i<lastIndex)?jQuery.clone(fragment,true,true):fragment);}}
if(scripts.length){jQuery.each(scripts,evalScript);}}
return this;}});function root(elem,cur){return jQuery.nodeName(elem,"table")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem;}
function cloneCopyEvent(src,dest){if(dest.nodeType!==1||!jQuery.hasData(src)){return;}
var type,i,l,oldData=jQuery._data(src),curData=jQuery._data(dest,oldData),events=oldData.events;if(events){delete curData.handle;curData.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type+(events[type][i].namespace?".":"")+events[type][i].namespace,events[type][i],events[type][i].data);}}}
if(curData.data){curData.data=jQuery.extend({},curData.data);}}
function cloneFixAttributes(src,dest){var nodeName;if(dest.nodeType!==1){return;}
if(dest.clearAttributes){dest.clearAttributes();}
if(dest.mergeAttributes){dest.mergeAttributes(src);}
nodeName=dest.nodeName.toLowerCase();if(nodeName==="object"){dest.outerHTML=src.outerHTML;}else if(nodeName==="input"&&(src.type==="checkbox"||src.type==="radio")){if(src.checked){dest.defaultChecked=dest.checked=src.checked;}
if(dest.value!==src.value){dest.value=src.value;}
}else if(nodeName==="option"){dest.selected=src.defaultSelected;}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue;}
dest.removeAttribute(jQuery.expando);}
jQuery.buildFragment=function(args,nodes,scripts){var fragment,cacheable,cacheresults,doc,first=args[0];if(nodes&&nodes[0]){doc=nodes[0].ownerDocument||nodes[0];}
if(!doc.createDocumentFragment){doc=document;}
if(args.length===1&&typeof first==="string"&&first.length<512&&doc===document&&first.charAt(0)==="<"&&!rnocache.test(first)&&(jQuery.support.checkClone||!rchecked.test(first))&&(!jQuery.support.unknownElems&&rnoshimcache.test(first))){cacheable=true;cacheresults=jQuery.fragments[first];if(cacheresults&&cacheresults!==1){fragment=cacheresults;}}
if(!fragment){fragment=doc.createDocumentFragment();jQuery.clean(args,doc,fragment,scripts);}
if(cacheable){jQuery.fragments[first]=cacheresults?fragment:1;}
return{fragment:fragment,cacheable:cacheable};};jQuery.fragments={};jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector),parent=this.length===1&&this[0].parentNode;if(parent&&parent.nodeType===11&&parent.childNodes.length===1&&insert.length===1){insert[original](this[0]);return this;}else{for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery(insert[i])[original](elems);ret=ret.concat(elems);}
return this.pushStack(ret,name,insert.selector);}};});function getAll(elem){if(typeof elem.getElementsByTagName!=="undefined"){return elem.getElementsByTagName("*");}else if(typeof elem.querySelectorAll!=="undefined"){return elem.querySelectorAll("*");}else{return[];}}
function fixDefaultChecked(elem){if(elem.type==="checkbox"||elem.type==="radio"){elem.defaultChecked=elem.checked;}}
function findInputs(elem){var nodeName=(elem.nodeName||"").toLowerCase();if(nodeName==="input"){fixDefaultChecked(elem);}else if(nodeName!=="script"&&typeof elem.getElementsByTagName!=="undefined"){jQuery.grep(elem.getElementsByTagName("input"),fixDefaultChecked);}}
jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var clone=elem.cloneNode(true),srcElements,destElements,i;if((!jQuery.support.noCloneEvent||!jQuery.support.noCloneChecked)&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){cloneFixAttributes(elem,clone);srcElements=getAll(elem);destElements=getAll(clone);for(i=0;srcElements[i];++i){if(destElements[i]){cloneFixAttributes(srcElements[i],destElements[i]);}}}
if(dataAndEvents){cloneCopyEvent(elem,clone);if(deepDataAndEvents){srcElements=getAll(elem);destElements=getAll(clone);for(i=0;srcElements[i];++i){cloneCopyEvent(srcElements[i],destElements[i]);}}}
srcElements=destElements=null;return clone;},clean:function(elems,context,fragment,scripts){var checkScriptType;context=context||document;if(typeof context.createElement==="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;}
var ret=[],j;for(var i=0,elem;(elem=elems[i])!=null;i++){if(typeof elem==="number"){elem+="";}
if(!elem){continue;}
if(typeof elem==="string"){if(!rhtml.test(elem)){elem=context.createTextNode(elem);}else{elem=elem.replace(rxhtmlTag,"<$1></$2>");var tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,depth=wrap[0],div=context.createElement("div");if(context===document){safeFragment.appendChild(div);}else{createSafeFragment(context).appendChild(div);}
div.innerHTML=wrap[1]+elem+wrap[2];while(depth--){div=div.lastChild;}
if(!jQuery.support.tbody){var hasBody=rtbody.test(elem),tbody=tag==="table"&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]==="<table>"&&!hasBody?div.childNodes:[];for(j=tbody.length-1;j>=0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j]);}}}
if(!jQuery.support.leadingWhitespace&&rleadingWhitespace.test(elem)){div.insertBefore(context.createTextNode(rleadingWhitespace.exec(elem)[0]),div.firstChild);}
elem=div.childNodes;}}
var len;if(!jQuery.support.appendChecked){if(elem[0]&&typeof(len=elem.length)==="number"){for(j=0;j<len;j++){findInputs(elem[j]);}}else{findInputs(elem);}}
if(elem.nodeType){ret.push(elem);}else{ret=jQuery.merge(ret,elem);}}
if(fragment){checkScriptType=function(elem){return!elem.type||rscriptType.test(elem.type);};for(i=0;ret[i];i++){if(scripts&&jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i]);}else{if(ret[i].nodeType===1){var jsTags=jQuery.grep(ret[i].getElementsByTagName("script"),checkScriptType);ret.splice.apply(ret,[i+1,0].concat(jsTags));}
fragment.appendChild(ret[i]);}}}
return ret;},cleanData:function(elems){var data,id,cache=jQuery.cache,special=jQuery.event.special,deleteExpando=jQuery.support.deleteExpando;for(var i=0,elem;(elem=elems[i])!=null;i++){if(elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()]){continue;}
id=elem[jQuery.expando];if(id){data=cache[id];if(data&&data.events){for(var type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{jQuery.removeEvent(elem,type,data.handle);}}
if(data.handle){data.handle.elem=null;}}
if(deleteExpando){delete elem[jQuery.expando];}else if(elem.removeAttribute){elem.removeAttribute(jQuery.expando);}
delete cache[id];}}}});function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"});}else{jQuery.globalEval((elem.text||elem.textContent||elem.innerHTML||"").replace(rcleanScript,"/*$0*/"));}
if(elem.parentNode){elem.parentNode.removeChild(elem);}}
var ralpha=/alpha\([^)]*\)/i,ropacity=/opacity=([^)]*)/,rupper=/([A-Z]|^ms)/g,rnumpx=/^-?\d+(?:px)?$/i,rnum=/^-?\d/,rrelNum=/^([\-+])=([\-+.\de]+)/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssWidth=["Left","Right"],cssHeight=["Top","Bottom"],curCSS,getComputedStyle,currentStyle;jQuery.fn.css=function(name,value){if(arguments.length===2&&value===undefined){return this;}
return jQuery.access(this,name,value,true,function(elem,name,value){return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);});};jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity","opacity");return ret===""?"1":ret;}else{return elem.style.opacity;}}}},cssNumber:{"fillOpacity":true,"fontWeight":true,"lineHeight":true,"opacity":true,"orphans":true,"widows":true,"zIndex":true,"zoom":true},cssProps:{"float":jQuery.support.cssFloat?"cssFloat":"styleFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return;}
var ret,type,origName=jQuery.camelCase(name),style=elem.style,hooks=jQuery.cssHooks[origName];name=jQuery.cssProps[origName]||origName;if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rrelNum.exec(value))){value=(+(ret[1]+1)*+ret[2])+parseFloat(jQuery.css(elem,name));type="number";}
if(value==null||type==="number"&&isNaN(value)){return;}
if(type==="number"&&!jQuery.cssNumber[origName]){value+="px";}
if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value))!==undefined){try{style[name]=value;}catch(e){}}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret;}
return style[name];}},css:function(elem,name,extra){var ret,hooks;name=jQuery.camelCase(name);hooks=jQuery.cssHooks[name];name=jQuery.cssProps[name]||name;if(name==="cssFloat"){name="float";}
if(hooks&&"get"in hooks&&(ret=hooks.get(elem,true,extra))!==undefined){return ret;}else if(curCSS){return curCSS(elem,name);}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
callback.call(elem);for(name in options){elem.style[name]=old[name];}}});jQuery.curCSS=jQuery.css;jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){var val;if(computed){if(elem.offsetWidth!==0){return getWH(elem,name,extra);}else{jQuery.swap(elem,cssShow,function(){val=getWH(elem,name,extra);});}
return val;}},set:function(elem,value){if(rnumpx.test(value)){value=parseFloat(value);if(value>=0){return value+"px";}}else{return value;}}};});if(!jQuery.support.opacity){jQuery.cssHooks.opacity={get:function(elem,computed){return ropacity.test((computed&&elem.currentStyle?elem.currentStyle.filter:elem.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":computed?"1":"";},set:function(elem,value){var style=elem.style,currentStyle=elem.currentStyle,opacity=jQuery.isNumeric(value)?"alpha(opacity="+value*100+")":"",filter=currentStyle&&currentStyle.filter||style.filter||"";style.zoom=1;if(value>=1&&jQuery.trim(filter.replace(ralpha,""))===""){style.removeAttribute("filter");if(currentStyle&&!currentStyle.filter){return;}}
style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):filter+" "+opacity;}};}
jQuery(function(){if(!jQuery.support.reliableMarginRight){jQuery.cssHooks.marginRight={get:function(elem,computed){var ret;jQuery.swap(elem,{"display":"inline-block"},function(){if(computed){ret=curCSS(elem,"margin-right","marginRight");}else{ret=elem.style.marginRight;}});return ret;}};}});if(document.defaultView&&document.defaultView.getComputedStyle){getComputedStyle=function(elem,name){var ret,defaultView,computedStyle;name=name.replace(rupper,"-$1").toLowerCase();if(!(defaultView=elem.ownerDocument.defaultView)){return undefined;}
if((computedStyle=defaultView.getComputedStyle(elem,null))){ret=computedStyle.getPropertyValue(name);if(ret===""&&!jQuery.contains(elem.ownerDocument.documentElement,elem)){ret=jQuery.style(elem,name);}}
return ret;};}
if(document.documentElement.currentStyle){currentStyle=function(elem,name){var left,rsLeft,uncomputed,ret=elem.currentStyle&&elem.currentStyle[name],style=elem.style;if(ret===null&&style&&(uncomputed=style[name])){ret=uncomputed;}
if(!rnumpx.test(ret)&&rnum.test(ret)){left=style.left;rsLeft=elem.runtimeStyle&&elem.runtimeStyle.left;if(rsLeft){elem.runtimeStyle.left=elem.currentStyle.left;}
style.left=name==="fontSize"?"1em":(ret||0);ret=style.pixelLeft+"px";style.left=left;if(rsLeft){elem.runtimeStyle.left=rsLeft;}}
return ret===""?"auto":ret;};}
curCSS=getComputedStyle||currentStyle;function getWH(elem,name,extra){var val=name==="width"?elem.offsetWidth:elem.offsetHeight,which=name==="width"?cssWidth:cssHeight;if(val>0){if(extra!=="border"){jQuery.each(which,function(){if(!extra){val-=parseFloat(jQuery.css(elem,"padding"+this))||0;}
if(extra==="margin"){val+=parseFloat(jQuery.css(elem,extra+this))||0;}else{val-=parseFloat(jQuery.css(elem,"border"+this+"Width"))||0;}});}
return val+"px";}
val=curCSS(elem,name,name);if(val<0||val==null){val=elem.style[name]||0;}
val=parseFloat(val)||0;if(extra){jQuery.each(which,function(){val+=parseFloat(jQuery.css(elem,"padding"+this))||0;if(extra!=="padding"){val+=parseFloat(jQuery.css(elem,"border"+this+"Width"))||0;}
if(extra==="margin"){val+=parseFloat(jQuery.css(elem,extra+this))||0;}});}
return val+"px";}
if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.hidden=function(elem){var width=elem.offsetWidth,height=elem.offsetHeight;return(width===0&&height===0)||(!jQuery.support.reliableHiddenOffsets&&((elem.style&&elem.style.display)||jQuery.css(elem,"display"))==="none");};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem);};}
var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rhash=/#.*$/,rheaders=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,rinput=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,rlocalProtocol=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rquery=/\?/,rscript=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,rselectTextarea=/^(?:select|textarea)/i,rspacesAjax=/\s+/,rts=/([?&])_=[^&]*/,rurl=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,_load=jQuery.fn.load,prefilters={},transports={},ajaxLocation,ajaxLocParts,allTypes=["*/"]+["*"];try{ajaxLocation=location.href;}catch(e){ajaxLocation=document.createElement("a");ajaxLocation.href="";ajaxLocation=ajaxLocation.href;}
ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}
if(jQuery.isFunction(func)){var dataTypes=dataTypeExpression.toLowerCase().split(rspacesAjax),i=0,length=dataTypes.length,dataType,list,placeBefore;for(;i<length;i++){dataType=dataTypes[i];placeBefore=/^\+/.test(dataType);if(placeBefore){dataType=dataType.substr(1)||"*";}
list=structure[dataType]=structure[dataType]||[];list[placeBefore?"unshift":"push"](func);}}};}
function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,dataType,inspected){dataType=dataType||options.dataTypes[0];inspected=inspected||{};inspected[dataType]=true;var list=structure[dataType],i=0,length=list?list.length:0,executeOnly=(structure===prefilters),selection;for(;i<length&&(executeOnly||!selection);i++){selection=list[i](options,originalOptions,jqXHR);if(typeof selection==="string"){if(!executeOnly||inspected[selection]){selection=undefined;}else{options.dataTypes.unshift(selection);selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,selection,inspected);}}}
if((executeOnly||!selection)&&!inspected["*"]){selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,"*",inspected);}
return selection;}
function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];}}
if(deep){jQuery.extend(true,target,deep);}}
jQuery.fn.extend({load:function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments);}else if(!this.length){return this;}
var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}
var type="GET";if(params){if(jQuery.isFunction(params)){callback=params;params=undefined;}else if(typeof params==="object"){params=jQuery.param(params,jQuery.ajaxSettings.traditional);type="POST";}}
var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(jqXHR,status,responseText){responseText=jqXHR.responseText;if(jqXHR.isResolved()){jqXHR.done(function(r){responseText=r;});self.html(selector?jQuery("<div>")
.append(responseText.replace(rscript,""))
.find(selector):responseText);}
if(callback){self.each(callback,[responseText,status,jqXHR]);}}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return this.elements?jQuery.makeArray(this.elements):this;})
.filter(function(){return this.name&&!this.disabled&&(this.checked||rselectTextarea.test(this.nodeName)||rinput.test(this.type));})
.map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val.replace(rCRLF,"\r\n")};}):{name:elem.name,value:val.replace(rCRLF,"\r\n")};}).get();}});jQuery.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined;}
return jQuery.ajax({type:method,url:url,data:data,success:callback,dataType:type});};});jQuery.extend({getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},ajaxSetup:function(target,settings){if(settings){ajaxExtend(target,jQuery.ajaxSettings);}else{settings=target;target=jQuery.ajaxSettings;}
ajaxExtend(target,settings);return target;},ajaxSettings:{url:ajaxLocation,isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":allTypes},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":window.String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}
options=options||{};var
s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=callbackContext!==s&&(callbackContext.nodeType||callbackContext instanceof jQuery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},ifModifiedKey,requestHeaders={},requestHeadersNames={},responseHeadersString,responseHeaders,transport,timeoutTimer,parts,state=0,fireGlobals,i,jqXHR={readyState:0,setRequestHeader:function(name,value){if(!state){var lname=name.toLowerCase();name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value;}
return this;},getAllResponseHeaders:function(){return state===2?responseHeadersString:null;},getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()]=match[2];}}
match=responseHeaders[key.toLowerCase()];}
return match===undefined?null:match;},overrideMimeType:function(type){if(!state){s.mimeType=type;}
return this;},abort:function(statusText){statusText=statusText||"abort";if(transport){transport.abort(statusText);}
done(0,statusText);return this;}};function done(status,nativeStatusText,responses,headers){if(state===2){return;}
state=2;if(timeoutTimer){clearTimeout(timeoutTimer);}
transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;var isSuccess,success,error,statusText=nativeStatusText,response=responses?ajaxHandleResponses(s,jqXHR,responses):undefined,lastModified,etag;if(status>=200&&status<300||status===304){if(s.ifModified){if((lastModified=jqXHR.getResponseHeader("Last-Modified"))){jQuery.lastModified[ifModifiedKey]=lastModified;}
if((etag=jqXHR.getResponseHeader("Etag"))){jQuery.etag[ifModifiedKey]=etag;}}
if(status===304){statusText="notmodified";isSuccess=true;}else{try{success=ajaxConvert(s,response);statusText="success";isSuccess=true;}catch(e){statusText="parsererror";error=e;}}}else{error=statusText;if(!statusText||status){statusText="error";if(status<0){status=0;}}}
jqXHR.status=status;jqXHR.statusText=""+(nativeStatusText||statusText);if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);}
jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger("ajax"+(isSuccess?"Success":"Error"),[jqXHR,s,isSuccess?success:error]);}
completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop");}}}
deferred.promise(jqXHR);jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;jqXHR.complete=completeDeferred.add;jqXHR.statusCode=function(map){if(map){var tmp;if(state<2){for(tmp in map){statusCode[tmp]=[statusCode[tmp],map[tmp]];}}else{tmp=map[jqXHR.status];jqXHR.then(tmp,tmp);}}
return this;};s.url=((url||s.url)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().split(rspacesAjax);if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!=ajaxLocParts[1]||parts[2]!=ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?80:443))!=(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?80:443))));}
if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional);}
inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return false;}
fireGlobals=s.global;s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart");}
if(!s.hasContent){if(s.data){s.url+=(rquery.test(s.url)?"&":"?")+s.data;delete s.data;}
ifModifiedKey=s.url;if(s.cache===false){var ts=jQuery.now(),ret=s.url.replace(rts,"$1_="+ts);s.url=ret+((ret===s.url)?(rquery.test(s.url)?"&":"?")+"_="+ts:"");}}
if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType);}
if(s.ifModified){ifModifiedKey=ifModifiedKey||s.url;if(jQuery.lastModified[ifModifiedKey]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[ifModifiedKey]);}
if(jQuery.etag[ifModifiedKey]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[ifModifiedKey]);}}
jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i]);}
if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){jqXHR.abort();return false;}
for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i]);}
transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport");}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s]);}
if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout");},s.timeout);}
try{state=1;transport.send(requestHeaders,done);}catch(e){if(state<2){done(-1,e);}else{jQuery.error(e);}}}
return jqXHR;},param:function(a,traditional){var s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value);};if(traditional===undefined){traditional=jQuery.ajaxSettings.traditional;}
if(jQuery.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value);});}else{for(var prefix in a){buildParams(prefix,a[prefix],traditional,add);}}
return s.join("&").replace(r20,"+");}});function buildParams(prefix,obj,traditional,add){if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"||jQuery.isArray(v)?i:"")+"]",v,traditional,add);}});}else if(!traditional&&obj!=null&&typeof obj==="object"){for(var name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add);}}else{add(prefix,obj);}}
jQuery.extend({active:0,lastModified:{},etag:{}});function ajaxHandleResponses(s,jqXHR,responses){var contents=s.contents,dataTypes=s.dataTypes,responseFields=s.responseFields,ct,type,finalDataType,firstDataType;for(type in responseFields){if(type in responses){jqXHR[responseFields[type]]=responses[type];}}
while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("content-type");}}
if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}
if(dataTypes[0]in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}
if(!firstDataType){firstDataType=type;}}
finalDataType=finalDataType||firstDataType;}
if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}
return responses[finalDataType];}}
function ajaxConvert(s,response){if(s.dataFilter){response=s.dataFilter(response,s.dataType);}
var dataTypes=s.dataTypes,converters={},i,key,length=dataTypes.length,tmp,current=dataTypes[0],prev,conversion,conv,conv1,conv2;for(i=1;i<length;i++){if(i===1){for(key in s.converters){if(typeof key==="string"){converters[key.toLowerCase()]=s.converters[key];}}}
prev=current;current=dataTypes[i];if(current==="*"){current=prev;}else if(prev!=="*"&&prev!==current){conversion=prev+" "+current;conv=converters[conversion]||converters["* "+current];if(!conv){conv2=undefined;for(conv1 in converters){tmp=conv1.split(" ");if(tmp[0]===prev||tmp[0]==="*"){conv2=converters[tmp[1]+" "+current];if(conv2){conv1=converters[conv1];if(conv1===true){conv=conv2;}else if(conv2===true){conv=conv1;}
break;}}}}
if(!(conv||conv2)){jQuery.error("No conversion from "+conversion.replace(" "," to "));}
if(conv!==true){response=conv?conv(response):conv2(conv1(response));}}}
return response;}
var jsc=jQuery.now(),jsre=/(\=)\?(&|$)|\?\?/i;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return jQuery.expando+"_"+(jsc++);}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var inspectData=s.contentType==="application/x-www-form-urlencoded"&&(typeof s.data==="string");if(s.dataTypes[0]==="jsonp"||s.jsonp!==false&&(jsre.test(s.url)||inspectData&&jsre.test(s.data))){var responseContainer,jsonpCallback=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback,previous=window[jsonpCallback],url=s.url,data=s.data,replace="$1"+jsonpCallback+"$2";if(s.jsonp!==false){url=url.replace(jsre,replace);if(s.url===url){if(inspectData){data=data.replace(jsre,replace);}
if(s.data===data){url+=(/\?/.test(url)?"&":"?")+s.jsonp+"="+jsonpCallback;}}}
s.url=url;s.data=data;window[jsonpCallback]=function(response){responseContainer=[response];};jqXHR.always(function(){window[jsonpCallback]=previous;if(responseContainer&&jQuery.isFunction(previous)){window[jsonpCallback](responseContainer[0]);}});s.converters["script json"]=function(){if(!responseContainer){jQuery.error(jsonpCallback+" was not called");}
return responseContainer[0];};s.dataTypes[0]="json";return"script";}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}
if(s.crossDomain){s.type="GET";s.global=false;}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,head=document.head||document.getElementsByTagName("head")[0]||document.documentElement;return{send:function(_,callback){script=document.createElement("script");script.async="async";if(s.scriptCharset){script.charset=s.scriptCharset;}
script.src=s.url;script.onload=script.onreadystatechange=function(_,isAbort){if(isAbort||!script.readyState||/loaded|complete/.test(script.readyState)){script.onload=script.onreadystatechange=null;if(head&&script.parentNode){head.removeChild(script);}
script=undefined;if(!isAbort){callback(200,"success");}}};head.insertBefore(script,head.firstChild);},abort:function(){if(script){script.onload(0,1);}}};}});var
xhrOnUnloadAbort=window.ActiveXObject?function(){for(var key in xhrCallbacks){xhrCallbacks[key](0,1);}}:false,xhrId=0,xhrCallbacks;function createStandardXHR(){try{return new window.XMLHttpRequest();}catch(e){}}
function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}
jQuery.ajaxSettings.xhr=window.ActiveXObject?function(){return!this.isLocal&&createStandardXHR()||createActiveXHR();}:createStandardXHR;(function(xhr){jQuery.extend(jQuery.support,{ajax:!!xhr,cors:!!xhr&&("withCredentials"in xhr)});})(jQuery.ajaxSettings.xhr());if(jQuery.support.ajax){jQuery.ajaxTransport(function(s){if(!s.crossDomain||jQuery.support.cors){var callback;return{send:function(headers,complete){var xhr=s.xhr(),handle,i;if(s.username){xhr.open(s.type,s.url,s.async,s.username,s.password);}else{xhr.open(s.type,s.url,s.async);}
if(s.xhrFields){for(i in s.xhrFields){xhr[i]=s.xhrFields[i];}}
if(s.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(s.mimeType);}
if(!s.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}
try{for(i in headers){xhr.setRequestHeader(i,headers[i]);}}catch(_){}
xhr.send((s.hasContent&&s.data)||null);callback=function(_,isAbort){var status,statusText,responseHeaders,responses,xml;try{if(callback&&(isAbort||xhr.readyState===4)){callback=undefined;if(handle){xhr.onreadystatechange=jQuery.noop;if(xhrOnUnloadAbort){delete xhrCallbacks[handle];}}
if(isAbort){if(xhr.readyState!==4){xhr.abort();}}else{status=xhr.status;responseHeaders=xhr.getAllResponseHeaders();responses={};xml=xhr.responseXML;if(xml&&xml.documentElement){responses.xml=xml;}
responses.text=xhr.responseText;try{statusText=xhr.statusText;}catch(e){statusText="";}
if(!status&&s.isLocal&&!s.crossDomain){status=responses.text?200:404;}else if(status===1223){status=204;}}}}catch(firefoxAccessException){if(!isAbort){complete(-1,firefoxAccessException);}}
if(responses){complete(status,statusText,responses,responseHeaders);}};if(!s.async||xhr.readyState===4){callback();}else{handle=++xhrId;if(xhrOnUnloadAbort){if(!xhrCallbacks){xhrCallbacks={};jQuery(window).unload(xhrOnUnloadAbort);}
xhrCallbacks[handle]=callback;}
xhr.onreadystatechange=callback;}},abort:function(){if(callback){callback(0,1);}}};}});}
var elemdisplay={},iframe,iframeDoc,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],fxNow;jQuery.fn.extend({show:function(speed,easing,callback){var elem,display;if(speed||speed===0){return this.animate(genFx("show",3),speed,easing,callback);}else{for(var i=0,j=this.length;i<j;i++){elem=this[i];if(elem.style){display=elem.style.display;if(!jQuery._data(elem,"olddisplay")&&display==="none"){display=elem.style.display="";}
if(display===""&&jQuery.css(elem,"display")==="none"){jQuery._data(elem,"olddisplay",defaultDisplay(elem.nodeName));}}}
for(i=0;i<j;i++){elem=this[i];if(elem.style){display=elem.style.display;if(display===""||display==="none"){elem.style.display=jQuery._data(elem,"olddisplay")||"";}}}
return this;}},hide:function(speed,easing,callback){if(speed||speed===0){return this.animate(genFx("hide",3),speed,easing,callback);}else{var elem,display,i=0,j=this.length;for(;i<j;i++){elem=this[i];if(elem.style){display=jQuery.css(elem,"display");if(display!=="none"&&!jQuery._data(elem,"olddisplay")){jQuery._data(elem,"olddisplay",display);}}}
for(i=0;i<j;i++){if(this[i].style){this[i].style.display="none";}}
return this;}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2,callback){var bool=typeof fn==="boolean";if(jQuery.isFunction(fn)&&jQuery.isFunction(fn2)){this._toggle.apply(this,arguments);}else if(fn==null||bool){this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]();});}else{this.animate(genFx("toggle",3),fn,fn2,callback);}
return this;},fadeTo:function(speed,to,easing,callback){return this.filter(":hidden").css("opacity",0).show().end()
.animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);if(jQuery.isEmptyObject(prop)){return this.each(optall.complete,[false]);}
prop=jQuery.extend({},prop);function doAnimation(){if(optall.queue===false){jQuery._mark(this);}
var opt=jQuery.extend({},optall),isElement=this.nodeType===1,hidden=isElement&&jQuery(this).is(":hidden"),name,val,p,e,parts,start,end,unit,method;opt.animatedProperties={};for(p in prop){name=jQuery.camelCase(p);if(p!==name){prop[name]=prop[p];delete prop[p];}
val=prop[name];if(jQuery.isArray(val)){opt.animatedProperties[name]=val[1];val=prop[name]=val[0];}else{opt.animatedProperties[name]=opt.specialEasing&&opt.specialEasing[name]||opt.easing||'swing';}
if(val==="hide"&&hidden||val==="show"&&!hidden){return opt.complete.call(this);}
if(isElement&&(name==="height"||name==="width")){opt.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(jQuery.css(this,"display")==="inline"&&jQuery.css(this,"float")==="none"){if(!jQuery.support.inlineBlockNeedsLayout||defaultDisplay(this.nodeName)==="inline"){this.style.display="inline-block";}else{this.style.zoom=1;}}}}
if(opt.overflow!=null){this.style.overflow="hidden";}
for(p in prop){e=new jQuery.fx(this,opt,p);val=prop[p];if(rfxtypes.test(val)){method=jQuery._data(this,"toggle"+p)||(val==="toggle"?hidden?"show":"hide":0);if(method){jQuery._data(this,"toggle"+p,method==="show"?"hide":"show");e[method]();}else{e[val]();}}else{parts=rfxnum.exec(val);start=e.cur();if(parts){end=parseFloat(parts[2]);unit=parts[3]||(jQuery.cssNumber[p]?"":"px");if(unit!=="px"){jQuery.style(this,p,(end||1)+unit);start=((end||1)/e.cur())*start;jQuery.style(this,p,start+unit);}
if(parts[1]){end=((parts[1]==="-="?-1:1)*end)+start;}
e.custom(start,end,unit);}else{e.custom(start,val,"");}}}
return true;}
return optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation);},stop:function(type,clearQueue,gotoEnd){if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;type=undefined;}
if(clearQueue&&type!==false){this.queue(type||"fx",[]);}
return this.each(function(){var i,hadTimers=false,timers=jQuery.timers,data=jQuery._data(this);if(!gotoEnd){jQuery._unmark(true,this);}
function stopQueue(elem,data,i){var hooks=data[i];jQuery.removeData(elem,i,true);hooks.stop(gotoEnd);}
if(type==null){for(i in data){if(data[i].stop&&i.indexOf(".run")===i.length-4){stopQueue(this,data,i);}}}else if(data[i=type+".run"]&&data[i].stop){stopQueue(this,data,i);}
for(i=timers.length;i--;){if(timers[i].elem===this&&(type==null||timers[i].queue===type)){if(gotoEnd){timers[i](true);}else{timers[i].saveState();}
hadTimers=true;timers.splice(i,1);}}
if(!(gotoEnd&&hadTimers)){jQuery.dequeue(this,type);}});}});function createFxNow(){setTimeout(clearFxNow,0);return(fxNow=jQuery.now());}
function clearFxNow(){fxNow=undefined;}
function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type;});return obj;}
jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};});jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue="fx";}
opt.old=opt.complete;opt.complete=function(noUnmark){if(jQuery.isFunction(opt.old)){opt.old.call(this);}
if(opt.queue){jQuery.dequeue(this,opt.queue);}else if(noUnmark!==false){jQuery._unmark(this);}};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;options.orig=options.orig||{};}});jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this);}
(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop];}
var parsed,r=jQuery.css(this.elem,this.prop);return isNaN(parsed=parseFloat(r))?!r||r==="auto"?0:r:parsed;},custom:function(from,to,unit){var self=this,fx=jQuery.fx;this.startTime=fxNow||createFxNow();this.end=to;this.now=this.start=from;this.pos=this.state=0;this.unit=unit||this.unit||(jQuery.cssNumber[this.prop]?"":"px");function t(gotoEnd){return self.step(gotoEnd);}
t.queue=this.options.queue;t.elem=this.elem;t.saveState=function(){if(self.options.hide&&jQuery._data(self.elem,"fxshow"+self.prop)===undefined){jQuery._data(self.elem,"fxshow"+self.prop,self.start);}};if(t()&&jQuery.timers.push(t)&&!timerId){timerId=setInterval(fx.tick,fx.interval);}},show:function(){var dataShow=jQuery._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=dataShow||jQuery.style(this.elem,this.prop);this.options.show=true;if(dataShow!==undefined){this.custom(this.cur(),dataShow);}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());}
jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery._data(this.elem,"fxshow"+this.prop)||jQuery.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var p,n,complete,t=fxNow||createFxNow(),done=true,elem=this.elem,options=this.options;if(gotoEnd||t>=options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();options.animatedProperties[this.prop]=true;for(p in options.animatedProperties){if(options.animatedProperties[p]!==true){done=false;}}
if(done){if(options.overflow!=null&&!jQuery.support.shrinkWrapBlocks){jQuery.each(["","X","Y"],function(index,value){elem.style["overflow"+value]=options.overflow[index];});}
if(options.hide){jQuery(elem).hide();}
if(options.hide||options.show){for(p in options.animatedProperties){jQuery.style(elem,p,options.orig[p]);jQuery.removeData(elem,"fxshow"+p,true);jQuery.removeData(elem,"toggle"+p,true);}}
complete=options.complete;if(complete){options.complete=false;complete.call(elem);}}
return false;}else{if(options.duration==Infinity){this.now=t;}else{n=t-this.startTime;this.state=n/options.duration;this.pos=jQuery.easing[options.animatedProperties[this.prop]](this.state,n,0,1,options.duration);this.now=this.start+((this.end-this.start)*this.pos);}
this.update();}
return true;}};jQuery.extend(jQuery.fx,{tick:function(){var timer,timers=jQuery.timers,i=0;for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1);}}
if(!timers.length){jQuery.fx.stop();}},interval:13,stop:function(){clearInterval(timerId);timerId=null;},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.style(fx.elem,"opacity",fx.now);},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null){fx.elem.style[fx.prop]=fx.now+fx.unit;}else{fx.elem[fx.prop]=fx.now;}}}});jQuery.each(["width","height"],function(i,prop){jQuery.fx.step[prop]=function(fx){jQuery.style(fx.elem,prop,Math.max(0,fx.now));};});if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};}
function defaultDisplay(nodeName){if(!elemdisplay[nodeName]){var body=document.body,elem=jQuery("<"+nodeName+">").appendTo(body),display=elem.css("display");elem.remove();if(display==="none"||display===""){if(!iframe){iframe=document.createElement("iframe");iframe.frameBorder=iframe.width=iframe.height=0;}
body.appendChild(iframe);if(!iframeDoc||!iframe.createElement){iframeDoc=(iframe.contentWindow||iframe.contentDocument).document;iframeDoc.write((document.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");iframeDoc.close();}
elem=iframeDoc.createElement(nodeName);iframeDoc.body.appendChild(elem);display=jQuery.css(elem,"display");body.removeChild(iframe);}
elemdisplay[nodeName]=display;}
return elemdisplay[nodeName];}
var rtable=/^t(?:able|d|h)$/i,rroot=/^(?:body|html)$/i;if("getBoundingClientRect"in document.documentElement){jQuery.fn.offset=function(options){var elem=this[0],box;if(options){return this.each(function(i){jQuery.offset.setOffset(this,options,i);});}
if(!elem||!elem.ownerDocument){return null;}
if(elem===elem.ownerDocument.body){return jQuery.offset.bodyOffset(elem);}
try{box=elem.getBoundingClientRect();}catch(e){}
var doc=elem.ownerDocument,docElem=doc.documentElement;if(!box||!jQuery.contains(docElem,elem)){return box?{top:box.top,left:box.left}:{top:0,left:0};}
var body=doc.body,win=getWindow(doc),clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,scrollTop=win.pageYOffset||jQuery.support.boxModel&&docElem.scrollTop||body.scrollTop,scrollLeft=win.pageXOffset||jQuery.support.boxModel&&docElem.scrollLeft||body.scrollLeft,top=box.top+scrollTop-clientTop,left=box.left+scrollLeft-clientLeft;return{top:top,left:left};};}else{jQuery.fn.offset=function(options){var elem=this[0];if(options){return this.each(function(i){jQuery.offset.setOffset(this,options,i);});}
if(!elem||!elem.ownerDocument){return null;}
if(elem===elem.ownerDocument.body){return jQuery.offset.bodyOffset(elem);}
var computedStyle,offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView?defaultView.getComputedStyle(elem,null):elem.currentStyle,top=elem.offsetTop,left=elem.offsetLeft;while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){if(jQuery.support.fixedPosition&&prevComputedStyle.position==="fixed"){break;}
computedStyle=defaultView?defaultView.getComputedStyle(elem,null):elem.currentStyle;top-=elem.scrollTop;left-=elem.scrollLeft;if(elem===offsetParent){top+=elem.offsetTop;left+=elem.offsetLeft;if(jQuery.support.doesNotAddBorder&&!(jQuery.support.doesAddBorderForTableAndCells&&rtable.test(elem.nodeName))){top+=parseFloat(computedStyle.borderTopWidth)||0;left+=parseFloat(computedStyle.borderLeftWidth)||0;}
prevOffsetParent=offsetParent;offsetParent=elem.offsetParent;}
if(jQuery.support.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible"){top+=parseFloat(computedStyle.borderTopWidth)||0;left+=parseFloat(computedStyle.borderLeftWidth)||0;}
prevComputedStyle=computedStyle;}
if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static"){top+=body.offsetTop;left+=body.offsetLeft;}
if(jQuery.support.fixedPosition&&prevComputedStyle.position==="fixed"){top+=Math.max(docElem.scrollTop,body.scrollTop);left+=Math.max(docElem.scrollLeft,body.scrollLeft);}
return{top:top,left:left};};}
jQuery.offset={bodyOffset:function(body){var top=body.offsetTop,left=body.offsetLeft;if(jQuery.support.doesNotIncludeMarginInBodyOffset){top+=parseFloat(jQuery.css(body,"marginTop"))||0;left+=parseFloat(jQuery.css(body,"marginLeft"))||0;}
return{top:top,left:left};},setOffset:function(elem,options,i){var position=jQuery.css(elem,"position");if(position==="static"){elem.style.position="relative";}
var curElem=jQuery(elem),curOffset=curElem.offset(),curCSSTop=jQuery.css(elem,"top"),curCSSLeft=jQuery.css(elem,"left"),calculatePosition=(position==="absolute"||position==="fixed")&&jQuery.inArray("auto",[curCSSTop,curCSSLeft])>-1,props={},curPosition={},curTop,curLeft;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left;}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0;}
if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset);}
if(options.top!=null){props.top=(options.top-curOffset.top)+curTop;}
if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft;}
if("using"in options){options.using.call(elem,props);}else{curElem.css(props);}}};jQuery.fn.extend({position:function(){if(!this[0]){return null;}
var elem=this[0],offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=rroot.test(offsetParent[0].nodeName)?{top:0,left:0}:offsetParent.offset();offset.top-=parseFloat(jQuery.css(elem,"marginTop"))||0;offset.left-=parseFloat(jQuery.css(elem,"marginLeft"))||0;parentOffset.top+=parseFloat(jQuery.css(offsetParent[0],"borderTopWidth"))||0;parentOffset.left+=parseFloat(jQuery.css(offsetParent[0],"borderLeftWidth"))||0;return{top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||document.body;while(offsetParent&&(!rroot.test(offsetParent.nodeName)&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent;}
return offsetParent;});}});jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name;jQuery.fn[method]=function(val){var elem,win;if(val===undefined){elem=this[0];if(!elem){return null;}
win=getWindow(elem);return win?("pageXOffset"in win)?win[i?"pageYOffset":"pageXOffset"]:jQuery.support.boxModel&&win.document.documentElement[method]||win.document.body[method]:elem[method];}
return this.each(function(){win=getWindow(this);if(win){win.scrollTo(!i?val:jQuery(win).scrollLeft(),i?val:jQuery(win).scrollTop());}else{this[method]=val;}});};});function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9?elem.defaultView||elem.parentWindow:false;}
jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn["inner"+name]=function(){var elem=this[0];return elem?elem.style?parseFloat(jQuery.css(elem,type,"padding")):this[type]():null;};jQuery.fn["outer"+name]=function(margin){var elem=this[0];return elem?elem.style?parseFloat(jQuery.css(elem,type,margin?"margin":"border")):this[type]():null;};jQuery.fn[type]=function(size){var elem=this[0];if(!elem){return size==null?null:this;}
if(jQuery.isFunction(size)){return this.each(function(i){var self=jQuery(this);self[type](size.call(this,i,self[type]()));});}
if(jQuery.isWindow(elem)){var docElemProp=elem.document.documentElement["client"+name],body=elem.document.body;return elem.document.compatMode==="CSS1Compat"&&docElemProp||body&&body["client"+name]||docElemProp;}else if(elem.nodeType===9){return Math.max(elem.documentElement["client"+name],elem.body["scroll"+name],elem.documentElement["scroll"+name],elem.body["offset"+name],elem.documentElement["offset"+name]);}else if(size===undefined){var orig=jQuery.css(elem,type),ret=parseFloat(orig);return jQuery.isNumeric(ret)?ret:orig;}else{return this.css(type,typeof size==="string"?size:size+"px");}};});window.$KOBJ=jQuery;})(window);(function($){(function(jQuery){(function($){var formats={'b':function(val){return parseInt(val,10).toString(2);},'c':function(val){return String.fromCharCode(parseInt(val,10));},'d':function(val){return parseInt(val,10);},'u':function(val){return Math.abs(val);},'f':function(val,p){p=parseInt(p,10);val=parseFloat(val);if(isNaN(p&&val)){return NaN;}
return p&&val.toFixed(p)||val;},'o':function(val){return parseInt(val,10).toString(8);},'s':function(val){return val;},'x':function(val){return(''+parseInt(val,10).toString(16)).toLowerCase();},'X':function(val){return(''+parseInt(val,10).toString(16)).toUpperCase();}};var re=/%(?:(\d+)?(?:\.(\d+))?|\(([^)]+)\))([%bcdufosxX])/g;var dispatch=function(data){if(data.length==1&&typeof data[0]=='object'){data=data[0];return function(match,w,p,lbl,fmt,off,str){return formats[fmt](data[lbl]);};}else{var idx=0;return function(match,w,p,lbl,fmt,off,str){if(fmt=='%'){return'%';}
return formats[fmt](data[idx++],p);};}};$.extend({sprintf:function(format){var argv=Array.apply(null,arguments).slice(1);return format.replace(re,dispatch(argv));},vsprintf:function(format,data){return format.replace(re,dispatch(data));}});})(jQuery);(function($){function toIntegersAtLease(n)
{return n<10?'0'+n:n;}
Date.prototype.toJSON=function(date)
{return this.getUTCFullYear()+'-'+
toIntegersAtLease(this.getUTCMonth())+'-'+
toIntegersAtLease(this.getUTCDate());};var escapeable=/["\\\x00-\x1f\x7f-\x9f]/g;var meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};$.quoteString=function(string)
{if(escapeable.test(string))
{return'"'+string.replace(escapeable,function(a)
{var c=meta[a];if(typeof c==='string'){return c;}
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"'}
return'"'+string+'"';};$.toJSON=function(o,compact)
{var type=typeof(o);if(type=="undefined")
return"undefined";else if(type=="number"||type=="boolean")
return o+"";else if(o===null)
return"null";if(type=="string")
{return $.quoteString(o);}
if(type=="object"&&typeof o.toJSON=="function")
return o.toJSON(compact);if(type!="function"&&typeof(o.length)=="number")
{var ret=[];for(var i=0;i<o.length;i++){ret.push($.toJSON(o[i],compact));}
if(compact)
return"["+ret.join(",")+"]";else
return"["+ret.join(", ")+"]";}
if(type=="function"){throw new TypeError("Unable to convert object of type 'function' to json.");}
ret=[];for(var k in o){var name;var type=typeof(k);if(type=="number")
name='"'+k+'"';else if(type=="string")
name=$.quoteString(k);else
continue;var val=$.toJSON(o[k],compact);if(typeof(val)!="string"){continue;}
if(compact)
ret.push(name+":"+val);else
ret.push(name+": "+val);}
return"{"+ret.join(", ")+"}";};$.compactJSON=function(o)
{return $.toJSON(o,true);};$.evalJSON=function(src)
{return eval("("+src+")");};$.secureEvalJSON=function(src)
{var filtered=src;filtered=filtered.replace(/\\["\\\/bfnrtu]/g,'@');filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']');filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered))
return eval("("+src+")");else
throw new SyntaxError("Error parsing JSON, source is not valid.");};})(jQuery);(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/8.0/.test(navigator.userAgent)||$.browser.msie&&/7.0/.test(navigator.userAgent||$.browser.msie&&/6.0/.test(navigator.userAgent))){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
'style="display:block;position:absolute;z-index:-1;'+
(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+
'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+
'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+
'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+
'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+
'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length===0)
this.insertBefore(document.createElement(html),this.firstChild);});}
return this;};})(jQuery);(function($){$.kGrowl=function(m,in_config){var config={};$.extend(config,$.kGrowl.defaults,in_config);var styling={"padding":"10px","z-index":9999,"position":"fixed"};var pos=config.position.split("-");styling[pos[0]]="0px";styling[pos[1]]="0px";if($.browser.msie){styling["position"]="absolute";}
config["kid"]="kGrowl"+config.position;if($("#"+config["kid"]).size()===0)
{$('<div id="'+config["kid"]+'"></div>').css(styling).appendTo('body');}
$("#"+config["kid"]).kGrowl(m,config);};$.fn.kGrowl=function(m,config){if($.isFunction(this.each)){var args=arguments;return this.each(function(){var self=this;if($(this).data('kGrowl.instance')==undefined){$(this).data('kGrowl.instance',new $.fn.kGrowl());$(this).data('kGrowl.instance').startup(this);}
if($.isFunction($(this).data('kGrowl.instance')[m])){$(this).data('kGrowl.instance')[m].apply($(this).data('kGrowl.instance'),$.makeArray(args).slice(1));}else{$(this).data('kGrowl.instance').notification(m,config);}});}};$.extend($.fn.kGrowl.prototype,{defaults:{background_color:"#222",color:"#fff",font_size:"12px",header_font_size:"13px",width:"235px",header:'',sticky:false,position:'top-right',glue:'after',theme:'default',corners:'10px',check:500,life:3000,opacity:0.85,speed:'normal',easing:'swing',closer:true,closeTemplate:'&times;',closerTemplate:'<div>[ close all ]</div>',log:function(e,m,o){},beforeOpen:function(e,m,o){},open:function(e,m,o){},beforeClose:function(e,m,o){},close:function(e,m,o){},animateOpen:{opacity:'show'},animateClose:{opacity:'hide'}},element:null,interval:null,notification:function(message,config){var self=this;config.log.apply(this.element,[this.element,message,config]);var header=$('<div>').addClass("KOBJ_header").css({"font-weight":"bold","font-size":config.header_font_size}).html(config.header);message=$('<div>').addClass("KOBJ_message").html(message);var close=$('<div>').addClass("close").css({"float":"right","font-weight":"bold","font-size":config.font_size,"cursor":"pointer"}).html(config.closeTemplate);var notification_style={"-moz-border-radius":"5px","-webkit-border-radius":"5px","background-color":config.background_color,"color":config.color,"display":"none","filter":"alpha(opacity = "+config.opacity*100+")","font-family":"Tahoma, Arial, Helvetica, sans-serif","font-size":config.font_size,"margin-bottom":"5px","margin-top":"5px","min-height":"40px","opacity":config.opacity,"padding":"10px","text-align":"left","width":config.width,"zoom":"1"};var closer_style={"cursor":"pointer","font-weight":"bold","height":"15px","padding-bottom":"4px","padding-top":"4px","text-align":"center"};jQuery.each(notification_style,function(i,v){if(!closer_style[i])closer_style[i]=v;});closer_style["min-height"]=undefined;var notification=$('<div>').addClass("kGrowl-notification").css(notification_style).append(close).append(header).append(message).data("kGrowl",config).addClass(config.theme).children('div.close').bind("click.kGrowl",function(){$(this).unbind('click.kGrowl').parent().trigger('kGrowl.beforeClose').animate(config.animateClose,config.speed,config.easing,function(){$(this).trigger('kGrowl.close').remove();});}).parent();(config.glue=='after')?$('div.kGrowl-notification:last',this.element).after(notification):$('div.kGrowl-notification:first',this.element).before(notification);$(notification).bind("mouseover.kGrowl",function(){$(this).data("kGrowl").pause=true;}).bind("mouseout.kGrowl",function(){$(this).data("kGrowl").pause=false;}).bind('kGrowl.beforeOpen',function(){config.beforeOpen.apply(self.element,[self.element,message,config]);}).bind('kGrowl.open',function(){config.open.apply(self.element,[self.element,message,config]);}).bind('kGrowl.beforeClose',function(){config.beforeClose.apply(self.element,[self.element,message,config]);}).bind('kGrowl.close',function(){config.close.apply(self.element,[self.element,message,config]);}).trigger('kGrowl.beforeOpen').animate(config.animateOpen,config.speed,config.easing,function(){$(this).data("kGrowl").created=new Date();}).trigger('kGrowl.open');if($.fn.corner!=undefined)$(notification).corner(config.corners);$(".kGrowl-notification").parent().bgiframe({"opacity":true,"left":10,"top":-15});if($('div.kGrowl-notification:parent',this.element).size()>1&&$('div.kGrowl-closer',this.element).size()===0&&config.closer!==false){$(config.closerTemplate).addClass('kGrowl-closer').css(closer_style).addClass(config.theme).appendTo(this.element).animate(config.animateOpen,config.speed,config.easing).bind("click.kGrowl",function(){$(this).siblings().children('div.close').trigger("click.kGrowl");if($.isFunction(config.closer))config.closer.apply($(this).parent()[0],[$(this).parent()[0]]);});}},update:function(){$(this.element).find('div.kGrowl-notification:parent').each(function(){if($(this).data("kGrowl")!=undefined&&$(this).data("kGrowl").created!=undefined&&($(this).data("kGrowl").created.getTime()+$(this).data("kGrowl").life)<(new Date()).getTime()&&$(this).data("kGrowl").sticky!==true&&($(this).data("kGrowl").pause==undefined||$(this).data("kGrowl").pause!==true)){$(this).children('div.close').trigger('click.kGrowl');}});if($(this.element).find('div.kGrowl-notification:parent').size()<2){$(this.element).find('div.kGrowl-closer').animate($.kGrowl.defaults.animateClose,$.kGrowl.defaults.speed,$.kGrowl.defaults.easing,function(){$(this).remove();});}},startup:function(e){this.element=$(e).addClass('kGrowl').append('<div class="kGrowl-notification"></div>');this.interval=setInterval(function(){jQuery(e).data('kGrowl.instance').update();},$.kGrowl.defaults.check);},shutdown:function(){$(this.element).removeClass('kGrowl').find('div.kGrowl-notification').remove();clearInterval(this.interval);}});$.kGrowl.defaults=$.fn.kGrowl.prototype.defaults;})(jQuery);(function($){$.fn.snowfall=function(options){var element=this;var random=function random(min,max){return Math.round(min+Math.random()*(max-min));};function Flake(_x,_y,_size,_speed)
{this.id=flakeId;this.x=_x;this.y=_y;this.size=_size;this.speed=_speed;this.step=0;this.stepSize=random(1,10)/100;var flakeMarkup="<div id='flake-"+this.id+"' style='width: "+this.size+"px; height: "+this.size+"px; background: "+options.flakeColor+"; position: absolute; top: "+this.y+"px; left:"+this.x+"px; font-size: 0px; z-index: "+options.flakeIndex+";'></div>";if($(element).get(0).tagName===$(KOBJ.document).get(0).tagName){$('body').append(flakeMarkup);}else{$(element).append(flakeMarkup);}
this.element=KOBJ.document.getElementById('flake-'+this.id);this.update=function(){this.y+=this.speed;if(this.y>(elHeight)-6){this.reset();}
this.element.style.top=this.y+'px';this.element.style.left=this.x+'px';this.step+=this.stepSize;this.x+=Math.cos(this.step);if(this.x>(elWidth)-6||this.x<6){this.reset();}};this.reset=function(){this.y=0;this.x=random(0,elWidth);this.stepSize=random(1,10)/100;this.size=random((options.minSize*100),(options.maxSize*100))/100;this.speed=random(options.minSpeed,options.maxSpeed);};}
var flakes=[],flakeId=0,i=0,elHeight=$(element).height(),elWidth=$(element).width(),defaults={flakeCount:25,flakeColor:'#ffffff',flakeIndex:999999,minSize:2,maxSize:5,minSpeed:2,maxSpeed:3},options=$.extend(defaults,options);$(window).bind("resize",function(){elHeight=$(element).height();elWidth=$(element).width();});for(i=0;i<options.flakeCount;i+=1){flakeId=i;flakes[i]=new Flake(random(0,elWidth),random(0,elHeight),random((options.minSize*100),(options.maxSize*100))/100,random(options.minSpeed,options.maxSpeed));}
function snow(){for(i=0;i<options.flakeCount;i+=1){flakes[i].update();}
setTimeout(function(){snow();},90);}
snow();};})(jQuery);if(typeof($K)=='undefined'){window['$K']=$KOBJ;}
window['KOBJ']={name:"KRL Runtime Library",version:'0.9',copyright:"Portions of this file are part of the Kinetic Rules Engine (KRE). Copyright (C) 2007-2011 Kynetx, Inc. Licensed under: GNU Public License version 2 or later."};KOBJ['extra_page_vars']={};KOBJ['applications']={};KOBJ['data']=KOBJ['data']||{};KOBJ['external_resources']={};KOBJ.in_bx_extention=false;KOBJ.window=window;KOBJ.navigator=navigator;KOBJ.document=document;KOBJ.locationHref=null;KOBJ.locationHost=null;KOBJ.locationProtocol=null;KOBJ.locationHash=null;KOBJ.delay_execution=false;KOBJ.init_host='init.kobj.net';KOBJ.eval_host='cs.kobj.net';KOBJ.callback_host='log.kobj.net';KOBJ.kns_port='';KOBJ.default_error_stack_key='1fd906435ba09e16c5e851c9e99e6178';KOBJ.kverify_domain='';KOBJ.raise_event_action=function(uniq,event_name,config){var app=KOBJ.get_application(config.rid);app.raise_event(event_name,config["parameters"],config["app_id"]);};KOBJ.page_content_event=function(uniq,label,selectors,config){var app=KOBJ.get_application(config.rid);var found_data={};$KOBJ.each(selectors,function(name,selector){var result=$KOBJ(selector["selector"]);if(selector["type"]=="text")
result=result.text();else if(selector["type"]=="form")
result=result.val();else
result="invalid select type";found_data[name]=result;});found_data["label"]=label;var all_data={"param_data":found_data};KOBJEventManager.add_out_of_bound_event(app,"page_content",true,all_data);};KOBJ.watch_event=function(event,selector,config){var application=KOBJ.get_application(config["rid"]);if(event!="pageview"){KOBJEventManager.register_interest(event,selector,application,config);}
else{KOBJEventManager.add_out_of_bound_event(application,"pageview");}};KOBJ.annotate_action=function(uniq,callback,config,name){var ann=new KOBJAnnotateSearchResults(KOBJ.get_application(config.rid),name,config,callback);ann.annotate();};KOBJ.local_annotate_action=function(uniq,callback,config,name){var ann=new KOBJAnnotateLocalSearchResults(KOBJ.get_application(config.rid),name,config,callback);ann.annotate();};KOBJ.fragment=function(base_url){var e=KOBJ.document.createElement("script");e.src=base_url;var body=KOBJ.document.getElementsByTagName("body")[0];body.appendChild(e);};KOBJ.update_elements=function(params){for(var mykey in params){$KOBJ("#kobj_"+mykey).html(params[mykey]);}};KOBJ.Fade=function(id){$KOBJ(id).fadeOut();};KOBJ.BlindDown=function(id){$KOBJ(id).slideDown();};KOBJ.BlindUp=function(id){$KOBJ(id).slideUp();};KOBJ.BlindUp=function(id,speed){$KOBJ(id).slideUp(speed);};KOBJ.hide=function(id){$KOBJ(id).hide();};KOBJ.letitsnow=function(config){$KOBJ(KOBJ.document).snowfall();};KOBJ.createPopIn=function(config,content){var defaults={"position":"left-center","imageLocation":"http://k-misc.s3.amazonaws.com/actions/pop_in_feedback.jpg","bg_color":"#FFFFFF","link_color":"#FF0000","overlay_color":"#000000"};if(typeof config==='object'){jQuery.extend(defaults,config);}
var side1;var side2;var distance;switch(defaults["position"]){case"top-left":side1="top";side2="left";distance="10%";break;case"top-center":side1="top";side2="left";distance="45%";break;case"top-right":side1="top";side2="right";distance="10%";break;case"bottom-left":side1="bottom";side2="left";distance="10%";break;case"bottom-center":side1="bottom";side2="left";distance="45%";break;case"bottom-right":side1="bottom";side2="right";distance="10%";break;case"left-top":side1="left";side2="top";distance="10%";break;case"left-center":side1="left";side2="top";distance="45%";break;case"left-bottom":side1="left";side2="bottom";distance="10%";break;case"right-top":side1="right";side2="top";distance="10%";break;case"right-center":side1="right";side2="top";distance="45%";break;case"right-bottom":side1="right";side2="bottom";distance="10%";break;default:side1="left";side2="top";distance="45%";break;}
$KOBJ('body').append('<div id="KOBJ_PopIn_Link" style="'+side1+': 0; '+side2+':'+distance+'; -moz-border-radius-bottomright: 12px; -moz-border-radius-topright: 12px; background-color:'+defaults["link_color"]+'; display:block; margin-top:-45px; position: fixed;  z-index:100001;"><a href="javascript:KOBJ_create_pop_in()"><img src="'+defaults["imageLocation"]+'" alt="KOBJ_pop_in" border="none" /></a>');KOBJ_create_pop_in=function(){var OverlayPresent=$KOBJ('#KOBJ_PopIn_Overlay').length;var ContentPresent=$KOBJ('#KOBJ_PopIn_Dialog').length;if(OverlayPresent){$KOBJ('#KOBJ_PopIn_Overlay').fadeIn('slow');}
if(ContentPresent){$KOBJ('#KOBJ_PopIn_Dialog').fadeIn('slow');}
if(!OverlayPresent){$KOBJ('body').append('<div id="KOBJ_PopIn_Overlay" style="display: block; position: fixed; background-color: '+defaults["overlay_color"]+'; height: 100%; width: 100%; left: 0; filter:alpha(opacity=70); opacity: 0.7; top: 0; z-index: 100002; display: none;" />');$KOBJ('#KOBJ_PopIn_Overlay').fadeIn('slow');}
if(!ContentPresent){$KOBJ('body').append('<div id="KOBJ_PopIn_Dialog" style="top: 45%; right: 40%; -moz-border-radius: 5px; display: block; height: auto; width: 20%; position: fixed; margin: 0 auto; text-align: center; z-index: 100003; display: none; background: '+defaults["bg_color"]+'; filter:alpha(opacity=85); opacity: .85; "><div class="close" id="KOBJ_Close" style="cursor: pointer; float: right; font-weight: bold; margin-right: 8px; margin-top: 5px;">x</div><div id="KOBJ_PopIn_Content" style="padding: 10px; ">'+content+'</div></div>');$KOBJ("#KOBJ_Close").click(function(){KOBJ_close_pop_in();});$KOBJ('#KOBJ_PopIn_Dialog').fadeIn('slow');}};KOBJ_close_pop_in=function(){$KOBJ('#KOBJ_PopIn_Overlay').fadeOut('slow');$KOBJ('#KOBJ_PopIn_Dialog').fadeOut('slow');};};KOBJ.statusbar=function(config,content){var defaults={"sticky":false,"width":"98.5%","height":"30px","id":"KOBJ_status_bar","bg_color":"#222222","delay":3000,"position":"bottom","opacity":".8","color":"#ffffff"};if(typeof config==='object'){if(config["sticky"]===true){config["delay"]=false;}
jQuery.extend(defaults,config);}
var side="";var corners="";var direction="";switch(defaults["position"]){case"top":side="top";corners="bottom";direction="down";break;case"bottom":side="bottom";corners="top";direction="up";break;default:side="bottom";corners="top";direction="up";break;}
$KOBJ('body').append('<div id="'+defaults["id"]+'_wrapper" style="display: none; position: fixed; '+side+': 0; width: 100%; height: '+defaults["height"]+';"><div id="'+defaults["id"]+'" style="color: '+defaults["color"]+'; height: '+defaults["height"]+'; background: '+defaults["bg_color"]+'; opacity: '+defaults["opacity"]+'; -moz-border-radius-'+corners+'right: 5px; -moz-border-radius-'+corners+'left: 5px; margin-left: 12px; margin-right: 30px;"><div class="close" style="float: right; font-weight: bold; font-size: 20px; cursor: pointer; margin-right: 10px; margin-top: 5px;">x</div><div class="KOBJ_statusbar_content" style="color: '+defaults["color"]+';">'+content+'</div></div>');$KOBJ('#'+defaults["id"]+'>.close').click(function(){KOBJ.statusbar_close(defaults["id"]);});$KOBJ('#'+defaults["id"]+'_wrapper').slideDown('slow');if(defaults["sticky"]===false){setTimeout(function(){KOBJ.statusbar_close(defaults["id"]);},defaults["delay"]);}};KOBJ.statusbar_close=function(id){$KOBJ('#'+id).fadeOut('slow');};KOBJ.page_collection_content_event=function(uniq,label,top_selector,parent_selector,selectors,config){var app=KOBJ.get_application(config.rid);var found_data=[];$KOBJ(top_selector).each(function(){$KOBJ(parent_selector,this).each(function(){var parent=this;var the_data={"parent":parent};var data={};the_data["data"]=data;$KOBJ.each(selectors,function(name,selector){var result=$KOBJ(selector["selector"],parent);if(selector["type"]=="text")
result=result.text();else if(selector["type"]=="form")
result=result.val();else
result="invalid select type";data[name]=result;});found_data.push(the_data);});});if(config.callback!=null){config.callback(label,found_data);}};KOBJ.buildDiv=function(uniq,pos,top,side,config){var vert=top.split(/\s*:\s*/);var horz=side.split(/\s*:\s*/);var div_style={position:pos,zIndex:'9999',display:'none'};var class_name="";if(typeof(config)!="undefined"&&typeof(config.class_name)!="undefined"){class_name=config.class_name;}
div_style[vert[0]]=vert[1];div_style[horz[0]]=horz[1];var id_str='kobj_'+uniq;var div=KOBJ.document.createElement('div');return $KOBJ(div).attr({'id':id_str}).css(div_style).addClass(class_name);};KOBJ.pick=function(o){if(o){return o[Math.floor(Math.random()*o.length)];}else{return o;}};KOBJ.close_notification=function(s){$KOBJ(s).bind("click.kGrowl",function(e){$KOBJ(this).unbind('click.kGrowl');$KOBJ(s).parents(".kGrowl-notification").trigger('kGrowl.beforeClose').animate({opacity:'hide'},"normal","swing",function(){$KOBJ(this).trigger('kGrowl.close').remove();});});};KOBJ.css=function(css){var head=KOBJ.document.getElementsByTagName('head')[0];var style=KOBJ.document.createElement('style');var rules=KOBJ.document.createTextNode(css);style.type='text/css';style.id='KOBJ_stylesheet';var KOBJstyle=KOBJ.document.getElementById('KOBJ_stylesheet');if(KOBJstyle==null){if(style.styleSheet){style.styleSheet.cssText=rules.nodeValue;}else{style.appendChild(rules);}
head.appendChild(style);}else{if(KOBJstyle.styleSheet){KOBJstyle.styleSheet.cssText+=rules.nodeValue;}else{KOBJstyle.appendChild(rules);}}};KOBJ.safe_substring=function(string,max)
{if(typeof(value)!="undefined")
{return string;}
return string.toString().substring(0,max)};KOBJ.parseURL=function(url){var a=KOBJ.document.createElement('a');a.href=url;return{source:url,protocol:a.protocol.replace(':',''),host:a.hostname,port:a.port,query:a.search,params:(function(){var ret={},seg=a.search.replace(/^\?/,'').split('&'),len=seg.length,i=0,s;for(;i<len;i++){if(!seg[i]){continue;}
s=seg[i].split('=');ret[s[0]]=s[1];}
return ret;})(),file:(a.pathname.match(/\/([^\/?#]+)$/i)||[,''])[1],hash:a.hash.replace('#',''),path:a.pathname.replace(/^([^\/])/,'/$1'),relative:(a.href.match(/tps?:\/\/[^\/]+(.+)/)||[,''])[1],segments:a.pathname.replace(/^\//,'').split('/')};};KOBJ.url_from_hash=function(params,extra_spacing){var urls=[];var url="";$KOBJ.each(params,function(name,value){var f_value=""+((value!=null&&typeof(value)!="undefined")?value:"");if((url.length+f_value.length+name.length+extra_spacing)<KOBJ.max_url_length()){url+="&"+name+"="+f_value;}
else{urls.push(url);url="";}});if(url.length!=0){urls.push(url);}
return urls;};KOBJ.parseURLParams=function(param_string){var ret={};var seg=param_string.replace(/^\?/,'').split('&');var len=seg.length;var i=0;var s=null;for(;i<len;i++){if(!seg[i]){continue;}
s=seg[i].split('=');ret[s[0]]=s[1];}
return ret;};KOBJ.urlDecode=function(psEncodeString){var lsRegExp=/\+/g;return unescape(String(psEncodeString).replace(lsRegExp," "));};KOBJ.max_url_length=function()
{if($KOBJ.browser.msie)
return 1500;else
return 3500;};window.Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(input){return window.atob(input);var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=Base64._utf8_encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}
output=output+
this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2)+
this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4);}
return output;},decode:function(input){return window.btoa(input);var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=this._keyStr.indexOf(input.charAt(i++));enc2=this._keyStr.indexOf(input.charAt(i++));enc3=this._keyStr.indexOf(input.charAt(i++));enc4=this._keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=Base64._utf8_decode(output);return output;},_utf8_encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;}};KOBJ.watchDOM=function(selector,callBackFunc,time,context){if(typeof(context)=="undefined"){context=KOBJ.document;}
if(!KOBJ.watcherRunning){KOBJ.itrace("Starting the DOM Watcher");var KOBJ_setInterval=0;if(typeof(setInterval_native)!="undefined"){KOBJ_setInterval=setInterval_native;}else{KOBJ_setInterval=setInterval;}
if(KOBJ.watcherRunning){clearInterval(KOBJ.watcherRunning);}
KOBJ.watcherData=KOBJ.watcherData||[];KOBJ.itrace("DOM Watcher Callback for new selector "+selector+" added");if($KOBJ(selector+" :first",context).length===0)
{KOBJ.itrace("DOM Watcher selector not found NOT enabling "+selector);setTimeout(function(){KOBJ.watchDOM(selector,callBackFunc,time,context);},1000);return;}
$KOBJ(selector+" :first",context).addClass("KOBJ_AjaxWatcher");var there=false;if($KOBJ(selector+" :first",context).is(".KOBJ_AjaxWatcher")){there=true;}
KOBJ.watcherData.push({"selector":selector,"callBacks":[callBackFunc],"there":there,"context":context});KOBJ.watcher=function(){$KOBJ(KOBJ.watcherData).each(function(){var data=this;var selectorExists=$KOBJ(data.selector,data.context).length;if(!selectorExists){return;}
var hasNotChanged=$KOBJ(data.selector+" :first",data.context).is(".KOBJ_AjaxWatcher");if(!data.there){$KOBJ(data.selector+" :first",data.context).addClass("KOBJ_AjaxWatcher");if($KOBJ(data.selector+" :first",data.context).is(".KOBJ_AjaxWatcher")){data.there=true;}else{data.there=false;}
hasNotChanged=false;}
if(!hasNotChanged&&data.there){$KOBJ(data.callBacks).each(function(){callBack=this;KOBJ.itrace("Running call back on selector "+data.selector);callBack();});$KOBJ(data.selector+" :first",data.context).addClass("KOBJ_AjaxWatcher");}});};KOBJ.watcherRunning=KOBJ_setInterval(KOBJ.watcher,time||500);}else{$KOBJ(KOBJ.watcherData).each(function(){var data=this;if(data.selector==selector&&data.context==context){data.callBacks.push(callBackFunc);$KOBJ(data.selector+" :first",data.context).addClass("KOBJ_AjaxWatcher");if($KOBJ(data.selector+" :first",data.context).is(".KOBJ_AjaxWatcher")){data.there=true;}else{data.there=false;}
KOBJ.itrace("DOM Watcher Callback for previous selector "+selector+" added");return false;}else{var there=false;if($KOBJ(selector+" :first",context).is(".KOBJ_AjaxWatcher")){there=true;}
KOBJ.watcherData.push({"selector":selector,"callBacks":[callBackFunc],"there":there,"context":context});$KOBJ(selector+" :first",context).addClass("KOBJ_AjaxWatcher");KOBJ.itrace("DOM Watcher Call for new selector "+selector+" added");}});}};KOBJDomWatch={};KOBJDomWatch.scopes={};KOBJDomWatch.get_dom_watch=function(name,condition_callback,change_delay){if(typeof(name)=="undefined"){name="general";}
if(typeof(condition_callback)=="undefined"||condition_callback==null)
{condition_callback=function(){return true;};}
var watcher=KOBJDomWatch.scopes[name];if(watcher!=null){KOBJ.loggers.domwatch.trace("Dom watch already exist for ",name);return watcher;}
watcher=new KOBJDomWatchWatcher(name,condition_callback,change_delay);KOBJDomWatch.scopes[name]=watcher;KOBJ.loggers.domwatch.trace("Timeout set to  "+watcher.change_deplay);setTimeout(function(){watcher.timeout_watcher();},watcher.change_deplay);return watcher;};function KOBJDomWatchWatcher(name,condition_callback,change_delay){this.name=name;this.condition_callback=condition_callback;if(typeof(change_delay)!="undefined")
{this.change_deplay=change_delay;}
else
{this.change_deplay=500;}
this.selector_data={};}
KOBJDomWatchWatcher.prototype.watch=function(selector,callback,app,optional_prehash){KOBJ.loggers.domwatch.trace("Adding to Watcher ",this.name,selector);if(this.selector_data[selector]==null){this.selector_data[selector]={pre_hash:(typeof(optional_prehash)=="undefined"?KOBJEventManager.content_change_hashcode(selector):optional_prehash),last_check:new Date().valueOf(),apps:{}};}
if(this.selector_data[selector]["apps"][app.app_id]==null){this.selector_data[selector]["apps"][app.app_id]={app:app,callbacks:[callback]};}
else{this.selector_data[selector]["apps"][app.app_id]["callbacks"].push(callback);}
var myself=this;};KOBJDomWatchWatcher.prototype.reset_selector_hash=function(){var myself=this;$KOBJ.each(this.selector_data,function(selector,selector_info){KOBJ.loggers.domwatch.trace("Selector hash is B "+selector+" - "+selector_info.pre_hash);selector_info.pre_hash=KOBJEventManager.content_change_hashcode(selector);KOBJ.loggers.domwatch.trace("Selector hash is A "+selector+" - "+selector_info.pre_hash);});};KOBJDomWatchWatcher.prototype.timeout_watcher=function(){var myself=this;KOBJ.loggers.domwatch.trace("Running new domwatch");$KOBJ.each(this.selector_data,function(selector,selector_info){current_hash=KOBJEventManager.content_change_hashcode(selector);KOBJ.loggers.domwatch.trace("Old hash: "+selector_info.pre_hash+" new Hash : "+current_hash);if(current_hash!=selector_info.pre_hash){if(myself.condition_callback&&myself.condition_callback()){$KOBJ.each(selector_info["apps"],function(app_id,app_data){var cnt=1;$KOBJ.each(app_data["callbacks"],function(index){KOBJ.loggers.domwatch.trace("Fire call back for "+app_id+" "+cnt);this();KOBJ.loggers.domwatch.trace("Call Back Completed "+app_id+" "+cnt);});});}}});$KOBJ(KOBJ.document).ready(function(){if(myself.condition_callback&&myself.condition_callback()){myself.reset_selector_hash();}
KOBJ.loggers.domwatch.trace("Timeout set to  "+myself.change_deplay);setTimeout(function(){myself.timeout_watcher();},myself.change_deplay);});};KOBJ.maxURLLength=1800;KOBJ.splitJSONRequest=function(json,maxLength,url){var jsonString=$KOBJ.compactJSON(json);var numOfRequests=Math.ceil((jsonString.length+url.length)/maxLength);KOBJ.log("The number of requests to be made is: "+numOfRequests);if(numOfRequests>1){KOBJ.log("The length of the annotation request would be too large. Splitting into "+numOfRequests+" requests.");var toReturn=[];var count=1;$KOBJ.each(json,function(index){var object=this;var number=count++%(numOfRequests);toReturn[number]=toReturn[number]||{};toReturn[number][index]=object;});return toReturn;}else{return[json];}};KOBJ.getJSONP=function(url,data,cb){KOBJ.log("getJSON with JSONP");$KOBJ.getJSON(url,data,cb);};KOBJ.annotate_local_search_extractdata=function(toAnnotate,config){var annotateData={};var phoneSelector=config.domains[window.location.host].phoneSel;var urlSelector=config.domains[window.location.host].phoneSel;var phoneTemp=$KOBJ(toAnnotate).find(phoneSelector).text().replace(/[\u00B7() -]/g,"");var urlTemp=$KOBJ(toAnnotate).find(urlSelector).attr("href");if(!urlTemp){urlTemp=$KOBJ(toAnnotate).find(".url, cite").text();if(!urlTemp){urlTemp=$KOBJ(toAnnotate).find("li:eq(1) a").attr("href");}
}
if(urlTemp){annotateData["url"]=urlTemp;annotateData["domain"]=KOBJ.get_host(urlTemp);}else{annotateData["url"]="";annotateData["domain"]="";}
if(phoneTemp===""){phoneTemp=$KOBJ(toAnnotate);phoneTemp=phoneTemp.text().match(/\(\d{3}\)\s\d{3}-\d{4}/,"$1");if(phoneTemp!==null){phoneTemp=phoneTemp[0];phoneTemp=phoneTemp.replace(/[() -]/g,"");}}
var heightTemp=$KOBJ(toAnnotate).height();if(phoneTemp!==null){annotateData["phone"]=phoneTemp;}else{annotateData["phone"]="";}
annotateData["height"]=heightTemp;return annotateData;};KOBJ.annotate_local_search_defaults={"name":"KOBJL","domains":{"www.google.com":{"selector":".localbox .ts .g table+div,.g>.ts>tbody>tr>td:has(cite):not(:has(table)):not(:has(div)),#results td:last-child:has(h4):not(:has(table)):has(cite),.g table.ts tr td:last:not(:has(img)):has(cite),.g>table tbody tr td:has(h3):has(cite),.g>table tbody tr td table tr:has(.fl):has(cite)","watcher":"#rso","phoneSel":".nobr","urlSel":".l"},"search.yahoo.com":{"selector":".res.sc-ng.sc-lc-bz-m div.content>ol>li,#yls-rs-res tbody tr .yls-rs-bizinfo,.vcard","watcher":"","phoneSel":"[id *= lblPhone]","urlSel":".yschttl"},"www.bing.com":{"selector":".sc_ol1li, #srs_orderedList>.llsResultItem","watcher":"","phoneSel":".sc_hl1 li>:not(a)","urlSel":".nc_tc a, .sb_tlst a"},"maps.google.com":{"selector":"#resultspanel .res div.one:visible","watcher":"#spsizer .opanel:visible","phoneSel":".tel","urlSel":".fn.org"},"local.yahoo.com":{"selector":"#yls-rs-res tr.yls-rs-listinfo","watcher":"","phoneSel":".tel","urlSel":".yls-rs-listing-title"}}};KOBJ.annotate_local_search_results=function(annotate,config,cb){var defaults=$KOBJ.extend(true,{},KOBJ.annotate_local_search_defaults);if(typeof config==='object'){$KOBJ.extend(true,defaults,config);}
if(defaults["domains"][window.location.hostname]){var lister=defaults["domains"][window.location.hostname]["selector"];var watcher=defaults["domains"][window.location.hostname]["watcher"];}else{return;}
var runAnnotateLocal=null;if(defaults["remote"]){var remote_url=defaults["remote"];KOBJ.annotate_local_counter=KOBJ.annotate_local_counter||0;var maxLengthURL=KOBJ.maxURLLength;runAnnotateLocal=function(){var count=0;var annotateFuncLocal=function(){};if(annotate){annotateFuncLocal=annotate;}else{annotateFuncLocal=function(data){return data;};}
function annotateCBLocal(data){$KOBJ.each(data,function(key,data){var contents=annotateFuncLocal(data);if(contents){$KOBJ("."+key+" :last").after(contents);count++;}});cb();}
var annotateInfo={};$KOBJ(lister).each(function(){var toAnnotate=this;var itemCounter=defaults["name"]+(KOBJ.annotate_local_counter+=1);annotateInfo[itemCounter]=KOBJ.annotate_local_search_extractdata(toAnnotate,defaults);$KOBJ(toAnnotate).addClass(itemCounter);});var annotateArray=KOBJ.splitJSONRequest(annotateInfo,maxLengthURL,remote_url);$KOBJ.each(annotateArray,function(key,data){var annotateString=$KOBJ.compactJSON(data);KOBJ.getJSONP(remote_url,{'annotatedata':annotateString},annotateCBLocal);});KOBJ.logger('annotated_local_search_results',config['txn_id'],count,'','success',config['rule_name'],config['rid']);};}else{runAnnotateLocal=function(){var resultslist=$KOBJ(lister);if(resultslist.length===0){return;}
var count=0;$KOBJ(resultslist).each(function(){var toAnnotate=this;var extractedData=KOBJ.annotate_local_search_extractdata(toAnnotate,defaults);$KOBJ.each(extractedData,function(name,value){$KOBJ(toAnnotate).data(name,value);});var contents=annotate(toAnnotate);if(contents){count++;$KOBJ(":last",this).after(contents);}});KOBJ.logger('annotated_search_results',config['txn_id'],count,'','success',config['rule_name']);cb();};}
runAnnotateLocal();if(typeof(watcher)!="undefined"){KOBJ.watchDOM(watcher,runAnnotateLocal);}};KOBJ.annotate_search_defaults={"name":"KOBJ","sep":"<div style='padding-top: 13px'>|</div>","text_color":"#CCC","height":"40px","left_margin":"15px","right_padding":"15px","font_size":"12px","font_family":"Verdana, Geneva, sans-serif","placement":'prepend',"outer_div_css":0,"inner_div_css":0,"li_css":0,"ul_css":0,"results_lister":"","element_to_modify":"div.s,div.abstr,p","domains":{"www.google.com":{"selector":"li.g:not(.localbox), div.g","modify":"div.s","watcher":"#rso","urlSel":".l"},"www.bing.com":{"selector":"#results>ul>li","modify":"p","watcher":"","urlSel":".nc_tc a, .sb_tlst a"},"search.yahoo.com":{"selector":"li div.res","modify":"div.abstr","watcher":"","urlSel":".yschttl"}}};KOBJ.annotate_search_extractdata=function(toAnnotate,config){var annotateData={};var urlSelector=config.domains[window.location.host].urlSel;var urlTemp=$KOBJ(toAnnotate).find(urlSelector).attr("href");if(!urlTemp){urlTemp=$KOBJ(toAnnotate).find(".url, cite").attr("href");}
if(window.location.host=="search.yahoo.com"&&urlTemp.indexOf("**http")!=-1){urlTemp=urlTemp.replace(/.*\*\*/,"");urlTemp=urlTemp.replace(/%3a/,":");}
if(urlTemp){annotateData["url"]=urlTemp;annotateData["domain"]=KOBJ.get_host(urlTemp);}else{annotateData["url"]="";annotateData["domain"]="";}
return annotateData;};KOBJ.annotate_search_results=function(annotate,config,cb){var defaults=$KOBJ.extend(true,{},KOBJ.annotate_search_defaults);if(typeof config==='object'){$KOBJ.extend(true,defaults,config);}
defaults.outer_div_css={"float":"right","width":"auto","height":defaults.height,"font-size":defaults.font_size,"line-height":"normal","font-family":defaults.font_family};defaults.li_css={"float":"left","margin":"0","vertical-align":"middle","padding-left":"4px","color":defaults.text_color,"white-space":"nowrap","text-align":"center"};defaults.ul_css={"margin":"0","padding":"0","list-style":"none"};defaults.inner_div_css={"float":"left","display":"inline","height":defaults.height,"margin-left":defaults.left_margin,"padding-right":defaults.right_padding};if(typeof config==='object'){$KOBJ.extend(true,defaults,config);}
var lister="";var modify="";var watcher="";if(defaults["results_lister"]){lister=defaults["results_lister"];watcher="";modify=defaults["element_to_modify"];}else if(defaults["domains"][window.location.hostname]){lister=defaults["domains"][window.location.hostname]["selector"];watcher=defaults["domains"][window.location.hostname]["watcher"];modify=defaults["domains"][window.location.hostname]["modify"];}else{return;}
function mk_list_item(i){return $KOBJ("<li class='"+defaults.name+"_item'>").css(defaults.li_css).append(i);}
function mk_outer_div(anchor){var name=defaults.name;var logo_item=mk_list_item(anchor);var logo_list=$KOBJ('<ul>').css(defaults.ul_css).attr("id",name+"_anno_list").append(logo_item);var inner_div=$KOBJ('<div>').css(defaults.inner_div_css).append(logo_list);if(typeof defaults!='undefined'&&defaults['tail_image']){inner_div.css({"background-image":"url("+defaults['tail_image']+")","background-repeat":"no-repeat","background-position":"right top"});}
var outer_div=$KOBJ('<div>').css(defaults.outer_div_css).append(inner_div);if(typeof defaults!='undefined'&&defaults['head_image']){outer_div.css({"background-image":"url("+defaults['head_image']+")","background-repeat":"no-repeat","background-position":"left top"});}
return outer_div;}
var runAnnotate=null;if(defaults["remote"]){var remote_url=defaults["remote"];var maxLengthURL=KOBJ.maxURLLength;KOBJ.annotate_search_counter=KOBJ.annotate_search_counter||0;runAnnotate=function(){var resultslist=$KOBJ(lister);if(resultslist.length===0){return;}
var count=0;var annotateInfo={};resultslist.each(function(){var toAnnotate=this;var itemCounter=defaults['name']+(KOBJ.annotate_search_counter+=1);annotateInfo[itemCounter]=KOBJ.annotate_search_extractdata(toAnnotate,defaults);$KOBJ(toAnnotate).addClass(itemCounter);});var annotateFunc=function(){};if(annotate){annotateFunc=annotate;}else{annotateFunc=function(data){return data;};}
function annotateCB(data){$KOBJ.each(data,function(key,data){var contents=annotateFunc(data);if(contents){if($KOBJ("."+key).find('#'+defaults.name+'_anno_list li').is('.'+defaults.name+'_item')){$KOBJ("."+key).find('#'+defaults.name+'_anno_list').append(mk_list_item(defaults.sep)).append(mk_list_item(contents));}else{$KOBJ("."+key).find(modify)[defaults.placement](mk_outer_div(contents));}}
count++;});}
var annotateArray=KOBJ.splitJSONRequest(annotateInfo,maxLengthURL,remote_url);$KOBJ.each(annotateArray,function(key,data){var annotateString=$KOBJ.compactJSON(data);KOBJ.getJSONP(remote_url,{'annotatedata':annotateString},annotateCB);});KOBJ.logger('annotated_search_results',config['txn_id'],count,'','success',config['rule_name'],config['rid']);cb();};}else{runAnnotate=function(){var count=0;var resultslist=$KOBJ(lister);if(resultslist.length===0){return;}
resultslist.each(function(){var toAnnotate=this;var extractedData=KOBJ.annotate_search_extractdata(toAnnotate,defaults);$KOBJ.each(extractedData,function(name,value){$KOBJ(toAnnotate).data(name,value);});var contents=annotate(toAnnotate);if(contents){count++;if($KOBJ(toAnnotate).find('#'+defaults.name+'_anno_list li').is('.'+defaults.name+'_item')){$KOBJ(toAnnotate).find('#'+defaults.name+'_anno_list').append(mk_list_item(defaults.sep)).append(mk_list_item(contents));}else{$KOBJ(toAnnotate).find(modify)[defaults.placement](mk_outer_div(contents));}}});KOBJ.logger('annotated_search_results',config['txn_id'],count,'','success',config['rule_name'],config['rid']);cb();};}
runAnnotate();if(typeof(watcher)!="undefined"){KOBJ.watchDOM(watcher,runAnnotate);}};KOBJ.search_percolate={};KOBJ.search_percolate.defaults={};KOBJ.search_percolate.ajax=false;KOBJ.search_percolate.defaults={"name":"KOBJ","sep":"<div></div>","text_color":"#CCC","height":"100px","font_size":"12px","class":"KOBJ_item","font_family":"Verdana, Geneva, sans-serif","title":"Percolation Results","site":{"www.google.com":{"parem":"start","mainSelector":"#res  ol:first","backupSelector":"#mbEnd","resultNumParem":"num=90","resultElement":"li.g, div.g","classes":"","actionMain":"before","actionBackup":"after","watcher":"#rso","urlSel":".l","seperator_css":{},"div_css":{},"ol_css":{"display":"block","padding-top":"0px","list-style":"none","padding-left":"0px"}},"www.bing.com":{"parem":"first","mainSelector":"#results ul:first","backupSelector":".sb_ph","resultNumParem":"count=100","resultElement":"#results>ul>li","actionMain":"prepend","classes":"sa_cc","actionBackup":"before","watcher":"","urlSel":".nc_tc a, .sb_tlst a","seperator_css":{},"div_css":{},"ol_css":{"display":"block","padding-top":"18px","list-style":"none","padding-left":"0px"}},"search.yahoo.com":{"parem":"b","mainSelector":"#web ol:first","backupSelector":"#main","resultNumParem":"n=100","resultElement":"#web ol>li","actionMain":"prepend","actionBackup":"prepend","watcher":"","classes":"","urlSel":".yschttl","seperator_css":{},"div_css":{"padding-bottom":"0px","padding-left":"0px","padding-right":"5px","max-width":"48em","min-height":"75px"},"ol_css":{"display":"block","padding-top":"0px","list-style":"none","padding-left":"0px"}}}};KOBJ.search_percolate.extractdata=function(toPercolate,config){var percolateData={};var urlSelector=config.site[window.location.host].urlSel;var urlTemp=$KOBJ(toPercolate).find(urlSelector).attr("href");if(!urlTemp){urlTemp=$KOBJ(toPercolate).find(".url, cite").attr("href");}
if(window.location.host=="search.yahoo.com"&&urlTemp.indexOf("**http")!=-1){urlTemp=urlTemp.replace(/.*\*\*/,"");urlTemp=urlTemp.replace(/%3a/,":");}
if(urlTemp){percolateData["url"]=urlTemp;percolateData["domain"]=KOBJ.get_host(urlTemp);}else{percolateData["url"]="";percolateData["domain"]="";}
return percolateData;};KOBJ.percolate=function(selector,config){try{var defaults=$KOBJ.extend(true,{},KOBJ.search_percolate.defaults);if(typeof config==='object'){$KOBJ.extend(true,defaults,config);}
var site_defaults=defaults.site[window.location.host];function percolate_search_results(selector,config){var defaults=$KOBJ.extend(true,{},KOBJ.search_percolate.defaults);if(typeof config==='object'){$KOBJ.extend(true,defaults,config);}
if(KOBJ.search_percolate.ajax){$KOBJ(".KOBJ_Moved").remove();KOBJ.search_percolate.ajax=false;}
site_defaults=defaults.site[window.location.host];function move_item(obj){var append_to=null;if($KOBJ(".KOBJ_Moved").length!==0)
{$KOBJ(".KOBJ_Moved:last").after($KOBJ(obj));$KOBJ(obj).addClass("KOBJ_Moved");}
else
{$KOBJ(obj).addClass("KOBJ_Moved");$KOBJ(site_defaults.mainSelector).prepend($KOBJ(obj));}}
function serpslurp(){var cloc=document.location.toString();if(cloc.search(/#/)&&KOBJ.document.location.host=="www.google.com"){cloc=cloc.replace(/http:\/\/www.google.com\/(.*?)#/,"http://www.google.com/search?").replace(/&aq.*?&/,"&").replace(/&aqo.*?&/,"&").replace(/&aql.*?&/,"&").replace(/fp.*?/,"&").replace(/&oq.*?&/,"&").replace(/&aqi.*?&/,"&");}
var nextParem=site_defaults.parem;var regExp=new RegExp("("+nextParem+")=(\\d+)");var m;var start=0;try{m=cloc.match(regExp);start=parseInt(m[2],10);}catch(err){}
var next=(start+10).toString();if(m){cloc=cloc.replace(regExp,nextParem+"="+next);}else{cloc=cloc+"&"+nextParem+"="+next;}
try{m=cloc.match(regExp);start=parseInt(m[2],10);}catch(err){}
next=(start+10).toString();if(m){cloc=cloc.replace(regExp,nextParem+"="+next);}else{cloc=cloc+"&"+nextParem+"="+next;}
cloc+="&"+site_defaults.resultNumParem;return cloc;}
$KOBJ(site_defaults.resultElement).each(function(){var data=this;if($KOBJ(data).hasClass("KOBJ_Moved")||$KOBJ(data).hasClass("localbox"))
return true;var extractedData=KOBJ.search_percolate.extractdata(data,defaults);$KOBJ.each(extractedData,function(name,value){$KOBJ(data).data(name,value);});if(selector(data)){move_item(data);}});var next_search_result=KOBJ.ajax(serpslurp(),false);$KOBJ(site_defaults.resultElement,next_search_result).each(function(){var data=this;if($KOBJ(data).hasClass("KOBJ_Moved")||$KOBJ(data).hasClass("localbox"))
return true;var extractedData=KOBJ.search_percolate.extractdata(data,defaults);$KOBJ.each(extractedData,function(name,value){$KOBJ(data).data(name,value);});if(selector(data)){move_item(data);}});}
percolate_search_results(selector,config);var watcher=defaults.site[window.location.host].watcher;if(watcher){KOBJ.watchDOM(watcher,function(){KOBJ.search_percolate.ajax=true;percolate_search_results(selector,config);});}}catch(error){KOBJ.log("Percolation error: ");KOBJ.log(error.message);}};(function(b){var a={width:800,height:600,overlayOpacity:0.85,id:"modal",src:function(c){return jQuery(c).attr("href")},fadeInSpeed:0,fadeOutSpeed:0};b.modal=function(c){return _modal(this,c)};b.modal.open=function(){_modal.open()};b.modal.close=function(){_modal.close()};b.fn.modal=function(c){return _modal(this,c)};_modal=function(c,d){this.options={parent:null,overlayOpacity:null,id:null,content:null,width:null,height:null,modalClassName:null,imageClassName:null,closeClassName:null,overlayClassName:null,src:null};this.options=b.extend({},options,_defaults);this.options=b.extend({},options,a);this.options=b.extend({},options,d);this.close=function(){jQuery("."+options.modalClassName+", ."+options.overlayClassName).fadeOut(a.fadeOutSpeed,function(){jQuery(this).unbind().remove()})};this.open=function(){if(typeof options.src=="function"){options.src=options.src(c)}else{options.src=options.src||_defaults.src(c)}var e=/^.+\.((jpg)|(gif)|(jpeg)|(png)|(jpg))$/i;var f="";if(e.test(options.src)){f='<div class="'+options.imageClassName+'"><img src="'+options.src+'"/></div>'}else{f='<iframe width="'+options.width+'" height="'+options.height+'" frameborder="0" scrolling="no" allowtransparency="true" src="'+options.src+'"></iframe>'}options.content=options.content||f;if(jQuery("."+options.modalClassName).length&&jQuery("."+options.overlayClassName).length){jQuery("."+options.modalClassName).html(options.content)}else{$overlay=jQuery((_isIE6())?'<iframe src="BLOCKED SCRIPT\'<html></html>\';" scrolling="no" frameborder="0" class="'+options.overlayClassName+'"></iframe><div class="'+options.overlayClassName+'"></div>':'<div class="'+options.overlayClassName+'"></div>');$overlay.hide().appendTo(options.parent);$modal=jQuery('<div id="'+options.id+'" class="'+options.modalClassName+'" style="width:'+options.width+"px; height:"+options.height+"px; margin-top:-"+(options.height/2)+"px; margin-left:-"+(options.width/2)+'px;">'+options.content+"</div>");$modal.hide().appendTo(options.parent);$close=jQuery('<a class="'+options.closeClassName+'"></a>');$close.appendTo($modal);var g=_getOpacity($overlay.not("iframe"))||options.overlayOpacity;$overlay.fadeTo(0,0).show().not("iframe").fadeTo(a.fadeInSpeed,g);$modal.fadeIn(a.fadeInSpeed);$close.click(function(){jQuery.modal().close()});$overlay.click(function(){jQuery.modal().close()})}};return this};_isIE6=function(){if(document.all&&document.getElementById){if(document.compatMode&&!window.XMLHttpRequest){return true}}return false};_getOpacity=function(c){$sender=jQuery(c);opacity=$sender.css("opacity");filter=$sender.css("filter");if(filter.indexOf("opacity=")>=0){return parseFloat(filter.match(/opacity=([^)]*)/)[1])/100}else{if(opacity!=""){return opacity}}return""};_defaults={parent:"body",overlayOpacity:85,id:"modal",content:null,width:800,height:600,modalClassName:"modal-window",imageClassName:"modal-image",closeClassName:"close-window",overlayClassName:"modal-overlay",src:function(c){return jQuery(c).attr("href")}}})($KOBJ);(function($){$.fn.tabSlideOut=function(callerSettings){var settings=$.extend({tabHandle:'.handle',speed:300,action:'click',tabLocation:'left',topPos:'200px',leftPos:'20px',fixedPosition:false,positioning:'absolute',pathToTabImage:null,imageHeight:null,imageWidth:null,onLoadSlideOut:false},callerSettings||{});settings.tabHandle=$(settings.tabHandle);var obj=this;obj.bgiframe();if(settings.fixedPosition===true){settings.positioning='fixed';}else{settings.positioning='absolute';}
if($KOBJ.browser.msie&&($KOBJ.browser.version.substr(0,1)<7||document.compatMode=="BackCompat")){settings.positioning='absolute';}
if(settings.pathToTabImage!=null){settings.tabHandle.css({'background':'url('+settings.pathToTabImage+') no-repeat','width':settings.imageWidth,'height':settings.imageHeight});}
var tempCSS=$.extend({'display':'block','textIndent':'-99999px','outline':'none','z-index':'99999','position':'absolute'},settings.linkCSS,true);settings.tabHandle.css(tempCSS);obj.css({'line-height':'1','position':settings.positioning});var properties={containerWidth:parseInt(obj.outerWidth(),10)+'px',containerHeight:parseInt(obj.outerHeight(),10)+'px',tabWidth:parseInt(settings.tabHandle.outerWidth(),10)+'px',tabHeight:parseInt(settings.tabHandle.outerHeight(),10)+'px'};if(settings.tabLocation==='top'||settings.tabLocation==='bottom'){obj.css({'left':settings.leftPos});settings.tabHandle.css({'right':0});}
if(settings.tabLocation==='top'){obj.css({'top':'-'+properties.containerHeight});settings.tabHandle.css({'bottom':'-'+properties.tabHeight});}
if(settings.tabLocation==='bottom'){obj.css({'bottom':'-'+properties.containerHeight,'position':'fixed'});settings.tabHandle.css({'top':'-'+properties.tabHeight});}
if(settings.tabLocation==='left'||settings.tabLocation==='right'){obj.css({'height':properties.containerHeight,'top':settings.topPos});settings.tabHandle.css({'top':0});}
if(settings.tabLocation==='left'){obj.css({'left':'-'+properties.containerWidth});settings.tabHandle.css({'right':'-'+properties.tabWidth});}
if(settings.tabLocation==='right'){obj.css({'right':'-'+properties.containerWidth});settings.tabHandle.css({'left':'-'+properties.tabWidth});$('html').css('overflow-x','hidden');}
settings.tabHandle.click(function(event){event.preventDefault();});var slideIn=function(){if(settings.tabLocation==='top'){obj.animate({top:'-'+properties.containerHeight},settings.speed).removeClass('open');}else if(settings.tabLocation==='left'){obj.animate({left:'-'+properties.containerWidth},settings.speed).removeClass('open');}else if(settings.tabLocation==='right'){obj.animate({right:'-'+properties.containerWidth},settings.speed).removeClass('open');}else if(settings.tabLocation==='bottom'){obj.animate({bottom:'-'+properties.containerHeight},settings.speed).removeClass('open');}};var slideOut=function(){if(settings.tabLocation=='top'){obj.animate({top:'-3px'},settings.speed).addClass('open');}else if(settings.tabLocation=='left'){obj.animate({left:'-3px'},settings.speed).addClass('open');}else if(settings.tabLocation=='right'){obj.animate({right:'-3px'},settings.speed).addClass('open');}else if(settings.tabLocation=='bottom'){obj.animate({bottom:'-3px'},settings.speed).addClass('open');}};var clickScreenToClose=function(){obj.click(function(event){event.stopPropagation();});$(document).click(function(){slideIn();});};var clickAction=function(){settings.tabHandle.click(function(event){if(obj.hasClass('open')){slideIn();}else{slideOut();}
eval(settings.callback);});clickScreenToClose();};var hoverAction=function(){obj.hover(function(){slideOut();},function(){slideIn();});settings.tabHandle.click(function(event){if(obj.hasClass('open')){slideIn();}});clickScreenToClose();};var slideOutOnLoad=function(){slideIn();setTimeout(slideOut,500);};if(settings.action==='click'){clickAction();}
if(settings.action==='hover'){hoverAction();}
if(settings.onLoadSlideOut){slideOutOnLoad();}};})($KOBJ);KOBJ.tabManager=KOBJ.tabManager||{};KOBJ.tabManager.tabs=KOBJ.tabManager.tabs||[];KOBJ.tabManager.defaults={"cssPlanted":false,"tabColor":"black","callback":"","divCSS":{},"measurementUnit":"px","tabClass":"handle","pathToTabImage":"http://k-misc.s3.amazonaws.com/actions/schedule.png","tabLocation":"right","speed":"300","run_in_iframe":false,"action":"click","fixedPosition":true,"imageHeight":"122px","imageWidth":"40px","topPos":"100px","width":"250px","padding":"10px","contentClass":"KOBJ_tab_content","mode":"slideout","url":"","height":"250px","linkContent":"Content","notificationDefaults":{"notifyClass":"notification","color":"red","leftPadding":"10px","topPadding":"2px","rightPadding":"10px","bottomPadding":"2px","divCSS":{"text-indent":"0px","-moz-border-radius":"20px","-webkit-border-radius":"20px","-khtml-border-radius":"20px","border-radius":"20px","text-align":"center","z-index":10000,"min-width":"15px","padding":"2px"}},"linkCSS":{"cursor":"pointer"}};KOBJ.tabManager.notification=function(config){var toAlter,alterNum;$KOBJ.each(KOBJ.tabManager.tabs,function(num){var object=this;if(object['name']==config['name']){toAlter=object;alterNum=num;return false;}});if(!toAlter){alterNum=0;toAlter=KOBJ.tabManager.tabs[0];}
if(!toAlter){return false;}
var defaults=$KOBJ.extend(true,{},toAlter['notificationDefaults']);if(typeof config==='object'){$KOBJ.extend(true,defaults,config);if(defaults.color){defaults.divCSS['background-color']=defaults.color;}}
if(typeof defaults.message!=='undefined'&&defaults.message!==null&&defaults.message!==''){var changeTo=defaults.message;}else{return false;}
try{var notification=$KOBJ(toAlter.tabContentClass+" ."+defaults.notifyClass);if(notification.length){if(changeTo===0||changeTo===''){$KOBJ(notification).hide();return true;}
$KOBJ(notification).html(changeTo).css(defaults.divCSS).show();return true;}
var tab=$KOBJ(toAlter.tabContentClass);var objCSS=$KOBJ.extend(true,{},defaults.divCSS);var splitArray=["imageHeight","imageWidth","topPos","leftPadding","rightPadding","topPadding","bottomPadding"];$KOBJ.each(splitArray,function(){var tempToSplit=this;var toSplit=toAlter[tempToSplit];if(!toSplit){toSplit=defaults[tempToSplit];var inDefaults=true;}
if(!toSplit){return;}
if(!toSplit.number){var number=parseInt(toSplit.replace(/(\d+).*/,"$1"),10);var unit=toSplit.replace(/.*\d+(.*)/,"$1");}
if(inDefaults){defaults[tempToSplit]={"number":number,"unit":unit};}else{toAlter[tempToSplit]={"number":number,"unit":unit};}});if(toAlter.tabLocation=="left"){objCSS.left=(toAlter.imageWidth.number-defaults.leftPadding.number)+defaults.leftPadding.unit;objCSS.top=(toAlter.topPos.number-defaults.topPadding.number)+defaults.topPadding.unit;}
if(toAlter.tabLocation=="right"){objCSS.right=(toAlter.imageWidth.number-defaults.rightPadding.number)+defaults.rightPadding.unit;objCSS.top=(toAlter.topPos.number-defaults.topPadding.number)+defaults.topPadding.unit;}
if(toAlter.tabLocation=="top"){objCSS.top=(toAlter.imageHeight.number-defaults.topPadding.number)+defaults.topPadding.unit;objCSS.right=(toAlter.topPos.number-defaults.rightPadding.number)+defaults.rightPadding.unit;}
if(toAlter.tabLocation=="bottom"){objCSS.bottom=(toAlter.imageHeight.number-defaults.topPadding.number)+defaults.bottomPadding.unit;objCSS.right=(toAlter.topPos.number-defaults.rightPadding.number)+defaults.rightPadding.unit;}
notification=$KOBJ("<div>").html(changeTo).css(objCSS).addClass(defaults.notifyClass);$KOBJ(toAlter.tabHandle).append(notification);return true;}catch(error){KOBJ.log(error);return false;}};KOBJ.tabManager.addNew=function(config){var defaults=$KOBJ.extend(true,{},KOBJ['tabManager']['defaults']);if(typeof config==='object'){jQuery.extend(true,defaults,config);if(defaults.tabColor){if(!$KOBJ.browser.msie){defaults.linkCSS["background-color"]=defaults.tabColor;}}}
if(defaults.run_in_iframe===false&&top!==self){return;}
var classToAdd="KOBJ_tab_"+Math.floor(Math.random()*9999999);var tabs=KOBJ.tabManager.tabs;var posToBe=parseInt(defaults['topPos'].replace(/(\d+).*/,"$1"),10);$KOBJ.each(tabs,function(key,object){if(object['tabLocation']==defaults['tabLocation']){posToBe+=$KOBJ(object['tabClass']).outerHeight()+parseInt(object['padding'].replace(/(\d+).*/,"$1"),10);}});defaults['topPos']=posToBe+defaults['measurementUnit'];KOBJ.itrace(defaults);var link="";if(defaults.message){var message=defaults.message;}else if(!defaults.url){return false;}
if(defaults['mode']=="lightbox"){if(!defaults.cssPlanted){KOBJ.css('.modal-overlay {position: fixed;top: 0;right: 0;bottom: 0;left: 0;height: 100%;width: 100%;margin: 0;padding: 0;background: #131313;opacity: .85;filter: alpha(opacity=85);z-index: 101;}.modal-window {position: fixed;top: 50%;left: 50%;margin: 0;padding: 0;z-index: 102;background: #fff;border: solid 8px #000;-moz-border-radius: 8px;-webkit-border-radius: 8px;}.close-window {position: absolute;width: 47px;height: 47px;right: -23px;top: -23px;background: transparent url(http:\/\/grigglee.com/random/fancybox/fancy_close.png) no-repeat scroll right top;text-indent: -99999px;overflow: hidden;cursor: pointer;}');KOBJ.tabManager.defaults.cssPlanted=true;}
if(defaults.url){defaults['src']=defaults.url;defaults['type']='iframe';}else{defaults['content']=message;}
var action=function(){$KOBJ(this).modal(defaults).open();eval(defaults.callback);return false;};link=$KOBJ('<a>').css(defaults['linkCSS']).bind(defaults['action'],action).addClass(classToAdd);var img=$KOBJ('<img>').attr('src',defaults['pathToTabImage']);var obj=$KOBJ(link).html(img);if(defaults['tabLocation']==='top'||defaults['tabLocation']==='bottom'){obj.css({'right':defaults['topPos']});}
if(defaults['tabLocation']==='top'){obj.css({'top':0,'position':'fixed'});}
if(defaults['tabLocation']==='bottom'){obj.css({'bottom':'0','position':'fixed'});}
if(defaults['tabLocation']==='left'||defaults['tabLocation']==='right'){obj.css({'top':defaults['topPos'],'position':'fixed'});}
if(defaults['tabLocation']==='left'){obj.css({'left':0,'position':'fixed'});}
if(defaults['tabLocation']==='right'){obj.css({'right':0,'position':'fixed'});$KOBJ('html').css('overflow-x','hidden');}
$KOBJ('body').append(obj);}else{if(defaults.url){var tempMessage=$KOBJ('<div>').addClass(defaults['contentClass']).css({"width":defaults['width'],"background-color":defaults['backgroundColor']}).css(defaults['divCSS']);link=$KOBJ('<a>').addClass(defaults['tabClass']).html(defaults['linkContent']);message=$KOBJ('<iframe>').attr('src',defaults.url).css({"width":defaults.width,"height":defaults.height});message=$KOBJ(tempMessage).append(link).append(message);message=$KOBJ(message).addClass(classToAdd);}else{var tempMessage=$KOBJ('<div>').addClass(defaults['contentClass']).css({"width":defaults['width'],"background-color":defaults['backgroundColor']}).css(defaults['divCSS']);link=$KOBJ('<a>').addClass(defaults['tabClass']).html(defaults['linkContent']);message=$KOBJ(tempMessage).append(link).append(message);message=$KOBJ(message).addClass(classToAdd);}}
defaults['tabClass']='.'+defaults['tabClass'];defaults['tabContentClass']='.'+classToAdd;if(defaults['mode']!="lightbox"){defaults['tabHandle']=defaults['tabContentClass']+">"+defaults['tabClass'];$KOBJ("body").append(message);$KOBJ(defaults['tabContentClass']).tabSlideOut(defaults);}else{defaults['tabHandle']=defaults['tabContentClass'];}
defaults.message=message;KOBJ.tabManager.tabs.push(defaults);};KOBJ.a41x88=KOBJ.a41x88||{};(function($){$.format=(function(){var parseMonth=function(value){switch(value){case"Jan":return"01";break;case"Feb":return"02";break;case"Mar":return"03";break;case"Apr":return"04";break;case"May":return"05";break;case"Jun":return"06";break;case"Jul":return"07";break;case"Aug":return"08";break;case"Sep":return"09";break;case"Oct":return"10";break;case"Nov":return"11";break;case"Dec":return"12";break;default:return value;}};var parseTime=function(value){var retValue=value;if(retValue.indexOf(".")!=-1){retValue=retValue.substring(0,retValue.indexOf("."));}
var values3=retValue.split(":");if(values3.length==3){hour=values3[0];minute=values3[1];second=values3[2];return{time:retValue,hour:hour,minute:minute,second:second};}else{return{time:"",hour:"",minute:"",second:""};}};return{date:function(value,format){try{var values=value.split(" ");var year=null;var month=null;var dayOfMonth=null;var time=null;switch(values.length){case 6:year=values[5];month=parseMonth(values[1]);dayOfMonth=values[2];time=parseTime(values[3]);break;case 2:var values2=values[0].split("-");year=values2[0];month=values2[1];dayOfMonth=values2[2];time=parseTime(values[1]);break;default:return value;}
var pattern="";var retValue="";for(i=0;i<format.length;i++){var currentPattern=format.charAt(i);pattern+=currentPattern;switch(pattern){case"dd":retValue+=dayOfMonth;pattern="";break;case"mM":retValue+=month.replace(/0/,"");patern="";break;case"MM":retValue+=month;pattern="";break;case"yyyy":retValue+=year;pattern="";break;case"HH":retValue+=time.hour;pattern="";break;case"hh":retValue+=time.hour;pattern="";break;case"mm":retValue+=time.minute;pattern="";break;case"ss":retValue+=time.second;pattern="";break;case" ":retValue+=currentPattern;pattern="";break;case"/":retValue+=currentPattern;pattern="";break;case":":retValue+=currentPattern;pattern="";break;default:if(pattern.length==2&&pattern.indexOf("y")!=0){retValue+=pattern.substring(0,1);pattern=pattern.substring(1,2);}else if((pattern.length==3&&pattern.indexOf("yyy")==-1)){pattern="";}}}
return retValue;}catch(e){return value;}}};})();}($KOBJ));(function($){$.format=(function(){var parseMonth=function(value){switch(value){case"Jan":return"01";break;case"Feb":return"02";break;case"Mar":return"03";break;case"Apr":return"04";break;case"May":return"05";break;case"Jun":return"06";break;case"Jul":return"07";break;case"Aug":return"08";break;case"Sep":return"09";break;case"Oct":return"10";break;case"Nov":return"11";break;case"Dec":return"12";break;default:return value;}};var parseTime=function(value){var retValue=value;if(retValue.indexOf(".")!=-1){retValue=retValue.substring(0,retValue.indexOf("."));}
var values3=retValue.split(":");if(values3.length==3){hour=values3[0];minute=values3[1];second=values3[2];return{time:retValue,hour:hour,minute:minute,second:second};}else{return{time:"",hour:"",minute:"",second:""};}};return{date:function(value,format){try{var values=value.split(" ");var year=null;var month=null;var dayOfMonth=null;var time=null;switch(values.length){case 6:year=values[5];month=parseMonth(values[1]);dayOfMonth=values[2];time=parseTime(values[3]);break;case 2:var values2=values[0].split("-");year=values2[0];month=values2[1];dayOfMonth=values2[2];time=parseTime(values[1]);break;default:return value;}
var pattern="";var retValue="";for(i=0;i<format.length;i++){var currentPattern=format.charAt(i);pattern+=currentPattern;switch(pattern){case"dd":retValue+=dayOfMonth;pattern="";break;case"mM":retValue+=month.replace(/0/,"");patern="";break;case"MM":retValue+=month;pattern="";break;case"yyyy":retValue+=year;pattern="";break;case"HH":retValue+=time.hour;pattern="";break;case"hh":retValue+=time.hour;pattern="";break;case"mm":retValue+=time.minute;pattern="";break;case"ss":retValue+=time.second;pattern="";break;case" ":retValue+=currentPattern;pattern="";break;case"/":retValue+=currentPattern;pattern="";break;case":":retValue+=currentPattern;pattern="";break;default:if(pattern.length==2&&pattern.indexOf("y")!=0){retValue+=pattern.substring(0,1);pattern=pattern.substring(1,2);}else if((pattern.length==3&&pattern.indexOf("yyy")==-1)){pattern="";}}}
return retValue;}catch(e){return value;}}};})();}($KOBJ));KOBJ.a41x88.forms=KOBJ.a41x88.forms||[];KOBJ.stateMap={"ALABAMA":"AL","ALASKA":"AK","AMERICAN SAMOA":"AS","ARIZONA":"AZ","ARKANSAS":"AR","CALIFORNIA":"CA","COLORADO":"CO","CONNECTICUT":"CT","DELAWARE":"DE","DISTRICT OF COLUMBIA":"DC","FEDERATED STATES OF MICRONESIA":"FM","FLORIDA":"FL","GEORGIA":"GA","GUAM":"GU","HAWAII":"HI","IDAHO":"ID","ILLINOIS":"IL","INDIANA":"IN","IOWA":"IA","KANSAS":"KS","KENTUCKY":"KY","LOUISIANA":"LA","MAINE":"ME","MARSHALL ISLANDS":"MH","MARYLAND":"MD","MASSACHUSETTS":"MA","MICHIGAN":"MI","MINNESOTA":"MN","MISSISSIPPI":"MS","MISSOURI":"MO","MONTANA":"MT","NEBRASKA":"NE","NEVADA":"NV","NEW HAMPSHIRE":"NH","NEW JERSEY":"NJ","NEW MEXICO":"NM","NEW YORK":"NY","NORTH CAROLINA":"NC","NORTH DAKOTA":"ND","NORTHERN MARIANA ISLANDS":"MP","OHIO":"OH","OKLAHOMA":"OK","OREGON":"OR","PALAU":"PW","PENNSYLVANIA":"PA","PUERTO RICO":"PR","RHODE ISLAND":"RI","SOUTH CAROLINA":"SC","SOUTH DAKOTA":"SD","TENNESSEE":"TN","TEXAS":"TX","UTAH":"UT","VERMONT":"VT","VIRGIN ISLANDS":"VI","VIRGINIA":"VA","WASHINGTON":"WA","WEST VIRGINIA":"WV","WISCONSIN":"WI","WYOMING":"WY"};KOBJ.countryCodes={"USA":{"Long":"United States of America","Short":"United States","CC":"US","CCC":"USA","cc":"us","ccc":"usa"}};KOBJ.creditCards={"Visa":{"CT":"VI","CCType":"Visa","CCTYPE":"VISA","VS":"VS"},"American Express":{"CT":"AX","CCType":"American Express","CCTYPE":"AMERICAN EXPRESS","VS":"AE"},"MasterCard":{"CT":"MC","CCType":"MasterCard","CCTYPE":"MASTERCARD","VS":"MC"},"Discover":{"CT":"DI","CCType":"Discover","CCTYPE":"DISCOVER","VS":"DC"}};KOBJ.StateToST=function(val){var lookedUp=KOBJ.stateMap[val.toUpperCase()];if(lookedUp){return lookedUp;}
return"";};KOBJ.countryCodeToCountry=function(val,format){var lookedUp=KOBJ.countryCodes[val][format];if(lookedUp){return lookedUp;}
return"";};KOBJ.creditCardFormatter=function(value,format){var lookedUp=KOBJ.creditCards[value][format];if(lookedUp){return lookedUp;}
return"";};KOBJ.setFormMaps=function(mapToPush){KOBJ.a41x88=KOBJ.a41x88||{};KOBJ.a41x88.forms=KOBJ.a41x88.forms||[];KOBJ.a41x88.forms.push(mapToPush);};KOBJ.fillFormsDefault={"fillCSS":{},"highlight-color":"#FFFFCC","cburl":"http://198.160.96.218:9070/monitor/MonitorFilter?"};KOBJ.formatData=function(formatpassed,valuepassed){var valToBe,tempVal;switch(formatpassed){case"area":valToBe=valuepassed.slice(0,3);break;case"first-3":valToBe=valuepassed.slice(3,6);break;case"last-4":valToBe=valuepassed.slice(6,10);break;case"last-7":valToBe=valuepassed.slice(3,10);break;case"all":valToBe=valuepassed;break;case"ST":valToBe=KOBJ.StateToST(valuepassed);break;case"State":valToBe=valuepassed;break;case"ST - State":valToBe=KOBJ.StateToST(valuepassed)+' - '+valuepassed;break;case"STATE":valToBe=valuepassed.toUpperCase();break;case"Long":valToBe=KOBJ.countryCodeToCountry(valuepassed,formatpassed);break;case"Short":valToBe=KOBJ.countryCodeToCountry(valuepassed,formatpassed);break;case"CC":valToBe=KOBJ.countryCodeToCountry(valuepassed,formatpassed);break;case"CCC":valToBe=KOBJ.countryCodeToCountry(valuepassed,formatpassed);break;case"cc":valToBe=KOBJ.countryCodeToCountry(valuepassed,formatpassed);break;case"ccc":valToBe=KOBJ.countryCodeToCountry(valuepassed,formatpassed);break;case"CCType":valToBe=KOBJ.creditCardFormatter(valuepassed,formatpassed);break;case"CCTYPE":valToBe=KOBJ.creditCardFormatter(valuepassed,formatpassed);break;case"CT":valToBe=KOBJ.creditCardFormatter(valuepassed,formatpassed);break;case"VS":valToBe=KOBJ.creditCardFormatter(valuepassed,formatpassed);break;case"yy":valToBe=$KOBJ.format.date(valuepassed,"yyyy").slice(2,4);break;case"y,yyy":tempVal=$KOBJ.format.date(valuepassed,"yyyy");valToBe=tempVal.slice(0,1)+','+tempVal.slice(1);break;case"mM":tempVal=$KOBJ.format.date(valuepassed,"MM");if(tempVal[0]==0){valToBe=tempVal[1];}else{valToBe=tempVal;}
break;default:valToBe=$KOBJ.format.date(valuepassed,formatpassed);break;}
if(valToBe){return valToBe;}
return false;};KOBJ.fillForms=function(formData,configuration){var defaults=$KOBJ.extend(true,{},KOBJ.fillFormsDefault);if(typeof(configuration)==="object"){$KOBJ.extend(true,defaults,configuration);}
if(defaults["highlight-color"]){defaults.fillCSS["background-color"]=defaults["highlight-color"];}
var maxLengthURL=KOBJ.maxURLLength;var formMap=KOBJ.a41x88.forms[KOBJ.a41x88.forms.length-1];var stateArray=[];var errorState,anyError=false;var successes=0;var errors=0;$KOBJ.each(formMap,function(index,thismap){try{errorState=false;var selector=thismap.selector;var iframe=thismap.iframe;var mapTo=thismap.map;var format=thismap.format;var mapArray=mapTo.split(".");var value=formData[mapArray[0]][mapArray[1]];var element;if(iframe){KynetxFormDebug("Looking withing iframe"+iframe+" for selector "+selector);element=$KOBJ(iframe).contents().find(selector);}else{element=$KOBJ(selector);}
if(value){if(element.length){if(format){KynetxFormDebug("format: "+format+"\nvalue: "+value);value=KOBJ.formatData(format,value);}
if(value){element.val(value).css(defaults.fillCSS);if(defaults.nukeLables){$KOBJ("[for="+selector.replace(/#|\.|\[name=|\]/g,"")+"]").remove();}}else{throw"value formatting was bad";}
if(element.val()!=value||element.text()!=value){if(element[0].tagName==="SELECT"){$KOBJ.each(element.children(),function(){var select=$KOBJ(this);var selectVal=select.val();var text=select.text();var regex=new RegExp(value,"ig");if(text.search(regex)>-1||selectVal.search(regex)>-1){select.attr("selected","selected");}});}}
if(element.val()!=value||element.text()!=value){}else{KynetxFormDebug("Expected "+value+" got "+element.val());throw"form didn't fill as expected";}}else{throw"selector blank";}}else{throw"no data";}}catch(error){errorState=true;KynetxFormDebug("Error: ",error);if(error=="no data"){KynetxFormDebug("No data for "+thismap.map);}else{anyError=true;errors++;stateArray.push({"error":error,"selector":selector,"map":mapTo});}}
if(!errorState){KynetxFormDebug("Success for "+thismap.map);successes++;stateArray.push({"error":"none","selector":selector,"map":mapTo});}});KynetxFillResult({'success':successes,'failure':errors});var status='none';if(successes==formMap.length){status='full';}else if(successes>0){status='partial';}else if(successes===0&&formMap.length!==0){status='fail';}else if(formMap.length===0){status='none';}
var problemData='';$KOBJ.each(stateArray,function(index,data){if(index!=0){problemData+=",";}
if(data.error!="none"||data.error!="no data"){problemData+=data.map;}});if(anyError&&defaults.logurl){$K.getJSON(defaults.logurl+"callback=?&map=amazon&errors="+problemData,function(){});}
KOBJ.logger('form_fill',defaults['txn_id'],problemData,'',status,defaults['rule_name'],defaults['rid']);var annotateArray=KOBJ.splitJSONRequest(stateArray,maxLengthURL,'');$KOBJ.each(annotateArray,function(key,data){annotateString=$KOBJ.compactJSON(data);});};KOBJ.get_application=function(name){return KOBJ['applications'][name];};KOBJ.add_extra_page_var=function(key,value){if(key.match(":")==null&&key!='rids'&&key!='init'){KOBJ['extra_page_vars'][key]=value;}};KOBJ.extra_page_vars_as_url=function(){var param_str="";$KOBJ.each(KOBJ['extra_page_vars'],function(k,v){param_str+="&"+k+"="+v;});return param_str;};KOBJ.add_config_and_run=function(app_config){KOBJ.add_app_config(app_config);$KOBJ.each(app_config.rids,function(index,value){var app=KOBJ.get_application(value);app.reload();});};KOBJ.add_configs_and_run=function(app_configs){if(typeof(app_configs)=="unknown"){return;}
$KOBJ.each(app_configs,function(index){KOBJ.add_config_and_run(app_configs[index]);});};KOBJ.add_app_configs=function(app_configs){if(typeof(app_configs)=="unknown"){return;}
$KOBJ.each(app_configs,function(index){KOBJ.add_app_config(app_configs[index]);});};KOBJ.eval=function(app_config){KOBJ.log("!!!!! KOBJ.eval will be deprecated soon please change to. KOBJ.add_app_configs({config});KOBJ.get_application('appid').reload();");KOBJ.add_app_config(app_config);$KOBJ.each(app_config.rids,function(index,value){var app=KOBJ.get_application(value);app.reload();});};KOBJ.configure_kynetx=function(config){$KOBJ.each(config,function(k,v){KOBJ[k]=v;});};KOBJ.add_app_config=function(app_config){if(typeof(app_config)=="unknown"||!app_config.rids){return;}
if(typeof(app_config.init)=='object'){$KOBJ.each(app_config.init,function(k,v){KOBJ[k]=v;});}
$KOBJ.each(app_config.rids,function(index,value){var app=KOBJ.get_application(value);if(app!=null){app.update_from_config(app_config);}
else{app=new KrlApplication(value);app.update_from_config(app_config);KOBJ.applications[value]=app;KOBJ[value]={};}
});KOBJ.callback_url=KOBJ.proto()+KOBJ.callback_host+KOBJ.kns_port+"/callback/"+KOBJ.site_id();};KOBJ.reload=function(delay){KOBJ.log("!!!!! KOBJ.reload will be deprecated soon please change to. KOBJ.get_application('appid').reload();");$KOBJ.each(KOBJ.applications,function(name,id){var app=KOBJ.get_application(name);app.reload_later(delay);});};KOBJ.named_resources={"jquery_ui_js":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/jquery-ui-1.8.4.custom.min.js","jquery_ui_darkness_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_darkness/jquery-ui-1.8.4.custom.css","jquery_ui_lightness_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_lightness/jquery-ui-1.8.4.custom.css","jquery_ui_smoothness_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_smoothness/jquery-ui-1.8.4.custom.css","jquery_ui_start_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_start/jquery-ui-1.8.4.custom.css","jquery_ui_redmond_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_redmond/jquery-ui-1.8.4.custom.css","jquery_ui_sunny_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_sunny/jquery-ui-1.8.4.custom.css","jquery_ui_overcast_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_overcast/jquery-ui-1.8.4.custom.css","jquery_ui_le_frog_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_le_frog/jquery-ui-1.8.4.custom.css","jquery_ui_flicker_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_flicker/jquery-ui-1.8.4.custom.css","jquery_ui_pepper_grinder_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_pepper_grinder/jquery-ui-1.8.4.custom.css","jquery_ui_eggplan_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_eggplan/jquery-ui-1.8.4.custom.css","jquery_ui_dark_hive_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_dark_hive/jquery-ui-1.8.4.custom.css","jquery_ui_cupertino_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_cupertino/jquery-ui-1.8.4.custom.css","jquery_ui_south_street_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_south_street/jquery-ui-1.8.4.custom.css","jquery_ui_blitzer_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_blitzer/jquery-ui-1.8.4.custom.css","jquery_ui_humanity_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_humanity/jquery-ui-1.8.4.custom.css","jquery_ui_hot_sneaks_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_hot_sneaks/jquery-ui-1.8.4.custom.css","jquery_ui_excite_bike_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_excite_bike/jquery-ui-1.8.4.custom.css","jquery_ui_vader_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_vader/jquery-ui-1.8.4.custom.css","jquery_ui_dot_lov_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_dot_lov/jquery-ui-1.8.4.custom.css","jquery_ui_mint_choc_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_mint_choc/jquery-ui-1.8.4.custom.css","jquery_ui_black_tie_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_black_tie/jquery-ui-1.8.4.custom.css","jquery_ui_trontastic_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_trontastic/jquery-ui-1.8.4.custom.css","jquery_ui_swanky_purse_css":"https://kns-resources.s3.amazonaws.com/jquery_ui/1.8/css/ui_swanky_purse/jquery-ui-1.8.4.custom.css"};KOBJ.registerExternalResources=function(rid,resources){KOBJ.loggers.resources.trace("Registering external resources ",rid,resources);var resource_array=[];$KOBJ.each(resources,function(url,options){var name=null;if(url.indexOf("http")==-1||url.match(/^\[[a-zA-Z0-9 ]*\]/)){if(url.match(/^\[[a-zA-Z0-9 ]*\]/)){name=url.match(/\[[a-zA-Z0-9 ]*\]/)[0]
name=name.substring(1,name.length-1);url=url.substring(url.indexOf("]")+1,url.length);}
else
{url=KOBJ.named_resources[url];}}
url=KOBJ.proto()+url.substr(url.indexOf(":")+3,url.length);if(url&&KOBJ.external_resources[url]==null){if(typeof(options["type"])!="undefined"){var a_resource=new KrlExternalResource(url);a_resource.name=name;a_resource.css_selector=options["selector"];a_resource.type=options["type"];KOBJ.external_resources[url]=a_resource;resource_array.push(a_resource);a_resource.load();}}
else{resource_array.push(KOBJ.external_resources[url]);}});var app=KOBJ.get_application(rid);if(app){app.add_external_resources(resource_array);}
else{KOBJ.add_app_config({rids:[rid]});var app=KOBJ.get_application(rid);app.add_external_resources(resource_array);app.load_data_sets();}};KOBJ.registerDataSet=function(rid,datasets){var app=KOBJ.get_application(rid);if(app){app.store_data_sets(datasets);}
else{KOBJ.error("Ignoring Dataset for app "+rid+" App was not registered with runtime");}};KOBJ.clearExecutionDelay=function(rid){var app=KOBJ.get_application(rid);if(app!=null){app.delay_execution=false;}
app.run();};KOBJ.registerClosure=function(rid,data,guid){var app=KOBJ.get_application(rid);if(app){app.execute_closure(guid,data);}
else{KOBJ.add_app_config({rids:[rid]});var app=KOBJ.get_application(rid);app.execute_closure(guid,data);app.load_data_sets();}};KOBJ.runit=function(){$KOBJ.each(KOBJ.applications,function(index,app){app.run();});};KOBJ.logVerify=function(txn,appid,cluster){KOBJ.getwithimage(KOBJ.proto()+KOBJ.kverify_domain+"/log?txn="+txn+"&appid="+appid+"&cluster="+cluster);};KOBJ.proto=function(){if("http:"!=KOBJ.location('protocol')&&"https:"!=KOBJ.location('protocol')){return"https://";}
return(("https:"==KOBJ.location('protocol'))?"https://":"http://")};KOBJ.proto_elevate=function(src){if(KOBJ.location('protocol')=="https:"){return"https://"+src.substr(src.indexOf(":")+3,src.length);}
return src;};KOBJ.require=function(url,callback_params){if(typeof(callback_params)=="undefined"){callback_params={};}
if(KOBJ.in_bx_extention&&callback_params.data_type=="other"){if(typeof(KOBJ.async_url_request)!="undefined")
KOBJ.async_url_request(url,"KOBJ.url_loaded_callback",callback_params);else
async_url_request(url,"KOBJ.url_loaded_callback",callback_params);}else if(KOBJ.in_bx_extention){var params={};if(typeof(callback_params)!="undefined"){params=$KOBJ.extend({data_type:"js"},callback_params,true);}
if(typeof(KOBJ.async_url_request)!="undefined")
KOBJ.async_url_request(url,"KOBJ.url_loaded_callback",params);else
async_url_request(url,"KOBJ.url_loaded_callback",params);}
else if(!KOBJ.in_bx_extention&&callback_params.data_type=="img"){var r=document.createElement("img");r.src=url.substring(0,KOBJ.max_url_length());r.src=KOBJ.proto_elevate(r.src);var body=document.getElementsByTagName("body")[0]||document.getElementsByTagName("frameset")[0];if(body==null){KOBJ.error("Document body missing.  Browser is reloading page.");return;}
body.appendChild(r);}
else{var r=document.createElement("script");r.src=url.substring(0,KOBJ.max_url_length());r.src=KOBJ.proto_elevate(r.src);r.type="text/javascript";r.onload=r.onreadystatechange=KOBJ.url_loaded_callback;var body=document.getElementsByTagName("body")[0]||document.getElementsByTagName("frameset")[0];if(body==null){KOBJ.error("Document body missing.  Browser is reloading page.");return;}
body.appendChild(r);}};KOBJ.getwithimage=function(url){KOBJ.require(url,{data_type:"img"});};KOBJ.obs=function(type,attr,txn_id,name,sense,rule,rid){var elem;if(attr=='class'){elem='.'+name;}else if(attr=='id'){elem='#'+name;}else if(attr=='selector'){elem=name;}else{elem=name;}
if(type=='click'){$KOBJ(elem).live("click",function(e1){var tgt=$KOBJ(this);var b=tgt.attr('href')||'';KOBJ.logger("click",txn_id,name,b,sense,rule,rid);return true;});}else if(type=='change'){$KOBJ(elem).live("change",function(e1){KOBJ.logger("change",txn_id,name,'',sense,rule,rid);return true;});}};KOBJ.ajax=function(url,async_request,callback){var result_data=null;$KOBJ.ajax({url:url,success:function(result){if(!async_request){result_data=result;}
else{callback(result);}},async:async_request});return result_data;};KOBJ.get_host=function(s){var h="";try{h=s.match(/^(?:\w+:\/\/)?([\w-.]+)/)[1];}catch(err){}
return h;};KOBJ.url_loaded_callback=function(loaded_url,response,callback_params){if(typeof(loaded_url)!="undefined"&&typeof(callback_params)!="undefined"){if(callback_params.base64!=null){response=Base64.decode(response);}
switch(callback_params.data_type){case"js":eval(response);break;case"css":$KOBJ("head").append($KOBJ("<style>").text(response));break;case"other":if(KOBJ.external_resources[loaded_url]!=null){KOBJ.external_resources[loaded_url].data=response;}
break;}
if(KOBJ.external_resources[loaded_url]!=null){KOBJ.external_resources[loaded_url].did_load();}}
else{var done=false;if(!done&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){done=true;var url=null;if(typeof(this.src)!="undefined"){url=this.src;}
else{url=this.href;}
if(url==null){return;}
if(KOBJ.external_resources[url]!=null){KOBJ.external_resources[url].did_load();}
this.onload=this.onreadystatechange=null;}}};KOBJ.load_style_sheet_link=function(url){var head=KOBJ.document.getElementsByTagName('head')[0];var new_style_sheet=document.createElement("link");new_style_sheet.href=url;new_style_sheet.rel="stylesheet";new_style_sheet.type="text/css";head.appendChild(new_style_sheet);};KOBJ.siteIds=function(){return KOBJ.site_id();};KOBJ.site_id=function(){var ids=[];$KOBJ.each(KOBJ.applications,function(key,value){ids.push(key);});return ids.join(";");};KOBJ.errorstack_submit=function(key,e,rule_info){try{if(key==null){return;}
var prefix_text="_s="+key;prefix_text+="&_id="+KOBJEventManager.eid();if(KOBJ.in_bx_extention)
prefix_text+="&_r=json";else
prefix_text+="&_r=img";var browser_info=KRLSnoop.browser_info();var exception_info=KRLSnoop.exception_info(e);var st_url={};st_url.Msg=escape(KOBJ.safe_substring(exception_info.message,500));st_url.ScriptURL=escape(KOBJ.safe_substring(exception_info.script_url,500));st_url.UserAgent=escape(browser_info.nav.userAgent);st_url.URL=escape(KOBJ.safe_substring(KOBJ.document.location.href,500));st_url.Line=exception_info.lineNumber;st_url.Description=escape(KOBJ.safe_substring(exception_info.description,500));st_url.Arguments=escape(KOBJ.safe_substring(exception_info.arguments,500));st_url.Type=escape(exception_info.type);st_url.name=escape(exception_info.name);if(typeof(rule_info)!="undefined"){st_url.RuleName=escape(rule_info.name);st_url.RuleID=escape(rule_info.id);}
st_url.stack=escape(KOBJ.safe_substring(exception_info.stack,500));st_url.Platform=escape("JRT-"+window['kobj_ts']);st_url.AgtAppCodeName=escape(browser_info.nav.appCodeName);st_url.AgtAppName=escape(browser_info.nav.appName);st_url.AgtAppVer=escape(browser_info.nav.appVersion);st_url.AgtLang=escape(browser_info.nav.language);st_url.AgtCookiesEnable=escape(browser_info.nav.cookiesEnabled);st_url.AgtSysLanguage=escape(browser_info.nav.systemLanguage);st_url.AgtUsrLanguage=escape(browser_info.nav.userLanguage);st_url.ScrAHeight=escape(browser_info.screen.availHeight);st_url.ScrColorDepth=escape(browser_info.screen.colorDepth);st_url.ScrHeight=escape(browser_info.screen.height);st_url.ScrWidth=escape(browser_info.screen.width);st_url.ScrAWidth=escape(browser_info.screen.availWidth);st_url.ScrPixDep=escape(browser_info.screen.pixelDepth);var datatype=null;if(KOBJ.in_bx_extention)
datatype="js";else
datatype="img";var urls=KOBJ.url_from_hash(st_url,200);$KOBJ.each(urls,function(index){KOBJ.require("http://www.errorstack.com/submit?"+prefix_text+urls[index],{data_type:datatype});});}
catch(badex){KOBJ.loggers.general.error("Could not submit to errorstack ",e,badex);}};KOBJ.location=function(part){try{if(part=="href")return KOBJ.locationHref||KOBJ.document.location.href;if(part=="host")return KOBJ.locationHost||KOBJ.document.location.host;if(part=="protocol")return KOBJ.locationProtocol||KOBJ.document.location.protocol;if(part=="hash")return KOBJ.locationHash||KOBJ.document.location.hash;}catch(e){return part+"-unavailable";}};KOBJ.logger=function(type,txn_id,element,url,sense,rule,rid){var logger_url=KOBJ.callback_url+"?type="+
type+"&txn_id="+txn_id+"&element="+
element+"&sense="+sense+"&url="+escape(url)+"&rule="+rule;if(rid){logger_url+="&rid="+rid;var app=KOBJ.get_application(rid);if(app!=null)
logger_url+=app.page_vars_as_url();}
KOBJ.require(logger_url,{data_type:"other"});};KOBJ.log=function(){KOBJ.loggers.general.log(KOBJ.log4js.Level.INFO,arguments);};KOBJ.error=function(){KOBJ.loggers.general.log(KOBJ.log4js.Level.ERROR,arguments);};KOBJ.warning=function(){KOBJ.loggers.general.log(KOBJ.log4js.Level.WARN,arguments);};KOBJ.trace=function(){KOBJ.loggers.general.log(KOBJ.log4js.Level.TRACE,arguments);};KOBJ.itrace=function(){KOBJ.loggers.general.log(KOBJ.log4js.Level.TRACE,arguments);};KOBJ.run_when_ready=function(){if(typeof KOBJSandboxEnvironment==="undefined"||KOBJSandboxEnvironment!==true){if((typeof document.readyState!="undefined"&&document.readyState=="complete")||(typeof document.readyState=="undefined"&&(document.getElementsByTagName("body")[0]||document.body))){KOBJ.runit();}else{$KOBJ(KOBJ.runit);}}};KOBJEventManager={};KOBJEventManager.eid=function(){var adate=new Date();return adate.valueOf()+(Math.random()+"").substring(2);};KOBJEventManager.current_fires={};KOBJEventManager.events={};KOBJEventManager.content_changes_running={};KOBJEventManager.content_change_hashcodes={};KOBJEventManager.guid_list={};KOBJEventManager.event_fire_complete=function(guid,app)
{KOBJ.loggers.events.trace("Event Fire Complete "+guid);var guid_info=KOBJEventManager.guid_list[guid];if(!guid_info)
{return;}
if(guid_info.app.app_id!=app.app_id){KOBJ.error("Event transaction id was not registered to app: "+app.app_id+" - "+guid);return;}
delete KOBJEventManager.current_fires[guid_info.app.app_id][guid_info.event][guid_info.selector][guid];delete KOBJEventManager.guid_list[guid];if(guid_info.event=="content_change")
{delete KOBJEventManager.content_changes_running[guid];KOBJEventManager.update_content_change_hash();if($KOBJ.isEmptyObject(KOBJEventManager.content_changes_running))
{setTimeout(KOBJEventManager.content_change_checker,500);}}};KOBJEventManager.is_dup_event=function(event,selector,app)
{var found_event=false;if(event=="content_change"&&KOBJEventManager.current_fires[app.app_id]!=null)
{var app_fire=KOBJEventManager.current_fires[app.app_id][event];if(app_fire!=null&&app_fire[selector])
{found_event=true;}}
return found_event;};KOBJEventManager.add_to_fire_queue=function(guid,event,data,app)
{if(KOBJEventManager.is_dup_event(event,data.selector,app))
{KOBJ.loggers.events.trace("Dup Event "+event+" : "+app.app_id);return;}
KOBJ.loggers.events.trace("Adding Event "+event+" : "+app.app_id);if(KOBJEventManager.current_fires[app.app_id]==null)
{KOBJEventManager.current_fires[app.app_id]={};}
if(KOBJEventManager.current_fires[app.app_id][event]==null)
{KOBJEventManager.current_fires[app.app_id][event]={};}
if(KOBJEventManager.current_fires[app.app_id][event][data.selector]==null)
{KOBJEventManager.current_fires[app.app_id][event][data.selector]={};}
KOBJEventManager.current_fires[app.app_id][event][data.selector][guid]={};KOBJEventManager.current_fires[app.app_id][event][data.selector][guid]["submit_data"]=data.submit_data;KOBJEventManager.current_fires[app.app_id][event][data.selector][guid]["param_data"]=data.param_data;KOBJEventManager.current_fires[app.app_id][event][data.selector][guid]["selector"]=data.selector;var app_data=KOBJEventManager.current_fires[app.app_id][event][data.selector][guid];KOBJEventManager.guid_list[guid]={};KOBJEventManager.guid_list[guid]["app"]=app;KOBJEventManager.guid_list[guid]["event"]=event;KOBJEventManager.guid_list[guid]["selector"]=data.selector;if(event=="content_change")
{KOBJEventManager.content_changes_running[guid]=app;}
app.fire_event(event,app_data,guid,"web");};KOBJEventManager.hashCode=function(value){var hash=0;if(value.length===0)return hash;for(var i=0;i<value.length;i++){var cha=value.charCodeAt(i);hash=31*hash+cha;hash=hash&hash;}
return hash;};KOBJEventManager.content_change_hashcode=function(selector)
{if($KOBJ(selector).length>0)
{return KOBJEventManager.hashCode($KOBJ(selector).text());}
else
{return-1;}};KOBJEventManager.update_content_change_hash=function()
{$KOBJ.each(KOBJEventManager.events["content_change"],function(selector,event_data){if(!KOBJEventManager.content_change_hashcodes[selector])
{KOBJEventManager.content_change_hashcodes[selector]={};}
KOBJEventManager.content_change_hashcodes[selector]["prior_data_hash"]=KOBJEventManager.content_change_hashcode(selector);});};KOBJEventManager.content_change_checker=function()
{if(!$KOBJ.isEmptyObject(KOBJEventManager.content_changes_running))
{return;}
var any_fired=false;$KOBJ.each(KOBJEventManager.events["content_change"],function(selector,event_data){if(!KOBJEventManager.content_change_hashcodes[selector])
{KOBJEventManager.content_change_hashcodes[selector]={};}
var selector_data=KOBJEventManager.content_change_hashcodes[selector];if(!selector_data["prior_data_hash"]){selector_data["prior_data_hash"]=KOBJEventManager.content_change_hashcode(selector);}
else{if(selector_data["prior_data_hash"]!=KOBJEventManager.content_change_hashcode(selector)){selector_data["prior_data_hash"]=KOBJEventManager.content_change_hashcode(selector);KOBJEventManager.event_handler({"type":"content_change","data":{"selector":selector}});any_fired=true;}}});if(!any_fired)
{setTimeout(KOBJEventManager.content_change_checker,500);}};KOBJEventManager.register_interest=function(event,selector,application,config){var found_data=[];var start_content_timer=false;if($KOBJ.isEmptyObject(KOBJEventManager.events["content_change"])&&event=="content_change")
{start_content_timer=true;}
if(typeof(config)!="undefined")
{if(config["form_submit"]!=null&&config["form_submit"])
{KOBJEventManager.events[event][selector]["form_submit"]=true;}
if(typeof(config.param_data)!="undefined"&&config.param_data!=null){$KOBJ.each(config.param_data,function(name,v){found_data.push({name:name,value:v});});}}
if(KOBJEventManager.events[event]==null)
{KOBJEventManager.events[event]={};}
if($KOBJ.isEmptyObject(KOBJEventManager.events[event][selector]))
{KOBJEventManager.events[event][selector]={};if(event!="content_change"){$KOBJ(selector).live(event+"."+selector,{"selector":selector},KOBJEventManager.event_handler);}}
KOBJEventManager.events[event][selector][application.app_id]={};KOBJEventManager.events[event][selector][application.app_id]["app"]=application;KOBJEventManager.events[event][selector][application.app_id]["data"]={"param_data":found_data};if(start_content_timer)
{setTimeout(KOBJEventManager.content_change_checker,500);}};KOBJEventManager.deregister_interest=function(event,selector,application){if(KOBJEventManager.events[event][selector]!=null)
{delete KOBJEventManager.events[event][selector][application.app_id];if(event!="pageview"&&$KOBJ.isEmptyObject(KOBJEventManager.events[event][selector]))
{$KOBJ(selector).unbind(event+"."+selector);}}};KOBJEventManager.add_out_of_bound_event=function(application,event,auto_deregister,extra_data)
{KOBJEventManager.register_interest(event,"unknown",application,extra_data);var data={"type":event,"data":{"selector":"unknown"}};KOBJEventManager.event_handler(data);if(event=="pageview"||(typeof(auto_deregister)!=null&&auto_deregister))
{KOBJEventManager.deregister_interest(event,"unknown",application);}};KOBJEventManager.event_handler=function(event){var event_data=event.data;if(event.type=="submit")
{event_data["submit_data"]=$KOBJ(event_data.selector).serializeArray();}
$KOBJ.each(KOBJEventManager.events[""+event.type][event_data.selector],function(app_id,app_info){var current_guid=KOBJEventManager.eid();$KOBJ.extend(true,event_data,app_info.data);KOBJEventManager.add_to_fire_queue(current_guid,event.type,event_data,app_info.app);});if(event.type=="submit"){if(KOBJEventManager.events[event.type][event_data.selector]["form_submit"]!=null){return true;}
else{return false;}}
return true;};if(!Array.prototype.push){Array.prototype.push=function(){for(var i=0,len=arguments.length;i<len;i++){this[this.length]=arguments[i];}
return this.length;};}
if(!Array.prototype.shift){Array.prototype.shift=function(){if(this.length>0){var firstItem=this[0];for(var i=0,len=this.length-1;i<len;i++){this[i]=this[i+1];}
this.length=this.length-1;return firstItem;}};}
if(!Array.prototype.splice){Array.prototype.splice=function(startIndex,deleteCount){var itemsAfterDeleted=this.slice(startIndex+deleteCount);var itemsDeleted=this.slice(startIndex,startIndex+deleteCount);this.length=startIndex;var argumentsArray=[];for(var i=0,len=arguments.length;i<len;i++){argumentsArray[i]=arguments[i];}
var itemsToAppend=(argumentsArray.length>2)?itemsAfterDeleted=argumentsArray.slice(2).concat(itemsAfterDeleted):itemsAfterDeleted;for(i=0,len=itemsToAppend.length;i<len;i++){this.push(itemsToAppend[i]);}
return itemsDeleted;};}
var log4javascript;(function(){function isUndefined(obj){return typeof obj=="undefined";}
function EventSupport(){}
EventSupport.prototype={eventTypes:[],eventListeners:{},setEventTypes:function(eventTypesParam){if(eventTypesParam instanceof Array){this.eventTypes=eventTypesParam;this.eventListeners={};for(var i=0,len=this.eventTypes.length;i<len;i++){this.eventListeners[this.eventTypes[i]]=[];}}else{handleError("log4javascript.EventSupport ["+this+"]: setEventTypes: eventTypes parameter must be an Array");}},addEventListener:function(eventType,listener){if(typeof listener=="function"){if(!array_contains(this.eventTypes,eventType)){handleError("log4javascript.EventSupport ["+this+"]: addEventListener: no event called '"+eventType+"'");}
this.eventListeners[eventType].push(listener);}else{handleError("log4javascript.EventSupport ["+this+"]: addEventListener: listener must be a function");}},removeEventListener:function(eventType,listener){if(typeof listener=="function"){if(!array_contains(this.eventTypes,eventType)){handleError("log4javascript.EventSupport ["+this+"]: removeEventListener: no event called '"+eventType+"'");}
array_remove(this.eventListeners[eventType],listener);}else{handleError("log4javascript.EventSupport ["+this+"]: removeEventListener: listener must be a function");}},dispatchEvent:function(eventType,eventArgs){if(array_contains(this.eventTypes,eventType)){var listeners=this.eventListeners[eventType];for(var i=0,len=listeners.length;i<len;i++){listeners[i](this,eventType,eventArgs);}}else{handleError("log4javascript.EventSupport ["+this+"]: dispatchEvent: no event called '"+eventType+"'");}}};var applicationStartDate=new Date();var uniqueId="log4javascript_"+applicationStartDate.getTime()+"_"+
Math.floor(Math.random()*100000000);var emptyFunction=function(){};var newLine="\r\n";var pageLoaded=false;function Log4JavaScript(){}
Log4JavaScript.prototype=new EventSupport();log4javascript=new Log4JavaScript();log4javascript.version="1.4.1";log4javascript.edition="log4javascript";function toStr(obj){if(obj&&obj.toString){return obj.toString();}else{return String(obj);}}
function getExceptionMessage(ex){if(ex.message){return ex.message;}else if(ex.description){return ex.description;}else{return toStr(ex);}}
function getUrlFileName(url){var lastSlashIndex=Math.max(url.lastIndexOf("/"),url.lastIndexOf("\\"));return url.substr(lastSlashIndex+1);}
function getExceptionStringRep(ex){if(ex){var exStr="Exception: "+getExceptionMessage(ex);try{if(ex.lineNumber){exStr+=" on line number "+ex.lineNumber;}
if(ex.fileName){exStr+=" in file "+getUrlFileName(ex.fileName);}}catch(localEx){logLog.warn("Unable to obtain file and line information for error");}
if(showStackTraces&&ex.stack){exStr+=newLine+"Stack trace:"+newLine+ex.stack;}
return exStr;}
return null;}
function bool(obj){return Boolean(obj);}
function trim(str){return str.replace(/^\s+/,"").replace(/\s+$/,"");}
function splitIntoLines(text){var text2=text.replace(/\r\n/g,"\n").replace(/\r/g,"\n");return text2.split("\n");}
function urlEncode(str){return escape(str).replace(/\+/g,"%2B").replace(/"/g,"%22").replace(/'/g,"%27").replace(/\//g,"%2F").replace(/=/g,"%3D");}
function urlDecode(str){return unescape(str).replace(/%2B/g,"+").replace(/%22/g,"\"").replace(/%27/g,"'").replace(/%2F/g,"/").replace(/%3D/g,"=");}
function array_remove(arr,val){var index=-1;for(var i=0,len=arr.length;i<len;i++){if(arr[i]===val){index=i;break;}}
if(index>=0){arr.splice(index,1);return true;}else{return false;}}
function array_contains(arr,val){for(var i=0,len=arr.length;i<len;i++){if(arr[i]==val){return true;}}
return false;}
function extractBooleanFromParam(param,defaultValue){if(isUndefined(param)){return defaultValue;}else{return bool(param);}}
function extractStringFromParam(param,defaultValue){if(isUndefined(param)){return defaultValue;}else{return String(param);}}
function extractIntFromParam(param,defaultValue){if(isUndefined(param)){return defaultValue;}else{try{var value=parseInt(param,10);return isNaN(value)?defaultValue:value;}catch(ex){logLog.warn("Invalid int param "+param,ex);return defaultValue;}}}
function extractFunctionFromParam(param,defaultValue){if(typeof param=="function"){return param;}else{return defaultValue;}}
function isError(err){return(err instanceof Error);}
if(!Function.prototype.apply){Function.prototype.apply=function(obj,args){var methodName="__apply__";if(typeof obj[methodName]!="undefined"){methodName+=String(Math.random()).substr(2);}
obj[methodName]=this;var argsStrings=[];for(var i=0,len=args.length;i<len;i++){argsStrings[i]="args["+i+"]";}
var script="obj."+methodName+"("+argsStrings.join(",")+")";var returnValue=eval(script);delete obj[methodName];return returnValue;};}
if(!Function.prototype.call){Function.prototype.call=function(obj){var args=[];for(var i=1,len=arguments.length;i<len;i++){args[i-1]=arguments[i];}
return this.apply(obj,args);};}
function getListenersPropertyName(eventName){return"__log4javascript_listeners__"+eventName;}
function addEvent(node,eventName,listener,useCapture,win){win=win?win:window;if(node.addEventListener){node.addEventListener(eventName,listener,useCapture);}else if(node.attachEvent){node.attachEvent("on"+eventName,listener);}else{var propertyName=getListenersPropertyName(eventName);if(!node[propertyName]){node[propertyName]=[];node["on"+eventName]=function(evt){evt=getEvent(evt,win);var listenersPropertyName=getListenersPropertyName(eventName);var listeners=this[listenersPropertyName].concat([]);var currentListener;while((currentListener=listeners.shift())){currentListener.call(this,evt);}};}
node[propertyName].push(listener);}}
function removeEvent(node,eventName,listener,useCapture){if(node.removeEventListener){node.removeEventListener(eventName,listener,useCapture);}else if(node.detachEvent){node.detachEvent("on"+eventName,listener);}else{var propertyName=getListenersPropertyName(eventName);if(node[propertyName]){array_remove(node[propertyName],listener);}}}
function getEvent(evt,win){win=win?win:window;return evt?evt:win.event;}
function stopEventPropagation(evt){if(evt.stopPropagation){evt.stopPropagation();}else if(typeof evt.cancelBubble!="undefined"){evt.cancelBubble=true;}
evt.returnValue=false;}
var logLog={quietMode:false,debugMessages:[],setQuietMode:function(quietMode){this.quietMode=bool(quietMode);},numberOfErrors:0,alertAllErrors:false,setAlertAllErrors:function(alertAllErrors){this.alertAllErrors=alertAllErrors;},debug:function(message){this.debugMessages.push(message);},displayDebug:function(){alert(this.debugMessages.join(newLine));},warn:function(message,exception){},error:function(message,exception){if(++this.numberOfErrors==1||this.alertAllErrors){if(!this.quietMode){var alertMessage="log4javascript error: "+message;if(exception){alertMessage+=newLine+newLine+"Original error: "+getExceptionStringRep(exception);}
alert(alertMessage);}}}};log4javascript.logLog=logLog;log4javascript.setEventTypes(["load","error"]);function handleError(message,exception){logLog.error(message,exception);log4javascript.dispatchEvent("error",{"message":message,"exception":exception});}
log4javascript.handleError=handleError;var enabled=!((typeof log4javascript_disabled!="undefined")&&log4javascript_disabled);log4javascript.setEnabled=function(enable){enabled=bool(enable);};log4javascript.isEnabled=function(){return enabled;};var useTimeStampsInMilliseconds=true;log4javascript.setTimeStampsInMilliseconds=function(timeStampsInMilliseconds){useTimeStampsInMilliseconds=bool(timeStampsInMilliseconds);};log4javascript.isTimeStampsInMilliseconds=function(){return useTimeStampsInMilliseconds;};log4javascript.evalInScope=function(expr){return eval(expr);};var showStackTraces=false;log4javascript.setShowStackTraces=function(show){showStackTraces=bool(show);};var Level=function(level,name){this.level=level;this.name=name;};Level.prototype={toString:function(){return this.name;},equals:function(level){return this.level==level.level;},isGreaterOrEqual:function(level){return this.level>=level.level;}};Level.ALL=new Level(Number.MIN_VALUE,"ALL");Level.TRACE=new Level(10000,"TRACE");Level.DEBUG=new Level(20000,"DEBUG");Level.INFO=new Level(30000,"INFO");Level.WARN=new Level(40000,"WARN");Level.ERROR=new Level(50000,"ERROR");Level.FATAL=new Level(60000,"FATAL");Level.OFF=new Level(Number.MAX_VALUE,"OFF");log4javascript.Level=Level;function Timer(name,level){this.name=name;this.level=isUndefined(level)?Level.INFO:level;this.start=new Date();}
Timer.prototype.getElapsedTime=function(){return new Date().getTime()-this.start.getTime();};var anonymousLoggerName="[anonymous]";var defaultLoggerName="[default]";var nullLoggerName="[null]";var rootLoggerName="root";function Logger(name){this.name=name;this.parent=null;this.children=[];var appenders=[];var loggerLevel=null;var isRoot=(this.name===rootLoggerName);var isNull=(this.name===nullLoggerName);var appenderCache=null;var appenderCacheInvalidated=false;this.addChild=function(childLogger){this.children.push(childLogger);childLogger.parent=this;childLogger.invalidateAppenderCache();};var additive=true;this.getAdditivity=function(){return additive;};this.setAdditivity=function(additivity){var valueChanged=(additive!=additivity);additive=additivity;if(valueChanged){this.invalidateAppenderCache();}};this.addAppender=function(appender){if(isNull){handleError("Logger.addAppender: you may not add an appender to the null logger");}else{if(appender instanceof log4javascript.Appender){if(!array_contains(appenders,appender)){appenders.push(appender);appender.setAddedToLogger(this);this.invalidateAppenderCache();}}else{handleError("Logger.addAppender: appender supplied ('"+
toStr(appender)+"') is not a subclass of Appender");}}};this.removeAppender=function(appender){array_remove(appenders,appender);appender.setRemovedFromLogger(this);this.invalidateAppenderCache();};this.removeAllAppenders=function(){var appenderCount=appenders.length;if(appenderCount>0){for(var i=0;i<appenderCount;i++){appenders[i].setRemovedFromLogger(this);}
appenders.length=0;this.invalidateAppenderCache();}};this.getEffectiveAppenders=function(){if(appenderCache===null||appenderCacheInvalidated){var parentEffectiveAppenders=(isRoot||!this.getAdditivity())?[]:this.parent.getEffectiveAppenders();appenderCache=parentEffectiveAppenders.concat(appenders);appenderCacheInvalidated=false;}
return appenderCache;};this.invalidateAppenderCache=function(){appenderCacheInvalidated=true;for(var i=0,len=this.children.length;i<len;i++){this.children[i].invalidateAppenderCache();}};this.log=function(level,params){if(level.isGreaterOrEqual(this.getEffectiveLevel())){var exception;var finalParamIndex=params.length-1;var lastParam=params[params.length-1];if(params.length>1&&isError(lastParam)){exception=lastParam;finalParamIndex--;}
var messages=[];for(var i=0;i<=finalParamIndex;i++){messages[i]=params[i];}
var loggingEvent=new LoggingEvent(this,new Date(),level,messages,exception);this.callAppenders(loggingEvent);}};this.callAppenders=function(loggingEvent){var effectiveAppenders=this.getEffectiveAppenders();for(var i=0,len=effectiveAppenders.length;i<len;i++){effectiveAppenders[i].doAppend(loggingEvent);}};this.setLevel=function(level){if(isRoot&&level===null){handleError("Logger.setLevel: you cannot set the level of the root logger to null");}else if(level instanceof Level){loggerLevel=level;}else{handleError("Logger.setLevel: level supplied to logger "+
this.name+" is not an instance of log4javascript.Level");}};this.getLevel=function(){return loggerLevel;};this.getEffectiveLevel=function(){for(var logger=this;logger!==null;logger=logger.parent){var level=logger.getLevel();if(level!==null){return level;}}};this.group=function(name,initiallyExpanded){var effectiveAppenders=this.getEffectiveAppenders();for(var i=0,len=effectiveAppenders.length;i<len;i++){effectiveAppenders[i].group(name,initiallyExpanded);}};this.groupEnd=function(name){var effectiveAppenders=this.getEffectiveAppenders();for(var i=0,len=effectiveAppenders.length;i<len;i++){effectiveAppenders[i].groupEnd();}};var timers={};this.time=function(name,level){if(isUndefined(name)){handleError("Logger.time: a name for the timer must be supplied");}else if(level&&!(level instanceof Level)){handleError("Logger.time: level supplied to timer "+
name+" is not an instance of log4javascript.Level");}else{timers[name]=new Timer(name,level);}};this.timeEnd=function(name){if(isUndefined(name)){handleError("Logger.timeEnd: a name for the timer must be supplied");}else if(timers[name]){var timer=timers[name];var milliseconds=timer.getElapsedTime();this.log(timer.level,["Timer "+toStr(name)+" completed in "+milliseconds+"ms"]);delete timers[name];}else{logLog.warn("Logger.timeEnd: no timer found with name "+name);}};this.assert=function(expr){if(!expr){var args=[];for(var i=1,len=arguments.length;i<len;i++){args.push(arguments[i]);}
args=(args.length>0)?args:["Assertion Failure"];args.push(newLine);args.push(expr);this.log(Level.ERROR,args);}};this.toString=function(){return"Logger["+this.name+"]";};}
Logger.prototype={trace:function(){this.log(Level.TRACE,arguments);},debug:function(){this.log(Level.DEBUG,arguments);},info:function(){this.log(Level.INFO,arguments);},warn:function(){this.log(Level.WARN,arguments);},error:function(){this.log(Level.ERROR,arguments);},fatal:function(){this.log(Level.FATAL,arguments);},isEnabledFor:function(level){return level.isGreaterOrEqual(this.getEffectiveLevel());},isTraceEnabled:function(){return this.isEnabledFor(Level.TRACE);},isDebugEnabled:function(){return this.isEnabledFor(Level.DEBUG);},isInfoEnabled:function(){return this.isEnabledFor(Level.INFO);},isWarnEnabled:function(){return this.isEnabledFor(Level.WARN);},isErrorEnabled:function(){return this.isEnabledFor(Level.ERROR);},isFatalEnabled:function(){return this.isEnabledFor(Level.FATAL);}};Logger.prototype.trace.isEntryPoint=true;Logger.prototype.debug.isEntryPoint=true;Logger.prototype.info.isEntryPoint=true;Logger.prototype.warn.isEntryPoint=true;Logger.prototype.error.isEntryPoint=true;Logger.prototype.fatal.isEntryPoint=true;var loggers={};var loggerNames=[];var ROOT_LOGGER_DEFAULT_LEVEL=Level.DEBUG;var rootLogger=new Logger(rootLoggerName);rootLogger.setLevel(ROOT_LOGGER_DEFAULT_LEVEL);log4javascript.getRootLogger=function(){return rootLogger;};log4javascript.getLogger=function(loggerName){if(!(typeof loggerName=="string")){loggerName=anonymousLoggerName;logLog.warn("log4javascript.getLogger: non-string logger name "+
toStr(loggerName)+" supplied, returning anonymous logger");}
if(loggerName==rootLoggerName){handleError("log4javascript.getLogger: root logger may not be obtained by name");}
if(!loggers[loggerName]){var logger=new Logger(loggerName);loggers[loggerName]=logger;loggerNames.push(loggerName);var lastDotIndex=loggerName.lastIndexOf(".");var parentLogger;if(lastDotIndex>-1){var parentLoggerName=loggerName.substring(0,lastDotIndex);parentLogger=log4javascript.getLogger(parentLoggerName);}else{parentLogger=rootLogger;}
parentLogger.addChild(logger);}
return loggers[loggerName];};var defaultLogger=null;log4javascript.getDefaultLogger=function(){if(!defaultLogger){defaultLogger=log4javascript.getLogger(defaultLoggerName);var a=new log4javascript.PopUpAppender();defaultLogger.addAppender(a);}
return defaultLogger;};var nullLogger=null;log4javascript.getNullLogger=function(){if(!nullLogger){nullLogger=new Logger(nullLoggerName);nullLogger.setLevel(Level.OFF);}
return nullLogger;};log4javascript.resetConfiguration=function(){rootLogger.setLevel(ROOT_LOGGER_DEFAULT_LEVEL);loggers={};};var LoggingEvent=function(logger,timeStamp,level,messages,exception){this.logger=logger;this.timeStamp=timeStamp;this.timeStampInMilliseconds=timeStamp.getTime();this.timeStampInSeconds=Math.floor(this.timeStampInMilliseconds/1000);this.milliseconds=this.timeStamp.getMilliseconds();this.level=level;this.messages=messages;this.exception=exception;};LoggingEvent.prototype={getThrowableStrRep:function(){return this.exception?getExceptionStringRep(this.exception):"";},getCombinedMessages:function(){return(this.messages.length==1)?this.messages[0]:this.messages.join(newLine);},toString:function(){return"LoggingEvent["+this.level+"]";}};log4javascript.LoggingEvent=LoggingEvent;var Layout=function(){};Layout.prototype={defaults:{loggerKey:"logger",timeStampKey:"timestamp",millisecondsKey:"milliseconds",levelKey:"level",messageKey:"message",exceptionKey:"exception",urlKey:"url"},loggerKey:"logger",timeStampKey:"timestamp",millisecondsKey:"milliseconds",levelKey:"level",messageKey:"message",exceptionKey:"exception",urlKey:"url",batchHeader:"",batchFooter:"",batchSeparator:"",returnsPostData:false,overrideTimeStampsSetting:false,useTimeStampsInMilliseconds:null,format:function(loggingEvent){handleError("Layout.format: layout supplied has no format() method");},ignoresThrowable:function(){handleError("Layout.ignoresThrowable: layout supplied has no ignoresThrowable() method");},getContentType:function(){return"text/plain";},allowBatching:function(){return true;},setTimeStampsInMilliseconds:function(timeStampsInMilliseconds){this.overrideTimeStampsSetting=true;this.useTimeStampsInMilliseconds=bool(timeStampsInMilliseconds);},isTimeStampsInMilliseconds:function(){return this.overrideTimeStampsSetting?this.useTimeStampsInMilliseconds:useTimeStampsInMilliseconds;},getTimeStampValue:function(loggingEvent){return this.isTimeStampsInMilliseconds()?loggingEvent.timeStampInMilliseconds:loggingEvent.timeStampInSeconds;},getDataValues:function(loggingEvent,combineMessages){var dataValues=[[this.loggerKey,loggingEvent.logger.name],[this.timeStampKey,this.getTimeStampValue(loggingEvent)],[this.levelKey,loggingEvent.level.name],[this.urlKey,window.location.href],[this.messageKey,combineMessages?loggingEvent.getCombinedMessages():loggingEvent.messages]];if(!this.isTimeStampsInMilliseconds()){dataValues.push([this.millisecondsKey,loggingEvent.milliseconds]);}
if(loggingEvent.exception){dataValues.push([this.exceptionKey,getExceptionStringRep(loggingEvent.exception)]);}
if(this.hasCustomFields()){for(var i=0,len=this.customFields.length;i<len;i++){var val=this.customFields[i].value;if(typeof val==="function"){val=val(this,loggingEvent);}
dataValues.push([this.customFields[i].name,val]);}}
return dataValues;},setKeys:function(loggerKey,timeStampKey,levelKey,messageKey,exceptionKey,urlKey,millisecondsKey){this.loggerKey=extractStringFromParam(loggerKey,this.defaults.loggerKey);this.timeStampKey=extractStringFromParam(timeStampKey,this.defaults.timeStampKey);this.levelKey=extractStringFromParam(levelKey,this.defaults.levelKey);this.messageKey=extractStringFromParam(messageKey,this.defaults.messageKey);this.exceptionKey=extractStringFromParam(exceptionKey,this.defaults.exceptionKey);this.urlKey=extractStringFromParam(urlKey,this.defaults.urlKey);this.millisecondsKey=extractStringFromParam(millisecondsKey,this.defaults.millisecondsKey);},setCustomField:function(name,value){var fieldUpdated=false;for(var i=0,len=this.customFields.length;i<len;i++){if(this.customFields[i].name===name){this.customFields[i].value=value;fieldUpdated=true;}}
if(!fieldUpdated){this.customFields.push({"name":name,"value":value});}},hasCustomFields:function(){return(this.customFields.length>0);},toString:function(){handleError("Layout.toString: all layouts must override this method");}};log4javascript.Layout=Layout;var Appender=function(){};Appender.prototype=new EventSupport();Appender.prototype.layout=new PatternLayout();Appender.prototype.threshold=Level.ALL;Appender.prototype.loggers=[];Appender.prototype.doAppend=function(loggingEvent){if(enabled&&loggingEvent.level.level>=this.threshold.level){this.append(loggingEvent);}};Appender.prototype.append=function(loggingEvent){};Appender.prototype.setLayout=function(layout){if(layout instanceof Layout){this.layout=layout;}else{handleError("Appender.setLayout: layout supplied to "+
this.toString()+" is not a subclass of Layout");}};Appender.prototype.getLayout=function(){return this.layout;};Appender.prototype.setThreshold=function(threshold){if(threshold instanceof Level){this.threshold=threshold;}else{handleError("Appender.setThreshold: threshold supplied to "+
this.toString()+" is not a subclass of Level");}};Appender.prototype.getThreshold=function(){return this.threshold;};Appender.prototype.setAddedToLogger=function(logger){this.loggers.push(logger);};Appender.prototype.setRemovedFromLogger=function(logger){array_remove(this.loggers,logger);};Appender.prototype.group=emptyFunction;Appender.prototype.groupEnd=emptyFunction;Appender.prototype.toString=function(){handleError("Appender.toString: all appenders must override this method");};log4javascript.Appender=Appender;function SimpleLayout(){this.customFields=[];}
SimpleLayout.prototype=new Layout();SimpleLayout.prototype.format=function(loggingEvent){return loggingEvent.level.name+" - "+loggingEvent.getCombinedMessages();};SimpleLayout.prototype.ignoresThrowable=function(){return true;};SimpleLayout.prototype.toString=function(){return"SimpleLayout";};log4javascript.SimpleLayout=SimpleLayout;function NullLayout(){this.customFields=[];}
NullLayout.prototype=new Layout();NullLayout.prototype.format=function(loggingEvent){return loggingEvent.messages;};NullLayout.prototype.ignoresThrowable=function(){return true;};NullLayout.prototype.toString=function(){return"NullLayout";};log4javascript.NullLayout=NullLayout;function XmlLayout(combineMessages){this.combineMessages=extractBooleanFromParam(combineMessages,true);this.customFields=[];}
XmlLayout.prototype=new Layout();XmlLayout.prototype.isCombinedMessages=function(){return this.combineMessages;};XmlLayout.prototype.getContentType=function(){return"text/xml";};XmlLayout.prototype.escapeCdata=function(str){return str.replace(/\]\]>/,"]]>]]&gt;<![CDATA[");};XmlLayout.prototype.format=function(loggingEvent){var layout=this;var i,len;function formatMessage(message){message=(typeof message==="string")?message:toStr(message);return"<log4javascript:message><![CDATA["+
layout.escapeCdata(message)+"]]></log4javascript:message>";}
var str="<log4javascript:event logger=\""+loggingEvent.logger.name+
"\" timestamp=\""+this.getTimeStampValue(loggingEvent)+"\"";if(!this.isTimeStampsInMilliseconds()){str+=" milliseconds=\""+loggingEvent.milliseconds+"\"";}
str+=" level=\""+loggingEvent.level.name+"\">"+newLine;if(this.combineMessages){str+=formatMessage(loggingEvent.getCombinedMessages());}else{str+="<log4javascript:messages>"+newLine;for(i=0,len=loggingEvent.messages.length;i<len;i++){str+=formatMessage(loggingEvent.messages[i])+newLine;}
str+="</log4javascript:messages>"+newLine;}
if(this.hasCustomFields()){for(i=0,len=this.customFields.length;i<len;i++){str+="<log4javascript:customfield name=\""+
this.customFields[i].name+"\"><![CDATA["+
this.customFields[i].value.toString()+
"]]></log4javascript:customfield>"+newLine;}}
if(loggingEvent.exception){str+="<log4javascript:exception><![CDATA["+
getExceptionStringRep(loggingEvent.exception)+
"]]></log4javascript:exception>"+newLine;}
str+="</log4javascript:event>"+newLine+newLine;return str;};XmlLayout.prototype.ignoresThrowable=function(){return false;};XmlLayout.prototype.toString=function(){return"XmlLayout";};log4javascript.XmlLayout=XmlLayout;function escapeNewLines(str){return str.replace(/\r\n|\r|\n/g,"\\r\\n");}
function JsonLayout(readable,combineMessages){this.readable=extractBooleanFromParam(readable,false);this.combineMessages=extractBooleanFromParam(combineMessages,true);this.batchHeader=this.readable?"["+newLine:"[";this.batchFooter=this.readable?"]"+newLine:"]";this.batchSeparator=this.readable?","+newLine:",";this.setKeys();this.colon=this.readable?": ":":";this.tab=this.readable?"\t":"";this.lineBreak=this.readable?newLine:"";this.customFields=[];}
JsonLayout.prototype=new Layout();JsonLayout.prototype.isReadable=function(){return this.readable;};JsonLayout.prototype.isCombinedMessages=function(){return this.combineMessages;};JsonLayout.prototype.format=function(loggingEvent){var layout=this;var dataValues=this.getDataValues(loggingEvent,this.combineMessages);var str="{"+this.lineBreak;var i;function formatValue(val,prefix,expand){var formattedValue;var valType=typeof val;if(val instanceof Date){formattedValue=String(val.getTime());}else if(expand&&(val instanceof Array)){formattedValue="["+layout.lineBreak;for(i=0,len=val.length;i<len;i++){var childPrefix=prefix+layout.tab;formattedValue+=childPrefix+formatValue(val[i],childPrefix,false);if(i<val.length-1){formattedValue+=",";}
formattedValue+=layout.lineBreak;}
formattedValue+=prefix+"]";}else if(valType!=="number"&&valType!=="boolean"){formattedValue="\""+escapeNewLines(toStr(val).replace(/\"/g,"\\\""))+"\"";}else{formattedValue=val;}
return formattedValue;}
for(i=0,len=dataValues.length;i<len;i++){str+=this.tab+"\""+dataValues[i][0]+"\""+this.colon+formatValue(dataValues[i][1],this.tab,true);if(i<dataValues.length-1){str+=",";}
str+=this.lineBreak;}
str+="}"+this.lineBreak;return str;};JsonLayout.prototype.ignoresThrowable=function(){return false;};JsonLayout.prototype.toString=function(){return"JsonLayout";};JsonLayout.prototype.getContentType=function(){return"application/json";};log4javascript.JsonLayout=JsonLayout;function HttpPostDataLayout(){this.setKeys();this.customFields=[];this.returnsPostData=true;}
HttpPostDataLayout.prototype=new Layout();HttpPostDataLayout.prototype.allowBatching=function(){return false;};HttpPostDataLayout.prototype.format=function(loggingEvent){var dataValues=this.getDataValues(loggingEvent);var queryBits=[];for(var i=0,len=dataValues.length;i<len;i++){var val=(dataValues[i][1]instanceof Date)?String(dataValues[i][1].getTime()):dataValues[i][1];queryBits.push(urlEncode(dataValues[i][0])+"="+urlEncode(val));}
return queryBits.join("&");};HttpPostDataLayout.prototype.ignoresThrowable=function(loggingEvent){return false;};HttpPostDataLayout.prototype.toString=function(){return"HttpPostDataLayout";};log4javascript.HttpPostDataLayout=HttpPostDataLayout;function formatObjectExpansion(obj,depth,indentation){var objectsExpanded=[];function doFormat(obj,depth,indentation){var i,j,len,childDepth,childIndentation,childLines,expansion,childExpansion;if(!indentation){indentation="";}
function formatString(text){var lines=splitIntoLines(text);for(var j=1,jLen=lines.length;j<jLen;j++){lines[j]=indentation+lines[j];}
return lines.join(newLine);}
if(obj===null){return"null";}else if(typeof obj=="undefined"){return"undefined";}else if(typeof obj=="string"){return formatString(obj);}else if(typeof obj=="object"&&array_contains(objectsExpanded,obj)){try{expansion=toStr(obj);}catch(ex){expansion="Error formatting property. Details: "+getExceptionStringRep(ex);}
return expansion+" [already expanded]";}else if((obj instanceof Array)&&depth>0){objectsExpanded.push(obj);expansion="["+newLine;childDepth=depth-1;childIndentation=indentation+"  ";childLines=[];for(i=0,len=obj.length;i<len;i++){try{childExpansion=doFormat(obj[i],childDepth,childIndentation);childLines.push(childIndentation+childExpansion);}catch(ex){childLines.push(childIndentation+"Error formatting array member. Details: "+
getExceptionStringRep(ex)+"");}}
expansion+=childLines.join(","+newLine)+newLine+indentation+"]";return expansion;}else if(typeof obj=="object"&&depth>0){objectsExpanded.push(obj);expansion="{"+newLine;childDepth=depth-1;childIndentation=indentation+"  ";childLines=[];for(i in obj){try{childExpansion=doFormat(obj[i],childDepth,childIndentation);childLines.push(childIndentation+i+": "+childExpansion);}catch(ex){childLines.push(childIndentation+i+": Error formatting property. Details: "+
getExceptionStringRep(ex));}}
expansion+=childLines.join(","+newLine)+newLine+indentation+"}";return expansion;}else{return formatString(toStr(obj));}}
return doFormat(obj,depth,indentation);}
var SimpleDateFormat;(function(){var regex=/('[^']*')|(G+|y+|M+|w+|W+|D+|d+|F+|E+|a+|H+|k+|K+|h+|m+|s+|S+|Z+)|([a-zA-Z]+)|([^a-zA-Z']+)/;var monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];var dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var TEXT2=0,TEXT3=1,NUMBER=2,YEAR=3,MONTH=4,TIMEZONE=5;var types={G:TEXT2,y:YEAR,M:MONTH,w:NUMBER,W:NUMBER,D:NUMBER,d:NUMBER,F:NUMBER,E:TEXT3,a:TEXT2,H:NUMBER,k:NUMBER,K:NUMBER,h:NUMBER,m:NUMBER,s:NUMBER,S:NUMBER,Z:TIMEZONE};var ONE_DAY=24*60*60*1000;var ONE_WEEK=7*ONE_DAY;var DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK=1;var newDateAtMidnight=function(year,month,day){var d=new Date(year,month,day,0,0,0);d.setMilliseconds(0);return d;};Date.prototype.getDifference=function(date){return this.getTime()-date.getTime();};Date.prototype.isBefore=function(d){return this.getTime()<d.getTime();};Date.prototype.getUTCTime=function(){return Date.UTC(this.getFullYear(),this.getMonth(),this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds(),this.getMilliseconds());};Date.prototype.getTimeSince=function(d){return this.getUTCTime()-d.getUTCTime();};Date.prototype.getPreviousSunday=function(){var midday=new Date(this.getFullYear(),this.getMonth(),this.getDate(),12,0,0);var previousSunday=new Date(midday.getTime()-this.getDay()*ONE_DAY);return newDateAtMidnight(previousSunday.getFullYear(),previousSunday.getMonth(),previousSunday.getDate());};Date.prototype.getWeekInYear=function(minimalDaysInFirstWeek){if(isUndefined(this.minimalDaysInFirstWeek)){minimalDaysInFirstWeek=DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK;}
var previousSunday=this.getPreviousSunday();var startOfYear=newDateAtMidnight(this.getFullYear(),0,1);var numberOfSundays=previousSunday.isBefore(startOfYear)?0:1+Math.floor(previousSunday.getTimeSince(startOfYear)/ONE_WEEK);var numberOfDaysInFirstWeek=7-startOfYear.getDay();var weekInYear=numberOfSundays;if(numberOfDaysInFirstWeek<minimalDaysInFirstWeek){weekInYear--;}
return weekInYear;};Date.prototype.getWeekInMonth=function(minimalDaysInFirstWeek){if(isUndefined(this.minimalDaysInFirstWeek)){minimalDaysInFirstWeek=DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK;}
var previousSunday=this.getPreviousSunday();var startOfMonth=newDateAtMidnight(this.getFullYear(),this.getMonth(),1);var numberOfSundays=previousSunday.isBefore(startOfMonth)?0:1+Math.floor(previousSunday.getTimeSince(startOfMonth)/ONE_WEEK);var numberOfDaysInFirstWeek=7-startOfMonth.getDay();var weekInMonth=numberOfSundays;if(numberOfDaysInFirstWeek>=minimalDaysInFirstWeek){weekInMonth++;}
return weekInMonth;};Date.prototype.getDayInYear=function(){var startOfYear=newDateAtMidnight(this.getFullYear(),0,1);return 1+Math.floor(this.getTimeSince(startOfYear)/ONE_DAY);};SimpleDateFormat=function(formatString){this.formatString=formatString;};SimpleDateFormat.prototype.setMinimalDaysInFirstWeek=function(days){this.minimalDaysInFirstWeek=days;};SimpleDateFormat.prototype.getMinimalDaysInFirstWeek=function(){return isUndefined(this.minimalDaysInFirstWeek)?DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK:this.minimalDaysInFirstWeek;};var padWithZeroes=function(str,len){while(str.length<len){str="0"+str;}
return str;};var formatText=function(data,numberOfLetters,minLength){return(numberOfLetters>=4)?data:data.substr(0,Math.max(minLength,numberOfLetters));};var formatNumber=function(data,numberOfLetters){var dataString=""+data;return padWithZeroes(dataString,numberOfLetters);};SimpleDateFormat.prototype.format=function(date){var formattedString="";var result;var searchString=this.formatString;while((result=regex.exec(searchString))){var quotedString=result[1];var patternLetters=result[2];var otherLetters=result[3];var otherCharacters=result[4];if(quotedString){if(quotedString=="''"){formattedString+="'";}else{formattedString+=quotedString.substring(1,quotedString.length-1);}}else if(otherLetters){}else if(otherCharacters){formattedString+=otherCharacters;}else if(patternLetters){var patternLetter=patternLetters.charAt(0);var numberOfLetters=patternLetters.length;var rawData="";switch(patternLetter){case"G":rawData="AD";break;case"y":rawData=date.getFullYear();break;case"M":rawData=date.getMonth();break;case"w":rawData=date.getWeekInYear(this.getMinimalDaysInFirstWeek());break;case"W":rawData=date.getWeekInMonth(this.getMinimalDaysInFirstWeek());break;case"D":rawData=date.getDayInYear();break;case"d":rawData=date.getDate();break;case"F":rawData=1+Math.floor((date.getDate()-1)/7);break;case"E":rawData=dayNames[date.getDay()];break;case"a":rawData=(date.getHours()>=12)?"PM":"AM";break;case"H":rawData=date.getHours();break;case"k":rawData=date.getHours()||24;break;case"K":rawData=date.getHours()%12;break;case"h":rawData=(date.getHours()%12)||12;break;case"m":rawData=date.getMinutes();break;case"s":rawData=date.getSeconds();break;case"S":rawData=date.getMilliseconds();break;case"Z":rawData=date.getTimezoneOffset();break;}
switch(types[patternLetter]){case TEXT2:formattedString+=formatText(rawData,numberOfLetters,2);break;case TEXT3:formattedString+=formatText(rawData,numberOfLetters,3);break;case NUMBER:formattedString+=formatNumber(rawData,numberOfLetters);break;case YEAR:if(numberOfLetters<=3){var dataString=""+rawData;formattedString+=dataString.substr(2,2);}else{formattedString+=formatNumber(rawData,numberOfLetters);}
break;case MONTH:if(numberOfLetters>=3){formattedString+=formatText(monthNames[rawData],numberOfLetters,numberOfLetters);}else{formattedString+=formatNumber(rawData+1,numberOfLetters);}
break;case TIMEZONE:var isPositive=(rawData>0);var prefix=isPositive?"-":"+";var absData=Math.abs(rawData);var hours=""+Math.floor(absData/60);hours=padWithZeroes(hours,2);var minutes=""+(absData%60);minutes=padWithZeroes(minutes,2);formattedString+=prefix+hours+minutes;break;}}
searchString=searchString.substr(result.index+result[0].length);}
return formattedString;};})();log4javascript.SimpleDateFormat=SimpleDateFormat;function PatternLayout(pattern){if(pattern){this.pattern=pattern;}else{this.pattern=PatternLayout.DEFAULT_CONVERSION_PATTERN;}
this.customFields=[];}
PatternLayout.TTCC_CONVERSION_PATTERN="%r %p %c - %m%n";PatternLayout.DEFAULT_CONVERSION_PATTERN="%m%n";PatternLayout.ISO8601_DATEFORMAT="yyyy-MM-dd HH:mm:ss,SSS";PatternLayout.DATETIME_DATEFORMAT="dd MMM yyyy HH:mm:ss,SSS";PatternLayout.ABSOLUTETIME_DATEFORMAT="HH:mm:ss,SSS";PatternLayout.prototype=new Layout();PatternLayout.prototype.format=function(loggingEvent){var regex=/%(-?[0-9]+)?(\.?[0-9]+)?([acdfmMnpr%])(\{([^\}]+)\})?|([^%]+)/;var formattedString="";var result;var searchString=this.pattern;while((result=regex.exec(searchString))){var matchedString=result[0];var padding=result[1];var truncation=result[2];var conversionCharacter=result[3];var specifier=result[5];var text=result[6];if(text){formattedString+=""+text;}else{var replacement="";switch(conversionCharacter){case"a":case"m":var depth=0;if(specifier){depth=parseInt(specifier,10);if(isNaN(depth)){handleError("PatternLayout.format: invalid specifier '"+
specifier+"' for conversion character '"+conversionCharacter+
"' - should be a number");depth=0;}}
var messages=(conversionCharacter==="a")?loggingEvent.messages[0]:loggingEvent.messages;for(var i=0,len=messages.length;i<len;i++){if(i>0&&(replacement.charAt(replacement.length-1)!==" ")){replacement+=" ";}
if(depth===0){replacement+=messages[i];}else{replacement+=formatObjectExpansion(messages[i],depth);}}
break;case"c":var loggerName=loggingEvent.logger.name;if(specifier){var precision=parseInt(specifier,10);var loggerNameBits=loggingEvent.logger.name.split(".");if(precision>=loggerNameBits.length){replacement=loggerName;}else{replacement=loggerNameBits.slice(loggerNameBits.length-precision).join(".");}}else{replacement=loggerName;}
break;case"d":var dateFormat=PatternLayout.ISO8601_DATEFORMAT;if(specifier){dateFormat=specifier;if(dateFormat=="ISO8601"){dateFormat=PatternLayout.ISO8601_DATEFORMAT;}else if(dateFormat=="ABSOLUTE"){dateFormat=PatternLayout.ABSOLUTETIME_DATEFORMAT;}else if(dateFormat=="DATE"){dateFormat=PatternLayout.DATETIME_DATEFORMAT;}}
replacement=(new SimpleDateFormat(dateFormat)).format(loggingEvent.timeStamp);break;case"f":if(this.hasCustomFields()){var fieldIndex=0;if(specifier){fieldIndex=parseInt(specifier,10);if(isNaN(fieldIndex)){handleError("PatternLayout.format: invalid specifier '"+
specifier+"' for conversion character 'f' - should be a number");}else if(fieldIndex===0){handleError("PatternLayout.format: invalid specifier '"+
specifier+"' for conversion character 'f' - must be greater than zero");}else if(fieldIndex>this.customFields.length){handleError("PatternLayout.format: invalid specifier '"+
specifier+"' for conversion character 'f' - there aren't that many custom fields");}else{fieldIndex=fieldIndex-1;}}
replacement=this.customFields[fieldIndex].value;}
break;case"n":replacement=newLine;break;case"p":replacement=loggingEvent.level.name;break;case"r":replacement=""+loggingEvent.timeStamp.getDifference(applicationStartDate);break;case"%":replacement="%";break;default:replacement=matchedString;break;}
var l;if(truncation){l=parseInt(truncation.substr(1),10);var strLen=replacement.length;if(l<strLen){replacement=replacement.substring(strLen-l,strLen);}}
if(padding){if(padding.charAt(0)=="-"){l=parseInt(padding.substr(1),10);while(replacement.length<l){replacement+=" ";}}else{l=parseInt(padding,10);while(replacement.length<l){replacement=" "+replacement;}}}
formattedString+=replacement;}
searchString=searchString.substr(result.index+result[0].length);}
return formattedString;};PatternLayout.prototype.ignoresThrowable=function(){return true;};PatternLayout.prototype.toString=function(){return"PatternLayout";};log4javascript.PatternLayout=PatternLayout;function AlertAppender(){}
AlertAppender.prototype=new Appender();AlertAppender.prototype.layout=new SimpleLayout();AlertAppender.prototype.append=function(loggingEvent){var formattedMessage=this.getLayout().format(loggingEvent);if(this.getLayout().ignoresThrowable()){formattedMessage+=loggingEvent.getThrowableStrRep();}
alert(formattedMessage);};AlertAppender.prototype.toString=function(){return"AlertAppender";};log4javascript.AlertAppender=AlertAppender;function BrowserConsoleAppender(){}
BrowserConsoleAppender.prototype=new log4javascript.Appender();BrowserConsoleAppender.prototype.layout=new NullLayout();BrowserConsoleAppender.prototype.threshold=Level.DEBUG;BrowserConsoleAppender.prototype.append=function(loggingEvent){var appender=this;var getFormattedMessage=function(){var layout=appender.getLayout();var formattedMessage=layout.format(loggingEvent);if(layout.ignoresThrowable()&&loggingEvent.exception){formattedMessage+=loggingEvent.getThrowableStrRep();}
return formattedMessage;};if((typeof opera!="undefined")&&opera.postError){opera.postError(getFormattedMessage());}else if(window.console&&window.console.log){var formattedMesage=getFormattedMessage();if(window.console.debug&&Level.DEBUG.isGreaterOrEqual(loggingEvent.level)){window.console.debug(formattedMesage);}else if(window.console.info&&Level.INFO.equals(loggingEvent.level)){window.console.info(formattedMesage);}else if(window.console.warn&&Level.WARN.equals(loggingEvent.level)){window.console.warn(formattedMesage);}else if(window.console.error&&loggingEvent.level.isGreaterOrEqual(Level.ERROR)){window.console.error(formattedMesage);}else{window.console.log(formattedMesage);}}};BrowserConsoleAppender.prototype.group=function(name){if(window.console&&window.console.group){window.console.group(name);}};BrowserConsoleAppender.prototype.groupEnd=function(){if(window.console&&window.console.groupEnd){window.console.groupEnd();}};BrowserConsoleAppender.prototype.toString=function(){return"BrowserConsoleAppender";};log4javascript.BrowserConsoleAppender=BrowserConsoleAppender;function getXmlHttp(errorHandler){var xmlHttp=null;if(typeof XMLHttpRequest=="object"||typeof XMLHttpRequest=="function"){xmlHttp=new XMLHttpRequest();}else{try{xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}catch(e1){try{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(e2){if(errorHandler){errorHandler();}else{handleError("getXmlHttp: unable to obtain XMLHttpRequest object");}}}}
return xmlHttp;}
function isHttpRequestSuccessful(xmlHttp){return(isUndefined(xmlHttp.status)||xmlHttp.status===0||(xmlHttp.status>=200&&xmlHttp.status<300));}
function AjaxAppender(url){var appender=this;var isSupported=true;if(!url){handleError("AjaxAppender: URL must be specified in constructor");isSupported=false;}
var timed=this.defaults.timed;var waitForResponse=this.defaults.waitForResponse;var batchSize=this.defaults.batchSize;var timerInterval=this.defaults.timerInterval;var requestSuccessCallback=this.defaults.requestSuccessCallback;var failCallback=this.defaults.failCallback;var postVarName=this.defaults.postVarName;var sendAllOnUnload=this.defaults.sendAllOnUnload;var sessionId=null;var queuedLoggingEvents=[];var queuedRequests=[];var sending=false;var initialized=false;function checkCanConfigure(configOptionName){if(initialized){handleError("AjaxAppender: configuration option '"+
configOptionName+
"' may not be set after the appender has been initialized");return false;}
return true;}
this.getSessionId=function(){return sessionId;};this.setSessionId=function(sessionIdParam){sessionId=extractStringFromParam(sessionIdParam,null);this.layout.setCustomField("sessionid",sessionId);};this.setLayout=function(layoutParam){if(checkCanConfigure("layout")){this.layout=layoutParam;if(sessionId!==null){this.setSessionId(sessionId);}}};this.isTimed=function(){return timed;};this.setTimed=function(timedParam){if(checkCanConfigure("timed")){timed=bool(timedParam);}};this.getTimerInterval=function(){return timerInterval;};this.setTimerInterval=function(timerIntervalParam){if(checkCanConfigure("timerInterval")){timerInterval=extractIntFromParam(timerIntervalParam,timerInterval);}};this.isWaitForResponse=function(){return waitForResponse;};this.setWaitForResponse=function(waitForResponseParam){if(checkCanConfigure("waitForResponse")){waitForResponse=bool(waitForResponseParam);}};this.getBatchSize=function(){return batchSize;};this.setBatchSize=function(batchSizeParam){if(checkCanConfigure("batchSize")){batchSize=extractIntFromParam(batchSizeParam,batchSize);}};this.isSendAllOnUnload=function(){return sendAllOnUnload;};this.setSendAllOnUnload=function(sendAllOnUnloadParam){if(checkCanConfigure("sendAllOnUnload")){sendAllOnUnload=extractIntFromParam(sendAllOnUnloadParam,sendAllOnUnload);}};this.setRequestSuccessCallback=function(requestSuccessCallbackParam){requestSuccessCallback=extractFunctionFromParam(requestSuccessCallbackParam,requestSuccessCallback);};this.setFailCallback=function(failCallbackParam){failCallback=extractFunctionFromParam(failCallbackParam,failCallback);};this.getPostVarName=function(){return postVarName;};this.setPostVarName=function(postVarNameParam){if(checkCanConfigure("postVarName")){postVarName=extractStringFromParam(postVarNameParam,postVarName);}};function sendAll(){if(isSupported&&enabled){sending=true;var currentRequestBatch;if(waitForResponse){if(queuedRequests.length>0){currentRequestBatch=queuedRequests.shift();sendRequest(preparePostData(currentRequestBatch),sendAll);}else{sending=false;if(timed){scheduleSending();}}}else{while((currentRequestBatch=queuedRequests.shift())){sendRequest(preparePostData(currentRequestBatch));}
sending=false;if(timed){scheduleSending();}}}}
this.sendAll=sendAll;function sendAllRemaining(){if(isSupported&&enabled){var actualBatchSize=appender.getLayout().allowBatching()?batchSize:1;var currentLoggingEvent;var postData="";var batchedLoggingEvents=[];while((currentLoggingEvent=queuedLoggingEvents.shift())){batchedLoggingEvents.push(currentLoggingEvent);if(queuedLoggingEvents.length>=actualBatchSize){queuedRequests.push(batchedLoggingEvents);batchedLoggingEvents=[];}}
if(batchedLoggingEvents.length>0){queuedRequests.push(batchedLoggingEvents);}
waitForResponse=false;timed=false;sendAll();}}
function preparePostData(batchedLoggingEvents){var formattedMessages=[];var currentLoggingEvent;var postData="";while((currentLoggingEvent=batchedLoggingEvents.shift())){var currentFormattedMessage=appender.getLayout().format(currentLoggingEvent);if(appender.getLayout().ignoresThrowable()){currentFormattedMessage+=loggingEvent.getThrowableStrRep();}
formattedMessages.push(currentFormattedMessage);}
if(batchedLoggingEvents.length==1){postData=formattedMessages.join("");}else{postData=appender.getLayout().batchHeader+
formattedMessages.join(appender.getLayout().batchSeparator)+
appender.getLayout().batchFooter;}
postData=appender.getLayout().returnsPostData?postData:urlEncode(postVarName)+"="+urlEncode(postData);if(postData.length>0){postData+="&";}
return postData+"layout="+urlEncode(appender.getLayout().toString());}
function scheduleSending(){setTimeout(sendAll,timerInterval);}
function xmlHttpErrorHandler(){var msg="AjaxAppender: could not create XMLHttpRequest object. AjaxAppender disabled";handleError(msg);isSupported=false;if(failCallback){failCallback(msg);}}
function sendRequest(postData,successCallback){try{var xmlHttp=getXmlHttp(xmlHttpErrorHandler);if(isSupported){if(xmlHttp.overrideMimeType){xmlHttp.overrideMimeType(appender.getLayout().getContentType());}
xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){if(isHttpRequestSuccessful(xmlHttp)){if(requestSuccessCallback){requestSuccessCallback(xmlHttp);}
if(successCallback){successCallback(xmlHttp);}}else{var msg="AjaxAppender.append: XMLHttpRequest request to URL "+
url+" returned status code "+xmlHttp.status;handleError(msg);if(failCallback){failCallback(msg);}}
xmlHttp.onreadystatechange=emptyFunction;xmlHttp=null;}};xmlHttp.open("POST",url,true);try{xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");}catch(headerEx){var msg="AjaxAppender.append: your browser's XMLHttpRequest implementation"+
" does not support setRequestHeader, therefore cannot post data. AjaxAppender disabled";handleError(msg);isSupported=false;if(failCallback){failCallback(msg);}
return;}
xmlHttp.send(postData);}}catch(ex){var errMsg="AjaxAppender.append: error sending log message to "+url;handleError(errMsg,ex);isSupported=false;if(failCallback){failCallback(errMsg+". Details: "+getExceptionStringRep(ex));}}}
this.append=function(loggingEvent){if(isSupported){if(!initialized){init();}
queuedLoggingEvents.push(loggingEvent);var actualBatchSize=this.getLayout().allowBatching()?batchSize:1;if(queuedLoggingEvents.length>=actualBatchSize){var currentLoggingEvent;var postData="";var batchedLoggingEvents=[];while((currentLoggingEvent=queuedLoggingEvents.shift())){batchedLoggingEvents.push(currentLoggingEvent);}
queuedRequests.push(batchedLoggingEvents);if(!timed){if(!waitForResponse||(waitForResponse&&!sending)){sendAll();}}}}};function init(){initialized=true;if(sendAllOnUnload){addEvent(window,"unload",sendAllRemaining);}
if(timed){scheduleSending();}}}
AjaxAppender.prototype=new Appender();AjaxAppender.prototype.defaults={waitForResponse:false,timed:false,timerInterval:1000,batchSize:1,sendAllOnUnload:true,requestSuccessCallback:null,failCallback:null,postVarName:"data"};AjaxAppender.prototype.layout=new HttpPostDataLayout();AjaxAppender.prototype.toString=function(){return"AjaxAppender";};log4javascript.AjaxAppender=AjaxAppender;function setCookie(name,value,days,path){var expires;path=path?"; path="+path:"";if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toGMTString();}else{expires="";}
document.cookie=escape(name)+"="+escape(value)+expires+path;}
function getCookie(name){var nameEquals=escape(name)+"=";var ca=document.cookie.split(";");for(var i=0,len=ca.length;i<len;i++){var c=ca[i];while(c.charAt(0)===" "){c=c.substring(1,c.length);}
if(c.indexOf(nameEquals)===0){return unescape(c.substring(nameEquals.length,c.length));}}
return null;}
function getBaseUrl(){var scripts=document.getElementsByTagName("script");for(var i=0,len=scripts.length;i<len;++i){if(scripts[i].src.indexOf("log4javascript")!=-1){var lastSlash=scripts[i].src.lastIndexOf("/");return(lastSlash==-1)?"":scripts[i].src.substr(0,lastSlash+1);}}
return null;}
function isLoaded(win){try{return bool(win.loaded);}catch(ex){return false;}}
var ConsoleAppender;(function(){var getConsoleHtmlLines=function(){return['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">','<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">','	<head>','		<title>log4javascript</title>','		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />','		<!-- Make IE8 behave like IE7, having gone to all the trouble of making IE work -->','		<meta http-equiv="X-UA-Compatible" content="IE=7" />','		<script type="text/javascript">var isIe = false, isIePre7 = false;</script>','		<!--[if IE]><script type="text/javascript">isIe = true</script><![endif]-->','		<!--[if lt IE 7]><script type="text/javascript">isIePre7 = true</script><![endif]-->','		<script type="text/javascript">','			//<![CDATA[','			var loggingEnabled = true;','			var logQueuedEventsTimer = null;','			var logEntries = [];','			var logEntriesAndSeparators = [];','			var logItems = [];','			var renderDelay = 100;','			var unrenderedLogItemsExist = false;','			var rootGroup, currentGroup = null;','			var loaded = false;','			var currentLogItem = null;','			var logMainContainer;','','			function copyProperties(obj, props) {','				for (var i in props) {','					obj[i] = props[i];','				}','			}','','			/*----------------------------------------------------------------*/','','			function LogItem() {','			}','','			LogItem.prototype = {','				mainContainer: null,','				wrappedContainer: null,','				unwrappedContainer: null,','				group: null,','','				appendToLog: function() {','					for (var i = 0, len = this.elementContainers.length; i < len; i++) {','						this.elementContainers[i].appendToLog();','					}','					this.group.update();','				},','','				doRemove: function(doUpdate, removeFromGroup) {','					if (this.rendered) {','						for (var i = 0, len = this.elementContainers.length; i < len; i++) {','							this.elementContainers[i].remove();','						}','						this.unwrappedElementContainer = null;','						this.wrappedElementContainer = null;','						this.mainElementContainer = null;','					}','					if (this.group && removeFromGroup) {','						this.group.removeChild(this, doUpdate);','					}','					if (this === currentLogItem) {','						currentLogItem = null;','					}','				},','','				remove: function(doUpdate, removeFromGroup) {','					this.doRemove(doUpdate, removeFromGroup);','				},','','				render: function() {},','','				accept: function(visitor) {','					visitor.visit(this);','				},','','				getUnwrappedDomContainer: function() {','					return this.group.unwrappedElementContainer.contentDiv;','				},','','				getWrappedDomContainer: function() {','					return this.group.wrappedElementContainer.contentDiv;','				},','','				getMainDomContainer: function() {','					return this.group.mainElementContainer.contentDiv;','				}','			};','','			LogItem.serializedItemKeys = {LOG_ENTRY: 0, GROUP_START: 1, GROUP_END: 2};','','			/*----------------------------------------------------------------*/','','			function LogItemContainerElement() {','			}','','			LogItemContainerElement.prototype = {','				appendToLog: function() {','					var insertBeforeFirst = (newestAtTop && this.containerDomNode.hasChildNodes());','					if (insertBeforeFirst) {','						this.containerDomNode.insertBefore(this.mainDiv, this.containerDomNode.firstChild);','					} else {','						this.containerDomNode.appendChild(this.mainDiv);','					}','				}','			};','','			/*----------------------------------------------------------------*/','','			function SeparatorElementContainer(containerDomNode) {','				this.containerDomNode = containerDomNode;','				this.mainDiv = document.createElement("div");','				this.mainDiv.className = "separator";','				this.mainDiv.innerHTML = "&nbsp;";','			}','','			SeparatorElementContainer.prototype = new LogItemContainerElement();','','			SeparatorElementContainer.prototype.remove = function() {','				this.mainDiv.parentNode.removeChild(this.mainDiv);','				this.mainDiv = null;','			};','','			/*----------------------------------------------------------------*/','','			function Separator() {','				this.rendered = false;','			}','','			Separator.prototype = new LogItem();','','			copyProperties(Separator.prototype, {','				render: function() {','					var containerDomNode = this.group.contentDiv;','					if (isIe) {','						this.unwrappedElementContainer = new SeparatorElementContainer(this.getUnwrappedDomContainer());','						this.wrappedElementContainer = new SeparatorElementContainer(this.getWrappedDomContainer());','						this.elementContainers = [this.unwrappedElementContainer, this.wrappedElementContainer];','					} else {','						this.mainElementContainer = new SeparatorElementContainer(this.getMainDomContainer());','						this.elementContainers = [this.mainElementContainer];','					}','					this.content = this.formattedMessage;','					this.rendered = true;','				}','			});','','			/*----------------------------------------------------------------*/','','			function GroupElementContainer(group, containerDomNode, isRoot, isWrapped) {','				this.group = group;','				this.containerDomNode = containerDomNode;','				this.isRoot = isRoot;','				this.isWrapped = isWrapped;','				this.expandable = false;','','				if (this.isRoot) {','					if (isIe) {','						this.contentDiv = logMainContainer.appendChild(document.createElement("div"));','						this.contentDiv.id = this.isWrapped ? "log_wrapped" : "log_unwrapped";','					} else {','						this.contentDiv = logMainContainer;','					}','				} else {','					var groupElementContainer = this;','					','					this.mainDiv = document.createElement("div");','					this.mainDiv.className = "group";','','					this.headingDiv = this.mainDiv.appendChild(document.createElement("div"));','					this.headingDiv.className = "groupheading";','','					this.expander = this.headingDiv.appendChild(document.createElement("span"));','					this.expander.className = "expander unselectable greyedout";','					this.expander.unselectable = true;','					var expanderText = this.group.expanded ? "-" : "+";','					this.expanderTextNode = this.expander.appendChild(document.createTextNode(expanderText));','					','					this.headingDiv.appendChild(document.createTextNode(" " + this.group.name));','','					this.contentDiv = this.mainDiv.appendChild(document.createElement("div"));','					var contentCssClass = this.group.expanded ? "expanded" : "collapsed";','					this.contentDiv.className = "groupcontent " + contentCssClass;','','					this.expander.onclick = function() {','						if (groupElementContainer.group.expandable) {','							groupElementContainer.group.toggleExpanded();','						}','					};','				}','			}','','			GroupElementContainer.prototype = new LogItemContainerElement();','','			copyProperties(GroupElementContainer.prototype, {','				toggleExpanded: function() {','					if (!this.isRoot) {','						var oldCssClass, newCssClass, expanderText;','						if (this.group.expanded) {','							newCssClass = "expanded";','							oldCssClass = "collapsed";','							expanderText = "-";','						} else {','							newCssClass = "collapsed";','							oldCssClass = "expanded";','							expanderText = "+";','						}','						replaceClass(this.contentDiv, newCssClass, oldCssClass);','						this.expanderTextNode.nodeValue = expanderText;','					}','				},','','				remove: function() {','					if (!this.isRoot) {','						this.headingDiv = null;','						this.expander.onclick = null;','						this.expander = null;','						this.expanderTextNode = null;','						this.contentDiv = null;','						this.containerDomNode = null;','						this.mainDiv.parentNode.removeChild(this.mainDiv);','						this.mainDiv = null;','					}','				},','','				reverseChildren: function() {','					// Invert the order of the log entries','					var node = null;','','					// Remove all the log container nodes','					var childDomNodes = [];','					while ((node = this.contentDiv.firstChild)) {','						this.contentDiv.removeChild(node);','						childDomNodes.push(node);','					}','','					// Put them all back in reverse order','					while ((node = childDomNodes.pop())) {','						this.contentDiv.appendChild(node);','					}','				},','','				update: function() {','					if (!this.isRoot) {','						if (this.group.expandable) {','							removeClass(this.expander, "greyedout");','						} else {','							addClass(this.expander, "greyedout");','						}','					}','				},','','				clear: function() {','					if (this.isRoot) {','						this.contentDiv.innerHTML = "";','					}','				}','			});','','			/*----------------------------------------------------------------*/','','			function Group(name, isRoot, initiallyExpanded) {','				this.name = name;','				this.group = null;','				this.isRoot = isRoot;','				this.initiallyExpanded = initiallyExpanded;','				this.elementContainers = [];','				this.children = [];','				this.expanded = initiallyExpanded;','				this.rendered = false;','				this.expandable = false;','			}','','			Group.prototype = new LogItem();','','			copyProperties(Group.prototype, {','				addChild: function(logItem) {','					this.children.push(logItem);','					logItem.group = this;','				},','','				render: function() {','					if (isIe) {','						var unwrappedDomContainer, wrappedDomContainer;','						if (this.isRoot) {','							unwrappedDomContainer = logMainContainer;','							wrappedDomContainer = logMainContainer;','						} else {','							unwrappedDomContainer = this.getUnwrappedDomContainer();','							wrappedDomContainer = this.getWrappedDomContainer();','						}','						this.unwrappedElementContainer = new GroupElementContainer(this, unwrappedDomContainer, this.isRoot, false);','						this.wrappedElementContainer = new GroupElementContainer(this, wrappedDomContainer, this.isRoot, true);','						this.elementContainers = [this.unwrappedElementContainer, this.wrappedElementContainer];','					} else {','						var mainDomContainer = this.isRoot ? logMainContainer : this.getMainDomContainer();','						this.mainElementContainer = new GroupElementContainer(this, mainDomContainer, this.isRoot, false);','						this.elementContainers = [this.mainElementContainer];','					}','					this.rendered = true;','				},','','				toggleExpanded: function() {','					this.expanded = !this.expanded;','					for (var i = 0, len = this.elementContainers.length; i < len; i++) {','						this.elementContainers[i].toggleExpanded();','					}','				},','','				expand: function() {','					if (!this.expanded) {','						this.toggleExpanded();','					}','				},','','				accept: function(visitor) {','					visitor.visitGroup(this);','				},','','				reverseChildren: function() {','					if (this.rendered) {','						for (var i = 0, len = this.elementContainers.length; i < len; i++) {','							this.elementContainers[i].reverseChildren();','						}','					}','				},','','				update: function() {','					var previouslyExpandable = this.expandable;','					this.expandable = (this.children.length !== 0);','					if (this.expandable !== previouslyExpandable) {','						for (var i = 0, len = this.elementContainers.length; i < len; i++) {','							this.elementContainers[i].update();','						}','					}','				},','','				flatten: function() {','					var visitor = new GroupFlattener();','					this.accept(visitor);','					return visitor.logEntriesAndSeparators;','				},','','				removeChild: function(child, doUpdate) {','					array_remove(this.children, child);','					child.group = null;','					if (doUpdate) {','						this.update();','					}','				},','','				remove: function(doUpdate, removeFromGroup) {','					for (var i = 0, len = this.children.length; i < len; i++) {','						this.children[i].remove(false, false);','					}','					this.children = [];','					this.update();','					if (this === currentGroup) {','						currentGroup = this.group;','					}','					this.doRemove(doUpdate, removeFromGroup);','				},','','				serialize: function(items) {','					items.push([LogItem.serializedItemKeys.GROUP_START, this.name]);','					for (var i = 0, len = this.children.length; i < len; i++) {','						this.children[i].serialize(items);','					}','					if (this !== currentGroup) {','						items.push([LogItem.serializedItemKeys.GROUP_END]);','					}','				},','','				clear: function() {','					for (var i = 0, len = this.elementContainers.length; i < len; i++) {','						this.elementContainers[i].clear();','					}','				}','			});','','			/*----------------------------------------------------------------*/','','			function LogEntryElementContainer() {','			}','','			LogEntryElementContainer.prototype = new LogItemContainerElement();','','			copyProperties(LogEntryElementContainer.prototype, {','				remove: function() {','					this.doRemove();','				},','','				doRemove: function() {','					this.mainDiv.parentNode.removeChild(this.mainDiv);','					this.mainDiv = null;','					this.contentElement = null;','					this.containerDomNode = null;','				},','','				setContent: function(content, wrappedContent) {','					if (content === this.formattedMessage) {','						this.contentElement.innerHTML = "";','						this.contentElement.appendChild(document.createTextNode(this.formattedMessage));','					} else {','						this.contentElement.innerHTML = content;','					}','				},','','				setSearchMatch: function(isMatch) {','					var oldCssClass = isMatch ? "searchnonmatch" : "searchmatch";','					var newCssClass = isMatch ? "searchmatch" : "searchnonmatch";','					replaceClass(this.mainDiv, newCssClass, oldCssClass);','				},','','				clearSearch: function() {','					removeClass(this.mainDiv, "searchmatch");','					removeClass(this.mainDiv, "searchnonmatch");','				}','			});','','			/*----------------------------------------------------------------*/','','			function LogEntryWrappedElementContainer(logEntry, containerDomNode) {','				this.logEntry = logEntry;','				this.containerDomNode = containerDomNode;','				this.mainDiv = document.createElement("div");','				this.mainDiv.appendChild(document.createTextNode(this.logEntry.formattedMessage));','				this.mainDiv.className = "logentry wrapped " + this.logEntry.level;','				this.contentElement = this.mainDiv;','			}','','			LogEntryWrappedElementContainer.prototype = new LogEntryElementContainer();','','			LogEntryWrappedElementContainer.prototype.setContent = function(content, wrappedContent) {','				if (content === this.formattedMessage) {','					this.contentElement.innerHTML = "";','					this.contentElement.appendChild(document.createTextNode(this.formattedMessage));','				} else {','					this.contentElement.innerHTML = wrappedContent;','				}','			};','','			/*----------------------------------------------------------------*/','','			function LogEntryUnwrappedElementContainer(logEntry, containerDomNode) {','				this.logEntry = logEntry;','				this.containerDomNode = containerDomNode;','				this.mainDiv = document.createElement("div");','				this.mainDiv.className = "logentry unwrapped " + this.logEntry.level;','				this.pre = this.mainDiv.appendChild(document.createElement("pre"));','				this.pre.appendChild(document.createTextNode(this.logEntry.formattedMessage));','				this.pre.className = "unwrapped";','				this.contentElement = this.pre;','			}','','			LogEntryUnwrappedElementContainer.prototype = new LogEntryElementContainer();','','			LogEntryUnwrappedElementContainer.prototype.remove = function() {','				this.doRemove();','				this.pre = null;','			};','','			/*----------------------------------------------------------------*/','','			function LogEntryMainElementContainer(logEntry, containerDomNode) {','				this.logEntry = logEntry;','				this.containerDomNode = containerDomNode;','				this.mainDiv = document.createElement("div");','				this.mainDiv.className = "logentry nonielogentry " + this.logEntry.level;','				this.contentElement = this.mainDiv.appendChild(document.createElement("span"));','				this.contentElement.appendChild(document.createTextNode(this.logEntry.formattedMessage));','			}','','			LogEntryMainElementContainer.prototype = new LogEntryElementContainer();','','			/*----------------------------------------------------------------*/','','			function LogEntry(level, formattedMessage) {','				this.level = level;','				this.formattedMessage = formattedMessage;','				this.rendered = false;','			}','','			LogEntry.prototype = new LogItem();','','			copyProperties(LogEntry.prototype, {','				render: function() {','					var logEntry = this;','					var containerDomNode = this.group.contentDiv;','','					// Support for the CSS attribute white-space in IE for Windows is','					// non-existent pre version 6 and slightly odd in 6, so instead','					// use two different HTML elements','					if (isIe) {','						this.formattedMessage = this.formattedMessage.replace(/\\r\\n/g, "\\r"); // Workaround for IE\'s treatment of white space','						this.unwrappedElementContainer = new LogEntryUnwrappedElementContainer(this, this.getUnwrappedDomContainer());','						this.wrappedElementContainer = new LogEntryWrappedElementContainer(this, this.getWrappedDomContainer());','						this.elementContainers = [this.unwrappedElementContainer, this.wrappedElementContainer];','					} else {','						this.mainElementContainer = new LogEntryMainElementContainer(this, this.getMainDomContainer());','						this.elementContainers = [this.mainElementContainer];','					}','					this.content = this.formattedMessage;','					this.rendered = true;','				},','','				setContent: function(content, wrappedContent) {','					if (content != this.content) {','						if (isIe && (content !== this.formattedMessage)) {','							content = content.replace(/\\r\\n/g, "\\r"); // Workaround for IE\'s treatment of white space','						}','						for (var i = 0, len = this.elementContainers.length; i < len; i++) {','							this.elementContainers[i].setContent(content, wrappedContent);','						}','						this.content = content;','					}','				},','','				getSearchMatches: function() {','					var matches = [];','					var i, len;','					if (isIe) {','						var unwrappedEls = getElementsByClass(this.unwrappedElementContainer.mainDiv, "searchterm", "span");','						var wrappedEls = getElementsByClass(this.wrappedElementContainer.mainDiv, "searchterm", "span");','						for (i = 0, len = unwrappedEls.length; i < len; i++) {','							matches[i] = new Match(this.level, null, unwrappedEls[i], wrappedEls[i]);','						}','					} else {','						var els = getElementsByClass(this.mainElementContainer.mainDiv, "searchterm", "span");','						for (i = 0, len = els.length; i < len; i++) {','							matches[i] = new Match(this.level, els[i]);','						}','					}','					return matches;','				},','','				setSearchMatch: function(isMatch) {','					for (var i = 0, len = this.elementContainers.length; i < len; i++) {','						this.elementContainers[i].setSearchMatch(isMatch);','					}','				},','','				clearSearch: function() {','					for (var i = 0, len = this.elementContainers.length; i < len; i++) {','						this.elementContainers[i].clearSearch();','					}','				},','','				accept: function(visitor) {','					visitor.visitLogEntry(this);','				},','','				serialize: function(items) {','					items.push([LogItem.serializedItemKeys.LOG_ENTRY, this.level, this.formattedMessage]);','				}','			});','','			/*----------------------------------------------------------------*/','','			function LogItemVisitor() {','			}','','			LogItemVisitor.prototype = {','				visit: function(logItem) {','				},','','				visitParent: function(logItem) {','					if (logItem.group) {','						logItem.group.accept(this);','					}','				},','','				visitChildren: function(logItem) {','					for (var i = 0, len = logItem.children.length; i < len; i++) {','						logItem.children[i].accept(this);','					}','				},','','				visitLogEntry: function(logEntry) {','					this.visit(logEntry);','				},','','				visitSeparator: function(separator) {','					this.visit(separator);','				},','','				visitGroup: function(group) {','					this.visit(group);','				}','			};','','			/*----------------------------------------------------------------*/','','			function GroupFlattener() {','				this.logEntriesAndSeparators = [];','			}','','			GroupFlattener.prototype = new LogItemVisitor();','','			GroupFlattener.prototype.visitGroup = function(group) {','				this.visitChildren(group);','			};','','			GroupFlattener.prototype.visitLogEntry = function(logEntry) {','				this.logEntriesAndSeparators.push(logEntry);','			};','','			GroupFlattener.prototype.visitSeparator = function(separator) {','				this.logEntriesAndSeparators.push(separator);','			};','','			/*----------------------------------------------------------------*/','','			window.onload = function() {','				// Sort out document.domain','				if (location.search) {','					var queryBits = unescape(location.search).substr(1).split("&"), nameValueBits;','					for (var i = 0, len = queryBits.length; i < len; i++) {','						nameValueBits = queryBits[i].split("=");','						if (nameValueBits[0] == "log4javascript_domain") {','							document.domain = nameValueBits[1];','							break;','						}','					}','				}','','				// Create DOM objects','				logMainContainer = $("log");','				if (isIePre7) {','					addClass(logMainContainer, "oldIe");','				}','','				rootGroup = new Group("root", true);','				rootGroup.render();','				currentGroup = rootGroup;','				','				setCommandInputWidth();','				setLogContainerHeight();','				toggleLoggingEnabled();','				toggleSearchEnabled();','				toggleSearchFilter();','				toggleSearchHighlight();','				applyFilters();','				checkAllLevels();','				toggleWrap();','				toggleNewestAtTop();','				toggleScrollToLatest();','				renderQueuedLogItems();','				loaded = true;','				$("command").value = "";','				$("command").autocomplete = "off";','				$("command").onkeydown = function(evt) {','					evt = getEvent(evt);','					if (evt.keyCode == 10 || evt.keyCode == 13) { // Return/Enter','						evalCommandLine();','						stopPropagation(evt);','					} else if (evt.keyCode == 27) { // Escape','						this.value = "";','						this.focus();','					} else if (evt.keyCode == 38 && commandHistory.length > 0) { // Up','						currentCommandIndex = Math.max(0, currentCommandIndex - 1);','						this.value = commandHistory[currentCommandIndex];','						moveCaretToEnd(this);','					} else if (evt.keyCode == 40 && commandHistory.length > 0) { // Down','						currentCommandIndex = Math.min(commandHistory.length - 1, currentCommandIndex + 1);','						this.value = commandHistory[currentCommandIndex];','						moveCaretToEnd(this);','					}','				};','','				// Prevent the keypress moving the caret in Firefox','				$("command").onkeypress = function(evt) {','					evt = getEvent(evt);','					if (evt.keyCode == 38 && commandHistory.length > 0 && evt.preventDefault) { // Up','						evt.preventDefault();','					}','				};','','				// Prevent the keyup event blurring the input in Opera','				$("command").onkeyup = function(evt) {','					evt = getEvent(evt);','					if (evt.keyCode == 27 && evt.preventDefault) { // Up','						evt.preventDefault();','						this.focus();','					}','				};','','				// Add document keyboard shortcuts','				document.onkeydown = function keyEventHandler(evt) {','					evt = getEvent(evt);','					switch (evt.keyCode) {','						case 69: // Ctrl + shift + E: re-execute last command','							if (evt.shiftKey && (evt.ctrlKey || evt.metaKey)) {','								evalLastCommand();','								cancelKeyEvent(evt);','								return false;','							}','							break;','						case 75: // Ctrl + shift + K: focus search','							if (evt.shiftKey && (evt.ctrlKey || evt.metaKey)) {','								focusSearch();','								cancelKeyEvent(evt);','								return false;','							}','							break;','						case 40: // Ctrl + shift + down arrow: focus command line','						case 76: // Ctrl + shift + L: focus command line','							if (evt.shiftKey && (evt.ctrlKey || evt.metaKey)) {','								focusCommandLine();','								cancelKeyEvent(evt);','								return false;','							}','							break;','					}','				};','','				// Workaround to make sure log div starts at the correct size','				setTimeout(setLogContainerHeight, 20);','','				setShowCommandLine(showCommandLine);','				doSearch();','			};','','			window.onunload = function() {','				if (mainWindowExists()) {','					appender.unload();','				}','				appender = null;','			};','','			/*----------------------------------------------------------------*/','','			function toggleLoggingEnabled() {','				setLoggingEnabled($("enableLogging").checked);','			}','','			function setLoggingEnabled(enable) {','				loggingEnabled = enable;','			}','','			var appender = null;','','			function setAppender(appenderParam) {','				appender = appenderParam;','			}','','			function setShowCloseButton(showCloseButton) {','				$("closeButton").style.display = showCloseButton ? "inline" : "none";','			}','','			function setShowHideButton(showHideButton) {','				$("hideButton").style.display = showHideButton ? "inline" : "none";','			}','','			var newestAtTop = false;','','			/*----------------------------------------------------------------*/','','			function LogItemContentReverser() {','			}','			','			LogItemContentReverser.prototype = new LogItemVisitor();','			','			LogItemContentReverser.prototype.visitGroup = function(group) {','				group.reverseChildren();','				this.visitChildren(group);','			};','','			/*----------------------------------------------------------------*/','','			function setNewestAtTop(isNewestAtTop) {','				var oldNewestAtTop = newestAtTop;','				var i, iLen, j, jLen;','				newestAtTop = Boolean(isNewestAtTop);','				if (oldNewestAtTop != newestAtTop) {','					var visitor = new LogItemContentReverser();','					rootGroup.accept(visitor);','','					// Reassemble the matches array','					if (currentSearch) {','						var currentMatch = currentSearch.matches[currentMatchIndex];','						var matchIndex = 0;','						var matches = [];','						var actOnLogEntry = function(logEntry) {','							var logEntryMatches = logEntry.getSearchMatches();','							for (j = 0, jLen = logEntryMatches.length; j < jLen; j++) {','								matches[matchIndex] = logEntryMatches[j];','								if (currentMatch && logEntryMatches[j].equals(currentMatch)) {','									currentMatchIndex = matchIndex;','								}','								matchIndex++;','							}','						};','						if (newestAtTop) {','							for (i = logEntries.length - 1; i >= 0; i--) {','								actOnLogEntry(logEntries[i]);','							}','						} else {','							for (i = 0, iLen = logEntries.length; i < iLen; i++) {','								actOnLogEntry(logEntries[i]);','							}','						}','						currentSearch.matches = matches;','						if (currentMatch) {','							currentMatch.setCurrent();','						}','					} else if (scrollToLatest) {','						doScrollToLatest();','					}','				}','				$("newestAtTop").checked = isNewestAtTop;','			}','','			function toggleNewestAtTop() {','				var isNewestAtTop = $("newestAtTop").checked;','				setNewestAtTop(isNewestAtTop);','			}','','			var scrollToLatest = true;','','			function setScrollToLatest(isScrollToLatest) {','				scrollToLatest = isScrollToLatest;','				if (scrollToLatest) {','					doScrollToLatest();','				}','				$("scrollToLatest").checked = isScrollToLatest;','			}','','			function toggleScrollToLatest() {','				var isScrollToLatest = $("scrollToLatest").checked;','				setScrollToLatest(isScrollToLatest);','			}','','			function doScrollToLatest() {','				var l = logMainContainer;','				if (typeof l.scrollTop != "undefined") {','					if (newestAtTop) {','						l.scrollTop = 0;','					} else {','						var latestLogEntry = l.lastChild;','						if (latestLogEntry) {','							l.scrollTop = l.scrollHeight;','						}','					}','				}','			}','','			var closeIfOpenerCloses = true;','','			function setCloseIfOpenerCloses(isCloseIfOpenerCloses) {','				closeIfOpenerCloses = isCloseIfOpenerCloses;','			}','','			var maxMessages = null;','','			function setMaxMessages(max) {','				maxMessages = max;','				pruneLogEntries();','			}','','			var showCommandLine = false;','','			function setShowCommandLine(isShowCommandLine) {','				showCommandLine = isShowCommandLine;','				if (loaded) {','					$("commandLine").style.display = showCommandLine ? "block" : "none";','					setCommandInputWidth();','					setLogContainerHeight();','				}','			}','','			function focusCommandLine() {','				if (loaded) {','					$("command").focus();','				}','			}','','			function focusSearch() {','				if (loaded) {','					$("searchBox").focus();','				}','			}','','			function getLogItems() {','				var items = [];','				for (var i = 0, len = logItems.length; i < len; i++) {','					logItems[i].serialize(items);','				}','				return items;','			}','','			function setLogItems(items) {','				var loggingReallyEnabled = loggingEnabled;','				// Temporarily turn logging on','				loggingEnabled = true;','				for (var i = 0, len = items.length; i < len; i++) {','					switch (items[i][0]) {','						case LogItem.serializedItemKeys.LOG_ENTRY:','							log(items[i][1], items[i][2]);','							break;','						case LogItem.serializedItemKeys.GROUP_START:','							group(items[i][1]);','							break;','						case LogItem.serializedItemKeys.GROUP_END:','							groupEnd();','							break;','					}','				}','				loggingEnabled = loggingReallyEnabled;','			}','','			function log(logLevel, formattedMessage) {','				if (loggingEnabled) {','					var logEntry = new LogEntry(logLevel, formattedMessage);','					logEntries.push(logEntry);','					logEntriesAndSeparators.push(logEntry);','					logItems.push(logEntry);','					currentGroup.addChild(logEntry);','					if (loaded) {','						if (logQueuedEventsTimer !== null) {','							clearTimeout(logQueuedEventsTimer);','						}','						logQueuedEventsTimer = setTimeout(renderQueuedLogItems, renderDelay);','						unrenderedLogItemsExist = true;','					}','				}','			}','','			function renderQueuedLogItems() {','				logQueuedEventsTimer = null;','				var pruned = pruneLogEntries();','','				// Render any unrendered log entries and apply the current search to them','				var initiallyHasMatches = currentSearch ? currentSearch.hasMatches() : false;','				for (var i = 0, len = logItems.length; i < len; i++) {','					if (!logItems[i].rendered) {','						logItems[i].render();','						logItems[i].appendToLog();','						if (currentSearch && (logItems[i] instanceof LogEntry)) {','							currentSearch.applyTo(logItems[i]);','						}','					}','				}','				if (currentSearch) {','					if (pruned) {','						if (currentSearch.hasVisibleMatches()) {','							if (currentMatchIndex === null) {','								setCurrentMatchIndex(0);','							}','							displayMatches();','						} else {','							displayNoMatches();','						}','					} else if (!initiallyHasMatches && currentSearch.hasVisibleMatches()) {','						setCurrentMatchIndex(0);','						displayMatches();','					}','				}','				if (scrollToLatest) {','					doScrollToLatest();','				}','				unrenderedLogItemsExist = false;','			}','','			function pruneLogEntries() {','				if ((maxMessages !== null) && (logEntriesAndSeparators.length > maxMessages)) {','					var numberToDelete = logEntriesAndSeparators.length - maxMessages;','					var prunedLogEntries = logEntriesAndSeparators.slice(0, numberToDelete);','					if (currentSearch) {','						currentSearch.removeMatches(prunedLogEntries);','					}','					var group;','					for (var i = 0; i < numberToDelete; i++) {','						group = logEntriesAndSeparators[i].group;','						array_remove(logItems, logEntriesAndSeparators[i]);','						array_remove(logEntries, logEntriesAndSeparators[i]);','						logEntriesAndSeparators[i].remove(true, true);','						if (group.children.length === 0 && group !== currentGroup && group !== rootGroup) {','							array_remove(logItems, group);','							group.remove(true, true);','						}','					}','					logEntriesAndSeparators = array_removeFromStart(logEntriesAndSeparators, numberToDelete);','					return true;','				}','				return false;','			}','','			function group(name, startExpanded) {','				if (loggingEnabled) {','					initiallyExpanded = (typeof startExpanded === "undefined") ? true : Boolean(startExpanded);','					var newGroup = new Group(name, false, initiallyExpanded);','					currentGroup.addChild(newGroup);','					currentGroup = newGroup;','					logItems.push(newGroup);','					if (loaded) {','						if (logQueuedEventsTimer !== null) {','							clearTimeout(logQueuedEventsTimer);','						}','						logQueuedEventsTimer = setTimeout(renderQueuedLogItems, renderDelay);','						unrenderedLogItemsExist = true;','					}','				}','			}','','			function groupEnd() {','				currentGroup = (currentGroup === rootGroup) ? rootGroup : currentGroup.group;','			}','','			function mainPageReloaded() {','				currentGroup = rootGroup;','				var separator = new Separator();','				logEntriesAndSeparators.push(separator);','				logItems.push(separator);','				currentGroup.addChild(separator);','			}','','			function closeWindow() {','				if (appender && mainWindowExists()) {','					appender.close(true);','				} else {','					window.close();','				}','			}','','			function hide() {','				if (appender && mainWindowExists()) {','					appender.hide();','				}','			}','','			var mainWindow = window;','			var windowId = "log4javascriptConsoleWindow_" + new Date().getTime() + "_" + ("" + Math.random()).substr(2);','','			function setMainWindow(win) {','				mainWindow = win;','				mainWindow[windowId] = window;','				// If this is a pop-up, poll the opener to see if it\'s closed','				if (opener && closeIfOpenerCloses) {','					pollOpener();','				}','			}','','			function pollOpener() {','				if (closeIfOpenerCloses) {','					if (mainWindowExists()) {','						setTimeout(pollOpener, 500);','					} else {','						closeWindow();','					}','				}','			}','','			function mainWindowExists() {','				try {','					return (mainWindow && !mainWindow.closed &&','						mainWindow[windowId] == window);','				} catch (ex) {}','				return false;','			}','','			var logLevels = ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL"];','','			function getCheckBox(logLevel) {','				return $("switch_" + logLevel);','			}','','			function getIeWrappedLogContainer() {','				return $("log_wrapped");','			}','','			function getIeUnwrappedLogContainer() {','				return $("log_unwrapped");','			}','','			function applyFilters() {','				for (var i = 0; i < logLevels.length; i++) {','					if (getCheckBox(logLevels[i]).checked) {','						addClass(logMainContainer, logLevels[i]);','					} else {','						removeClass(logMainContainer, logLevels[i]);','					}','				}','				updateSearchFromFilters();','			}','','			function toggleAllLevels() {','				var turnOn = $("switch_ALL").checked;','				for (var i = 0; i < logLevels.length; i++) {','					getCheckBox(logLevels[i]).checked = turnOn;','					if (turnOn) {','						addClass(logMainContainer, logLevels[i]);','					} else {','						removeClass(logMainContainer, logLevels[i]);','					}','				}','			}','','			function checkAllLevels() {','				for (var i = 0; i < logLevels.length; i++) {','					if (!getCheckBox(logLevels[i]).checked) {','						getCheckBox("ALL").checked = false;','						return;','					}','				}','				getCheckBox("ALL").checked = true;','			}','','			function clearLog() {','				rootGroup.clear();','				currentGroup = rootGroup;','				logEntries = [];','				logItems = [];','				logEntriesAndSeparators = [];',' 				doSearch();','			}','','			function toggleWrap() {','				var enable = $("wrap").checked;','				if (enable) {','					addClass(logMainContainer, "wrap");','				} else {','					removeClass(logMainContainer, "wrap");','				}','				refreshCurrentMatch();','			}','','			/* ------------------------------------------------------------------- */','','			// Search','','			var searchTimer = null;','','			function scheduleSearch() {','				try {','					clearTimeout(searchTimer);','				} catch (ex) {','					// Do nothing','				}','				searchTimer = setTimeout(doSearch, 500);','			}','','			function Search(searchTerm, isRegex, searchRegex, isCaseSensitive) {','				this.searchTerm = searchTerm;','				this.isRegex = isRegex;','				this.searchRegex = searchRegex;','				this.isCaseSensitive = isCaseSensitive;','				this.matches = [];','			}','','			Search.prototype = {','				hasMatches: function() {','					return this.matches.length > 0;','				},','','				hasVisibleMatches: function() {','					if (this.hasMatches()) {','						for (var i = 0; i < this.matches.length; i++) {','							if (this.matches[i].isVisible()) {','								return true;','							}','						}','					}','					return false;','				},','','				match: function(logEntry) {','					var entryText = String(logEntry.formattedMessage);','					var matchesSearch = false;','					if (this.isRegex) {','						matchesSearch = this.searchRegex.test(entryText);','					} else if (this.isCaseSensitive) {','						matchesSearch = (entryText.indexOf(this.searchTerm) > -1);','					} else {','						matchesSearch = (entryText.toLowerCase().indexOf(this.searchTerm.toLowerCase()) > -1);','					}','					return matchesSearch;','				},','','				getNextVisibleMatchIndex: function() {','					for (var i = currentMatchIndex + 1; i < this.matches.length; i++) {','						if (this.matches[i].isVisible()) {','							return i;','						}','					}','					// Start again from the first match','					for (i = 0; i <= currentMatchIndex; i++) {','						if (this.matches[i].isVisible()) {','							return i;','						}','					}','					return -1;','				},','','				getPreviousVisibleMatchIndex: function() {','					for (var i = currentMatchIndex - 1; i >= 0; i--) {','						if (this.matches[i].isVisible()) {','							return i;','						}','					}','					// Start again from the last match','					for (var i = this.matches.length - 1; i >= currentMatchIndex; i--) {','						if (this.matches[i].isVisible()) {','							return i;','						}','					}','					return -1;','				},','','				applyTo: function(logEntry) {','					var doesMatch = this.match(logEntry);','					if (doesMatch) {','						logEntry.group.expand();','						logEntry.setSearchMatch(true);','						var logEntryContent;','						var wrappedLogEntryContent;','						var searchTermReplacementStartTag = "<span class=\\\"searchterm\\\">";','						var searchTermReplacementEndTag = "<" + "/span>";','						var preTagName = isIe ? "pre" : "span";','						var preStartTag = "<" + preTagName + " class=\\\"pre\\\">";','						var preEndTag = "<" + "/" + preTagName + ">";','						var startIndex = 0;','						var searchIndex, matchedText, textBeforeMatch;','						if (this.isRegex) {','							var flags = this.isCaseSensitive ? "g" : "gi";','							var capturingRegex = new RegExp("(" + this.searchRegex.source + ")", flags);','','							// Replace the search term with temporary tokens for the start and end tags','							var rnd = ("" + Math.random()).substr(2);','							var startToken = "%%s" + rnd + "%%";','							var endToken = "%%e" + rnd + "%%";','							logEntryContent = logEntry.formattedMessage.replace(capturingRegex, startToken + "$1" + endToken);','','							// Escape the HTML to get rid of angle brackets','							logEntryContent = escapeHtml(logEntryContent);','','							// Substitute the proper HTML back in for the search match','							var result;','							var searchString = logEntryContent;','							logEntryContent = "";','							wrappedLogEntryContent = "";','							while ((searchIndex = searchString.indexOf(startToken, startIndex)) > -1) {','								var endTokenIndex = searchString.indexOf(endToken, searchIndex);','								matchedText = searchString.substring(searchIndex + startToken.length, endTokenIndex);','								textBeforeMatch = searchString.substring(startIndex, searchIndex);','								logEntryContent += preStartTag + textBeforeMatch + preEndTag;','								logEntryContent += searchTermReplacementStartTag + preStartTag + matchedText +','									preEndTag + searchTermReplacementEndTag;','								if (isIe) {','									wrappedLogEntryContent += textBeforeMatch + searchTermReplacementStartTag +','										matchedText + searchTermReplacementEndTag;','								}','								startIndex = endTokenIndex + endToken.length;','							}','							logEntryContent += preStartTag + searchString.substr(startIndex) + preEndTag;','							if (isIe) {','								wrappedLogEntryContent += searchString.substr(startIndex);','							}','						} else {','							logEntryContent = "";','							wrappedLogEntryContent = "";','							var searchTermReplacementLength = searchTermReplacementStartTag.length +','								this.searchTerm.length + searchTermReplacementEndTag.length;','							var searchTermLength = this.searchTerm.length;','							var searchTermLowerCase = this.searchTerm.toLowerCase();','							var logTextLowerCase = logEntry.formattedMessage.toLowerCase();','							while ((searchIndex = logTextLowerCase.indexOf(searchTermLowerCase, startIndex)) > -1) {','								matchedText = escapeHtml(logEntry.formattedMessage.substr(searchIndex, this.searchTerm.length));','								textBeforeMatch = escapeHtml(logEntry.formattedMessage.substring(startIndex, searchIndex));','								var searchTermReplacement = searchTermReplacementStartTag +','									preStartTag + matchedText + preEndTag + searchTermReplacementEndTag;','								logEntryContent += preStartTag + textBeforeMatch + preEndTag + searchTermReplacement;','								if (isIe) {','									wrappedLogEntryContent += textBeforeMatch + searchTermReplacementStartTag +','										matchedText + searchTermReplacementEndTag;','								}','								startIndex = searchIndex + searchTermLength;','							}','							var textAfterLastMatch = escapeHtml(logEntry.formattedMessage.substr(startIndex));','							logEntryContent += preStartTag + textAfterLastMatch + preEndTag;','							if (isIe) {','								wrappedLogEntryContent += textAfterLastMatch;','							}','						}','						logEntry.setContent(logEntryContent, wrappedLogEntryContent);','						var logEntryMatches = logEntry.getSearchMatches();','						this.matches = this.matches.concat(logEntryMatches);','					} else {','						logEntry.setSearchMatch(false);','						logEntry.setContent(logEntry.formattedMessage, logEntry.formattedMessage);','					}','					return doesMatch;','				},','','				removeMatches: function(logEntries) {','					var matchesToRemoveCount = 0;','					var currentMatchRemoved = false;','					var matchesToRemove = [];','					var i, iLen, j, jLen;','','					// Establish the list of matches to be removed','					for (i = 0, iLen = this.matches.length; i < iLen; i++) {','						for (j = 0, jLen = logEntries.length; j < jLen; j++) {','							if (this.matches[i].belongsTo(logEntries[j])) {','								matchesToRemove.push(this.matches[i]);','								if (i === currentMatchIndex) {','									currentMatchRemoved = true;','								}','							}','						}','					}','','					// Set the new current match index if the current match has been deleted','					// This will be the first match that appears after the first log entry being','					// deleted, if one exists; otherwise, it\'s the first match overall','					var newMatch = currentMatchRemoved ? null : this.matches[currentMatchIndex];','					if (currentMatchRemoved) {','						for (i = currentMatchIndex, iLen = this.matches.length; i < iLen; i++) {','							if (this.matches[i].isVisible() && !array_contains(matchesToRemove, this.matches[i])) {','								newMatch = this.matches[i];','								break;','							}','						}','					}','','					// Remove the matches','					for (i = 0, iLen = matchesToRemove.length; i < iLen; i++) {','						array_remove(this.matches, matchesToRemove[i]);','						matchesToRemove[i].remove();','					}','','					// Set the new match, if one exists','					if (this.hasVisibleMatches()) {','						if (newMatch === null) {','							setCurrentMatchIndex(0);','						} else {','							// Get the index of the new match','							var newMatchIndex = 0;','							for (i = 0, iLen = this.matches.length; i < iLen; i++) {','								if (newMatch === this.matches[i]) {','									newMatchIndex = i;','									break;','								}','							}','							setCurrentMatchIndex(newMatchIndex);','						}','					} else {','						currentMatchIndex = null;','						displayNoMatches();','					}','				}','			};','','			function getPageOffsetTop(el, container) {','				var currentEl = el;','				var y = 0;','				while (currentEl && currentEl != container) {','					y += currentEl.offsetTop;','					currentEl = currentEl.offsetParent;','				}','				return y;','			}','','			function scrollIntoView(el) {','				var logContainer = logMainContainer;','				// Check if the whole width of the element is visible and centre if not','				if (!$("wrap").checked) {','					var logContainerLeft = logContainer.scrollLeft;','					var logContainerRight = logContainerLeft  + logContainer.offsetWidth;','					var elLeft = el.offsetLeft;','					var elRight = elLeft + el.offsetWidth;','					if (elLeft < logContainerLeft || elRight > logContainerRight) {','						logContainer.scrollLeft = elLeft - (logContainer.offsetWidth - el.offsetWidth) / 2;','					}','				}','				// Check if the whole height of the element is visible and centre if not','				var logContainerTop = logContainer.scrollTop;','				var logContainerBottom = logContainerTop  + logContainer.offsetHeight;','				var elTop = getPageOffsetTop(el) - getToolBarsHeight();','				var elBottom = elTop + el.offsetHeight;','				if (elTop < logContainerTop || elBottom > logContainerBottom) {','					logContainer.scrollTop = elTop - (logContainer.offsetHeight - el.offsetHeight) / 2;','				}','			}','','			function Match(logEntryLevel, spanInMainDiv, spanInUnwrappedPre, spanInWrappedDiv) {','				this.logEntryLevel = logEntryLevel;','				this.spanInMainDiv = spanInMainDiv;','				if (isIe) {','					this.spanInUnwrappedPre = spanInUnwrappedPre;','					this.spanInWrappedDiv = spanInWrappedDiv;','				}','				this.mainSpan = isIe ? spanInUnwrappedPre : spanInMainDiv;','			}','','			Match.prototype = {','				equals: function(match) {','					return this.mainSpan === match.mainSpan;','				},','','				setCurrent: function() {','					if (isIe) {','						addClass(this.spanInUnwrappedPre, "currentmatch");','						addClass(this.spanInWrappedDiv, "currentmatch");','						// Scroll the visible one into view','						var elementToScroll = $("wrap").checked ? this.spanInWrappedDiv : this.spanInUnwrappedPre;','						scrollIntoView(elementToScroll);','					} else {','						addClass(this.spanInMainDiv, "currentmatch");','						scrollIntoView(this.spanInMainDiv);','					}','				},','','				belongsTo: function(logEntry) {','					if (isIe) {','						return isDescendant(this.spanInUnwrappedPre, logEntry.unwrappedPre);','					} else {','						return isDescendant(this.spanInMainDiv, logEntry.mainDiv);','					}','				},','','				setNotCurrent: function() {','					if (isIe) {','						removeClass(this.spanInUnwrappedPre, "currentmatch");','						removeClass(this.spanInWrappedDiv, "currentmatch");','					} else {','						removeClass(this.spanInMainDiv, "currentmatch");','					}','				},','','				isOrphan: function() {','					return isOrphan(this.mainSpan);','				},','','				isVisible: function() {','					return getCheckBox(this.logEntryLevel).checked;','				},','','				remove: function() {','					if (isIe) {','						this.spanInUnwrappedPre = null;','						this.spanInWrappedDiv = null;','					} else {','						this.spanInMainDiv = null;','					}','				}','			};','','			var currentSearch = null;','			var currentMatchIndex = null;','','			function doSearch() {','				var searchBox = $("searchBox");','				var searchTerm = searchBox.value;','				var isRegex = $("searchRegex").checked;','				var isCaseSensitive = $("searchCaseSensitive").checked;','				var i;','','				if (searchTerm === "") {','					$("searchReset").disabled = true;','					$("searchNav").style.display = "none";','					removeClass(document.body, "searching");','					removeClass(searchBox, "hasmatches");','					removeClass(searchBox, "nomatches");','					for (i = 0; i < logEntries.length; i++) {','						logEntries[i].clearSearch();','						logEntries[i].setContent(logEntries[i].formattedMessage, logEntries[i].formattedMessage);','					}','					currentSearch = null;','					setLogContainerHeight();','				} else {','					$("searchReset").disabled = false;','					$("searchNav").style.display = "block";','					var searchRegex;','					var regexValid;','					if (isRegex) {','						try {','							searchRegex = isCaseSensitive ? new RegExp(searchTerm, "g") : new RegExp(searchTerm, "gi");','							regexValid = true;','							replaceClass(searchBox, "validregex", "invalidregex");','							searchBox.title = "Valid regex";','						} catch (ex) {','							regexValid = false;','							replaceClass(searchBox, "invalidregex", "validregex");','							searchBox.title = "Invalid regex: " + (ex.message ? ex.message : (ex.description ? ex.description : "unknown error"));','							return;','						}','					} else {','						searchBox.title = "";','						removeClass(searchBox, "validregex");','						removeClass(searchBox, "invalidregex");','					}','					addClass(document.body, "searching");','					currentSearch = new Search(searchTerm, isRegex, searchRegex, isCaseSensitive);','					for (i = 0; i < logEntries.length; i++) {','						currentSearch.applyTo(logEntries[i]);','					}','					setLogContainerHeight();','','					// Highlight the first search match','					if (currentSearch.hasVisibleMatches()) {','						setCurrentMatchIndex(0);','						displayMatches();','					} else {','						displayNoMatches();','					}','				}','			}','','			function updateSearchFromFilters() {','				if (currentSearch) {','					if (currentSearch.hasMatches()) {','						if (currentMatchIndex === null) {','							currentMatchIndex = 0;','						}','						var currentMatch = currentSearch.matches[currentMatchIndex];','						if (currentMatch.isVisible()) {','							displayMatches();','							setCurrentMatchIndex(currentMatchIndex);','						} else {','							currentMatch.setNotCurrent();','							// Find the next visible match, if one exists','							var nextVisibleMatchIndex = currentSearch.getNextVisibleMatchIndex();','							if (nextVisibleMatchIndex > -1) {','								setCurrentMatchIndex(nextVisibleMatchIndex);','								displayMatches();','							} else {','								displayNoMatches();','							}','						}','					} else {','						displayNoMatches();','					}','				}','			}','','			function refreshCurrentMatch() {','				if (currentSearch && currentSearch.hasVisibleMatches()) {','					setCurrentMatchIndex(currentMatchIndex);','				}','			}','','			function displayMatches() {','				replaceClass($("searchBox"), "hasmatches", "nomatches");','				$("searchBox").title = "" + currentSearch.matches.length + " matches found";','				$("searchNav").style.display = "block";','				setLogContainerHeight();','			}','','			function displayNoMatches() {','				replaceClass($("searchBox"), "nomatches", "hasmatches");','				$("searchBox").title = "No matches found";','				$("searchNav").style.display = "none";','				setLogContainerHeight();','			}','','			function toggleSearchEnabled(enable) {','				enable = (typeof enable == "undefined") ? !$("searchDisable").checked : enable;','				$("searchBox").disabled = !enable;','				$("searchReset").disabled = !enable;','				$("searchRegex").disabled = !enable;','				$("searchNext").disabled = !enable;','				$("searchPrevious").disabled = !enable;','				$("searchCaseSensitive").disabled = !enable;','				$("searchNav").style.display = (enable && ($("searchBox").value !== "") &&','						currentSearch && currentSearch.hasVisibleMatches()) ?','					"block" : "none";','				if (enable) {','					removeClass($("search"), "greyedout");','					addClass(document.body, "searching");','					if ($("searchHighlight").checked) {','						addClass(logMainContainer, "searchhighlight");','					} else {','						removeClass(logMainContainer, "searchhighlight");','					}','					if ($("searchFilter").checked) {','						addClass(logMainContainer, "searchfilter");','					} else {','						removeClass(logMainContainer, "searchfilter");','					}','					$("searchDisable").checked = !enable;','				} else {','					addClass($("search"), "greyedout");','					removeClass(document.body, "searching");','					removeClass(logMainContainer, "searchhighlight");','					removeClass(logMainContainer, "searchfilter");','				}','				setLogContainerHeight();','			}','','			function toggleSearchFilter() {','				var enable = $("searchFilter").checked;','				if (enable) {','					addClass(logMainContainer, "searchfilter");','				} else {','					removeClass(logMainContainer, "searchfilter");','				}','				refreshCurrentMatch();','			}','','			function toggleSearchHighlight() {','				var enable = $("searchHighlight").checked;','				if (enable) {','					addClass(logMainContainer, "searchhighlight");','				} else {','					removeClass(logMainContainer, "searchhighlight");','				}','			}','','			function clearSearch() {','				$("searchBox").value = "";','				doSearch();','			}','','			function searchNext() {','				if (currentSearch !== null && currentMatchIndex !== null) {','					currentSearch.matches[currentMatchIndex].setNotCurrent();','					var nextMatchIndex = currentSearch.getNextVisibleMatchIndex();','					if (nextMatchIndex > currentMatchIndex || confirm("Reached the end of the page. Start from the top?")) {','						setCurrentMatchIndex(nextMatchIndex);','					}','				}','			}','','			function searchPrevious() {','				if (currentSearch !== null && currentMatchIndex !== null) {','					currentSearch.matches[currentMatchIndex].setNotCurrent();','					var previousMatchIndex = currentSearch.getPreviousVisibleMatchIndex();','					if (previousMatchIndex < currentMatchIndex || confirm("Reached the start of the page. Continue from the bottom?")) {','						setCurrentMatchIndex(previousMatchIndex);','					}','				}','			}','','			function setCurrentMatchIndex(index) {','				currentMatchIndex = index;','				currentSearch.matches[currentMatchIndex].setCurrent();','			}','','			/* ------------------------------------------------------------------------- */','','			// CSS Utilities','','			function addClass(el, cssClass) {','				if (!hasClass(el, cssClass)) {','					if (el.className) {','						el.className += " " + cssClass;','					} else {','						el.className = cssClass;','					}','				}','			}','','			function hasClass(el, cssClass) {','				if (el.className) {','					var classNames = el.className.split(" ");','					return array_contains(classNames, cssClass);','				}','				return false;','			}','','			function removeClass(el, cssClass) {','				if (hasClass(el, cssClass)) {','					// Rebuild the className property','					var existingClasses = el.className.split(" ");','					var newClasses = [];','					for (var i = 0, len = existingClasses.length; i < len; i++) {','						if (existingClasses[i] != cssClass) {','							newClasses[newClasses.length] = existingClasses[i];','						}','					}','					el.className = newClasses.join(" ");','				}','			}','','			function replaceClass(el, newCssClass, oldCssClass) {','				removeClass(el, oldCssClass);','				addClass(el, newCssClass);','			}','','			/* ------------------------------------------------------------------------- */','','			// Other utility functions','','			function getElementsByClass(el, cssClass, tagName) {','				var elements = el.getElementsByTagName(tagName);','				var matches = [];','				for (var i = 0, len = elements.length; i < len; i++) {','					if (hasClass(elements[i], cssClass)) {','						matches.push(elements[i]);','					}','				}','				return matches;','			}','','			// Syntax borrowed from Prototype library','			function $(id) {','				return document.getElementById(id);','			}','','			function isDescendant(node, ancestorNode) {','				while (node != null) {','					if (node === ancestorNode) {','						return true;','					}','					node = node.parentNode;','				}','				return false;','			}','','			function isOrphan(node) {','				var currentNode = node;','				while (currentNode) {','					if (currentNode == document.body) {','						return false;','					}','					currentNode = currentNode.parentNode;','				}','				return true;','			}','','			function escapeHtml(str) {','				return str.replace(/&/g, "&amp;").replace(/[<]/g, "&lt;").replace(/>/g, "&gt;");','			}','','			function getWindowWidth() {','				if (window.innerWidth) {','					return window.innerWidth;','				} else if (document.documentElement && document.documentElement.clientWidth) {','					return document.documentElement.clientWidth;','				} else if (document.body) {','					return document.body.clientWidth;','				}','				return 0;','			}','','			function getWindowHeight() {','				if (window.innerHeight) {','					return window.innerHeight;','				} else if (document.documentElement && document.documentElement.clientHeight) {','					return document.documentElement.clientHeight;','				} else if (document.body) {','					return document.body.clientHeight;','				}','				return 0;','			}','','			function getToolBarsHeight() {','				return $("switches").offsetHeight;','			}','','			function getChromeHeight() {','				var height = getToolBarsHeight();','				if (showCommandLine) {','					height += $("commandLine").offsetHeight;','				}','				return height;','			}','','			function setLogContainerHeight() {','				if (logMainContainer) {','					var windowHeight = getWindowHeight();','					$("body").style.height = getWindowHeight() + "px";','					logMainContainer.style.height = "" +','						Math.max(0, windowHeight - getChromeHeight()) + "px";','				}','			}','','			function setCommandInputWidth() {','				if (showCommandLine) {','					$("command").style.width = "" + Math.max(0, $("commandLineContainer").offsetWidth -','						($("evaluateButton").offsetWidth + 13)) + "px";','				}','			}','','			window.onresize = function() {','				setCommandInputWidth();','				setLogContainerHeight();','			};','','			if (!Array.prototype.push) {','				Array.prototype.push = function() {','			        for (var i = 0, len = arguments.length; i < len; i++){','			            this[this.length] = arguments[i];','			        }','			        return this.length;','				};','			}','','			if (!Array.prototype.pop) {','				Array.prototype.pop = function() {','					if (this.length > 0) {','						var val = this[this.length - 1];','						this.length = this.length - 1;','						return val;','					}','				};','			}','','			if (!Array.prototype.shift) {','				Array.prototype.shift = function() {','					if (this.length > 0) {','						var firstItem = this[0];','						for (var i = 0, len = this.length - 1; i < len; i++) {','							this[i] = this[i + 1];','						}','						this.length = this.length - 1;','						return firstItem;','					}','				};','			}','','			if (!Array.prototype.splice) {','				Array.prototype.splice = function(startIndex, deleteCount) {','					var itemsAfterDeleted = this.slice(startIndex + deleteCount);','					var itemsDeleted = this.slice(startIndex, startIndex + deleteCount);','					this.length = startIndex;','					// Copy the arguments into a proper Array object','					var argumentsArray = [];','					for (var i = 0, len = arguments.length; i < len; i++) {','						argumentsArray[i] = arguments[i];','					}','					var itemsToAppend = (argumentsArray.length > 2) ?','						itemsAfterDeleted = argumentsArray.slice(2).concat(itemsAfterDeleted) : itemsAfterDeleted;','					for (i = 0, len = itemsToAppend.length; i < len; i++) {','						this.push(itemsToAppend[i]);','					}','					return itemsDeleted;','				};','			}','','			function array_remove(arr, val) {','				var index = -1;','				for (var i = 0, len = arr.length; i < len; i++) {','					if (arr[i] === val) {','						index = i;','						break;','					}','				}','				if (index >= 0) {','					arr.splice(index, 1);','					return index;','				} else {','					return false;','				}','			}','','			function array_removeFromStart(array, numberToRemove) {','				if (Array.prototype.splice) {','					array.splice(0, numberToRemove);','				} else {','					for (var i = numberToRemove, len = array.length; i < len; i++) {','						array[i - numberToRemove] = array[i];','					}','					array.length = array.length - numberToRemove;','				}','				return array;','			}','','			function array_contains(arr, val) {','				for (var i = 0, len = arr.length; i < len; i++) {','					if (arr[i] == val) {','						return true;','					}','				}','				return false;','			}','','			function getErrorMessage(ex) {','				if (ex.message) {','					return ex.message;','				} else if (ex.description) {','					return ex.description;','				}','				return "" + ex;','			}','','			function moveCaretToEnd(input) {','				if (input.setSelectionRange) {','					input.focus();','					var length = input.value.length;','					input.setSelectionRange(length, length);','				} else if (input.createTextRange) {','					var range = input.createTextRange();','					range.collapse(false);','					range.select();','				}','				input.focus();','			}','','			function stopPropagation(evt) {','				if (evt.stopPropagation) {','					evt.stopPropagation();','				} else if (typeof evt.cancelBubble != "undefined") {','					evt.cancelBubble = true;','				}','			}','','			function getEvent(evt) {','				return evt ? evt : event;','			}','','			function getTarget(evt) {','				return evt.target ? evt.target : evt.srcElement;','			}','','			function getRelatedTarget(evt) {','				if (evt.relatedTarget) {','					return evt.relatedTarget;','				} else if (evt.srcElement) {','					switch(evt.type) {','						case "mouseover":','							return evt.fromElement;','						case "mouseout":','							return evt.toElement;','						default:','							return evt.srcElement;','					}','				}','			}','','			function cancelKeyEvent(evt) {','				evt.returnValue = false;','				stopPropagation(evt);','			}','','			function evalCommandLine() {','				var expr = $("command").value;','				evalCommand(expr);','				$("command").value = "";','			}','','			function evalLastCommand() {','				if (lastCommand != null) {','					evalCommand(lastCommand);','				}','			}','','			var lastCommand = null;','			var commandHistory = [];','			var currentCommandIndex = 0;','','			function evalCommand(expr) {','				if (appender) {','					appender.evalCommandAndAppend(expr);','				} else {','					var prefix = ">>> " + expr + "\\r\\n";','					try {','						log("INFO", prefix + eval(expr));','					} catch (ex) {','						log("ERROR", prefix + "Error: " + getErrorMessage(ex));','					}','				}','				// Update command history','				if (expr != commandHistory[commandHistory.length - 1]) {','					commandHistory.push(expr);','					// Update the appender','					if (appender) {','						appender.storeCommandHistory(commandHistory);','					}','				}','				currentCommandIndex = (expr == commandHistory[currentCommandIndex]) ? currentCommandIndex + 1 : commandHistory.length;','				lastCommand = expr;','			}','			//]]>','		</script>','		<style type="text/css">','			body {','				background-color: white;','				color: black;','				padding: 0;','				margin: 0;','				font-family: tahoma, verdana, arial, helvetica, sans-serif;','				overflow: hidden;','			}','','			div#switchesContainer input {','				margin-bottom: 0;','			}','','			div.toolbar {','				border-top: solid #ffffff 1px;','				border-bottom: solid #aca899 1px;','				background-color: #f1efe7;','				padding: 3px 5px;','				font-size: 68.75%;','			}','','			div.toolbar, div#search input {','				font-family: tahoma, verdana, arial, helvetica, sans-serif;','			}','','			div.toolbar input.button {','				padding: 0 5px;','				font-size: 100%;','			}','','			div.toolbar input.hidden {','				display: none;','			}','','			div#switches input#clearButton {','				margin-left: 20px;','			}','','			div#levels label {','				font-weight: bold;','			}','','			div#levels label, div#options label {','				margin-right: 5px;','			}','','			div#levels label#wrapLabel {','				font-weight: normal;','			}','','			div#search label {','				margin-right: 10px;','			}','','			div#search label.searchboxlabel {','				margin-right: 0;','			}','','			div#search input {','				font-size: 100%;','			}','','			div#search input.validregex {','				color: green;','			}','','			div#search input.invalidregex {','				color: red;','			}','','			div#search input.nomatches {','				color: white;','				background-color: #ff6666;','			}','','			div#search input.nomatches {','				color: white;','				background-color: #ff6666;','			}','','			div#searchNav {','				display: none;','			}','','			div#commandLine {','				display: none;','			}','','			div#commandLine input#command {','				font-size: 100%;','				font-family: Courier New, Courier;','			}','','			div#commandLine input#evaluateButton {','			}','','			*.greyedout {','				color: gray !important;','				border-color: gray !important;','			}','','			*.greyedout *.alwaysenabled { color: black; }','','			*.unselectable {','				-khtml-user-select: none;','				-moz-user-select: none;','				user-select: none;','			}','','			div#log {','				font-family: Courier New, Courier;','				font-size: 75%;','				width: 100%;','				overflow: auto;','				clear: both;','				position: relative;','			}','','			div.group {','				border-color: #cccccc;','				border-style: solid;','				border-width: 1px 0 1px 1px;','				overflow: visible;','			}','','			div.oldIe div.group, div.oldIe div.group *, div.oldIe *.logentry {','				height: 1%;','			}','','			div.group div.groupheading span.expander {','				border: solid black 1px;','				font-family: Courier New, Courier;','				font-size: 0.833em;','				background-color: #eeeeee;','				position: relative;','				top: -1px;','				color: black;','				padding: 0 2px;','				cursor: pointer;','				cursor: hand;','				height: 1%;','			}','','			div.group div.groupcontent {','				margin-left: 10px;','				padding-bottom: 2px;','				overflow: visible;','			}','','			div.group div.expanded {','				display: block;','			}','','			div.group div.collapsed {','				display: none;','			}','','			*.logentry {','				overflow: visible;','				display: none;','				white-space: pre;','			}','','			span.pre {','				white-space: pre;','			}','			','			pre.unwrapped {','				display: inline !important;','			}','','			pre.unwrapped pre.pre, div.wrapped pre.pre {','				display: inline;','			}','','			div.wrapped pre.pre {','				white-space: normal;','			}','','			div.wrapped {','				display: none;','			}','','			body.searching *.logentry span.currentmatch {','				color: white !important;','				background-color: green !important;','			}','','			body.searching div.searchhighlight *.logentry span.searchterm {','				color: black;','				background-color: yellow;','			}','','			div.wrap *.logentry {','				white-space: normal !important;','				border-width: 0 0 1px 0;','				border-color: #dddddd;','				border-style: dotted;','			}','','			div.wrap #log_wrapped, #log_unwrapped {','				display: block;','			}','','			div.wrap #log_unwrapped, #log_wrapped {','				display: none;','			}','','			div.wrap *.logentry span.pre {','				overflow: visible;','				white-space: normal;','			}','','			div.wrap *.logentry pre.unwrapped {','				display: none;','			}','','			div.wrap *.logentry span.wrapped {','				display: inline;','			}','','			div.searchfilter *.searchnonmatch {','				display: none !important;','			}','','			div#log *.TRACE, label#label_TRACE {','				color: #666666;','			}','','			div#log *.DEBUG, label#label_DEBUG {','				color: green;','			}','','			div#log *.INFO, label#label_INFO {','				color: #000099;','			}','','			div#log *.WARN, label#label_WARN {','				color: #999900;','			}','','			div#log *.ERROR, label#label_ERROR {','				color: red;','			}','','			div#log *.FATAL, label#label_FATAL {','				color: #660066;','			}','','			div.TRACE#log *.TRACE,','			div.DEBUG#log *.DEBUG,','			div.INFO#log *.INFO,','			div.WARN#log *.WARN,','			div.ERROR#log *.ERROR,','			div.FATAL#log *.FATAL {','				display: block;','			}','','			div#log div.separator {','				background-color: #cccccc;','				margin: 5px 0;','				line-height: 1px;','			}','		</style>','	</head>','','	<body id="body">','		<div id="switchesContainer">','			<div id="switches">','				<div id="levels" class="toolbar">','					Filters:','					<input type="checkbox" id="switch_TRACE" onclick="applyFilters(); checkAllLevels()" checked="checked" title="Show/hide trace messages" /><label for="switch_TRACE" id="label_TRACE">trace</label>','					<input type="checkbox" id="switch_DEBUG" onclick="applyFilters(); checkAllLevels()" checked="checked" title="Show/hide debug messages" /><label for="switch_DEBUG" id="label_DEBUG">debug</label>','					<input type="checkbox" id="switch_INFO" onclick="applyFilters(); checkAllLevels()" checked="checked" title="Show/hide info messages" /><label for="switch_INFO" id="label_INFO">info</label>','					<input type="checkbox" id="switch_WARN" onclick="applyFilters(); checkAllLevels()" checked="checked" title="Show/hide warn messages" /><label for="switch_WARN" id="label_WARN">warn</label>','					<input type="checkbox" id="switch_ERROR" onclick="applyFilters(); checkAllLevels()" checked="checked" title="Show/hide error messages" /><label for="switch_ERROR" id="label_ERROR">error</label>','					<input type="checkbox" id="switch_FATAL" onclick="applyFilters(); checkAllLevels()" checked="checked" title="Show/hide fatal messages" /><label for="switch_FATAL" id="label_FATAL">fatal</label>','					<input type="checkbox" id="switch_ALL" onclick="toggleAllLevels(); applyFilters()" checked="checked" title="Show/hide all messages" /><label for="switch_ALL" id="label_ALL">all</label>','				</div>','				<div id="search" class="toolbar">','					<label for="searchBox" class="searchboxlabel">Search:</label> <input type="text" id="searchBox" onclick="toggleSearchEnabled(true)" onkeyup="scheduleSearch()" size="20" />','					<input type="button" id="searchReset" disabled="disabled" value="Reset" onclick="clearSearch()" class="button" title="Reset the search" />','					<input type="checkbox" id="searchRegex" onclick="doSearch()" title="If checked, search is treated as a regular expression" /><label for="searchRegex">Regex</label>','					<input type="checkbox" id="searchCaseSensitive" onclick="doSearch()" title="If checked, search is case sensitive" /><label for="searchCaseSensitive">Match case</label>','					<input type="checkbox" id="searchDisable" onclick="toggleSearchEnabled()" title="Enable/disable search" /><label for="searchDisable" class="alwaysenabled">Disable</label>','					<div id="searchNav">','						<input type="button" id="searchNext" disabled="disabled" value="Next" onclick="searchNext()" class="button" title="Go to the next matching log entry" />','						<input type="button" id="searchPrevious" disabled="disabled" value="Previous" onclick="searchPrevious()" class="button" title="Go to the previous matching log entry" />','						<input type="checkbox" id="searchFilter" onclick="toggleSearchFilter()" title="If checked, non-matching log entries are filtered out" /><label for="searchFilter">Filter</label>','						<input type="checkbox" id="searchHighlight" onclick="toggleSearchHighlight()" title="Highlight matched search terms" /><label for="searchHighlight" class="alwaysenabled">Highlight all</label>','					</div>','				</div>','				<div id="options" class="toolbar">','					Options:','					<input type="checkbox" id="enableLogging" onclick="toggleLoggingEnabled()" checked="checked" title="Enable/disable logging" /><label for="enableLogging" id="enableLoggingLabel">Log</label>','					<input type="checkbox" id="wrap" onclick="toggleWrap()" title="Enable / disable word wrap" /><label for="wrap" id="wrapLabel">Wrap</label>','					<input type="checkbox" id="newestAtTop" onclick="toggleNewestAtTop()" title="If checked, causes newest messages to appear at the top" /><label for="newestAtTop" id="newestAtTopLabel">Newest at the top</label>','					<input type="checkbox" id="scrollToLatest" onclick="toggleScrollToLatest()" checked="checked" title="If checked, window automatically scrolls to a new message when it is added" /><label for="scrollToLatest" id="scrollToLatestLabel">Scroll to latest</label>','					<input type="button" id="clearButton" value="Clear" onclick="clearLog()" class="button" title="Clear all log messages"  />','					<input type="button" id="hideButton" value="Hide" onclick="hide()" class="hidden button" title="Hide the console" />','					<input type="button" id="closeButton" value="Close" onclick="closeWindow()" class="hidden button" title="Close the window" />','				</div>','			</div>','		</div>','		<div id="log" class="TRACE DEBUG INFO WARN ERROR FATAL"></div>','		<div id="commandLine" class="toolbar">','			<div id="commandLineContainer">','				<input type="text" id="command" title="Enter a JavaScript command here and hit return or press \'Evaluate\'" />','				<input type="button" id="evaluateButton" value="Evaluate" class="button" title="Evaluate the command" onclick="evalCommandLine()" />','			</div>','		</div>','	</body>','</html>',''];};var defaultCommandLineFunctions=[];ConsoleAppender=function(){};var consoleAppenderIdCounter=1;ConsoleAppender.prototype=new Appender();ConsoleAppender.prototype.create=function(inPage,container,lazyInit,initiallyMinimized,useDocumentWrite,width,height,focusConsoleWindow){var appender=this;var initialized=false;var consoleWindowCreated=false;var consoleWindowLoaded=false;var consoleClosed=false;var queuedLoggingEvents=[];var isSupported=true;var consoleAppenderId=consoleAppenderIdCounter++;initiallyMinimized=extractBooleanFromParam(initiallyMinimized,this.defaults.initiallyMinimized);lazyInit=extractBooleanFromParam(lazyInit,this.defaults.lazyInit);useDocumentWrite=extractBooleanFromParam(useDocumentWrite,this.defaults.useDocumentWrite);var newestMessageAtTop=this.defaults.newestMessageAtTop;var scrollToLatestMessage=this.defaults.scrollToLatestMessage;width=width?width:this.defaults.width;height=height?height:this.defaults.height;var maxMessages=this.defaults.maxMessages;var showCommandLine=this.defaults.showCommandLine;var commandLineObjectExpansionDepth=this.defaults.commandLineObjectExpansionDepth;var showHideButton=this.defaults.showHideButton;var showCloseButton=this.defaults.showCloseButton;var showLogEntryDeleteButtons=this.defaults.showLogEntryDeleteButtons;this.setLayout(this.defaults.layout);var init,createWindow,safeToAppend,getConsoleWindow,open;var appenderName=inPage?"InPageAppender":"PopUpAppender";var checkCanConfigure=function(configOptionName){if(consoleWindowCreated){handleError(appenderName+": configuration option '"+configOptionName+"' may not be set after the appender has been initialized");return false;}
return true;};var consoleWindowExists=function(){return(consoleWindowLoaded&&isSupported&&!consoleClosed);};this.isNewestMessageAtTop=function(){return newestMessageAtTop;};this.setNewestMessageAtTop=function(newestMessageAtTopParam){newestMessageAtTop=bool(newestMessageAtTopParam);if(consoleWindowExists()){getConsoleWindow().setNewestAtTop(newestMessageAtTop);}};this.isScrollToLatestMessage=function(){return scrollToLatestMessage;};this.setScrollToLatestMessage=function(scrollToLatestMessageParam){scrollToLatestMessage=bool(scrollToLatestMessageParam);if(consoleWindowExists()){getConsoleWindow().setScrollToLatest(scrollToLatestMessage);}};this.getWidth=function(){return width;};this.setWidth=function(widthParam){if(checkCanConfigure("width")){width=extractStringFromParam(widthParam,width);}};this.getHeight=function(){return height;};this.setHeight=function(heightParam){if(checkCanConfigure("height")){height=extractStringFromParam(heightParam,height);}};this.getMaxMessages=function(){return maxMessages;};this.setMaxMessages=function(maxMessagesParam){maxMessages=extractIntFromParam(maxMessagesParam,maxMessages);if(consoleWindowExists()){getConsoleWindow().setMaxMessages(maxMessages);}};this.isShowCommandLine=function(){return showCommandLine;};this.setShowCommandLine=function(showCommandLineParam){showCommandLine=bool(showCommandLineParam);if(consoleWindowExists()){getConsoleWindow().setShowCommandLine(showCommandLine);}};this.isShowHideButton=function(){return showHideButton;};this.setShowHideButton=function(showHideButtonParam){showHideButton=bool(showHideButtonParam);if(consoleWindowExists()){getConsoleWindow().setShowHideButton(showHideButton);}};this.isShowCloseButton=function(){return showCloseButton;};this.setShowCloseButton=function(showCloseButtonParam){showCloseButton=bool(showCloseButtonParam);if(consoleWindowExists()){getConsoleWindow().setShowCloseButton(showCloseButton);}};this.getCommandLineObjectExpansionDepth=function(){return commandLineObjectExpansionDepth;};this.setCommandLineObjectExpansionDepth=function(commandLineObjectExpansionDepthParam){commandLineObjectExpansionDepth=extractIntFromParam(commandLineObjectExpansionDepthParam,commandLineObjectExpansionDepth);};var minimized=initiallyMinimized;this.isInitiallyMinimized=function(){return initiallyMinimized;};this.setInitiallyMinimized=function(initiallyMinimizedParam){if(checkCanConfigure("initiallyMinimized")){initiallyMinimized=bool(initiallyMinimizedParam);minimized=initiallyMinimized;}};this.isUseDocumentWrite=function(){return useDocumentWrite;};this.setUseDocumentWrite=function(useDocumentWriteParam){if(checkCanConfigure("useDocumentWrite")){useDocumentWrite=bool(useDocumentWriteParam);}};function QueuedLoggingEvent(loggingEvent,formattedMessage){this.loggingEvent=loggingEvent;this.levelName=loggingEvent.level.name;this.formattedMessage=formattedMessage;}
QueuedLoggingEvent.prototype.append=function(){getConsoleWindow().log(this.levelName,this.formattedMessage);};function QueuedGroup(name,initiallyExpanded){this.name=name;this.initiallyExpanded=initiallyExpanded;}
QueuedGroup.prototype.append=function(){getConsoleWindow().group(this.name,this.initiallyExpanded);};function QueuedGroupEnd(){}
QueuedGroupEnd.prototype.append=function(){getConsoleWindow().groupEnd();};var checkAndAppend=function(){safeToAppend();if(!initialized){init();}else if(consoleClosed&&reopenWhenClosed){createWindow();}
if(safeToAppend()){appendQueuedLoggingEvents();}};this.append=function(loggingEvent){if(isSupported){var formattedMessage=appender.getLayout().format(loggingEvent);if(this.getLayout().ignoresThrowable()){formattedMessage+=loggingEvent.getThrowableStrRep();}
queuedLoggingEvents.push(new QueuedLoggingEvent(loggingEvent,formattedMessage));checkAndAppend();}};this.group=function(name,initiallyExpanded){if(isSupported){queuedLoggingEvents.push(new QueuedGroup(name,initiallyExpanded));checkAndAppend();}};this.groupEnd=function(){if(isSupported){queuedLoggingEvents.push(new QueuedGroupEnd());checkAndAppend();}};var appendQueuedLoggingEvents=function(){var currentLoggingEvent;while(queuedLoggingEvents.length>0){queuedLoggingEvents.shift().append();}
if(focusConsoleWindow){getConsoleWindow().focus();}};this.setAddedToLogger=function(logger){this.loggers.push(logger);if(enabled&&!lazyInit){init();}};this.clear=function(){if(consoleWindowExists()){getConsoleWindow().clearLog();}
queuedLoggingEvents.length=0;};this.focus=function(){if(consoleWindowExists()){getConsoleWindow().focus();}};this.focusCommandLine=function(){if(consoleWindowExists()){getConsoleWindow().focusCommandLine();}};this.focusSearch=function(){if(consoleWindowExists()){getConsoleWindow().focusSearch();}};var commandWindow=window;this.getCommandWindow=function(){return commandWindow;};this.setCommandWindow=function(commandWindowParam){commandWindow=commandWindowParam;};this.executeLastCommand=function(){if(consoleWindowExists()){getConsoleWindow().evalLastCommand();}};var commandLayout=new PatternLayout("%m");this.getCommandLayout=function(){return commandLayout;};this.setCommandLayout=function(commandLayoutParam){commandLayout=commandLayoutParam;};this.evalCommandAndAppend=function(expr){var commandReturnValue={appendResult:true,isError:false};var commandOutput="";try{var result,i;if(!commandWindow.eval&&commandWindow.execScript){commandWindow.execScript("null");}
var commandLineFunctionsHash={};for(i=0,len=commandLineFunctions.length;i<len;i++){commandLineFunctionsHash[commandLineFunctions[i][0]]=commandLineFunctions[i][1];}
var objectsToRestore=[];var addObjectToRestore=function(name){objectsToRestore.push([name,commandWindow[name]]);};addObjectToRestore("appender");commandWindow.appender=appender;addObjectToRestore("commandReturnValue");commandWindow.commandReturnValue=commandReturnValue;addObjectToRestore("commandLineFunctionsHash");commandWindow.commandLineFunctionsHash=commandLineFunctionsHash;var addFunctionToWindow=function(name){addObjectToRestore(name);commandWindow[name]=function(){return this.commandLineFunctionsHash[name](appender,arguments,commandReturnValue);};};for(i=0,len=commandLineFunctions.length;i<len;i++){addFunctionToWindow(commandLineFunctions[i][0]);}
if(commandWindow===window&&commandWindow.execScript){addObjectToRestore("evalExpr");addObjectToRestore("result");window.evalExpr=expr;commandWindow.execScript("window.result=eval(window.evalExpr);");result=window.result;}else{result=commandWindow.eval(expr);}
commandOutput=isUndefined(result)?result:formatObjectExpansion(result,commandLineObjectExpansionDepth);for(i=0,len=objectsToRestore.length;i<len;i++){commandWindow[objectsToRestore[i][0]]=objectsToRestore[i][1];}}catch(ex){commandOutput="Error evaluating command: "+getExceptionStringRep(ex);commandReturnValue.isError=true;}
if(commandReturnValue.appendResult){var message=">>> "+expr;if(!isUndefined(commandOutput)){message+=newLine+commandOutput;}
var level=commandReturnValue.isError?Level.ERROR:Level.INFO;var loggingEvent=new LoggingEvent(null,new Date(),level,[message],null);var mainLayout=this.getLayout();this.setLayout(commandLayout);this.append(loggingEvent);this.setLayout(mainLayout);}};var commandLineFunctions=defaultCommandLineFunctions.concat([]);this.addCommandLineFunction=function(functionName,commandLineFunction){commandLineFunctions.push([functionName,commandLineFunction]);};var commandHistoryCookieName="log4javascriptCommandHistory";this.storeCommandHistory=function(commandHistory){setCookie(commandHistoryCookieName,commandHistory.join(","));};var writeHtml=function(doc){var lines=getConsoleHtmlLines();doc.open();for(var i=0,len=lines.length;i<len;i++){doc.writeln(lines[i]);}
doc.close();};this.setEventTypes(["load","unload"]);var consoleWindowLoadHandler=function(){var win=getConsoleWindow();win.setAppender(appender);win.setNewestAtTop(newestMessageAtTop);win.setScrollToLatest(scrollToLatestMessage);win.setMaxMessages(maxMessages);win.setShowCommandLine(showCommandLine);win.setShowHideButton(showHideButton);win.setShowCloseButton(showCloseButton);win.setMainWindow(window);var storedValue=getCookie(commandHistoryCookieName);if(storedValue){win.commandHistory=storedValue.split(",");win.currentCommandIndex=win.commandHistory.length;}
appender.dispatchEvent("load",{"win":win});};this.unload=function(){logLog.debug("unload "+this+", caller: "+this.unload.caller);if(!consoleClosed){logLog.debug("really doing unload "+this);consoleClosed=true;consoleWindowLoaded=false;consoleWindowCreated=false;appender.dispatchEvent("unload",{});}};var pollConsoleWindow=function(windowTest,interval,successCallback,errorMessage){function doPoll(){try{if(consoleClosed){clearInterval(poll);}
if(windowTest(getConsoleWindow())){clearInterval(poll);successCallback();}}catch(ex){clearInterval(poll);isSupported=false;handleError(errorMessage,ex);}}
var poll=setInterval(doPoll,interval);};var getConsoleUrl=function(){var documentDomainSet=(document.domain!=location.hostname);return useDocumentWrite?"":getBaseUrl()+"console_uncompressed.html"+
(documentDomainSet?"?log4javascript_domain="+escape(document.domain):"");};if(inPage){var containerElement=null;var cssProperties=[];this.addCssProperty=function(name,value){if(checkCanConfigure("cssProperties")){cssProperties.push([name,value]);}};var windowCreationStarted=false;var iframeContainerDiv;var iframeId=uniqueId+"_InPageAppender_"+consoleAppenderId;this.hide=function(){if(initialized&&consoleWindowCreated){if(consoleWindowExists()){getConsoleWindow().$("command").blur();}
iframeContainerDiv.style.display="none";minimized=true;}};this.show=function(){if(initialized){if(consoleWindowCreated){iframeContainerDiv.style.display="block";this.setShowCommandLine(showCommandLine);minimized=false;}else if(!windowCreationStarted){createWindow(true);}}};this.isVisible=function(){return!minimized&&!consoleClosed;};this.close=function(fromButton){if(!consoleClosed&&(!fromButton||confirm("This will permanently remove the console from the page. No more messages will be logged. Do you wish to continue?"))){iframeContainerDiv.parentNode.removeChild(iframeContainerDiv);this.unload();}};open=function(){var initErrorMessage="InPageAppender.open: unable to create console iframe";function finalInit(){try{if(!initiallyMinimized){appender.show();}
consoleWindowLoadHandler();consoleWindowLoaded=true;appendQueuedLoggingEvents();}catch(ex){isSupported=false;handleError(initErrorMessage,ex);}}
function writeToDocument(){try{var windowTest=function(win){return isLoaded(win);};if(useDocumentWrite){writeHtml(getConsoleWindow().document);}
if(windowTest(getConsoleWindow())){finalInit();}else{pollConsoleWindow(windowTest,100,finalInit,initErrorMessage);}}catch(ex){isSupported=false;handleError(initErrorMessage,ex);}}
minimized=false;iframeContainerDiv=containerElement.appendChild(document.createElement("div"));iframeContainerDiv.style.width=width;iframeContainerDiv.style.height=height;iframeContainerDiv.style.border="solid gray 1px";for(var i=0,len=cssProperties.length;i<len;i++){iframeContainerDiv.style[cssProperties[i][0]]=cssProperties[i][1];}
var iframeSrc=useDocumentWrite?"":" src='"+getConsoleUrl()+"'";iframeContainerDiv.innerHTML="<iframe id='"+iframeId+"' name='"+iframeId+
"' width='100%' height='100%' frameborder='0'"+iframeSrc+
"scrolling='no'></iframe>";consoleClosed=false;var iframeDocumentExistsTest=function(win){try{return bool(win)&&bool(win.document);}catch(ex){return false;}};if(iframeDocumentExistsTest(getConsoleWindow())){writeToDocument();}else{pollConsoleWindow(iframeDocumentExistsTest,100,writeToDocument,initErrorMessage);}
consoleWindowCreated=true;};createWindow=function(show){if(show||!initiallyMinimized){var pageLoadHandler=function(){if(!container){containerElement=document.createElement("div");containerElement.style.position="fixed";containerElement.style.left="0";containerElement.style.right="0";containerElement.style.bottom="0";document.body.appendChild(containerElement);appender.addCssProperty("borderWidth","1px 0 0 0");appender.addCssProperty("zIndex",1000000);open();}else{try{var el=document.getElementById(container);if(el.nodeType==1){containerElement=el;}
open();}catch(ex){handleError("InPageAppender.init: invalid container element '"+container+"' supplied",ex);}}};if(pageLoaded&&container&&container.appendChild){containerElement=container;open();}else if(pageLoaded){pageLoadHandler();}else{log4javascript.addEventListener("load",pageLoadHandler);}
windowCreationStarted=true;}};init=function(){createWindow();initialized=true;};getConsoleWindow=function(){var iframe=window.frames[iframeId];if(iframe){return iframe;}};safeToAppend=function(){if(isSupported&&!consoleClosed){if(consoleWindowCreated&&!consoleWindowLoaded&&getConsoleWindow()&&isLoaded(getConsoleWindow())){consoleWindowLoaded=true;}
return consoleWindowLoaded;}
return false;};}else{var useOldPopUp=appender.defaults.useOldPopUp;var complainAboutPopUpBlocking=appender.defaults.complainAboutPopUpBlocking;var reopenWhenClosed=this.defaults.reopenWhenClosed;this.isUseOldPopUp=function(){return useOldPopUp;};this.setUseOldPopUp=function(useOldPopUpParam){if(checkCanConfigure("useOldPopUp")){useOldPopUp=bool(useOldPopUpParam);}};this.isComplainAboutPopUpBlocking=function(){return complainAboutPopUpBlocking;};this.setComplainAboutPopUpBlocking=function(complainAboutPopUpBlockingParam){if(checkCanConfigure("complainAboutPopUpBlocking")){complainAboutPopUpBlocking=bool(complainAboutPopUpBlockingParam);}};this.isFocusPopUp=function(){return focusConsoleWindow;};this.setFocusPopUp=function(focusPopUpParam){focusConsoleWindow=bool(focusPopUpParam);};this.isReopenWhenClosed=function(){return reopenWhenClosed;};this.setReopenWhenClosed=function(reopenWhenClosedParam){reopenWhenClosed=bool(reopenWhenClosedParam);};this.close=function(){logLog.debug("close "+this);try{popUp.close();this.unload();}catch(ex){}};this.hide=function(){logLog.debug("hide "+this);if(consoleWindowExists()){this.close();}};this.show=function(){logLog.debug("show "+this);if(!consoleWindowCreated){open();}};this.isVisible=function(){return safeToAppend();};var popUp;open=function(){var windowProperties="width="+width+",height="+height+",status,resizable";var windowName="PopUp_"+location.host.replace(/[^a-z0-9]/gi,"_")+"_"+consoleAppenderId;if(!useOldPopUp||!useDocumentWrite){windowName=windowName+"_"+uniqueId;}
var checkPopUpClosed=function(win){if(consoleClosed){return true;}else{try{return bool(win)&&win.closed;}catch(ex){}}
return false;};var popUpClosedCallback=function(){if(!consoleClosed){appender.unload();}};function finalInit(){getConsoleWindow().setCloseIfOpenerCloses(!useOldPopUp||!useDocumentWrite);consoleWindowLoadHandler();consoleWindowLoaded=true;appendQueuedLoggingEvents();pollConsoleWindow(checkPopUpClosed,500,popUpClosedCallback,"PopUpAppender.checkPopUpClosed: error checking pop-up window");}
try{popUp=window.open(getConsoleUrl(),windowName,windowProperties);consoleClosed=false;consoleWindowCreated=true;if(popUp){if(useDocumentWrite&&useOldPopUp&&isLoaded(popUp)){popUp.mainPageReloaded();finalInit();}else{if(useDocumentWrite){writeHtml(popUp.document);}
var popUpLoadedTest=function(win){return bool(win)&&isLoaded(win);};if(isLoaded(popUp)){finalInit();}else{pollConsoleWindow(popUpLoadedTest,100,finalInit,"PopUpAppender.init: unable to create console window");}}}else{isSupported=false;logLog.warn("PopUpAppender.init: pop-ups blocked, please unblock to use PopUpAppender");if(complainAboutPopUpBlocking){handleError("log4javascript: pop-up windows appear to be blocked. Please unblock them to use pop-up logging.");}}}catch(ex){handleError("PopUpAppender.init: error creating pop-up",ex);}};createWindow=function(){if(!initiallyMinimized){open();}};init=function(){createWindow();initialized=true;};getConsoleWindow=function(){return popUp;};safeToAppend=function(){if(isSupported&&!isUndefined(popUp)&&!consoleClosed){if(popUp.closed||(consoleWindowLoaded&&isUndefined(popUp.closed))){appender.unload();logLog.debug("PopUpAppender: pop-up closed");return false;}
if(!consoleWindowLoaded&&isLoaded(popUp)){consoleWindowLoaded=true;}}
return isSupported&&consoleWindowLoaded&&!consoleClosed;};}
this.getConsoleWindow=getConsoleWindow;};ConsoleAppender.addGlobalCommandLineFunction=function(functionName,commandLineFunction){defaultCommandLineFunctions.push([functionName,commandLineFunction]);};function PopUpAppender(lazyInit,initiallyMinimized,useDocumentWrite,width,height){this.create(false,null,lazyInit,initiallyMinimized,useDocumentWrite,width,height,this.defaults.focusPopUp);}
PopUpAppender.prototype=new ConsoleAppender();PopUpAppender.prototype.defaults={layout:new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"),initiallyMinimized:false,focusPopUp:false,lazyInit:true,useOldPopUp:true,complainAboutPopUpBlocking:true,newestMessageAtTop:false,scrollToLatestMessage:true,width:"600",height:"400",reopenWhenClosed:false,maxMessages:null,showCommandLine:true,commandLineObjectExpansionDepth:1,showHideButton:false,showCloseButton:true,showLogEntryDeleteButtons:true,useDocumentWrite:true};PopUpAppender.prototype.toString=function(){return"PopUpAppender";};log4javascript.PopUpAppender=PopUpAppender;function InPageAppender(container,lazyInit,initiallyMinimized,useDocumentWrite,width,height){this.create(true,container,lazyInit,initiallyMinimized,useDocumentWrite,width,height,false);}
InPageAppender.prototype=new ConsoleAppender();InPageAppender.prototype.defaults={layout:new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"),initiallyMinimized:false,lazyInit:true,newestMessageAtTop:false,scrollToLatestMessage:true,width:"100%",height:"220px",maxMessages:null,showCommandLine:true,commandLineObjectExpansionDepth:1,showHideButton:false,showCloseButton:false,showLogEntryDeleteButtons:true,useDocumentWrite:true};InPageAppender.prototype.toString=function(){return"InPageAppender";};log4javascript.InPageAppender=InPageAppender;log4javascript.InlineAppender=InPageAppender;})();function padWithSpaces(str,len){if(str.length<len){var spaces=[];var numberOfSpaces=Math.max(0,len-str.length);for(var i=0;i<numberOfSpaces;i++){spaces[i]=" ";}
str+=spaces.join("");}
return str;}
(function(){function dir(obj){var maxLen=0;for(var p in obj){maxLen=Math.max(toStr(p).length,maxLen);}
var propList=[];for(p in obj){var propNameStr="  "+padWithSpaces(toStr(p),maxLen+2);var propVal;try{propVal=splitIntoLines(toStr(obj[p])).join(padWithSpaces(newLine,maxLen+6));}catch(ex){propVal="[Error obtaining property. Details: "+getExceptionMessage(ex)+"]";}
propList.push(propNameStr+propVal);}
return propList.join(newLine);}
var nodeTypes={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12};var preFormattedElements=["script","pre"];var emptyElements=["br","img","hr","param","link","area","input","col","base","meta"];var indentationUnit="  ";function getXhtml(rootNode,includeRootNode,indentation,startNewLine,preformatted){includeRootNode=(typeof includeRootNode=="undefined")?true:(includeRootNode?true:false);if(typeof indentation!="string"){indentation="";}
startNewLine=startNewLine?true:false;preformatted=preformatted?true:false;var xhtml;function isWhitespace(node){return((node.nodeType==nodeTypes.TEXT_NODE)&&/^[ \t\r\n]*$/.test(node.nodeValue));}
function fixAttributeValue(attrValue){return attrValue.toString().replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/\"/g,"&quot;");}
function getStyleAttributeValue(el){var stylePairs=el.style.cssText.split(";");var styleValue="";var isFirst=true;for(var j=0,len=stylePairs.length;j<len;j++){var nameValueBits=stylePairs[j].split(":");var props=[];if(!/^\s*$/.test(nameValueBits[0])){props.push(trim(nameValueBits[0]).toLowerCase()+":"+trim(nameValueBits[1]));}
styleValue=props.join(";");}
return styleValue;}
function getNamespace(el){if(el.prefix){return el.prefix;}else if(el.outerHTML){var regex=new RegExp("<([^:]+):"+el.tagName+"[^>]*>","i");if(regex.test(el.outerHTML)){return RegExp.$1.toLowerCase();}}
return"";}
var lt="<";var gt=">";if(includeRootNode&&rootNode.nodeType!=nodeTypes.DOCUMENT_FRAGMENT_NODE){switch(rootNode.nodeType){case nodeTypes.ELEMENT_NODE:var tagName=rootNode.tagName.toLowerCase();xhtml=startNewLine?newLine+indentation:"";xhtml+=lt;var prefix=getNamespace(rootNode);var hasPrefix=prefix?true:false;if(hasPrefix){xhtml+=prefix+":";}
xhtml+=tagName;for(i=0,len=rootNode.attributes.length;i<len;i++){var currentAttr=rootNode.attributes[i];if(!currentAttr.specified||currentAttr.nodeValue===null||currentAttr.nodeName.toLowerCase()==="style"||typeof currentAttr.nodeValue!=="string"||currentAttr.nodeName.indexOf("_moz")===0){continue;}
xhtml+=" "+currentAttr.nodeName.toLowerCase()+"=\"";xhtml+=fixAttributeValue(currentAttr.nodeValue);xhtml+="\"";}
if(rootNode.style.cssText){var styleValue=getStyleAttributeValue(rootNode);if(styleValue!==""){xhtml+=" style=\""+getStyleAttributeValue(rootNode)+"\"";}}
if(array_contains(emptyElements,tagName)||(hasPrefix&&!rootNode.hasChildNodes())){xhtml+="/"+gt;}else{xhtml+=gt;var childStartNewLine=!(rootNode.childNodes.length===1&&rootNode.childNodes[0].nodeType===nodeTypes.TEXT_NODE);var childPreformatted=array_contains(preFormattedElements,tagName);for(var i=0,len=rootNode.childNodes.length;i<len;i++){xhtml+=getXhtml(rootNode.childNodes[i],true,indentation+indentationUnit,childStartNewLine,childPreformatted);}
var endTag=lt+"/"+tagName+gt;xhtml+=childStartNewLine?newLine+indentation+endTag:endTag;}
return xhtml;case nodeTypes.TEXT_NODE:if(isWhitespace(rootNode)){xhtml="";}else{if(preformatted){xhtml=rootNode.nodeValue;}else{var lines=splitIntoLines(trim(rootNode.nodeValue));var trimmedLines=[];for(var i=0,len=lines.length;i<len;i++){trimmedLines[i]=trim(lines[i]);}
xhtml=trimmedLines.join(newLine+indentation);}
if(startNewLine){xhtml=newLine+indentation+xhtml;}}
return xhtml;case nodeTypes.CDATA_SECTION_NODE:return"<![CDA"+"TA["+rootNode.nodeValue+"]"+"]>"+newLine;case nodeTypes.DOCUMENT_NODE:xhtml="";for(var i=0,len=rootNode.childNodes.length;i<len;i++){xhtml+=getXhtml(rootNode.childNodes[i],true,indentation);}
return xhtml;default:return"";}}else{xhtml="";for(var i=0,len=rootNode.childNodes.length;i<len;i++){xhtml+=getXhtml(rootNode.childNodes[i],true,indentation+indentationUnit);}
return xhtml;}}
var layouts={};function createCommandLineFunctions(appender){ConsoleAppender.addGlobalCommandLineFunction("$",function(appender,args,returnValue){return document.getElementById(args[0]);});ConsoleAppender.addGlobalCommandLineFunction("dir",function(appender,args,returnValue){var lines=[];for(var i=0,len=args.length;i<len;i++){lines[i]=dir(args[i]);}
return lines.join(newLine+newLine);});ConsoleAppender.addGlobalCommandLineFunction("dirxml",function(appender,args,returnValue){var lines=[];for(var i=0,len=args.length;i<len;i++){var win=appender.getCommandWindow();lines[i]=getXhtml(args[i]);}
return lines.join(newLine+newLine);});ConsoleAppender.addGlobalCommandLineFunction("cd",function(appender,args,returnValue){var win,message;if(args.length===0||args[0]===""){win=window;message="Command line set to run in main window";}else{if(args[0].window==args[0]){win=args[0];message="Command line set to run in frame '"+args[0].name+"'";}else{win=window.frames[args[0]];if(win){message="Command line set to run in frame '"+args[0]+"'";}else{returnValue.isError=true;message="Frame '"+args[0]+"' does not exist";win=appender.getCommandWindow();}}}
appender.setCommandWindow(win);return message;});ConsoleAppender.addGlobalCommandLineFunction("clear",function(appender,args,returnValue){returnValue.appendResult=false;appender.clear();});ConsoleAppender.addGlobalCommandLineFunction("keys",function(appender,args,returnValue){var keys=[];for(var k in args[0]){keys.push(k);}
return keys;});ConsoleAppender.addGlobalCommandLineFunction("values",function(appender,args,returnValue){var values=[];for(var k in args[0]){try{values.push(args[0][k]);}catch(ex){logLog.warn("values(): Unable to obtain value for key "+k+". Details: "+getExceptionMessage(ex));}}
return values;});ConsoleAppender.addGlobalCommandLineFunction("expansionDepth",function(appender,args,returnValue){var expansionDepth=parseInt(args[0],10);if(isNaN(expansionDepth)||expansionDepth<0){returnValue.isError=true;return""+args[0]+" is not a valid expansion depth";}else{appender.setCommandLineObjectExpansionDepth(expansionDepth);return"Object expansion depth set to "+expansionDepth;}});}
function init(){createCommandLineFunctions();initialized=true;}
init();})();function addWindowLoadListener(listener){var oldOnload=window.onload;if(typeof window.onload!="function"){window.onload=listener;}else{window.onload=function(evt){if(oldOnload){oldOnload(evt);}
listener(evt);};}}
addWindowLoadListener(function(){pageLoaded=true;log4javascript.dispatchEvent("load",{});});window.log4javascript=log4javascript;})();KOBJ.log4js=log4javascript;KOBJ.loggers={general:KOBJ.log4js.getLogger("general"),application:KOBJ.log4js.getLogger("application"),datasets:KOBJ.log4js.getLogger("datasets"),events:KOBJ.log4js.getLogger("events"),resources:KOBJ.log4js.getLogger("resources"),actions:KOBJ.log4js.getLogger("actions"),runtime:KOBJ.log4js.getLogger("runtime"),annotate:KOBJ.log4js.getLogger("annotate"),percolate:KOBJ.log4js.getLogger("percolate"),domwatch:KOBJ.log4js.getLogger("domwatch")};KOBJ.popup_appender=new log4javascript.PopUpAppender();KOBJ.popup_appender.setLayout(new log4javascript.PatternLayout("%d{HH:mm:ss} %p %c %m{4}"));KOBJ.console_appender=new log4javascript.BrowserConsoleAppender();KOBJ.console_appender.setLayout(new log4javascript.PatternLayout("%d{HH:mm:ss} %p %c %m{4}"));KOBJ.log4js.getLogger().addAppender(KOBJ.console_appender);KOBJ.enable_popup_logging=function(){KOBJ.log4js.getLogger().addAppender(KOBJ.popup_appender);$KOBJ.each(KOBJ.loggers,function(k,v){v.addAppender(KOBJ.popup_appender);});};$KOBJ.each(KOBJ.loggers,function(k,v){v.setLevel(log4javascript.Level.INFO);v.addAppender(KOBJ.console_appender);});KOBJ.trace_domwatch=function(){KOBJ.loggers.domwatch.setLevel(log4javascript.Level.TRACE);};KOBJ.mega_debug=function(){KOBJ.enable_popup_logging();KOBJ.log4js.getLogger().setLevel(log4javascript.Level.TRACE);$KOBJ.each(KOBJ.loggers,function(k,v){{v.setLevel(log4javascript.Level.TRACE);}});KOBJ.popup_appender.show();};if(typeof(KOBJMegaDebug)!="undefined")
{KOBJ.mega_debug();}KRLSnoop={};KRLSnoop.browser_info=function(){var data={nav:{},screen:{}};data.nav.appCodeName=KOBJ.navigator.appCodeName;data.nav.appName=KOBJ.navigator.appName;data.nav.appVersion=KOBJ.navigator.appVersion;data.nav.userAgent=KOBJ.navigator.userAgent;data.nav.language=KOBJ.navigator.language;data.nav.cookiesEnabled=KOBJ.navigator.cookiesEnabled;data.nav.systemLanguage=KOBJ.navigator.systemLanguage;data.nav.userLanguage=KOBJ.navigator.userLanguage;data.screen.availHeight=KOBJ.window.screen.availHeight;data.screen.availWidth=KOBJ.window.screen.availWidth;data.screen.colorDepth=KOBJ.window.screen.colorDepth;data.screen.height=KOBJ.window.screen.height;data.screen.width=KOBJ.window.screen.width;data.screen.pixelDepth=KOBJ.window.screen.pixelDepth;return data;};KRLSnoop.exception_info=function(exception){var data={};data.script_url=(exception.fileName?exception.fileName:(exception.filename?exception.filename:null));if(!data.script_url){data.script_url=(exception.sourceURL?exception.sourceURL:"Unsupported");}
data.message=(exception.message?exception.message:e);data.lineNumber=(exception.lineNumber?exception.lineNumber:(exception.line?exception.line:"Unsupported"));data.description=exception.description?exception.description:"";data.arguments=(exception.arguments?exception.arguments:"Unsupported");data.type=(exception.type?exception.type:"Unsupported");data.name=(exception.name?exception.name:e);data.stack=(exception.stack?exception.stack:"Unsupported");return data;};})($KOBJ);})($KOBJ);}
$KOBJ(document).ready(function(){if(typeof(KOBJ_config)!="undefined"){KOBJ.add_config_and_run(KOBJ_config);}
if(typeof(KOBJ_configs)!="undefined"){KOBJ.add_configs_and_run(KOBJ_configs);}});/*commit ffeebcbf09ddd2c147bf1c34ffb69714f42e419b
*/
