/* Copyright 2008 Google Inc. All Rights Reserved. */ (function(){
var DB_mode=false;function DumpError(a){try{throw a;}catch(b){DumpException(b)}}function DumpException(a,b){var c="Javascript exception: "+(b?b:"")+" "+a;if(BR_IsIE())c+=" "+a.name+": "+a.message+" ("+a.number+")";var d="";if(typeof a=="string")d=a+"\n";else for(var e in a)try{d+=e+": "+a[e]+"\n"}catch(f){}d+=DB_GetStackTrace(DumpException.caller);DB_WriteDebugMsg(c+"\n"+d,1)}var function_name_re_=/function (\w+)/;
function DB_GetFunctionName(a){var b=function_name_re_.exec(String(a));if(b)return b[1];return""}
function DB_GetStackTrace(a){try{if(!BR_IsIE()&&!(BR_AgentContains_("safari")||BR_AgentContains_("konqueror"))&&BR_AgentContains_("mozilla"))return Error().stack;if(!a)return"";var b="- "+DB_GetFunctionName(a)+"(",c=0;for(;c<a.arguments.length;c++){if(c>0)b+=", ";var d=String(a.arguments[c]);if(d.length>40)d=d.substr(0,40)+"...";b+=d}b+=")\n";b+=DB_GetStackTrace(a.caller);return b}catch(e){return"[Cannot get stack trace]: "+e+"\n"}}var DB_starttime,DB_win=null,DB_winopening=false;
function DB_OpenDebugWindow(){if((DB_win==null||DB_win.closed)&&!DB_winopening)try{DB_winopening=true;DB_win=window.open("","debug","width=700,height=500,toolbar=no,resizable=yes,scrollbars=yes,left=16,top=16,screenx=16,screeny=16");DB_win.blur();DB_win.document.open();DB_winopening=false;var a="<font color=#ff0000><b>To turn off this debugging window,hit 'D' inside the main caribou window, then close this window.</b></font><br>";DB_WriteDebugHtml(a)}catch(b){}}
function DB_WriteDebugMsg(a,b){if(DB_mode){try{var c=(new Date).getTime()-DB_starttime,d="["+c+"] "+HtmlEscape(a).replace(/\n/g,"<br>")+"<br>";if(b==1){d="<font color=#ff0000><b>Error: "+d+"</b></font>";DB_win.focus()}}catch(e){}DB_WriteDebugHtml(d)}else typeof log!="undefined"&&log(HtmlEscape(a))}function DB_WriteDebugHtml(a){if(!!DB_mode)try{DB_OpenDebugWindow();DB_win.document.write(a);DB_win.scrollTo(0,1000000)}catch(b){}};function BR_AgentContains_(a){if(a in BR_AgentContains_cache_)return BR_AgentContains_cache_[a];return BR_AgentContains_cache_[a]=navigator.userAgent.toLowerCase().indexOf(a)!=-1}var BR_AgentContains_cache_={};function BR_IsIE(){return BR_AgentContains_("msie")&&!window.opera}function HasClass(a,b){if(a==null||a.className==null)return false;if(a.className==b)return true;var c=a.className.split(" "),d=0;for(;d<c.length;d++)if(c[d]==b)return true;return false}
function AddClass(a,b){HasClass(a,b)||(a.className+=" "+b)}function RemoveClass(a,b){if(!(a.className==null))if(a.className==b)a.className="";else{var c=a.className.split(" "),d=[],e=false,f=0;for(;f<c.length;f++)if(c[f]!=b)c[f]&&d.push(c[f]);else e=true;if(e)a.className=d.join(" ")}}var amp_re_=/&/g,lt_re_=/</g,gt_re_=/>/g;function HtmlEscape(a){if(!a)return"";return a.replace(amp_re_,"&amp;").replace(lt_re_,"&lt;").replace(gt_re_,"&gt;").replace(quote_re_,"&quot;")}var quote_re_=/\"/g;
function forid_1(a){return document.getElementById(a)}function forid_2(a){return document.all[a]}var forid=document.getElementById?forid_1:forid_2;function log(a){try{if(window.parent!=window&&window.parent.log){window.parent.log(window.name+"::"+a);return}}catch(b){}var c=forid("log");if(c){var d="<p class=logentry><span class=logdate>"+new Date+"</span><span class=logmsg>"+a+"</span></p>";c.innerHTML=d+c.innerHTML}else window.status=a};var global=this;if(!Function.prototype.apply)Function.prototype.apply=function(a,b){var c=[],d,e;a||(a=global);var f=b||[],g=0;for(;g<f.length;g++)c[g]="args["+g+"]";e="oScope.__applyTemp__.peek()("+c.join(",")+");";if(!a.__applyTemp__)a.__applyTemp__=[];a.__applyTemp__.push(this);d=eval(e);a.__applyTemp__.pop();return d};if(!Array.prototype.push)Array.prototype.push=function(){var a=0;for(;a<arguments.length;a++)this[this.length]=arguments[a];return this.length};
if(!Array.prototype.pop)Array.prototype.pop=function(){if(!!this.length){var a=this[this.length-1];this.length--;return a}};Array.prototype.peek=function(){return this[this.length-1]};if(!Array.prototype.shift)Array.prototype.shift=function(){if(!(this.length==0)){var a=this[0],b=0;for(;b<this.length-1;b++)this[b]=this[b+1];this.length--;return a}};
if(!Array.prototype.unshift)Array.prototype.unshift=function(){var a=arguments.length,b=this.length-1;for(;b>=0;b--)this[b+a]=this[b];var c=0;for(;c<a;c++)this[c]=arguments[c];return this.length};if(!Array.prototype.forEach)Array.prototype.forEach=function(a,b){var c=0;for(;c<this.length;c++)a.call(b,this[c],c,this)};function AS_Assert(){}AS_Assert.raise=function(a){if(typeof Error!="undefined")throw new Error(a||"Assertion Failed");else throw a;};AS_Assert.fail=function(a){a=a||"Assertion failed";typeof DumpError=="undefined"||DumpError(a+"\n");AS_Assert.raise(a)};AS_Assert.isTrue=function(a,b){if(!a){if(b===undefined)b="Assertion failed";AS_Assert.fail(b)}};AS_Assert.equals=function(a,b,c){if(a!=b){if(c===undefined)c="AS_Assert.equals failed: <"+a+"> != <"+b+">";AS_Assert.fail(c)}};
AS_Assert.typeOf=function(a,b,c){if(!(typeof a==b)){if(a||a=="")try{if(b==AS_Assert.TYPE_MAP[typeof a]||a instanceof b)return}catch(d){}if(c===undefined){if(typeof b=="function"){var e=b.toString().match(/^\s*function\s+([^\s\{]+)/);if(e)b=e[1]}c="AS_Assert.typeOf failed: <"+a+"> not typeof "+b}AS_Assert.fail(c)}};AS_Assert.TYPE_MAP={string:String,number:Number,"boolean":Boolean};
AS_Assert.numArgs=function(a,b){var c=AS_Assert.numArgs.caller;if(c&&c.arguments.length!=a){if(b===undefined)b=c.name+" expected "+a+" arguments  but received "+c.arguments.length;AS_Assert.fail(b)}};var XH_ieProgId_;function XH_XmlHttpInit_(){var a=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];if(typeof XMLHttpRequest=="undefined"&&typeof ActiveXObject!="undefined"){var b=0;for(;b<a.length;b++){var c=a[b];try{new ActiveXObject(c);XH_ieProgId_=c;break}catch(d){}}if(!XH_ieProgId_)throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed.");}}XH_XmlHttpInit_();
function XH_XmlHttpGET(a,b,c){a.open("GET",b,true);a.onreadystatechange=c;XH_XmlHttpSend(a,null)}function XH_XmlHttpSend(a,b){try{a.send(b)}catch(c){log("XMLHttpSend failed "+c.toString()+"<br>"+c.stack);throw c;}};if("undefined"==typeof log)log=function(){};var DST_metaXmlHttp=undefined;function DST_toggleMeta(a,b){var c=DST_toggleCollapseInternal(b);DST_setMetadataBubble(a,c)}function DST_toggleCollapseInternal(a){for(;a;){if(HasClass(a,"collapse")){RemoveClass(a,"collapse");AddClass(a,"expand");return true}if(HasClass(a,"expand")){RemoveClass(a,"expand");AddClass(a,"collapse");return false}a=a.parentNode}}
function DST_setMetadataBubble(a,b){var c=b?1:0;DST_metaXmlHttp=XH_ieProgId_?new ActiveXObject(XH_ieProgId_):new XMLHttpRequest;var d="/p/"+a+"/source/setmetabubble.do?alt=js&expanded="+c+"&cd="+(new Date).getTime();XH_XmlHttpGET(DST_metaXmlHttp,d,DST_setMetadataBubbleCallback)}function DST_setMetadataBubbleCallback(){DST_metaXmlHttp.readyState==4&&DST_metaXmlHttp.status==200&&DST_gotMetadataBubble(DST_metaXmlHttp.responseText)}
function DST_gotMetadataBubble(a){try{eval("_d="+a)}catch(b){alert("DST: error parsing response");return null}}_toggleMeta=DST_toggleMeta;
})()
