(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}
if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])
selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])
return jQuery().find(selector);return jQuery(elem);}
selector=[];}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))
return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)
if(value===undefined)
return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}
return this.each(function(i){for(name in options)
jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)
value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)
return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)
ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])
jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)
elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)
this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)
this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)
this[expando]=null;});if(events===true)
this.find("*").andSelf().each(function(i){if(this.nodeType==3)
return;var events=jQuery.data(this,"events");for(var type in events)
for(var handler in events[type])
jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)
if(isSimple.test(selector))
return this.pushStack(jQuery.multiFilter(selector,this,true));else
selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)
return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)
return value;values.push(value);}}
return values;}else
return(this[0].value||"").replace(/\r/g,"");}
return undefined;}
if(value.constructor==Number)
value+='';return this.each(function(){if(this.nodeType!=1)
return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))
this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)
this.selectedIndex=-1;}else
this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)
data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)
elems.reverse();}
var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))
obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))
scripts=scripts.add(elem);else{if(elem.nodeType==1)
scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;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||"");if(elem.parentNode)
elem.parentNode.removeChild(elem);}
function now(){return+new Date;}
jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}
if(typeof target!="object"&&typeof target!="function")
target={};if(length==i){target=this;--i;}
for(;i<length;i++)
if((options=arguments[i])!=null)
for(var name in options){var src=target[name],copy=options[name];if(target===copy)
continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)
target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)
target[name]=copy;}
return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)
window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)
script.text=data;else
script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)
id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])
jQuery.cache[id]={};if(data!==undefined)
jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])
break;if(!name)
jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)
elem.removeAttribute(expando);}
delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){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(length==undefined){for(name in object)
if(callback.call(object[name],name,object[name])===false)
break;}else
for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}
return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))
value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))
elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)
elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},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(var name in options)
elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}
if(jQuery(elem).is(":visible"))
getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,val);}
return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)
return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}
if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}
if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}
if(name.match(/float/i))
name=styleFloat;if(!force&&style&&style[name])
ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))
name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))
ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)
stack.unshift(a);for(;i<stack.length;i++)
if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}
ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)
if(swap[i]!=null)
stack[i].style.display=swap[i];}
if(name=="opacity"&&ret=="")
ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}
return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')
context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)
return;if(elem.constructor==Number)
elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)
div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)
if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)
tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))
div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}
elem=jQuery.makeArray(div.childNodes);}
if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))
return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)
ret.push(elem);else
ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)
elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)
throw"type property can't be changed";elem[name]=value;}
if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))
return elem.getAttributeNode(name).nodeValue;return elem[name];}
if(msie&&notxml&&name=="style")
return jQuery.attr(elem.style,"cssText",value);if(set)
elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}
if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+
(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}
return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}
name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)
elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)
ret[0]=array;else
while(i)
ret[--i]=array[i];}
return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)
if(array[i]===elem)
return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])
if(elem.nodeType!=8)
first[pos++]=elem;}else
while(elem=second[i++])
first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}
return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)
if(!inv!=!callback(elems[i],i))
ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)
ret[ret.length]=value;}
return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},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");},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(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")
ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)
jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)
this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)
this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)
this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}
return cur;},find:function(t,context){if(typeof t!="string")
return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)
return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)
for(var c=ret[i].firstChild;c;c=c.nextSibling)
if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))
r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)
if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}
if(m=="+")break;}}
ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}
if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}
m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])
oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")
tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}
if(m[1]==".")
r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)
if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}
r=tmp;}
ret=r;}
t=t.replace(re2,"");}}
if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}
if(t)
ret=[];if(ret&&context==ret[0])
ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)
tmp.push(r[i]);}
return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}
if(!m)
break;if(m[1]==":"&&m[2]=="not")
r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")
r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))
z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)
tmp.push(a);}
r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)
if(n.nodeType==1)
n.nodeIndex=c++;merge[id]=true;}
var add=false;if(first==0){if(node.nodeIndex==last)
add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)
add=true;if(add^not)
tmp.push(node);}
r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")
fn=fn[m[2]];if(typeof fn=="string")
fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}
return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){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;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)
return;if(jQuery.browser.msie&&elem.setInterval)
elem=window;if(!handler.guid)
handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}
var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)
return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)
elem.addEventListener(type,handle,false);else if(elem.attachEvent)
elem.attachEvent("on"+type,handle);}}
handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)
return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))
for(var type in events)
this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}
jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)
delete events[type][handler.guid];else
for(handler in events[type])
if(!parts[1]||events[type][handler].type==parts[1])
delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)
elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)
elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}
ret=null;delete events[type];}}});}
for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}
if(!elem){if(this.global[type])
jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)
return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}
data[0].type=type;if(exclusive)
data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)
val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)
val=false;if(event)
data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)
val=ret;}
if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}
this.triggered=false;}
return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)
val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}
return val;},fix:function(event){if(event[expando]==true)
return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)
event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)
originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)
originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)
event.target=event.srcElement||document;if(event.target.nodeType==3)
event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)
event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}
if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))
event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)
event.metaKey=event.ctrlKey;if(!event.which&&event.button)
event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)
jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)
fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}
jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)
document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}
jQuery.ready();})();if(jQuery.browser.opera)
document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)
if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}
jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}
if(numStyles===undefined)
numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}
jQuery.ready();})();}
jQuery.event.add(window,"load",jQuery.ready);}
jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}
return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')
return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}
callback=callback||function(){};var type="GET";if(params)
if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}
var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")
self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}
return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}
return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")
s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))
s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))
s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}
if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)
s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}
if(head)
head.removeChild(script);};}
if(s.dataType=="script"&&s.cache==null)
s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}
if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}
if(s.global&&!jQuery.active++)
jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)
script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}
head.appendChild(script);return undefined;}
var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)
xhr.open(type,s.url,s.async,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)
xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)
xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}
if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}
if(s.global)
jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}
status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}
if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}
if(s.ifModified&&modRes)
jQuery.lastModified[s.url]=modRes;if(!jsonp)
success();}else
jQuery.handleError(s,xhr,status);complete();if(s.async)
xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)
setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)
onreadystatechange("timeout");}},s.timeout);}
try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}
if(!s.async)
onreadystatechange();function success(){if(s.success)
s.success(data,status);if(s.global)
jQuery.event.trigger("ajaxSuccess",[xhr,s]);}
function complete(){if(s.complete)
s.complete(xhr,status);if(s.global)
jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");}
return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)
jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}
return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}
return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")
throw"parsererror";if(filter)
data=filter(data,type);if(type=="script")
jQuery.globalEval(data);if(type=="json")
data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)
jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
for(var j in a)
if(a[j]&&a[j].constructor==Array)
jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")
this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)
return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)
return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}
if(opt.overflow!=null)
this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))
e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}
if(parts[1])
end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}
if(!type||(typeof type=="string"&&!fn))
return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)
queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)
fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)
this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)
if(timers[i].elem==this){if(gotoEnd)
timers[i](true);timers.splice(i,1);}});if(!gotoEnd)
this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)
q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}
return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)
q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)
jQuery(this).dequeue();if(jQuery.isFunction(opt.old))
opt.old.call(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:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!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);if(this.prop=="height"||this.prop=="width")
this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)
return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}
t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)
if(!timers[i]())
timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")
this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)
if(this.options.curAnim[i]!==true)
done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")
this.elem.style.display="block";}
if(this.options.hide)
this.elem.style.display="none";if(this.options.hide||this.options.show)
for(var p in this.options.curAnim)
jQuery.attr(this.elem.style,p,this.options.orig[p]);}
if(done)
this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}
return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)
border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")
fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}
while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))
add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")
border(parent);parent=parent.parentNode;}
if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))
add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)
add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}
results={top:top,left:left};}
function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}
function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}
return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}
return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))
offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+
num(this,"padding"+tl)+
num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+
num(this,"border"+tl+"Width")+
num(this,"border"+br+"Width")+
(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();jQuery.fn.WeblitzViewport=function(server,options){return this.each
(function(){jQuery._WeblitzViewport(this,server,options);});};jQuery.WeblitzViewport=function(elm,server,options){var container=jQuery(elm).get(0);var rv=container.WeblitzViewport||(container.WeblitzViewport=new jQuery._WeblitzViewport(container,server,options));return rv;};var Metadata=function(){this._loaded=false;this.current={};this.rdefs={};this._load=function(data){var cached={};if(!this._loaded){this._loaded=true;cached.rdefs=this.rdefs;}
for(i in data){this[i]=data[i];}
for(i in cached){for(j in cached[i]){this[i][j]=cached[i][j];}}
this.current.z=parseInt(this.size.z/2);this.current.t=0;this.current.zoom=100;}
return true;}
jQuery._WeblitzViewport=function(container,server,options){this.self=jQuery(container);var _this=this;var thisid=this.self.attr('id');this.loadedImg=new Metadata();var topid=thisid+'-top';var zsliderid=thisid+'-zsl';var viewportid=thisid+'-vp';var viewportimgid=thisid+'-img';var viewportmsgid=thisid+'-msg';var bottomid=thisid+'-bot';var tsliderid=thisid+'-tsl';var opts={};this.self.append('<div id="'+topid+'" id="'+topid+'" class="weblitz-viewport-top">');this.top=jQuery('#'+topid);this.top.append('<div id="'+zsliderid+'">');this.zslider=jQuery('#'+zsliderid);this.top.append('<div id="'+viewportid+'" class="weblitz-viewport-vp">');this.viewport=jQuery('#'+viewportid);this.viewport.append('<img id="'+viewportimgid+'">');this.viewportimg=jQuery('#'+viewportimgid);this.viewport.append('<div id="'+viewportmsgid+'" class="weblitz-viewport-msg">Loading...</div>');this.viewportmsg=jQuery('#'+viewportmsgid);this.self.append('<div id="'+bottomid+'" class="weblitz-viewport-bot">');this.bottom=jQuery('#'+bottomid);this.bottom.append('<div id="'+tsliderid+'">');this.tslider=jQuery('#'+tsliderid);var done_reload=function(){return _this.viewportmsg.is(':hidden');};this.viewportimg.viewportImage(options);this.viewportimg.bind('zoom',function(e,z){_this.loadedImg.current.zoom=z;});this.zslider.slider({orientation:'v',min:0,max:0,tooltip_prefix:'Z=',repeatCallback:done_reload});this.tslider.slider({tooltip_prefix:'T=',min:0,max:0,repeatCallback:done_reload});this.viewportimg.css('overflow','hidden');this.zslider.bind('change',function(e,pos){_this.loadedImg.current.z=pos-1;_load();});this.tslider.bind('change',function(e,pos){_this.loadedImg.current.t=pos-1;_load();});var after_img_load_cb=function(callback){_this.viewportmsg.hide();_this.viewportimg.show();_this.zslider.get(0).pos=-1;if(_this.loadedImg.rdefs.projection.toLowerCase()!='normal'){_this.zslider.get(0).setSliderRange(1,1,_this.loadedImg.current.z+1,false);}else{_this.zslider.get(0).setSliderRange(1,_this.loadedImg.size.z,_this.loadedImg.current.z+1,false);}
if(callback){callback();}
if(_this.hasLinePlot()){_this.viewportimg.one('zoom',function(){_this.refreshPlot();});}}
var _reset=function(data){_this.loadedImg._load(data);if(_this.loadedImg.current.query){_this.setQuery(_this.loadedImg.current.query);}
_load(function(){_this.refresh();if(!_this.loadedImg.current.query.zm){_this.viewportimg.get(0).setZoomToFit(true,_this.loadedImg.size.width,_this.loadedImg.size.height);}
if(_this.loadedImg.current.query.lp){_this.refreshPlot();}
_this.self.trigger('imageLoad',[_this]);});_this.tslider.get(0).setSliderRange(1,_this.loadedImg.size.t,_this.loadedImg.current.t+1,false);channels_undo_stack=[];channels_undo_stack_ptr=-1;channels_bookmark=null;_this.save_channels();}
var _load=function(callback){if(_this.loadedImg._loaded){var href=server+'/render_image/'+_this.getRelUrl();var rcb=function(){after_img_load_cb(callback);_this.viewportimg.unbind('load',rcb);};_this.viewportmsg.show();_this.viewportimg.load(rcb);_this.viewportimg.attr('src',href);_this.self.trigger('imageChange',[_this]);}}
this.load=function(iid,dsid,query){_this.viewportmsg.show();_this.loadedImg.current.dataset_id=dsid;_this.loadedImg.current.query=parseQuery(query);jQuery.getJSON(server+'/imgData/'+iid+'/?callback=?',_reset);};var LinePlot=function(pos,direction){this.position=parseInt(pos);this._isHorizontal=direction.substring(0,1).toLowerCase()=='h';this.isHorizontal=function(){return this._isHorizontal;}
this.isVertical=function(){return!this._isHorizontal;}
this.getUrl=function(){var append=this.position;return server+'/render_'+(this.isHorizontal()?'row':'col')+'_plot/'+_this.getRelUrl(append);}}
var linePlot=null;this.hasLinePlot=function(){return _this.loadedImg.rdefs.projection.toLowerCase()!='normal'&&_this.viewportimg.get(0).overlayVisible();}
this.getLinePlot=function(){return linePlot;}
this.prepareLinePlot=function(axis){if(!linePlot||(axis=='v'!=linePlot.isVertical())){linePlot=new LinePlot(0,axis,100,server,_this.getRelUrl);}}
var pickPosHandler=function(e){if(_this.getLinePlot()){var pos;var targetpos=_this.viewportimg.offset();if(_this.getLinePlot().isVertical()){pos=_this.loadedImg.size.width*(e.clientX-targetpos.left)/_this.viewportimg.width();}else{pos=_this.loadedImg.size.height*(e.clientY-targetpos.top)/_this.viewportimg.height();}
_this.self.trigger('linePlotPos',[Math.round(pos)]);}};this.startPickPos=function(){this.viewportimg.bind('onclick',pickPosHandler);this.viewportimg.parent().addClass('pick-pos');}
this.stopPickPos=function(){this.viewportimg.unbind('onclick',pickPosHandler);this.viewportimg.parent().removeClass('pick-pos');}
this.loadPlot=function(pos){linePlot.position=parseInt(pos);this.refreshPlot();}
this.loadRowPlot=function(y){this.prepareLinePlot('h');linePlot.position=parseInt(y);this.refreshPlot();}
this.hidePlot=function(){_this.viewportimg.get(0).hideOverlay();}
this.refreshPlot=function(cb){if(linePlot.position<=(linePlot.isHorizontal()?this.loadedImg.size.height:this.loadedImg.size.width)){this.viewportimg.get(0).showOverlay(linePlot.getUrl(),cb);}else{this.hidePlot();}
this.self.trigger('linePlotChange',[true]);}
var remember_allow_resize;this.refresh=function(allow_resize){_this.viewportimg.get(0).refresh();var sli=jQuery('.slider-line',_this.tslider);var btn=jQuery('.slider-btn-up',_this.tslider);if(!(allow_resize||remember_allow_resize)){var a1=_this.self.height();var a2=_this.self.width();var b1=_this.top.height();var b2=_this.viewport.width();if(a1<=b1){_this.top.css('height',_this.top.height()-_this.bottom.height());}
if(a2<=b2){_this.viewport.css('width',_this.viewport.width()-_this.viewport.position().left-3);}}else{remember_allow_resize=true;}
_this.tslider.css('width',_this.viewport.width());sli.css('width',_this.tslider.width()-(btn.width()*2)-_this.bottom.position().left);sli=jQuery('.slider-line',_this.zslider);btn=jQuery('.slider-btn-up',_this.zslider);sli.css('height',_this.top.height()-(btn.height()*2));_this.viewport.css('height',_this.top.height()-3);_this.viewportimg.get(0).refresh();};this.getAuthor=function(){return _this.loadedImg.meta.author;}
this.getChannels=function(){return _this.loadedImg.channels;}
this.toggleChannel=function(idx){this.setChannelActive(idx,!_this.loadedImg.channels[idx].active);}
this.getCCount=function(){return _this.loadedImg.size.c;}
this.setChannelActive=function(idx,act,noreload){if(this.isGreyModel()){if(act){for(i in _this.loadedImg.channels){act=i==idx;if(act!=_this.loadedImg.channels[i].active){_this.loadedImg.channels[i].active=act;_this.self.trigger('channelChange',[_this,i,_this.loadedImg.channels[i]]);}}
if(!noreload){_load();}}}else{if(_this.loadedImg.channels[idx].active!=act){_this.loadedImg.channels[idx].active=act;_this.self.trigger('channelChange',[_this,idx,_this.loadedImg.channels[idx]]);if(!noreload){_load();}}}}
this.setChannelColor=function(idx,color,noreload){_this.loadedImg.channels[idx].color=color;_this.self.trigger('channelChange',[_this,idx,_this.loadedImg.channels[idx]]);if(!noreload){_load();}}
this.setChannelWindow=function(idx,start,end,noreload){var channel=_this.loadedImg.channels[idx];if(channel.window.min<=start){channel.window.start=start;}
if(channel.window.max>=end){channel.window.end=end;}
_this.self.trigger('channelChange',[_this,idx,_this.loadedImg.channels[idx]]);if(!noreload){_load();}}
this.getMetadata=function(){return _this.loadedImg.meta;}
this.getProjection=function(){return _this.loadedImg.rdefs.projection.toLowerCase();}
this.setProjection=function(p,noreload){p=p.toLowerCase();if(_this.loadedImg.rdefs.projection.toLowerCase()!=p){_this.loadedImg.rdefs.projection=p;_this.self.trigger('projectionChange',[_this]);if(!noreload){_load();}}}
this.setModel=function(m,noreload){m=m.toLowerCase().substring(0,1);if(_this.loadedImg.rdefs.model.toLowerCase().substring(0,1)!=m){_this.loadedImg.rdefs.model=m;var lmc=_this.loadedImg.current.lastModelChannels;_this.loadedImg.current.lastModelChannels=new Array();for(i in _this.loadedImg.channels){_this.loadedImg.current.lastModelChannels.push(_this.loadedImg.channels[i].active);}
if(this.isGreyModel()){var found=false;for(i in _this.loadedImg.channels){if(_this.loadedImg.channels[i].active){this.setChannelActive(i,true);found=true;break;}}
if(!found){this.setChannelActive(0,true);}}
if(!noreload){_load();}
_this.self.trigger('modelChange',[_this]);}}
this.getModel=function(){return _this.loadedImg.rdefs.model?_this.loadedImg.rdefs.model.toLowerCase().substring(0,1):null;}
this.isGreyModel=function(){return _this.loadedImg.rdefs.model?_this.loadedImg.rdefs.model.toLowerCase().substring(0,1)=='g':null;}
this.getPixelSizes=function(){return _this.loadedImg.pixel_size;}
this.setQuality=function(q,noreload){q=parseFloat(q);if(q!=_this.loadedImg.current.quality){_this.loadedImg.current.quality=q;if(!noreload){_load();}}}
this.getQuality=function(){return _this.loadedImg.current.quality;}
this.getServer=function(){return server;}
this.getSizes=function(){return _this.loadedImg.size;}
this.getTCount=function(){return _this.loadedImg.size.t;}
this.getTPos=function(){return _this.loadedImg.current.t+1;}
this.getZCount=function(){return _this.loadedImg.size.z;}
this.getZPos=function(){return _this.loadedImg.current.z+1;}
this.setZoom=function(z){_this.viewportimg.get(0).setZoom(z,_this.loadedImg.size.width,_this.loadedImg.size.height);}
this.getZoom=function(){return _this.loadedImg.current.zoom;}
this.setZoomToFit=function(only_shrink){_this.viewportimg.get(0).setZoomToFit(only_shrink,_this.loadedImg.size.width,_this.loadedImg.size.height);}
var channels_undo_stack=[];var channels_undo_stack_ptr=-1;var channels_bookmark=null;var compare_stack_entries=function(e1,e2){for(i in e1){if(!(e1[i].active==e2[i].active&&rgbToHex(e1[i].color)==rgbToHex(e2[i].color)&&e1[i].windowStart==e2[i].windowStart&&e1[i].windowEnd==e2[i].windowEnd)){return false;}}
return true;}
this.save_channels=function(){var entry=[];var channels=_this.loadedImg.channels;for(i in channels){var channel={active:channels[i].active,color:channels[i].color,windowStart:channels[i].window.start,windowEnd:channels[i].window.end};entry.push(channel);}
if(channels_undo_stack_ptr==-1||!compare_stack_entries(entry,channels_undo_stack[channels_undo_stack_ptr])){channels_undo_stack_ptr++;channels_undo_stack.length=channels_undo_stack_ptr;channels_undo_stack.push(entry);}}
this.undo_channels=function(redo){if(channels_undo_stack_ptr>=0){channels_undo_stack_ptr--;entry=channels_undo_stack[channels_undo_stack_ptr];for(i in entry){this.setChannelWindow(i,entry[i].windowStart,entry[i].windowEnd,true);this.setChannelColor(i,entry[i].color,true);this.setChannelActive(i,entry[i].active,true);}
_load();}}
this.has_channels_undo=function(){return channels_undo_stack_ptr>0;}
this.redo_channels=function(){if(channels_undo_stack_ptr>-1&&(channels_undo_stack.length-1>channels_undo_stack_ptr)){channels_undo_stack_ptr+=2;this.undo_channels(true);}}
this.has_channels_redo=function(){return channels_undo_stack.length-1>channels_undo_stack_ptr;}
this.reset_channels=function(){if(channels_undo_stack.length>0){channels_undo_stack.length=1;channels_undo_stack_ptr=1;this.undo_channels(true);}}
this.bookmark_channels=function(){channels_bookmark=channels_undo_stack_ptr+1;}
this.back_to_bookmarked_channels=function(){if(channels_bookmark!=null){channels_undo_stack_ptr=channels_bookmark;this.undo_channels(true);}}
this.forget_bookmark_channels=function(){channels_bookmark=null;}
this.getQuery=function(include_slider_pos){var query=new Array();var chs=new Array();var channels=this.loadedImg.channels
for(i in channels){var ch=channels[i].active?'':'-';ch+=parseInt(i)+1;ch+='|'+channels[i].window.start+':'+channels[i].window.end;ch+='$'+rgbToHex(channels[i].color);chs.push(ch);}
query.push('c='+chs.join(','));query.push('m='+this.loadedImg.rdefs.model.toLowerCase().substring(0,1));query.push('p='+this.loadedImg.rdefs.projection.toLowerCase());if(this.loadedImg.current.quality){query.push('q='+this.loadedImg.current.quality);}
query.push('zm='+this.loadedImg.current.zoom);if(include_slider_pos){query.push('t='+(this.loadedImg.current.t+1));query.push('z='+(this.loadedImg.current.z+1));}
query.push('x='+this.viewportimg.get(0).getXOffset());query.push('y='+this.viewportimg.get(0).getYOffset());if(this.hasLinePlot()){query.push('lp='+(linePlot.isHorizontal()?'h':'v')+linePlot.position);}
return query.join('&');}
this.setQuery=function(query){if(query.c){var chs=query.c.split(',');for(j in chs){var t=chs[j].split('|');var idx;if(t[0].substring(0,1)=='-'){idx=parseInt(t[0].substring(1))-1;this.setChannelActive(idx,false);}else{idx=parseInt(t[0])-1;this.setChannelActive(idx,true);}
if(t.length>1){t=t[1].split('$');var window=t[0].split(':');if(window.length==2){this.setChannelWindow(idx,parseInt(window[0]),parseInt(window[1]),true);}}
if(t.length>1){this.setChannelColor(idx,t[1],true);}}}
query.m&&this.setModel(query.m,true);query.q&&this.setQuality(query.q,true);query.zm&&this.setZoom(parseInt(query.zm));query.p&&this.setProjection(query.p);if(query.t){this.loadedImg.current.t=parseInt(query.t)-1;}
if(query.z){this.loadedImg.current.z=parseInt(query.z)-1;}
query.x&&this.viewportimg.get(0).setXOffset(parseInt(query.x));query.y&&this.viewportimg.get(0).setYOffset(parseInt(query.y));if(query.lp){this.prepareLinePlot(query.lp.substring(0,1));linePlot.position=parseInt(query.lp.substring(1));}}
this.getRelUrl=function(append){append=append!=null?'/'+append:'';return this.loadedImg.id+'/'+this.loadedImg.current.z+'/'+this.loadedImg.current.t+append+'/?'+this.getQuery();}
this.getUrl=function(base){var rv=server+'/'+base+'/'+this.getCurrentImgUrlPath();return rv+'?'+this.getQuery(true);}
this.getCurrentImgUrlPath=function(){rv=this.loadedImg.id+'/';if(this.loadedImg.current.dataset_id){rv+=this.loadedImg.current.dataset_id+'/';}
return rv;}
this.bind=function(event,callback){if(event=='projectionChange'||event=='modelChange'||event=='channelChange'||event=='imageChange'||event=='imageLoad'||event=='linePlotPos'||event=='linePlotChange'){_this.self.bind(event,callback);}else{_this.viewportimg.bind(event,callback);}}
this.self.mousedown(function(){return false;});};function rgbToHex(rgb){if(rgb.substring(0,1)=='#'){return rgb.substring(1);}
var rgbvals=/rgb\((.+),(.+),(.+)\)/i.exec(rgb);if(!rgbvals)return rgb;var rval=parseInt(rgbvals[1]).toString(16);var gval=parseInt(rgbvals[2]).toString(16);var bval=parseInt(rgbvals[3]).toString(16);if(rval.length==1)rval='0'+rval;if(gval.length==1)gval='0'+gval;if(bval.length==1)bval='0'+bval;return(rval+
gval+
bval).toUpperCase();}
$.fn.viewportImage=function(options){return this.each(function(){if(!this.id){this.id=''+(new Date()).getTime();}
var self=this;var _this=this;var insideId=this.id+'-vpi';var image=jQuery(this);image.addClass('weblitz-viewport-img');image.wrap('<div id="'+insideId+'" style="display: inline; position: absolute;" class="draggable"></div>');var dragdiv=jQuery('#'+insideId);var dragdiv_dom=dragdiv.get(0);var wrapdiv=jQuery(dragdiv_dom.parentNode);var overlay=$('<img id="'+insideId+'-ovl">').appendTo(dragdiv);overlay.addClass('weblitz-viewport-img').hide();var panbars=options==null||options.panbars;var mediaroot=options==null?null:options.mediaroot;mediaroot=mediaroot||'/appmedia';if(panbars){var panleftId=this.id+'-panl';var panrightId=this.id+'-panr';var pantopId=this.id+'-pant';var panbottomId=this.id+'-panb';var side_styles='background-color: #ABC; filter:alpha(opacity=50); opacity: 0.5; z-index: 5; position: absolute; display: block;';var side_styles_h=side_styles+'height: 100%;';var side_styles_v=side_styles+'width: 100%; left: 0%;';wrapdiv.prepend('<div id="'+panleftId+'" style="'+side_styles_h+'left: 0%;"><img src="'+mediaroot+'/weblitz_gateway/img/arrow_left.gif">');wrapdiv.prepend('<div id="'+panrightId+'" style="'+side_styles_h+'right: 0px; _right: 0%;"><img src="'+mediaroot+'/weblitz_gateway/img/arrow_right.gif">');wrapdiv.prepend('<div id="'+pantopId+'" style="'+side_styles_v+'top: 0%;"><img src="'+mediaroot+'/weblitz_gateway/img/arrow_up.gif">');wrapdiv.prepend('<div id="'+panbottomId+'" style="'+side_styles_v+'bottom: 0%;"><img src="'+mediaroot+'/weblitz_gateway/img/arrow_down.gif">');var panleft=jQuery('#'+panleftId);var panright=jQuery('#'+panrightId);var pantop=jQuery('#'+pantopId);var panbottom=jQuery('#'+panbottomId);function panside_extend(e,min,max,mintm,maxtm,s){var opt={};var opt2={};opt[s]=opt2[s]=max;e.queue("fx",[]);e.children().queue("fx",[]);e.unbind("mouseover",e.do_extend).mouseout(e.do_collapse).animate(opt);opt2[s=='width'&&'top'||'left']=e._img_pos_extended;e.children("img").animate(opt2);}
function panside_collapse(e,min,max,mintm,maxtm,s){var opt={};var opt2={};opt[s]=opt2[s]=min;e.unbind("mouseout",e.do_collapse).mouseover(e.do_extend).animate(opt);opt2[s=='width'&&'top'||'left']=e._img_pos_collapsed;e.children("img").animate(opt2);}
function panside_prepare(e,x,y){var img=e.children("img");var iw=img.width();var ih=img.height();var max,min,maxtm,mintm,side;wrapwidth=wrapdiv.width();wrapheight=wrapdiv.height();img.unbind('load');if(iw==0||iw==0){img.load(function(){panside_prepare(e,x,y);});e.center=function(){};e.display=function(){};return;}
if(x==0){side='height';max=ih;e.center=function(){e._img_pos_extended=parseInt((wrapwidth/2)-(iw/2));e._img_pos_collapsed=parseInt((wrapwidth/2)-(iw/6));img.css('left',e._img_pos_collapsed);}}else{side='width';max=iw;img.css('left','0%');e.center=function(){e._img_pos_extended=parseInt((wrapheight/2)-(ih/2));e._img_pos_collapsed=parseInt((wrapheight/2)-(ih/6));img.css('top',e._img_pos_collapsed);}}
e.center();img.css({display:'block',position:'absolute'});min=parseInt(max/3);maxtm=-parseInt(ih/2);mintm=parseInt(maxtm/5);e.do_extend=function(){panside_extend(e,min,max,mintm,maxtm,side);};e.do_collapse=function(){panside_collapse(e,min,max,mintm,maxtm,side);};e.do_collapse();e.mouseout(function(){e.removeClass('auto-val');});e.mousedown(function(){e.addClass('auto-val');self.doMove(x,y,1,function(){return e.is('.auto-val');});return false;});e.mouseup(function(){e.removeClass('auto-val');return false;});e.css({'cursor':'pointer'});e.display=function(show){if(show&&this.css('display')=='none'){panside_collapse(this,min,max,mintm,maxtm,side);this.show();}
if(!show&&this.css('display')!='none'){this.removeClass('auto-val').unbind("mouseout").hide();}};}
panside_prepare(panleft,50,0);panside_prepare(panright,-50,0);panside_prepare(pantop,0,50);panside_prepare(panbottom,0,-50);}
var imagewidth=0;var imageheight=0;var wrapwidth=0;var wrapheight=0;var centering=function(x,y){if(x==null&&y==null){}else{}};this.showOverlay=function(url,cb){if(url){overlay.addClass('loading').hide();overlay.one('load',function(){overlay.removeClass('loading').show();cb&&cb();});overlay.attr('src',url);}else{overlay.show();cb&&cb();}}
this.hideOverlay=function(){overlay.hide();}
this.overlayVisible=function(){return overlay.is(':visible')||overlay.is('.loading');}
this.doMove=function(deltax,deltay,smooth,auto_move_cb){var pos=dragdiv.offset();var rel=wrapdiv.offset();pos.left-=rel.left+parseInt(jQuery.curCSS(wrapdiv[0],"borderLeftWidth",true));pos.top-=rel.top+parseInt(jQuery.curCSS(wrapdiv[0],"borderTopWidth",true));var left=pos.left+deltax;var top=pos.top+deltay;var self=this;if(imagewidth<=wrapwidth){left=(wrapwidth-imagewidth)/2;panbars&&panleft.display(false);panbars&&panright.display(false);}else{if(left>=0){left=0;panbars&&panleft.display(false);}else{panbars&&panleft.display(true);}
if((wrapwidth-imagewidth)>=left){left=wrapwidth-imagewidth;panbars&&panright.display(false);}else{panbars&&panright.display(true);}}
if(imageheight<=wrapheight){top=(wrapheight-imageheight)/2;panbars&&pantop.display(false);panbars&&panbottom.display(false);}else{if(top>=0){top=0;panbars&&pantop.display(false);}else{panbars&&pantop.display(true);}
if((wrapheight-imageheight)>=top){top=wrapheight-imageheight;panbars&&panbottom.display(false);}else{panbars&&panbottom.display(true);}}
if(left==dragdiv_dom.offsetLeft&&top==dragdiv_dom.offsetTop){return;}
if(smooth!=null){dragdiv.animate({left:left,top:top},'fast','linear',function(){if(auto_move_cb!=null&&auto_move_cb()){self.doMove(deltax,deltay,smooth,auto_move_cb);}});}else{dragdiv.css({left:left,top:top});}}
var cur_zoom=100;var orig_width;var orig_height;var changing=null;this.getOrigWidth=function(){return orig_width;};this.getOrigHeight=function(){return orig_height;};this.getXOffset=function(){offset=parseInt(dragdiv.css('left'));return offset<0?(-offset):0;};this.setXOffset=function(xoffset){dragdiv.css('left',-xoffset);this.doMove(0,0);};this.getYOffset=function(){offset=parseInt(dragdiv.css('top'));return offset<0?(-offset):0;};this.setYOffset=function(yoffset){dragdiv.css('top',-yoffset);this.doMove(0,0);};this.setZoom=function(val,width,height){if(width!=null&&height!=null){orig_width=width;orig_height=height;}
width=parseInt(orig_width*val/100);height=parseInt(orig_height*val/100);cur_zoom=val;imagewidth=width;imageheight=height;this.doMove(0,0);if(!changing){changing=setTimeout(function(){;image.trigger("zoom",[cur_zoom]);changing=null;},20);}
image.attr({width:width,height:height});overlay.attr({width:width,height:height});}
this.setZoomToFit=function(only_shrink,width,height){if(width!=null&&height!=null){orig_width=width;orig_height=height;cur_zoom=100;}
var ztf=Math.min(wrapwidth*100.0/orig_width,wrapheight*100.0/orig_height);if(only_shrink&&ztf>=100.0){ztf=100.0;}
this.setZoom(parseInt(ztf));}
this.doZoom=function(increment,justDirection){if(justDirection){var t=Math.max(1,((imagewidth+3)*cur_zoom/imagewidth)-cur_zoom);increment=cur_zoom+(increment>0?t:-t);}
this.setZoom(parseInt(increment));}
dragdiv.bind("mousewheel",function(e){if(e.wheelDelta>=120)
_this.doZoom(1,true);else if(e.wheelDelta<=-120)
_this.doZoom(-1,true);e.preventDefault();})
if(dragdiv.get(0).addEventListener){dragdiv.get(0).addEventListener('DOMMouseScroll',function(e){if(e.detail>0)
_this.doZoom(-1,true);else if(e.detail<0)
_this.doZoom(1,true);e.preventDefault();},false);}
var ondrag=false;var clickinterval=null;var drag_px;var drag_py;dragdiv.click(function(e){if(clickinterval!=null){image.trigger('onclick',e);}}).mousedown(function(e){drag_px=e.screenX;drag_py=e.screenY;jQuery(this).addClass('ondrag');ondrag=true;if(clickinterval!=null){clearInterval(clickinterval);}
clickinterval=setTimeout(function(){clearTimeout(clickinterval);clickinterval=null;},250)
return false;}).mouseup(function(e){if(ondrag){ondrag=false;jQuery(this).removeClass('ondrag');return false;}}).mouseout(function(e){if(ondrag){ondrag=false;jQuery(this).removeClass('ondrag');return false;}}).mousemove(function(e){if(ondrag){self.doMove(e.screenX-drag_px,e.screenY-drag_py);drag_px=e.screenX;drag_py=e.screenY;return false;}});this.refresh=function(){imagewidth=image.width();imageheight=image.height();wrapwidth=wrapdiv.width();wrapheight=wrapdiv.height();if(panbars){pantop.center();panbottom.center();panleft.center();panright.center();}
self.doMove(0,0);}});}
$.fn.slider=function(cfg){return this.each(function(){this.sliderCfg={orientation:cfg&&cfg.orientation=='v'?'height':'width',anchor:cfg&&cfg.orientation=='v'?'top':'left',direction:cfg&&cfg.orientation=='v'?-1:1,handleSize:cfg&&cfg.handleSize?cfg.handleSize:'10px',min:cfg&&!isNaN(parseInt(cfg.min))?parseInt(cfg.min):0,max:cfg&&!isNaN(parseInt(cfg.max))?parseInt(cfg.max):100,range:0,repeatCallback:cfg&&cfg.repeatCallback,tooltip_prefix:cfg&&cfg.tooltip_prefix?cfg.tooltip_prefix:''};this.pos=0;this.sliderCfg.range=this.sliderCfg.max-this.sliderCfg.min+1;if(!this.id){this.id=''+(new Date()).getTime();}
var handleId=this.id+'-shi';var lineId=this.id+'-sli';var btnUpId=this.id+'-bup';var btnDownId=this.id+'-bdn';var slider_container=jQuery(this);if(this.sliderCfg.orientation=='width'){slider_container.addClass('hslider');}else{slider_container.addClass('vslider');}
slider_container.append('<div id="'+handleId+'" class="slider-handle draggable"></div>');var handle=jQuery('#'+handleId);handle.wrap('<div id="'+lineId+'" class="slider-line"></div>');var handle_rel=100.0/this.sliderCfg.range;handle.css(this.sliderCfg.orientation,handle_rel+'%');if(handle_rel==100){handle.addClass('disabled');}else{handle.removeClass('disabled');}
var slider=jQuery("#"+lineId);slider.before('<div id="'+btnUpId+'" class="slider-btn-up"></div>');var btnup=jQuery("#"+btnUpId);slider.after('<div id="'+btnDownId+'" class="slider-btn-down"></div>');var btndown=jQuery("#"+btnDownId);if(this.sliderCfg.orientation=='width'){slider_container.addClass('hslider');}else{slider_container.addClass('vslider');}
var self=this;var posFromEvent=function(e){var xypos;if(self.sliderCfg.orientation=='width'){xypos=e.pageX-slider.offset().left;xypos=xypos*100.0/slider.get(0).clientWidth;}else{xypos=e.pageY-slider.offset().top+(handle.get(0).clientHeight);xypos=xypos*100.0/slider.get(0).clientHeight;}
var pos=parseInt(xypos*(self.sliderCfg.range)/100.0);if(self.sliderCfg.direction<0){pos=self.sliderCfg.range-pos;}
return pos;};this.setSliderPos=function(pos,trigger){var pos=Math.min(Math.max(pos,this.sliderCfg.min),this.sliderCfg.max)-this.sliderCfg.min;if(pos!=this.pos||trigger){this.pos=pos;if(self.sliderCfg.direction<0){handle.css(this.sliderCfg.anchor,(100.0-handle_rel-(this.pos*100.0/this.sliderCfg.range))+'%');}else{handle.css(this.sliderCfg.anchor,(this.pos*100.0/this.sliderCfg.range)+'%');}
if(trigger!=false){slider_container.trigger('change',[this.sliderCfg.min+this.pos]);}}};this.setSliderRange=function(min,max,current,trigger){this.sliderCfg.max=max;this.sliderCfg.min=min;this.sliderCfg.range=max-min+1;handle_rel=100.0/this.sliderCfg.range;handle.css(this.sliderCfg.orientation,handle_rel+'%');if(handle_rel==100){handle.addClass('disabled');}else{handle.removeClass('disabled');}
if(current!=null){this.setSliderPos(current,trigger);}};var handlesliderpos=function(e){var rpos=posFromEvent(e);self.setSliderPos(rpos+self.sliderCfg.min);}
slider.click(handlesliderpos);var onrepeat=false;var repeat_timer;var ondrag=false;var startrepeat=function(additive){onrepeat=true;self.setSliderPos(self.pos+self.sliderCfg.min+additive);var repeat_func=function(timeout){repeat_timer=setTimeout(function(){if(onrepeat){if(self.sliderCfg.repeatCallback!=null&&!self.sliderCfg.repeatCallback()){repeat_func(20);return;}
self.setSliderPos(self.pos+self.sliderCfg.min+additive);repeat_func(20);}},timeout);};repeat_func(500);}
var stoprepeat=function(){onrepeat=false;clearTimeout(repeat_timer);$(this).unbind('mouseout',stoprepeat);$(this).unbind('mouseup',stoprepeat);}
btnup.mousedown(function(){btnup.mouseup(stoprepeat);btnup.mouseout(stoprepeat);startrepeat(-self.sliderCfg.direction);return false;});btndown.mousedown(function(){btndown.mouseup(stoprepeat);btndown.mouseout(stoprepeat);startrepeat(self.sliderCfg.direction);return false;});handle.mousedown(function(e){jQuery(document).mousemove(domove);jQuery(document).mouseup(stopdrag);ondrag=true;handle.addClass('ondrag');handle.removeClass('draggable');return false;});var stopdrag=function(e){clearTimeout(repeat_timer);jQuery(document).unbind('mousemove',domove);jQuery(document).unbind('mouseup',stopdrag);ondrag=false;handle.addClass('draggable');handle.removeClass('ondrag');handlesliderpos(e);}
var domove=function(e){if(ondrag){var xypos,sliderSize;if(self.sliderCfg.orientation=='width'){sliderSize=slider.get(0).clientWidth;xypos=e.pageX-slider.offset().left-(handle.get(0).clientWidth/2);}else{sliderSize=slider.get(0).clientHeight;xypos=e.pageY-slider.offset().top-(handle.get(0).clientHeight/2);}
xypos=xypos*100.0/sliderSize;handle.css(self.sliderCfg.anchor,Math.min(Math.max(0,xypos),(self.sliderCfg.range-1)*100.0/self.sliderCfg.range)+'%');}};function follow_pos(e){var pos=posFromEvent(e);if(pos>=0){if(ondrag){if(repeat_timer){clearTimeout(repeat_timer);}
repeat_timer=setTimeout(function(){self.setSliderPos(pos+1);},2000);}
slider.attr('title',self.sliderCfg.tooltip_prefix+(pos+1));}}
function ttshow(e){slider.mousemove(follow_pos);}
function tthide(e){slider.unbind('mousemove',follow_pos);}
slider.hover(ttshow,tthide);});}
function parseQuery(q){var query=q===undefined&&location.href.replace(/^[^\?]+\??/,'')||q;var Params={};if(!query){return Params;}
var Pairs=query.split(/[;&]/);for(var i=0;i<Pairs.length;i++){var KeyVal=Pairs[i].split('=');if(!KeyVal||KeyVal.length!=2){continue;}
var key=decodeURIComponent(KeyVal[0]);var val=decodeURIComponent(KeyVal[1]);val=val.replace(/\+/g,' ');Params[key]=val;}
return Params;}
function gs_text_trim(text,length,hyst,nobreakline,snl){if(hyst===null){hyst=0;}
var p=nobreakline&&text.indexOf('\n')||-1;var trimmed=text;if(p>0&&p<length){length=p;}
if(length+hyst<text.length){text=text.substring(0,length)+'...';}
return snl&&text.replace(/\n/g,snl)||text;}
function gs_getResultLineLinks(data,baseurl,renderurl){if(data===null||data.dataset_id===null||data.project_id===null){return null;}
if(renderurl==null){renderurl=baseurl;}
return{figure:baseurl+'browse/'+data.project_id+'/'+data.dataset_id+'/',img:baseurl+'browse/'+data.project_id+'/'+data.dataset_id+'/'+data.image_id+'/',thumb:renderurl+'render_thumbnail/'+data.image_id+'/',viewer:baseurl+'img_detail/'+data.image_id+'/'+data.dataset_id+'/',paper:baseurl+'browse/'+data.project_id+'/',fv_click:function(did,iid){return function(){gs_popViewer(did,iid,baseurl);return false;};}};};function gs_showResultLine(container,data,baseurl,renderurl){if(data===null||data.dataset_id===null||data.project_id===null){return null;}
var result=$('<div class="search-result">').appendTo(container);var head=$('<div class="search-result-header">').appendTo(result);data['links']=gs_getResultLineLinks(data,baseurl,renderurl);head.append('<a href="'+data.links.paper+'">- '+data.project+' -</a>');head.append('<div class="detail">'+gs_text_trim(data.project_description,100)+'</div>');head.append('<a href="'+data.links.img+'"><img src="'+data.links.thumb+'" /></a>');var detail=$('<div class="search-result-detail">').appendTo(result);detail.append('<a href="'+data.links.img+'" alt="Open complete figure">'+data.dataset+' : '+data.name+'</a>');detail.append('<div class="detail">'+gs_text_trim(data.description,250,false,' ')+'</div>');var foot=$('<div class="search-result-footnotes"><span> [ </span></div>').appendTo(result);var fv=$('<a href="'+data.links.viewer+'" alt="Open Full Viewer">Full Viewer</a>').appendTo(foot);foot.append('&nbsp;<a href="'+data.links.paper+'" alt="Paper">Paper</a>&nbsp;');fv.click(data.links.fv_click(data.dataset_id,data.image_id));foot.append('<a href="'+data.links.figure+'" alt="Figure">Figure</a>&nbsp;');foot.append('<span>] by <i>'+data.author+'</i> - <i>'+data.timestamp+'</i></span>');return result;};function gs_popViewer(did,iid,baseurl){if(iid==null){return true;}
if(did==null&&typeof iid=='string'){iid=iid.split('/');did=parseInt(iid[1]);iid=parseInt(iid[0]);}
var w=window.open(baseurl+'img_detail/'+iid+'/'+did,'_blank',"toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes, scrollbars=yes,resizable=yes,width=800,height=800");return false;}
function gs_searchImgs(text,baseurl,renderurl,result_cb){if(text.length>0){$('#search-results-summary').removeClass('ajax-error').html('searching for "'+text+'"');$('#search-results').html('<img src="/appmedia/weblitz_gateway/img/ajax-loader.gif" alt="loading..." />');if(renderurl==null){renderurl=baseurl;}
$.getJSON(baseurl+'search/',{text:text,ctx:'imgs',grabData:true,key:'meta'},function(data){shown=0;if(data.length){$('#search-results').html('');for(e in data){var elm=gs_showResultLine($('#search-results'),data[e],baseurl,renderurl);if(elm!=null){result_cb&&result_cb(data[e],elm);shown++;}}}
if(shown==0){$('#search-results').html('no results');$('#search-results-summary').html('search for "'+text+'": no results.');}else{$('#search-results-summary').html('search for "'+text+'":<br /> showing 1 to '+shown+' of '+shown+' total.');}});}}