/*==============================================================================

    Routines written by John Gardner - 2003 - 2005

    See www.braemoor.co.uk/software for information about more freeware
    available.

================================================================================

Routine to write a session cookie

    Parameters:
        cookieName        Cookie name
        cookieValue       Cookie Value
    
    Return value:
        true              Session cookie written successfullly
        false             Failed - persistent cookies are not enabled

   e.g. if (writeSessionCookie("pans","drizzle") then
           alert ("Session cookie written");
        else
           alert ("Sorry - Session cookies not enabled");
*/

function writeSessionCookie (cookieName, cookieValue) {
  if (testSessionCookie()) {
    document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=/";
    return true;
  }
  else return false;
}

function writeSessionCookieWithPath (cookieName, cookieValue) {
  if (testSessionCookie()) {
    document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=" + window.location.pathname;
    return true;
  }
  else return false;
}
/*==============================================================================

Routine to get the current value of a cookie

    Parameters:
        cookieName        Cookie name
    
    Return value:
        false             Failed - no such cookie
        value             Value of the retrieved cookie

   e.g. if (!getCookieValue("pans") then  {
           cookieValue = getCoookieValue ("pans2);
        }
*/

function getCookieValue (cookieName) {
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");
  if (exp.test (document.cookie + ";")) {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return false;
}

/*==============================================================================

Routine to see if session cookies are enabled

    Parameters:
        None
    
    Return value:
        true              Session cookies are enabled
        false             Session cookies are not enabled

   e.g. if (testSessionCookie())
           alert ("Session coookies are enabled");
        else
           alert ("Session coookies are not enabled");
*/

function testSessionCookie () {
	return true ;
  /*document.cookie ="testSessionCookie=Enabled";
  if (getCookieValue ("testSessionCookie")=="Enabled")
    return true 
  else
    return false;*/
}

/*==============================================================================

Routine to see of persistent cookies are allowed:

    Parameters:
        None
    
    Return value:
        true              Session cookies are enabled
        false             Session cookies are not enabled

   e.g. if (testPersistentCookie()) then
           alert ("Persistent coookies are enabled");
        else
           alert ("Persistent coookies are not enabled");
*/

function testPersistentCookie () {
  writePersistentCookie ("testPersistentCookie", "Enabled", "minutes", 1);
  if (getCookieValue ("testPersistentCookie")=="Enabled")
    return true  
  else 
    return false;
}

/*==============================================================================

Routine to write a persistent cookie

    Parameters:
        CookieName        Cookie name
        CookieValue       Cookie Value
        periodType        "years","months","days","hours", "minutes"
        offset            Number of units specified in periodType
    
    Return value:
        true              Persistent cookie written successfullly
        false             Failed - persistent cookies are not enabled
    
    e.g. writePersistentCookie ("Session", id, "years", 1);
*/       

function writePersistentCookie (CookieName, CookieValue, periodType, offset) {

  var expireDate = new Date ();
  offset = offset / 1;
  
  var myPeriodType = periodType;
  switch (myPeriodType.toLowerCase()) {
    case "years": 
     var year = expireDate.getYear();     
     // Note some browsers give only the years since 1900, and some since 0.
     if (year < 1000) year = year + 1900;     
     expireDate.setYear(year + offset);
     break;
    case "months":
      expireDate.setMonth(expireDate.getMonth() + offset);
      break;
    case "days":
      expireDate.setDate(expireDate.getDate() + offset);
      break;
    case "hours":
      expireDate.setHours(expireDate.getHours() + offset);
      break;
    case "minutes":
      expireDate.setMinutes(expireDate.getMinutes() + offset);
      break;
    default:
      alert ("Invalid periodType parameter for writePersistentCookie()");
      break;
  } 
  
  document.cookie = escape(CookieName ) + "=" + escape(CookieValue) + "; expires=" + expireDate.toGMTString() + "; path=/";
}  

/*==============================================================================

Routine to delete a persistent cookie

    Parameters:
        CookieName        Cookie name
    
    Return value:
        true              Persistent cookie marked for deletion
    
    e.g. deleteCookie ("Session");
*/    

function deleteCookie (cookieName) {

  if (getCookieValue (cookieName)) writePersistentCookie (cookieName,"Pending delete","years", -1);  
  return true;     
}

/*
 * jQuery JavaScript Library v1.3.2
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
 * Revision: 6246
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
 * Sizzle CSS Selector Engine - v0.9.3
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},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 toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},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(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
// accordion library for expanding and contracting menus

function AccordionExpand( el , antype ) {
	if ( antype == "none" ) {
   		el.next().show();
 	} else {
		el.next().slideDown("normal"); 
	}	    
	el.addClass("selected");
}

function AccordionRetract( el , antype ) {
	var nextel = el.next() ;
	if ( nextel.css("display") != "none" ) {
   	 	if ( antype == "none" ) {
	   		nextel.hide();
	 	} else {
   			nextel.slideUp("slow");
		} 
	}            
	el.removeClass("selected");  
}

function AccordionToggle( el , antype ) {
    if(typeof(el) == "undefined") {return;} // Make sure el is not null and el.attr('class')
	if (typeof(el.attr("class")) != "undefined" && el.attr("class").indexOf("selected") != -1) {   
		AccordionRetract( el , antype ) ;
	} else {
	    ApplyBehavior( el , antype ) ;
	    AccordionExpand( el , antype ) ;
	}
}

function ApplyBehavior( el , antype ) { 
	if ( accordionBehavior == "one" ) { // this is set in jquery.thdl.js
		var sib_class = el.attr("class") ; 
		var zpar = "list1"; // was el.parents("@id[list]").attr("id") ; stopped working with upgrade to Jquery 1.3 (ndg)
		// Used to have ... + sib_class + ":visible" ... instead of ".head:visible" so it wasn't recognizing
		// global links which have another class
		jQuery( "#" + zpar + " .head:visible" ).each(function(){ 
            AccordionRetract(jQuery(this) , antype);
        }) ;
	}
} 

function RetrieveAccordionCookies() {
    
    //alert(pg_cookie_nm);
	var menus_string = getCookieValue( cookie_menu ) ;
	
	if (jQuery("#side-column div[id~='tab']").length > 0) {
	   // if there are multiple tabs in the side-column. Forget about cookies for now.
	   jQuery("#side-column div[id~='tab']").each(function() {
            AccordionToggle(jQuery(this).find(".head:first") , "none" ) ;
       });
    } else if ( menus_string.length > 0 ) {
	
		//loop through stored indices and activate
	   	var marray = menus_string.split(",");
		for( var i=0 ; i<marray.length-1 ; i++ ) {      
            var menu = jQuery(".list0 .head").eq(marray[i])[0]; 
			AccordionToggle( jQuery(menu) , "none" ) ;
		}
	} else { // default to first item of both levels
	    AccordionToggle( jQuery('.head:first') , "none" ) ;
	}
}
       
function SetAccordionCookies() {
		var cookie_string = "" ;    
	    jQuery( '#side-column .head[class*=selected]' ).each( function(i) { //pull out all selected menus and submenus
			cookie_string += jQuery(".list0 .head").index(jQuery(this)[0]) + "," ; //store absolute index (position among all .head_big and .head descendants of #list0)
	    }); 
		//alert(cookie_string);
		if ( !writeSessionCookieWithPath( cookie_menu , cookie_string ) ) { //cookie_menu is set in jquery.thdl.js
			alert ( "Note: Cookies must be enabled for your preferences to be saved." );
		}
}

/* functions should be in alphabetical order */

// add onclick methods for all links that reference wikis (the #wiki= signifier is added to wiki links in the wiki_reader.php script) 
function ActivateLinks( parent_element ) {
    // Wiki Links
	jQuery(parent_element).find("a[href*=#wiki], a[href*=#essay], a[href*=#jiats], a[href*=#spt]").click(function() {
		var hash = this.href;
		hash = hash.replace(/^.*#/, '');
		if(jQuery.browser.msie || jQuery.browser.safari) { jQuery.history.load(hash); }
		//jQuery.historyLoad(hash);  // This calls pageload function in class_external.js
	});
	
	// for iframe button toggling
	jQuery(parent_element).find("ul#masthead-navbar a[href^=#iframe]").click( function() {
		ToggleNavButton( this.href ) ;
	}) ;
	jQuery(parent_element).find("a[href*=#thl-popup=]").each(function() {
			var myhref = (jQuery(this).attr("href")).replace("#thl-popup=","");
			jQuery(this).attr("href",myhref).addClass("thl-poplink");
	});
	jQuery(parent_element).find("a[class*=thl-poplink]").each(function() {
		if(jQuery("head link[href*=jqModal]").length ==0 ) {
			jQuery("head link:last").after('<link rel="stylesheet" type="text/css" href="/global/css/jqModal.css" media="all" />');
		} 
		var winid = "jqmwin" + (jQuery(".jqmWindow").length + 1);
		var popurl = jQuery(this).attr("href");
		if(popurl.indexOf("=") > -1) {
			opurl = popurl.substring(popurl.indexOf("=") + 1);
		}
		var linkurl = popurl;
		if(jQuery(this).hasClass("wikipop")) {
			linkurl = window.location.href.replace(/#(.*)/, '')+"#wiki=" + linkurl;
		}
		var link;
		if(jQuery(this).hasClass("no-view-alone")) {
			link = '';
		} else if(jQuery(this).hasClass("new-window")) {
			link = '<a href="' + linkurl + '" onclick="javascript:jQuery(this).parents(\'.jqmWindow\').jqmHide();" target="_blank">View this Page in a New Window</a>';
		} else {
			link = '<a href="' + linkurl + '" onclick="javascript:jQuery(this).parents(\'.jqmWindow\').jqmHide();">View this Page Alone</a>';
		}
		var div = '<div id="' + winid + '" class="jqmWindow" style="overflow: hidden;"><div class="closebtn"><a href="#">Close</a></div><div class="viewalone">'+link+'</div><div class="jqmWrapper"></div></div>';
		jQuery("body").append(div);
		if(jQuery.isFunction(jQuery.fn.jqm)){
			if(jQuery(this).hasClass("wikipop")) { 
					popurl = "/global/php/wiki_reader.php?url=" + popurl + "&type=popup";
					jQuery("#" + winid).jqm({ajax: popurl, target: jQuery("#" + winid + " .jqmWrapper:first"), trigger: jQuery(this), closeClass: "closebtn"});
			} else {
				if(jQuery(this).hasClass("thl-content")) { 	popurl = "/global/php/thl_reader.php?url=" + escape(popurl); }
				if(jQuery(this).hasClass("iframe")) {
					jQuery("#" + winid).append('<iframe width="98%" id="' + winid + '-iframe" height="100%" src="' + popurl + '" style="margin-top: 8px; background-color: white;"></iframe>');
					jQuery("#" + winid).jqm({trigger: jQuery(this), closeClass: "closebtn"});
				} else {
					jQuery("#" + winid).jqm({ajax: popurl, target: jQuery("#" + winid + " .jqmWrapper:first"), onLoad: ActivatePopupAjaxForms, trigger: jQuery(this), closeClass: "closebtn"});
				}
			}
			if(jQuery(this).hasClass("full-width-popup")) { 
				jQuery("#" + winid).css({'margin-left':'0', 'width':'94%', 'left':'2%'});
			}
		}
	});
}

function ActivatePopupAjaxForms(element) {
	// This statement's for the jqm callbacks, which pass a hash with a "w" property that's the modal window element
	if(typeof element.w != "undefined"){
		element = element.w;
	}
	// For each form, make the onsubmit event perform an Ajax POST
	jQuery(element).find("form").each(function() {
		jQuery(this).submit(function() {
			jQuery.post("/global/php/thl_reader.php?url="+jQuery(this).attr('action'), jQuery(this).serialize(), function(result){
				jQuery(element).find(".jqmWrapper:first").html(result);
				ActivatePopupAjaxForms(jQuery(element));
			});
			return false;
		});
	});
}

function ActivatePopupLinks(jqParent) {
	
	jQuery(jqParent).find("a.popupwin, a[href*=php]").click(function () {
		var myhref = jQuery(this).attr("href");
		jQuery("#popHistory").append("<p>" + myhref + "</p>");
		if(myhref.indexOf("panoramas") > -1) {
			doPano(jqParent,myhref);
		} else {
			jQuery(jqParent).html("<div></div>");
			jQuery("#popHistory").append("<p>" + myhref + "</p>");
			jQuery(jqParent).load(myhref, function() {ActivatePopupLinks(jqParent);});
		}
		return false;
	});
	
	jQuery(jqParent).find(".popback a, .backlink a").click(function () {
		if(jQuery("#popHistory p:last").length ==0 ) {return false;}
		var backUrl = jQuery("#popHistory p:last").prev("p").text();
		if(backUrl == jQuery("#popHistory p:last").text() && typeof(jQuery("#popHistory p:last").prev("p").prev("p")) == "object") {
			backUrl = jQuery("#popHistory p:last").prev("p").prev("p").text();
			jQuery("#popHistory p:last").remove();
		}
		jQuery("#popHistory p:last").remove();
		jQuery(jqParent).html("<div></div>");
		jQuery(jqParent).load(backUrl, function() {ActivatePopupLinks(jqParent);});	
		return false;
	});
	
	jQuery(jqParent).find(".conx-content a#show-img-btn, .conx-content a#show-txt-btn").click(function () {
		if(jQuery(jqParent).find("#show-img-btn").css("display") == "none") {
			jQuery(jqParent).find("#show-img-btn").show();
			jQuery(jqParent).find("#show-txt-btn").hide();
			jQuery(jqParent).find("#image-div").hide();	
			jQuery(jqParent).find("#img-display").hide();
			jQuery(jqParent).find("#text-div").show();
		} else {
			jQuery(jqParent).find("#show-img-btn").hide();
			jQuery(jqParent).find("#show-txt-btn").show();
			jQuery(jqParent).find("#image-div").show();	
			jQuery(jqParent).find("#img-display").show();
			jQuery(jqParent).find("#text-div").hide();
		}
		return false;
	});
	
		//alert("number of thl-popups in " + jQuery(jqParent).attr("id") + ": " + jQuery(jqParent).find("a[href*=thl-popup]").length);
	try { // Need Try as IE throws error for the onClick find
		
		jQuery(jqParent).find("a[href*=#essay]").unbind("click").click(function () {
			var myref = jQuery(this).attr("href");
			myref  = myref.substr(myref.indexOf("essay=") + 6);
			jQuery(jqParent).load("/global/php/essay_reader.php?url=" + myref + "&type=popup", 
				function() {	
					jQuery(jqParent).jqmAddClose(".closebtn");
					ActivatePopupLinks(jqParent);
				}
			);
			if(jQuery(this).attr("class").indexOf("thl-poplink") > -1) {jQuery(this).attr("href",myref);}
			return false;
		});
		
		jQuery(jqParent).find("a[class*=thl-poplink]:not([href*=#essay])").unbind("click").click(function () {
			var myref = jQuery(this).attr("href");
			myref  = myref.substr(myref.indexOf("=") + 1);
			jQuery(jqParent).html("");
			jQuery(jqParent).load(myref, function() {
				jQuery("#popHistory").append("<p>" + myref + "</p>"); 
				ActivatePopupLinks(jqParent);
			});
			return false;
		});
		
		jQuery(".essay-body a[href*=Conx]").click(function() {
			var myhref = (jQuery(this).attr("href")).replace("file:","");
			jQuery(jqParent).load(myhref, function() {jQuery("#popHistory").append("<p>" + myhref + "</p>"); ActivatePopupLinks(jqParent);});
			return false;
		});
		
		jQuery(".essay-body a[href*=img-db]").click(function() {
			var myhrf = (jQuery(this).attr("href")).replace("file:","");
			var imgid = myhrf.substring(myhrf.indexOf("=") +1);
			var imgurl = "/global/php/old-img-db.php?url=" + imgid + "&backlink=yes";
			jQuery(jqParent).load(imgurl,function() {
				jQuery("#popHistory").append("<p>" + imgurl + "</p>"); 
				ActivatePopupLinks( jqParent);
				//jQuery(jqParent + " div.closebtn").click(function() {alert("yup!");});
			});
			return false;
			
		});
		
		// IE throws error here
		jQuery(jqParent).find("a[onClick*=loadPopup]").each(function () {
			var myclick = jQuery(this).attr("onClick");
			jQuery(this).attr("onClick",myclick.replace("loadPopup(","loadPopupGeneral('#" + jQuery(jqParent).attr("id") + "',"));
		});
	
	} catch (e) {}
	
	jQuery(jqParent).jqmAddClose(".closebtn");
	
}

function loadPopupGeneral(jqParent,url, txtdivhide) {
	if(typeof(txtdivhide) != "undefined" && txtdivhide) {
		jQuery(jqParent).find("#text-div").hide();
	}
	jQuery(jqParent).find("#image-div *").hide();
	jQuery(jqParent).find("#img-display").html('<p style="margin-left: 10px">Loading ...</p>');
	jQuery(jqParent).find("#img-display").load(url,function() {jQuery(jqParent).find(".phpBackLink").click(function() {popupBackGeneral(jqParent);});}).show();
}

function popupBackGeneral(jqParent,txtdivshow) {
	if(typeof(txtdivshow) != "undefined" && txtdivshow) { jQuery(jqParent).find("#text-div").show(); }
	jQuery(jqParent).find("#img-display").hide();
	jQuery(jqParent).find("#image-div *").show();
}

function doPano(jqParent, myhref) {
	jQuery(jqParent).html('<div class="conx-content"></div>');
	var conxCont = jQuery(jqParent).find(".conx-content");
	jQuery.ajax({
			url: myhref,
			success: function( pdoc ) {
				jQuery(conxCont).append(jQuery(pdoc).find(".pano-header"))
					.append(jQuery(pdoc).find("div.pano-container object"));
				jQuery(conxCont).find(".pano-header").prepend(jQuery(pdoc).find("h1:eq(1)"));
				jQuery(conxCont).find("object").attr("height","400");
				jQuery(conxCont).prepend('<p class="backlink"><a href="javascript: window.history.back();">Back to Feature 	Information</a></p>');
				jQuery(conxCont).find("a[href*=/panoramas/]").each(function() { 
					var myhref = jQuery(this).attr("href"); 
					jQuery(this).attr("href",myhref.replace('/panoramas/','/map/'));
				});
				ActivatePopupLinks(jqParent);
			}
	});
}

function AddGoogleSearchScript() {
// google search box watermark script
	jQuery.getScript("http://google.com/coop/cse/brand?form=side-search-form");
}

/*======== AddTopAnchor - Adds <a name="top"></a> at the beginning of the body element ========================================*/
function AddTopAnchor() {
	jQuery("body").prepend('<a name="top"></a>');
}

/*=========== ApplyStyle - changes the style (font-sheet for now) and stores selection in cookie (relies on cookies.js) ========*/
function ApplyStyle( zstyle ) {
	jQuery('#font_style').attr( "href" , zstyle ) ;
	writePersistentCookie (cookie_font, zstyle, "months", 1) ;
}

/*========== AssimilateCookies - Cookie Checking (depends on cookies.js) ======================================================*/
function AssimilateCookies() {	
	// retrieve cookies for menu prefs (the function for setting them is and has to be in jquery.accordion.js)
	RetrieveAccordionCookies() ;
	
	// retrieve language cookie
	
	// var cookie_lang = getCookieValue( cookie_lang ) ; - commented out / mark 8-5-08
	// if ( cookie_lang.length < 3 ) {
	// 	thdl_lang = "eng" ; // default to english if the cookie wasn't found or is empty
	// }
	// retrieve tooltip pref and activate
	// TooltipToggle( getCookieValue( cookie_tool ) ) ;	 - commented out / mark 8-5-08
	
	// retrieve style cookie
	// ApplyStyle( getCookieValue( cookie_font ) ) ; - commented out / mark 8-5-08
	
}


/*================== cssCheckbox jquery script from Kawika http://kawika.org/ ==========================*/
jQuery(function(){

	// Apply CSS styling to checkboxes
	try {
   		jQuery(".search-selections").cssCheckbox();
   		
   		// Capture form submit
   		/*
   		jQuery("form").submit(function() {
   
   			var string = "";
   			jQuery(":checkbox", this).each(function(){
   				string += this.name + ": " + this.checked + "\n"
   			});
   			alert(string);
   			return false;
   		});
   		*/
   		// Handle toggling all
   		jQuery('#chk_toggle').click(function(){
   			
   			if (jQuery(this).text() == 'Select All') {
   				jQuery(this).text('Select None');
   				jQuery('.search-selections label').cssCheckboxCheck();
   			}
   			else {
   				jQuery(this).text('Select All');
   				jQuery('.search-selections label').cssCheckboxUncheck();
   			}
   		});
   		
   		jQuery('.default').cssCheckboxCheck();
   	} catch (e) {}
});

/* CheckTIDSearch - if there's a tid variable search for it */
function CheckTIDSearch() {
	if((window.location.href).indexOf("/spt") > -1 || window.location.href.indexOf("transcriptId") > -1) {return;}
	var qs = window.location.search;
	if (qs == null || typeof(qs) != "string" || qs.toLowerCase().indexOf("tid=") == -1 || qs.indexOf("transcriptId") > -1) { return; }
	var kvpairs = qs.split('&');
	var tid = "";
	for(var n=0; n<kvpairs.length; n++) {
		if(kvpairs[n].toLowerCase().indexOf('tid') > -1) {
			tid = kvpairs[n].substring(kvpairs[n].indexOf("=") +1 );
			break;
		}
	}
	//alert("tid is: " + tid);
	jQuery.ajax({
		url: "/global/php/thl-id-search.php",
		data: "tid=" + tid,
		async: false,
		success: function( data ) {
			var url = jQuery(data).find("url").text();
			url = url.replace(/\/\//g,'/').replace('http:','http:/');
			window.location.href = url;
		}
	});
}

/*=============== ConvertExternalLinks - External Links covered with substitute for target="blank" by rel="external" ==============*/

function ConvertExternalLinks() {
	if (!document.getElementsByTagName) {
		return;
	} else {
		var anchors = document.getElementsByTagName("a");
		var hostname = "www.thlib.org";
		try {hostname = window.location.host} catch (e) {}
		for (var i=0, len=anchors.length; i<len; i++) {
			var anchor = anchors[i]; 
			if (anchor.getAttribute("href")) {
				var myhref = anchor.getAttribute("href");
				if(anchor.getAttribute("rel") == "external") { anchor.target = "_blank";}
				/* Remove staging. from links if we're not on staging server */
				myhref = myhref.replace("thdl.org","thlib.org");
				if(myhref.indexOf("staging.") > -1 && hostname.indexOf("staging") == -1 ) {
					var newhref = myhref.replace("staging.thdl.org","www.thlib.org")
						.replace("staging.places.thlib.org","places.thlib.org")
						.replace("staging.tmb.thlib.org","tmb.thlib.org")
						.replace("staging.ndlb.thlib.org","ndlb.thlib.org")
						.replace("staging.ttt.thlib.org","ttt.thlib.org")
						.replace("staging.mms.thlib.org","mms.thlib.org");
					anchor.setAttribute("href",newhref);
				} else if(myhref.indexOf("staging.") == -1 && hostname.indexOf("staging") > -1 ) {
					var newhref = myhref.replace("www.thlib.org","staging.thlib.org")
						.replace("places.thlib.org","staging.places.thlib.org")
						.replace("tmb.thlib.org","staging.tmb.thlib.org")
						.replace("ndlb.thlib.org","staging.ndlb.thlib.org")
						.replace("ttt.thlib.org","staging.ttt.thlib.org")
						.replace("mms.thlib.org","staging.mms.thlib.org");
					anchor.setAttribute("href",newhref);
				} 
				if(myhref.indexOf("dev.") == -1 && (hostname.indexOf("dev") > -1 || hostname.indexOf("thdlnew") > -1)) {
					var newhref = myhref.replace("staging.thlib.org","dev.thlib.org")
						.replace("staging.places.thlib.org","places.thlib.org")
						.replace("staging.tmb.thlib.org","tmb.thlib.org")
						.replace("staging.ndlb.thlib.org","ndlb.thlib.org")
						.replace("staging.ttt.thlib.org","ttt.thlib.org")
						.replace("staging.mms.thlib.org","mms.thlib.org")
						.replace("places.thlib.org","dev.places.thlib.org")
						.replace("tmb.thlib.org","dev.tmb.thlib.org")
						.replace("ndlb.thlib.org","dev.ndlb.thlib.org")
						.replace("ttt.thlib.org","dev.ttt.thlib.org")
						.replace("mms.thlib.org","dev.mms.thlib.org");
					anchor.setAttribute("href",newhref);
				} 
			}
		}
	}
}

/*==============================================================================
DoExternalContent: 
    initializes Ajax objects for getting external content and
    inserts wiki content in teaser boxes and 
    inserts other external content 
=============================================================================== */
function DoExternalContent() {
    
    // Initalize the two Ajax objects
    contentLoader = new External(); // For loading external content into a page
    wikiLoader = new WikiLoader();  // For loading wiki content into teaser boxes.
    
    // if shell-one has class wikibody, then the body is loaded from a wiki by just adding the #wiki has 
    // variable. There should only be one of these per page.
    jQuery(".wikibody").each ( function () {
        var url = jQuery(this).find("a:first").attr("href");
        window.location.hash = "#wiki=" + url;
	if(jQuery.browser.msie || jQuery.browser.safari) {
		jQuery.history.load((window.location.hash).replace(/^.*#/, '')); 
	}
        return;
    });
    
    // Same for spt
    jQuery(".sptbody").each ( function () {
        var url = jQuery(this).find("a:first").attr("href");
        window.location.hash = "#spt=" + url;
	if(jQuery.browser.msie || jQuery.browser.safari) {
		jQuery.history.load((window.location.hash).replace(/^.*#/, '')); 
	}
        return;
    });
    
    // Same for Essays
    jQuery(".essaybody").each ( function () {
        var url = jQuery(this).find("a:first").attr("href");
        window.location.hash = "#essay=" + url;
	if(jQuery.browser.msie || jQuery.browser.safari) {
		jQuery.history.load((window.location.hash).replace(/^.*#/, '')); 
	}
        return;
    });
    // Load Teaser boxes
    jQuery(".wikitext").each( function () {
        jQuery(this).removeClass("wikitext");
        wikiLoader.getWikiContent(this);
    });
    
    // Load external content into areas with <a class="externalcontent"
    
    jQuery("a.externalcontent").each( function () {
        jQuery(this).removeClass("externalcontent"); // first class indicates external content
        var type = jQuery(this).attr("class"); // second class is type
        var parent = jQuery(this).parent();
        var server = "www.thlib.org";
	try {server = window.location.hostname;} catch (e) {}
	server = "http://" + server;
        var url = "";
        if (type == 'jiats') {
	    url = "http://localhost:8080/cocoon/texts/jiats" + url;
        } else if (type =='essay') {
            url = "http://localhost:8080/cocoon/texts/essays" + url;
        }
        url = url + jQuery(this).attr('href');
        contentLoader.InsertMarkup(jQuery(this).parent(),url);
    });
}

/*==============================================================================
EmbedQT and its onShow function insertVideo
    converts all links to QT videos into links for popup div to display video
    loc = JQuery selector for element that contains links
*/
function EmbedQT(loc) {
	if(typeof(loc) == "undefined" || loc == "") {loc = "body";}
	if(jQuery("head link[href*=jqModal]").length == 0 ) {
		jQuery("head link:last").after('<link rel="stylesheet" type="text/css" href="/global/css/jqModal.css" media="all" />');
	}
	if(jQuery(loc).find("a[href*=.mp4]").length == 0) { return;}
	jQuery(loc).find("a[href*=.mp4]").each(function () {
		if(jQuery(this).attr("class") != "switchvid") {
			var winid = "jqmwin" + (jQuery(".jqmWindow").length + 1);
			jQuery("body").append('<div id="' + winid + '" class="jqmWindow" style="overflow: hidden;"><div class="jqmWrapper"><div class="closebtn"><a class="jqmClose" href="#">Close</a></div></div></div>');
			jQuery("#" + winid).jqm({trigger: this, closeClass: "closebtn", onShow: insertVideo, onHide: removeVideo}); // Window opened on trigger click
		}
	});
};

var insertVideo=function(hash){ 
	var myhref = jQuery(hash.t).attr("href"); // Movie URL is the trigger link's href
	if(myhref.substr(0,1) == "/") { myhref = "http://www.thlib.org" + myhref; }
	var wdth = "480";
	var hgt = "416";
	if(myhref.indexOf("?") > -1) {
		var qind = myhref.indexOf("?");
		var ss = myhref.substr(qind);
		myhref = myhref.substr(0,qind);
		var pts = (ss.replace("?","").split("&"));
		for(var p in pts) {
			var ppts = pts[p].split("=");
			if(ppts[0] == "w") { wdth = ppts[1]; }
			if(ppts[0] == "h") { hgt = ppts[1]; }
		}
	}
	hash.w.show();
	if(hash.w.find(".jqmVideo").length == 0) {
		var embedtag = '<embed src="' + myhref + '"  type="video/quicktime" target="myself" width="' + wdth + '" height="' + hgt + '" controller="true" autoplay="true" pluginspage="http://www.apple.com/quicktime/download/"></embed>';
		if(jQuery.browser.msie) { embedtag = "";}
		hash.w.find(".jqmWrapper").append('<div class="jqmVideo"><object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"  width="' + wdth + '" height="' + hgt + '" codebase="http://www.apple.com/qtactivex/qtplugin.cab"><param name="src" value="' + myhref + '"><param name="autoplay" value="true"><param name="controller" value="true"><param name="type" value="video/quicktime"><param name="width" value="' + wdth + '"><param name="height" value="' + hgt + '"><param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">' + embedtag + '</object></div>');
	}
};

var removeVideo=function(hash) { 
	hash.w.find(".jqmWrapper .jqmVideo").hide();
	hash.w.hide("fast",function () {hash.o.remove(); hash.w.find(".jqmWrapper .jqmVideo").remove(); });
}; 

/* ================== Flicker Fix for the cursor in IExplorer ======================================= */

//  jed any thoughts on the usefullness of this one... mark 8-5

 try { document.execCommand("BackgroundImageCache", false, true); } catch(err) {}

 
 /* =================  Go To Page For Drop Down page switches in Essays ============================= */
function GoToPage(url) {
	if (url.charAt(0) == "#") { // if it begins with a hash, then it's an ajax call. load it.
		window.location.hash = url;
		if (jQuery.browser.msie) {
			url = url.replace(/^.*#/, '');
			jQuery.historyLoad(url); // Need to specifically call this history load function for IE to get hash urls to work
		} 
	} else if(url == "print") { // Print view for essay and jiats
		var myhash = window.location.hash;
		var myloc = "essay=/";
		if(myhash.indexOf("/all/") > -1) {
			window.print();
			try { 
				document.forms.formats.formsel[1].selected = true; // Change selected format to whole document
			} catch (e) {}
		} else {
			if(myhash.indexOf('jiats=') > -1) {
				myhash = myhash.replace(/\/[abc]\d+\//,'');
				myloc = "jiats=/";
			} else if (myhash.indexOf('/s/') > -1) {
				myhash = myhash.substring(0,myhash.indexOf('/s/'));
			}
			var mhparts = myhash.split("/");
			mhparts.shift();
			window.location.hash = (myloc + mhparts.join("/") + "/all/").replace('//','/');
			writePersistentCookie("essayprinting","on","minutes",1);
		}
	} else if(url == "section") { // Section by Section view for essay and jiats
		var cntxt = ".essay-toc ";
		if(jQuery(cntxt + "a").length ==0) { cntxt = ".article-toc ";}
		var sellnk = jQuery(cntxt + "a:first");
		if(jQuery(cntxt + "a.selected").length > 0) { sellnk = jQuery(cntxt + "a.selected"); } else { jQuery(sellnk).addClass("selected"); }
		window.location.href = jQuery(sellnk).attr("href");
	} else { // Default try to load URL given
		window.location.href = url;
	}
}
 
 /*================= jQuery Hover =============================================================*/
 
 // this is only in JIATS so far afik, mark 8-5-08
 
 
function InitStripeHover(){
    jQuery(".stripe-hover dd").mouseover(
        function() {
            jQuery(this).addClass("over");}).mouseout(function() {jQuery(this).removeClass("over");
        });
    jQuery(".stripe-hover dd:even").addClass("alt");
}




 
/*==============================================================================
InitAccordion - Initiate accordion functionality for sidenav (relies on accordion.js)  

NOTE: the element to be expanded/contracted must be the next sibling of 
the element that is clicked. =================================================*/

function InitAccordion() {
    //the headers for the two-tier menu must have the class head, and must be within the #side-column div
    // Bug fix by targetting the a tag and then toggling parent (ndg; 02-06-08)
	
	/* jev3a 7/25/08 commented this out because it seems unnecessary
	jQuery('#side-column .head').click(function(){ 
    	AccordionToggle( jQuery(this).parent() );
		SetAccordionCookies() ;
		return false; // need this to disable going to #
	}); */
	
    jQuery('#side-column .head a').click(function(){ 
    	AccordionToggle( jQuery(this).parent() );
		SetAccordionCookies() ;
		return false; // need this to disable going to #
	});
}

/*=================== InitLanguages - Set up language selection and store in cookie (depends on cookies.js) ============*/


// this is not being used yet for this August launch... stash it, mark 8-5-08


//function InitLanguages() {		
	
//	jQuery('#languages a').click(function()
//		{
//			thdl_lang = jQuery(this).attr('href').substr(1) ; 					//pull the language off the hash of the href tags
//			jQuery('#thdl_index_menu').load('thdl_index_'+thdl_lang+'.html') ;	//ajax the proper menu, looking for a local thdl_index_<two-letter language abbreviation>.html file
//			writePersistentCookie( cookie_lang, thdl_lang, "years", 1 ) ;	//set persistent cookie
//			return false;
//		}
//	);
	
// }


/*================== Watermark Labels - Overlabel Text on Forms, eg Search Box ========================*/
jQuery(function($){
    if(jQuery("#search-field-1").length > 0) {
        jQuery("#search-field-1").Watermark("Enter Search Terms");
    }
    if(jQuery(".search-field-1").length > 0) {
        jQuery(".search-field-1").Watermark("Enter Search Terms");
    }
});

/*================== InitSideColumn - prevents side column from disappearing. ========================*/

function InitSideColumn() {
	// Code added by Than 2007-10-24

	// Show side column fixes bug of it disappearing
    
    jQuery("#side-column *").show();
    jQuery("#side-column *.hidden").hide();
    jQuery("#side-column *.scholar").hide();
    jQuery("#side-column *.popular").show();
    
    // Hide search form
    if(getCookieValue("thdlsformstatus") != "show") {
        jQuery(".side-search-form").hide();
        writeSessionCookie("thdlsformstatus", "hide");
    }
    // Implement head link of search form to toggle showing or hiding form
    jQuery(".side-search-header a").click(function () {
        jQuery(".side-search-form").slideToggle();
        writeSessionCookie("thdlsformstatus", ((getCookieValue("thdlsformstatus") == "show")?"hide":"show"));
    });
    
    // Hide Search box if empty
    var el = "#side-column-search, #side-column-search *";
    if (String(jQuery(el).text()).replace(/\s/g,"").length == 0) { jQuery(el).hide();}
    
    jQuery("#side-column li a").each(function () {
        if(jQuery(this).attr("href") == window.location.hash) {jQuery(this).addClass("selected");}
        jQuery(this).click(function () {
            jQuery("#side-column li a").removeClass("selected");
            jQuery(this).addClass("selected");
        });
    });
    
    if(jQuery("#side-column .list0 h4#side-home-link a").length > 0) {
        var hmlnk = jQuery("#side-column .list0 h4#side-home-link a").attr("href");
        var mypth = window.location.pathname;
        if(hmlnk != mypth && hmlnk != mypth + "index.php" ) { // did have - && hmlnk + "index.php" != mypth - but this was causing homelinks to not appear
            jQuery("#side-column .list0 h4#side-home-link").css("visibility","visible").css("line-height","150%");
        }
    }
    
    if(jQuery.browser.msie) {ActivateLinks("#side-column");}
    
    
    // Hide big head if empty removed for now...code commented out 1-15-08 mark
    // el = ".head_big, .head_big *";
    // if (String(jQuery(el).text()).replace(/\s/g,"").length == 0) { jQuery(el).hide();}
}

/*=================== InitStyling - for making the style preferences clickable ==========================*/

// this is not being used yet for this August launch... stash it, mark 8-5-08

//function InitStyling() {
//	jQuery('.styleswitch').click(function(){
//		ApplyStyle( jQuery(this).attr( "href" ) ) ;
//		return false;
//	}) ;
// }

/* Function to load a URL into a jqModal popup div from a link within that div */
function loadPopupUrl(lnk,url) {
	if(url == "back") {
		var prntDiv = jQuery(".phpBackLink").parents("div.jqmWindow");
		var oldhtml = jQuery("body div#oldHtml");
		if(jQuery(oldhtml).length == 1) {
			jQuery(prntDiv).html(jQuery(oldhtml).html());
			jQuery(prntDiv).jqmAddClose('.jqmClose'); 
			jQuery(oldhtml).remove();
		}
	} else {
		var prntDiv = jQuery(lnk).parents("div.jqmWindow");
		var oldhtml = jQuery(prntDiv).html();
		jQuery(prntDiv).load(url);
		jQuery("body").append('<div id="oldHtml" style="display:none;"></div>');
		jQuery("#oldHtml").html(oldhtml);
	}
}

/*==================== Navigation Menu Dropdown Style - this function is to assist IE5.5+ - otherwise the dropdown is pure CSS ===========*/

navHover = function() {
    try {
    	var lis = document.getElementById("navmenu-h").getElementsByTagName("LI");
    	for (var i=0, len=lis.length; i<len; i++) {
    		lis[i].onmouseover=function() {
    			this.className+=" iehover";
    		}
    		lis[i].onmouseout=function() {
    			this.className=this.className.replace(new RegExp(" iehover\\b"), "");
    		}
    	}
    } catch (e) {}
}

navHover = function() {
    try {
    	var lis = document.getElementById("navmenu-sera-maps").getElementsByTagName("LI");
    	for (var i=0, len=lis.length; i<len; i++) {
    		lis[i].onmouseover=function() {
    			this.className+=" iehover";
    		}
    		lis[i].onmouseout=function() {
    			this.className=this.className.replace(new RegExp(" iehover\\b"), "");
    		}
    	}
    } catch (e) {}
}

if (window.attachEvent) window.attachEvent("onload", navHover);

/* Function to scroll to an element by their ID */
function scrollToId(locid) {
	if(locid.indexOf("#") ==0) { locid = locid.substr(1); }
	try {
		var obj = document.getElementById(locid);
		if (typeof(obj) == "undefined" || obj == null) {
			obj = jQuery("*[name=" + locid + "]");
		}
		var curtop = 0;
		if(obj && typeof(obj) != "undefined" && obj != null) {
			window.scrollTo(0,(jQuery(obj).offset().top - 25));
		}
		if(locid.indexOf('top') > -1 && jQuery("#list1 li a[href*='scrollToId']").length > 0) {
			jQuery("#list1 li a[class='selected']").removeClass("selected");
			jQuery("#list1 li a:first").addClass("selected");
		}
	} catch (e) {}
}

function scrollToAnchor(aname) {
	if(aname.indexOf("#") ==0) { aname = aname.substr(1); }
	try {
		var obj = jQuery("a[name=" + aname + "]").parent();
		if (typeof(obj) == "undefined") {
			obj = document.getElementById(aname);
		}
		var curtop = 0;
		if(obj && typeof(obj) != "undefined") {
			window.scrollTo(0,jQuery(obj).offset().top);
		}
	} catch (e) {}
}

/*==============================================================================
SetBrowserTitle : Function for setting the browser's title bar to either the value of
                  a custom meta element or to the first h1 in the content area.
    The custom meta tag should look like: <meta id="thdltitle" name="THLtitle" content="{Put title text here}" ></meta>
    This is added to the header using the $add_header variable in the PHP file.
================================================================================ */
function SetBrowserTitle() {
    if((window.location.href).indexOf("/spt") > -1) {return;}
    var thdlt = jQuery("meta#thdltitle, meta[name='thdltitle']");
    var h1s = jQuery("#content h1:first");
    if (thdlt.length > 0) {
        document.title = jQuery(thdlt[0]).attr("content");
    } else if (h1s.length > 0) {
        document.title = jQuery(h1s[0]).text();
    } else if ((window.location.href).indexOf("/jiats/") > -1) {
	    document.title = "Journal of the International Association of Tibetan Studies";
    } else {
        document.title = "The Tibetan and Himalayan Library";
    }
}

var monthname=new Array("January","February","March","April","May","June","July","August","September","October","November","December");

function showReference(el, ev, pn) {
    var xval = el.offsetTop;
    var yval = el.offsetLeft;
    if (yval < 300) {yval = 310;}
    jQuery("#citation-box").hide();
    jQuery("#citation-box").removeClass("hide");
    jQuery("#citation-box").css("top",xval - 100);
    jQuery("#citation-box").css("left",yval - 300);
    jQuery("#citation-box #refpgnum").text(pn);
    var td = new Date();
    var tdstr = monthname[td.getMonth()] + " " + td.getDate() + ", " + td.getFullYear();
    jQuery("#citation-box #todaysdate").text(tdstr);
    jQuery("#citation-box").show();
}

/*========= NyroModal Sitemap Popup - new aug 08 ==============


	function() {
		jQuery('a.nyroModal').nyroModal();
		jQuery.fn.nyroModal.settings.showBackground = function(elts, settings, callback) {
			elts.bg.css({opacity:0}).fadeTo(500, 0.00, callback);
		};

		function preloadImg(image) {
			var img = new Image();
			img.src = image;
		};

		preloadImg('images/ajaxLoader.gif');
		preloadImg('images/prev.gif');
		preloadImg('images/next.gif');
		// ====== the next two preload image are for the galleria image so
		// ====== they need to go in the fn for Galleria but Safari was puking them out 
		// ====== if anyone could suggest a better way to do this for marco email me
		preloadImg('images/arrow-img-next.gif');
		preloadImg('images/arrow-img-next.gif');
	};
*/


/*==============================================================================
SwitchView (type)
    This is used in Essay display to switch between different views of an essay.
    The proposed types are:
        "scholar": Scholarly view with Wylie
        "popular": Popular view with phonetics
        "tibetan": Tibetan view with Unicode Tibetan script (Not yet available).
*/

function SwitchView( view ) {
	if(view == "popular") {
		jQuery(".popular").show();
		jQuery(".scholar").hide();
	} else if (view == "scholar") {
		jQuery(".scholar").show();
		jQuery(".popular").hide();
	}
	writePersistentCookie ("thl-essay-view",view, "years", 1);
}

/*============== tzr-box-1 Header - Alternating Blue Header =============================*/
  jQuery(function(){
    jQuery(".tzr-box1:odd").addClass("alt");
  });
  

/*==============================================================================

ToggleNavButton - emulates going to a new page for the buttons in masthead-navbar

*/


// this array is for properly toggling buttons when iframe is retrieved without other cues for what to set the body class to
// we could append this initially in the url, but we're trying to make this as easy for mid-level developers as possible
// however, if performance really becomes an issue, we'll have to switch
var legend = new Array() ;
legend["/categories/119/"] = { zclass: 'genres' } ;	// literary encyclopedia genres
legend["/media_collection_associations?collection_id=22"] = { zclass: 'images' } ; // sera images
legend["/media_collection_associations?collection_id=35"] = { zclass: 'images' } ; // drepung images


function ToggleNavButton( body_class ) {	
	if ( typeof( body_class ) == 'undefined') {			// if we're undoing the simulation, returning to original class (called with ToggleNavButton(), no args)
		var body_class = class_old ;
	} else if ( body_class.indexOf('iframe=') > -1 ) { 	// if coming from bookmark where we have no other context, we have to examine legend array to get class
		hash = body_class ;
		for ( i in legend ) {
			if ( hash.indexOf( i ) > -1 ) {
				var body_class = legend[i].zclass ;
				break ;
			}
		}
		class_old = jQuery('body').attr('class') ; 	// if this is the first call, store old class info for toggling back
	} else {										
		// unknown usage
	}
	jQuery('body').removeClass().addClass( body_class ) ;
	return false ;
}


/*=================== Trim -- simple function to remove white space (actual spaces) at the beginning or end of a string. */
function Trim(txt) {
    if (typeof(txt) == "undefined" || typeof(txt) == "object" || txt.length == 0 ) {return "";}
    while (txt.length > 0 && txt.substr(0,1) == " ") { txt = txt.substr(1); }
    while (txt.lastIndexOf(' ') == (txt.length - 1)) {
	    if(txt.length == 0) {return "";}
	    txt = txt.substr(0,txt.length - 1); 
    }
    txt = txt.replace(/\s+/g,' ');
    return txt;
}

/*================== UncryptMailto - for unencrypting mailto addresses (the encrypting function is not available on this site) */

function UnCryptMailto( s )
	{
		var n = 0;
		var r = "";
		for( var i = 0; i < s.length; i++)
		{
			n = s.charCodeAt( i );
			if( n >= 8364 )
			{
				n = 128;
			}
			r += String.fromCharCode( n - 1 );
		}
		return r;
	}
	function linkTo_UnCryptMailto( s )
	{
		location.href=UnCryptMailto( s );
	}


/*================== Side-Column Toggle Navigation ===========*/
jQuery(function() {
	jQuery(".sideMenuAction").click( function() {
		ToggleSideMenu();
	});  
}); 

function ToggleSideMenu() {
	if (jQuery("#fxSideMenu").css("display")=="none") {
			jQuery("#fxSideMenu").fadeIn("normal");
			jQuery("#sideMenuLink").css("background-position", "0% 100%");
		} else {
			jQuery("#sideMenuLink").css("background-position", "0% 0%");
			jQuery("#fxSideMenu").hide();
		}
	return false;
}

/*=================== Sitemap Toggle Navigation =================*/

jQuery(function() {
	jQuery(".sitemapAction").click( function() {
		if (jQuery("#fxSitemap").css("display")=="none") {
			jQuery("#fxSitemap").fadeIn("fast");
			if(jQuery(".vsplitbar").length > 0) {jQuery(".vsplitbar").hide();}
		} else {
			jQuery("#closeSitemap").html('Close');
			jQuery("#fxSitemap").hide();
			if(jQuery(".vsplitbar").length > 0) {jQuery(".vsplitbar").show();}
		}
		return false;
	});  
});

/*==================== Side-Column Tab Navigation and Content Tabs as seen in Geotourism Featured Places */

jQuery(function() {
    //jQuery('#side-column-tabs > ul').tabs({ fxShow: { height: 'toggle' } });
	//jQuery('#content-tabs > ul').tabs({ fxShow: { height: 'show', opacity: 'toggle' } });
	
	var pid = jQuery("#wiki-panel a").attr("href");
	jQuery(".ui-tabs-panel a[href^=#wiki]").click(function () {
        
        var whref = jQuery(this).attr("href");
        whref = whref.substring(whref.indexOf("=") + 1);
        jQuery("#content-tabs > ul li.ui-tabs-selected").removeClass("ui-tabs-selected");
        jQuery("#wiki-panel").addClass("ui-tabs-selected");
        //contentLoader.InsertMarkup(pid,whref);
        window.scrollTo(0,0);
        return false;
    });
    
    jQuery('#content-tabs .ui-tabs-nav a').click(function() {
        jQuery("#side-column a.selected").removeClass("selected");
    });
});




/*
 * jQuery history plugin
 *
 * Copyright (c) 2006 Taku Sano (Mikage Sawatari)
 * Licensed under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Modified by Lincoln Cooper to add Safari support and only call the callback once during initialization
 * for msie when no initial hash supplied.
 * API rewrite by Lauris Bukðis-Haberkorns
 *
 * Added to THL by ndg 11/10/08. This version supercedes the older version named jquery.history.js
 * ndg modified iframe prepend to include src attribute set to href of present window to circumvent security restrictions on iframes in IE
 */

(function($) {

function History()
{
	this._curHash = '';
	this._callback = function(hash){};
};

jQuery.extend(History.prototype, {

	init: function(callback) {
		this._callback = callback;
		this._curHash = location.hash;
		this._lastHash = location.hash;
		if(jQuery.browser.msie) {
			// To stop the callback firing twice during initilization if no hash present
			if (this._curHash == '') {
				this._curHash = '#';
			}

			// add hidden iframe for IE
			jQuery("body").prepend('<iframe id="jQuery_history" style="display: none;" ></iframe>');
			var iframe = jQuery("#jQuery_history")[0].contentWindow.document;
			iframe.open();
			iframe.close();
			iframe.location.hash = this._curHash;
		} else if (jQuery.browser.safari) {
			// etablish back/forward stacks
			this._historyBackStack = [];
			this._historyBackStack.length = history.length;
			this._historyForwardStack = [];
			this._isFirst = true;
			this._dontCheck = false;
		}
		this._callback(this._curHash.replace(/^#/, ''));
		setInterval(this._check, 100);
	},

	add: function(hash) {
		// This makes the looping function do something
		this._historyBackStack.push(hash);
		
		this._historyForwardStack.length = 0; // clear forwardStack (true click occured)
		this._isFirst = true;
	},
	
	_check: function() {
		if(jQuery.browser.msie) {
			// On IE, check for location.hash of iframe
			var ihistory = jQuery("#jQuery_history")[0];
			try {
				var iframe = ihistory.contentDocument || ihistory.contentWindow.document;
				var current_hash = iframe.location.hash;
				if(current_hash != jQuery.history._curHash) {
				
					location.hash = current_hash;
					jQuery.history._curHash = current_hash;
					jQuery.history._callback(current_hash.replace(/^#/, ''));
					
				}
			} catch (e) {
				var current_hash = location.hash;
				if(current_hash != this._lastHash) {
					jQuery.history._callback(current_hash.replace(/^#/, ''));
					this._lastHash = current_hash;
				}
			}
		} else if (jQuery.browser.safari) {
			if (!jQuery.history._dontCheck) {
				var historyDelta = history.length - jQuery.history._historyBackStack.length;
				
				if (historyDelta) { // back or forward button has been pushed
					jQuery.history._isFirst = false;
					if (historyDelta < 0) { // back button has been pushed
						// move items to forward stack
						for (var i = 0; i < Math.abs(historyDelta); i++) jQuery.history._historyForwardStack.unshift(jQuery.history._historyBackStack.pop());
					} else { // forward button has been pushed
						// move items to back stack
						for (var i = 0; i < historyDelta; i++) jQuery.history._historyBackStack.push(jQuery.history._historyForwardStack.shift());
					}
					var cachedHash = jQuery.history._historyBackStack[jQuery.history._historyBackStack.length - 1];
					if (cachedHash != undefined) {
						jQuery.history._curHash = location.hash;
						jQuery.history._callback(cachedHash);
					}
				} else if (jQuery.history._historyBackStack[jQuery.history._historyBackStack.length - 1] == undefined && !jQuery.history._isFirst) {
					// back button has been pushed to beginning and URL already pointed to hash (e.g. a bookmark)
					// document.URL doesn't change in Safari
					if (document.URL.indexOf('#') >= 0) {
						jQuery.history._callback(document.URL.split('#')[1]);
					} else {
						jQuery.history._callback('');
					}
					jQuery.history._isFirst = true;
				}
			}
		} else {
			// otherwise, check for location.hash
			var current_hash = location.hash;
			if(current_hash != jQuery.history._curHash) {
				jQuery.history._curHash = current_hash;
				jQuery.history._callback(current_hash.replace(/^#/, ''));
			}
		}
	},

	load: function(hash) {
		var newhash;
		if (jQuery.browser.safari) {
			newhash = hash;
		} else {
			newhash = '#' + hash;
			location.hash = newhash;
		}
		this._curHash = newhash;
		
		if (jQuery.browser.msie) {
			try {
				var ihistory = jQuery("#jQuery_history")[0]; // TODO: need contentDocument?
				var iframe = ihistory.contentWindow.document;
				iframe.open();
				iframe.close();
				iframe.location.hash = newhash;
				this._callback(hash);
			} catch (e) {}
		} else if (jQuery.browser.safari) {
			this._dontCheck = true;
			// Manually keep track of the history values for Safari
			this.add(hash);
			
			// Wait a while before allowing checking so that Safari has time to update the "history" object
			// correctly (otherwise the check loop would detect a false change in hash).
			var fn = function() {jQuery.history._dontCheck = false;};
			window.setTimeout(fn, 200);
			this._callback(hash);
			// N.B. "location.hash=" must be the last line of code for Safari as execution stops afterwards.
			//      By explicitly using the "location.hash" command (instead of using a variable set to "location.hash") the
			//      URL in the browser and the "history" object are both updated correctly.
			location.hash = newhash;
		} else {
		  this._callback(hash);
		}
	}
});

jQuery(document).ready(function() {
	jQuery.history = new History(); // singleton instance
});

})(jQuery);

/* This is an ajax import pseudo-class for javascript for including wikis, essays, or
 * in the future other external pages into a THL page. 
 * The dependencies are:
 *
 * 1. Links should have #wiki= or #essay= prepended to the public url path from the collab site
 * that leads to the targeted wiki. In other words, an "a" element might look like this:
 *
 * <a href="#wiki=/access/wiki/site/71015a3a-5b85-424d-8056-8c5d527dd584/business%20hours.html">Text</a>
 *
 * 2. The various reader scripts, such as wiki_reader.php. Its relative location is set in the wiki_reader_url variable, etc. below.
 *
 * Aside from these two you can drop this whole file into a document as a linked script and
 * it should work. If it doesn't, you may need to check that PHP is allowed to read remote urls.
 *
 * This is based on the object created by Jed (jev3a@virginia.edu) and generalized by Than (ndg8f@virginia.edu)
 *
 */


function External() {

	var gen_reader_url = "/global/php/gen_reader.php" ;
	var wiki_reader_url = "/global/php/wiki_reader.php" ; // this script has the collab site hard-coded so it can't be used for just any ajax
	var essay_reader_url = "/global/php/essay_reader.php" ; 
	var jiats_reader_url = "/global/php/jiats_reader.php" ; 
	var old_img_url = "/global/php/old-img-db.php" ; 
	var spt_reader_url = "/global/php/spt_reader.php" ; 
	var spt_home = "http://datastore.lib.virginia.edu/tibet/spt/";
	var cat_reader_url = "/encyclopedias/literary/php/cat_reader.php" ;
	var loading_message = '<div class="shell-1">' + '<p>' +
        '<img src="http://thlib.org/global/images/ajax-loader.gif" style="float: left; vertical-align: middle; border: none;" id="loadimg"/>' +
        '<span style="color: white;">...</span> <em>Loading ....</em>' + '</p></div>'; //jev3a 8.18.08 made link absolute for external calls
	
	// add onclick methods for all links that reference an external page 
    // e.g., the #wiki= signifier is added to wiki links in the wiki_reader.php script
	function ActivateLinks( parent_element ) {
		jQuery( "#ie-root " + parent_element + " a[href*=#wiki], " +
		   "#ie-root " + parent_element + " a[href*=#essay], " + 
		   "#ie-root " + parent_element + " a[href*=#jiats], " + 
		   "#ie-root " + parent_element + " a[href*=#spt]").click(function() {

			jQuery.history.load(this.href.replace(/^.*#/, '')); // historyLoad is part of the jquery.history.js package
				
		});
		   
		// Deal with internal anchor links  (the "|=" selector means "begins with")
		jQuery("a[href^=#]").each(function () {
			var mhrf = jQuery(this).attr("href");
			if(mhrf.substr(0,1) == "#" && mhrf.indexOf("=") == -1 && (mhrf.replace("nogo","") != "#")) {
				jQuery(this).click(function () {
					var hf = jQuery(this).attr("href");
					hf = hf.substr(hf.indexOf("#") + 1);
					scrollToId(hf);
					return false;
				});
			}
		});
	}
	
	function ActivateNavArrows(pref) {
		jQuery(pref + " a.backarrow").click(function() {
			// When back arrow clicked
			var tocclass = ".essay-toc ";
			if(jQuery(".article-toc").length > 0) { tocclass = ".article-toc ";}
			var toclnks = jQuery(tocclass + "li[class!='control'] a"); // get all toc links
			var tind = -1;
			for (var n = 1; n < toclnks.length; n++) { // exclude first toc link because cannot go backward
				if(jQuery(toclnks[n]).hasClass("selected")) { // iterate through them until selected is found
					tind = n - 1; 			 // take the next one 
					break;
				}
			}
			if(tind > -1) { // follow the link found (one before the one selected)
				var preva = jQuery(toclnks[tind]);
				var prh = jQuery(preva).attr("href");
				try {
					window.location.hash = "#" + prh.substring(prh.indexOf("#") + 1); // IE gives full url here. Just take hash value.
					jQuery(tocclass + "li[class!='control'] a.selected").removeClass("selected");
					jQuery(preva).addClass("selected");
				} catch (e) {}
			}
		});
		
		jQuery(pref + " a.forwardarrow").click(function() {
			// When forward arrow clicked
			var tocclass = ".essay-toc ";
			if(jQuery(".article-toc").length > 0) { tocclass = ".article-toc ";}
			var toclnks = jQuery(tocclass + "li[class!='control'] a"); // get all toc links
			var tind = -1;
			for (var n = 0; n < toclnks.length - 1; n++) { // exclude last toc link because cannot go forward
				if(jQuery(toclnks[n]).hasClass("selected")) { // iterate through them until selected is found
					tind = n + 1; 			 // take the next one 
					break;
				}
			}
			if(tind > -1) { // follow the link found (next one after selected)
				var fora = jQuery(toclnks[tind]);
				var fwh = jQuery(fora).attr("href");
				try {
					window.location.hash = "#" + fwh.substring(fwh.indexOf("#") + 1); // IE gives full url here. Just take hash value.
					jQuery(tocclass + "li[class!='control'] a.selected").removeClass("selected");
					jQuery(fora).addClass("selected");
				} catch (e) {}
			}
		});
		
		jQuery(pref + " a.uparrow").click(function() {
			var tocclass = ".essay-toc ";
			if(jQuery(".article-toc").length > 0) { tocclass = ".article-toc ";}
			var firsta = jQuery(tocclass + "li[class!='control']:eq(0)").children("a");
			if(jQuery(firsta).attr("href")) {
				var fwh = jQuery(firsta).attr("href");
				try {
					window.location.hash = "#" + fwh.substring(fwh.indexOf("#") + 1); // IE gives full url here. Just take hash value.
					jQuery(tocclass + "li[class!='control'] a.selected").removeClass("selected");
					jQuery(firsta).addClass("selected");
				} catch (e) {}
			}
		});
	}

	function CreateEssayToc(url) {
		var sid = "";
		var sind = url.indexOf('/s/');
		if (sind > -1) {   
		    sid = url.substring(sind + 3).replace(/\//g,'');
		    url = url.substring(0,url.indexOf('/s/'));
		}
		url += '/toc/';
		url = url.replace('/all/','/').replace('/ /','/'); // had replace("/%20/","/").replace(/\/\//g,'/').
		if (sid.length > 0) { url += "&sid=" + sid;}
		jQuery.ajax({
			url: essay_reader_url,
			data: "url=" + url,
			success: function( data ) {
				jQuery("#list1").html( data ) ;
				var lhtml = jQuery("#tocholder").html();
				jQuery("#list1").html(lhtml);
				
				// Deal with relative links in TOC
				jQuery("#list0 a[href^='file:']").each(function () {
				    var hrf = jQuery(this).attr("href");
				    jQuery(this).attr("href",hrf.replace('file:','').replace('///','/'));
				});
				getDefaultSideColumn(true);
				DoViewAndFormat();
				ActivateNavArrows("#side-column");
				UpdateEssayToc();
				jQuery(".essay-toc a[href*='#essay']").click(function () {
					try {
						var lnkhash = window.location.hash;
						if(lnkhash.indexOf("/all/") > -1) {
							var sectId = (jQuery(this).attr("href")).match(/[abc]\d+/);
							if(jQuery(this).attr("href").indexOf("/notes") > -1) { sectId = "notes"; }
							scrollToId(sectId);
							return false;
						} 
						jQuery(".essay-toc .selected").removeClass("selected");
						jQuery(this).addClass("selected");
					} catch (e) {}
				});
			}
		});
    }
     
	function DoAjax( url, loc, callType ) {
    // Function to perform the Ajax calls takes 3 variables:
    //      1. url : the relative URL of the resource to open
    //      2. loc : the JQuery selector string for the div into which the content is to be put
    //      3. callType : type of Ajax call, e.g., "wiki", "essay", "cat"
        // Ignore calls for catalogs as they are handled by class_catalog.js in the literature encyclopedia
	   //alert("in do ajax: " + url + ", " + loc + ", calltype: " + callType);
        if(callType == "cat") {return;}
		// Check to see if it is a wiki resource download in which case call OpenResource
		if(url.indexOf('content/') > -1) {                                                                                 
			OpenResource(url);
			return;
		}
		
		// ajax loading animation control (triggers anytime ajax is run, so might want to get specific for different kinds of ajax)
		
		jQuery(loc).html(loading_message);
		var callUrl = "";
		var isPrint = 0;
		callType = callType.replace("#",""); // for Safari
		switch(callType) {
		    case "cat": 
			return; // Not handling catalog calls here but in the literary site for now. So quit this function
			callUrl = cat_reader_url;
			break;
		    case "essay":
			callUrl = essay_reader_url;
			if (url.substring(0,1) != '/') { url = '/' + url;}
			if (url.indexOf('/print/') > 0) { url = url.replace('/print/','/all/'); isPrint = 1;}
			if (jQuery("#essay-toc-id").length == 0 && jQuery("#essay-id").length > 0) {CreateEssayToc(url);}
			break;
		    case "essaypg":
			callUrl = essay_reader_url;
			break;
		    case "jiats":
			callUrl = jiats_reader_url;
			if(isProtectedIssue(url) && getCookieValue('thl-jiats-pwd') != jiatspwd) {
				writePersistentCookie("jiatsurl",url,"days",7); 
				window.location.href = "/collections/texts/jiats/login.php";
				return;
			}
			if( typeof(checkJIATSTocByUrl)== 'function' ) {checkJIATSTocByUrl(url);}
			break;
		    case "spt":
			callUrl = spt_reader_url;
			break;
		    case "wiki":
			callUrl = wiki_reader_url;
			break;
		    case "oldimg":
			callUrl = old_img_url;
			break;
		    case "book":
			callUrl = book_reader_url; // this is defined in book.js
			break;
		}
		zhost = "www.thlib.org" ;
		try {zhost = window.location.host; } catch (e) {}
		// The .ajax call below will think that the data needs to be joined with a "&" ("&url") instead of the correct "?" for this first condition,
		// so we need to explicitly use a "?".
		if ( zhost.indexOf( 'tmb' ) > -1 || zhost.indexOf( 'places' ) > -1 || zhost.indexOf( 'localhost:3000' ) > -1 ) { // if calling wiki from ror app (need to add better checking mechanism here)
			callUrl = "/thl/utils/proxy/?proxy_url=" + callUrl + "?url=" + url;
			get_data = null;
		}else{
			get_data = "url=" + url;
		}
		//alert("Making call: " + callUrl + "\nData: url=" + url);
		jQuery.ajax({
			url: callUrl,
			data: get_data,
			async: true,
			success: function( data ) {
				jQuery(loc).html( data ) ; // plug data into content area
				switch(callType) { // For cat and essay calls add jQuery("body").removeClass("wiki"); to the process function
					case "cat": 
					alert("Shouldn't get this far in class_external!");
					break;
					case "essay":
					ProcessDataEssays(loc);
					if (jQuery("#essay-id").length > 0 && (jQuery("#essay-toc-id").length == 0 ||   jQuery("#essay-toc-id").text() != jQuery("#essay-id").text())) {CreateEssayToc(url);}
					UpdateEssayToc();
					break;
					case "essaypg":
					ProcessDataEssays(loc);
					break;
					case "jiats":
					ProcessDataJiats(loc);
					UpdateJIATSTocLinks();
					break;
					case "spt":
					ProcessDataSpt(loc);
					break;
					case "wiki":
					ProcessDataWikis(loc) ;
					ShowSideHomeLink();
					break;
					case "book":
					ProcessDataBook(loc); // this is found in book.js
					break;
				}
				window.status = "Done";
			}
		}) ;
	}
	
	function DoViewAndFormat() {
		// Set the view to cookie value if there is one. Otherwise, set to popular
		var thlview = getCookieValue("thl-essay-view");
		if(thlview) {
			SwitchView(thlview);
			if(document.forms.views != null && document.forms.views.viewsel != null) {document.forms.views.viewsel.value = thlview;}
		} else {
			SwitchView("popular");
		}
		// Deal with Formats
		// depending on hash value choose corresponding format in drop down list
		try {
			if(typeof(document) != "undefined") {
				var hsh = document.location.hash;
				if(typeof(document.forms.formats) != "undefined") {
					document.forms.formats.formsel[0].selected = true; 
					for (fn=0; fn < document.forms.formats.formsel.length; fn++){
						var fs = document.forms.formats.formsel[fn];
						if(fs.value == hsh || fs.value == "#" + hsh || hsh == "#" + fs.value) {
							fs.selected = true;
							break;
						}
					}
				}
			}
		} catch (e) {}
	}
	
	function getDefaultSideColumn(appendToEnd) {
	
        var mypath = window.location.pathname;
        mypath = mypath.substring(0,mypath.lastIndexOf('/')) + "/side-column.php";
	jQuery.ajax({
		url: "/global/php/side-column-reader.php",
		data: "url=" + mypath + "&type=2",
		success: function( data ) {
			if(typeof(appendToEnd) != "undefined" && appendToEnd == true) {
				jQuery(data).find("h4#side-home-link").attr("id","extra-shl").css("display","none");
				jQuery("#list1").append(jQuery(data).find("#list1").html());
				jQuery("#list1").find("h4:eq(1)").remove();
				
				jQuery("#list1 h3.head").removeClass("selected").next("ul").hide();
				jQuery("#list1 h3.head:first").addClass("selected");
			} else {
				jQuery("#list0").html(jQuery(data).find("#list0").html());
			}
			InitAccordion();
			InitSideColumn();
			jQuery("#list1 h3").next("ul").hide();
			jQuery("#list1 h3:first").next("ul").show();
			ShowSideHomeLink();
		}
	});
    }
    
    function HighlightNav() {
    // Do highlighting of side-area link if it is in the hash
    	try {
		var wl = window.location.href;
		if(wl.indexOf("#wiki=") > -1) { wl = window.location.hash;} else {wl = window.location.pathname;}
		wl = wl.replace(/\s/g,'%20');
	
		jQuery("#list0 a").each(function() {
		    
			hrf = jQuery(this).attr("href");
			// cylce through all links in side area
			// if the href has #wiki in it and is found within window URL, then highlight it!
		       //alert("href: " + hrf + "\nwl: " + wl + "\nmatches: " +  (hrf == wl));
			if(typeof(hrf) != "undefined" && hrf == wl) {
			    // Remove any previously selected link
			    jQuery("#list0 a").removeClass("selected");
			    // Select the present matching link
			    jQuery(this).addClass("selected");
			    // Find parent ul's previous h3 and its class
			    var navgroup = jQuery(this).parents("ul").prev("h3");
			    var navclass = jQuery(navgroup).attr("class");
			    // if it's not selected by accordion, then call the accordion for it
			    if(typeof(navclass)!= "undefined" && navclass.indexOf("selected") == -1) {
				AccordionToggle(jQuery(navgroup), "none");
			    }
			}
		});
            } catch(e) {}
    }
     
	function HistoryInit() {
		jQuery.history.init(pageload);
		jQuery("a[href^=#wiki], a[href^=#jiats], a[href^=#essay], a[href^=#spt]").click(function(){
			jQuery.history.load(this.href.replace(/^.*#/, ''));
			return false;
		});
		/*
		// Initialize ajax history plugin.
		// The callback is called at once by present location.hash. 
		jQuery.historyInit(pageload);
		
		jQuery("a[rel='history']").click(function(){
			// 
			var hash = this.href;
			hash = hash.replace(/^.*#/, '');
			// moves to a new page. 
			// pageload is called at once. 
			jQuery.historyLoad(hash);
			return false;
		});*/
		
	}
	
	/* This is an publically accessible function of the External object
	   that allows content to be retrieved from an external source and 
	   inserted into the specificed location.
	       loc = a JQuery element object or a selector
	       url = a url on THL to a reader (generally a php file) that access external content
	*/
	External.prototype.InsertMarkup = function(loc,url) {
		var reader = gen_reader_url;
		if(url.indexOf('/wiki/') > 0) { reader = wiki_reader_url;}
		if(url.indexOf('/essays/') > -1) { reader = essay_reader_url; url = url.replace('/essays','');}
		jQuery(loc).html(loading_message);
		jQuery(loc).load(reader + "?url=" + url, {}, function () {
			InitStripeHover();
			if (reader == essay_reader_url) { ProcessDataEssays(loc); }
			if (reader == wiki_reader_url) { ProcessDataWikis(loc); }
			var locstr = "#content";
			if (jQuery(loc).attr("id").length > 0) { 
				locstr = "#" + jQuery(loc).attr("id");
			} else if (jQuery(loc).attr("class").length > 0) { 
				locstr = "." + jQuery(loc).attr("class");
			}
			ActivateLinks(locstr);
		}); 
	}
	
	function OpenResource(rurl) {
        // Opens a wiki resource which is a downloadable file.
        if (rurl.charAt(0) != "/") { rurl = "/" + rurl;};
        newurl = "https://collab.itc.virginia.edu" + rurl;
	try { window.location.href = newurl; } catch (e) {}
    }
        
    function ProcessDataEssays(loc) {
         // Set the page title
	 var doctitle = "Tibetan and Himalayan Library Essay";
	 if (jQuery("div.title").text()) { doctitle = Trim(jQuery("div.title").text()) + " (a THL Essay)"; }
	 if (jQuery("#essay-title").text()) { doctitle = Trim(jQuery("#essay-title").text()); }
        document.title = doctitle.replace(/^\s+|\s+$/g, '');
	
	// Deal with view
	DoViewAndFormat();
	
	// Activate Nav Arrows
	ActivateNavArrows("#content");
	
        // Deal with images
        var jqsel = "div.essay-img img:not([src*='arrow'])";
        if(jQuery(jqsel).length == 0) { jqsel = "#content img:not([src*='arrow'])";}
        jQuery(jqsel).each(function () { ProcessImage(jQuery(this)); });
        
	// Embed QuickTime Videos
	EmbedQT(loc);
	
        // Deal with links
       
        jQuery(".essay-body a[href^='file:']").each(function () {
            var hrf = jQuery(this).attr("href");
            jQuery(this).attr("href",hrf.replace('file:','').replace('///','/'));
        });
        
        // Deal with back link in popup boxes
        jQuery("a.back2essay").each(function() {
            jQuery(this).attr("href",jQuery('#side-column a.selected').attr('href'));
        });
        
        jQuery(".essay-body span.tbrc-ref").bind("click", function(e){
              var str = "( " + e.pageX + ", " + e.pageY + " )";
              doTBRCcall(jQuery(this).find("span.key").text(), e.pageX, e.pageY);
            });
	
	// Links to Anchors
	// Notes in essay
	jQuery(".essay-body a.note").click(function () {
		var myid = jQuery(this).attr("href").replace('#','');
		scrollToId(myid);
		return false;
	});

	// other in page anchors
	try {
		jQuery(".essay-body a[href^='/#']").each(function () {
			if(jQuery(this).attr("href").indexOf('=') == -1) {
				var myid = jQuery(this).attr("href");
				if(jQuery(myid).length > 0) {
					myid = myid.replace('#','');
					jQuery(this).click(function () { 
						scrollToId(myid);
						return false;
					});
				}
			}
		});
	} catch (e) {
		console.error(e);
	}
	
	// Deal with links to old images
	jQuery(".essay-body a[href^='/#oldimg']").each(function() {
			var myhref = jQuery(this).attr("href");
			jQuery(this).attr("href",myhref.replace('/#','#'));
	});
	
	// Deal with Wiki links
	jQuery(".essay-body a[href*='#wiki=']").each(function() {

			var myhref = jQuery(this).attr("href");
			// if it's in an essay, make it a popup window.
			if(jQuery(this).parents("div.essay-body").length > 0) {
				var winid = "jqmwin" + (jQuery(".jqmWindow").length + 1);
				myhref = wiki_reader_url + "?url=" + myhref.substring(myhref.lastIndexOf('=') +1) + "&type=popup";
				jQuery("body").append('<div id="' + winid + '" class="jqmWindow" style="overflow: auto;"><div class="closebtn"><a href="#">Close</a></div></div>');
				jQuery("#" + winid).jqm({ajax: myhref, trigger: this, closeClass: "closebtn", onLoad: function () {ProcessDataWikis("#" + winid);}});
			} else {
				jQuery(this).attr("href",myhref.substring(myhref.indexOf("#wiki")));
			}
	});
	
        //jQuery("span.tbrc-ref").click(function() {doTBRCcall(jQuery(this).find("span.key").text());});  Test call to get info from TBRC via Ajax
	
	if(jQuery(".essay-body a[href*=Conx], .essay-body a[href*=img-db], .essay-body a[class*=thl-poplink]").length > 0 && jQuery("head link[href*=jqModal]").length ==0 ) {
		jQuery("head link:last").after('<link rel="stylesheet" type="text/css" href="/global/css/jqModal.css" media="all" />');
	}                                                                               
	jQuery(".essay-body a[href*=Conx]").each(function() {
		var winid = "jqmwin" + (jQuery(".jqmWindow").length + 1);
		jQuery("body").append('<div id="' + winid + '" class="jqmWindow" style="overflow: auto;"><a href="#" class="jqmClose">Close</a><hr/> </div>');
		var myhref = (jQuery(this).attr("href")).replace("file:","").replace("///","/");
		jQuery("#" + winid).jqm({ajax: myhref, trigger: this, onLoad: function() {jQuery("#popHistory").append("<p>" + myhref + "</p>"); ActivatePopupLinks("#" + winid);}});
	});
	jQuery(".essay-body a[href*=img-db]").each(function() {
		var winid = "jqmwin" + (jQuery(".jqmWindow").length + 1);
		var myhrf = (jQuery(this).attr("href")).replace("file:","").replace("///","/");
		var imgid = myhrf.substring(myhrf.indexOf("=") +1);
		var imgurl = old_img_url + "?url=" + imgid + "&backlink=no";
		jQuery("body").append('<div id="' + winid + '" class="jqmWindow" style="overflow: auto;"><div class="closebtn"><a href="#">Close</a></div></div>');
		jQuery("#" + winid).jqm({ajax: imgurl, trigger: this, closeClass: "closebtn", onLoad: function() {jQuery("#popHistory").append("<p>" + imgurl + "</p>"); ActivatePopupLinks("#" + winid);}});
	});
	jQuery(".essay-body a[class*=thl-poplink]").each(function() {
		var winid = "jqmwin" + (jQuery(".jqmWindow").length + 1);
		var popurl = (jQuery(this).attr("href")).replace("file:","").replace("///","/").replace("//","/");
		var wwind = popurl.indexOf('www.');
		if(wwind > -1) { 
			popurl = "http://" + popurl.substring(wwind); 
			jQuery("body").append('<div id="' + winid + '" class="jqmWindow" style="overflow: hidden;"><div class="closebtn"><a href="#">Close</a></div>' +
				'<div class="viewalone"><a href="' + popurl + '" target="_blank" onclick="javascript:jQuery(this).parents(\'.jqmWindow\').jqmHide();">View this ' + 'Page Alone</a></div><iframe width="98%" height="100%" src="' + popurl + '" style="margin-top: 8px;"></iframe></div>');
			jQuery("#" + winid).jqm({modal: false, trigger: this, closeClass: "closebtn"});
		} else {
			if(popurl.indexOf("file") == 0 ) {popurl = popurl.substring(popurl.indexOf('/')); }
			if(popurl.indexOf("essay=") > -1) { popurl = essay_reader_url + "?url=" + popurl.substring(popurl.lastIndexOf('=') +1) + "&type=popup";}
			jQuery("body").append('<div id="' + winid + '" class="jqmWindow" style="overflow: auto;"><div class="closebtn"><a href="#">Close</a></div></div>');
			jQuery("#" + winid).jqm({ajax: popurl, trigger: this, closeClass: "closebtn", onLoad: function() {jQuery("#popHistory").append("<p>" + popurl + "</p>"); 		
				ActivatePopupLinks("#" + winid);}});
		}
	});
	
	jQuery(".essay-body a.internal-popup").each(function() {
		jQuery("#" + jQuery(this).attr("href")).jqm({trigger: this, closeClass: "closebtn"});
	});
	
	if(jQuery("popHistory").length == 0) {jQuery("body").append('<div id="popHistory" style="display: none;"></div>');}
	
	if(getCookieValue("essayprinting") == "on" && jQuery("#essay-id").length == 1) {
		if(jQuery("html head link[href*=thdl-print]").length == 0) {
			jQuery("html head link:last").after('<link rel="stylesheet" type="text/css" href="/global/css/thdl-print.css" media="print" />');
		}
		window.print();
		deleteCookie("essayprinting");
		try { 
			document.forms.formats.formsel[1].selected = true; // Change selected format to whole document
		} catch (e) {
			console.error("Error in setting forms: " + e.message);
		}
	}
	
    }
    
    
    function doTBRCcall(tbrcid, xval, yval) {
        jQuery("body").append('<div id="tbrccontainer"></div><div id="tbrcpop"></div>');
        jQuery.ajax({
			url: "/global/php/essay_reader.php",
			data: "url=/tbrc/persons/" + tbrcid,
			success: function( data ) {
			    jQuery("#tbrcpop").append('<div id="clsbtn"><p>&nbsp;</p></div>')
                    .append( data );
                    
                if(yval > 400) { jQuery("#tbrcpop").css("top", (yval - 200) + "px");}
                if(xval < 300) {
                    jQuery("#tbrcpop").css("left", (xval + 50) + "px");
                } else if (xval > 400) {
                    jQuery("#tbrcpop").css("left", (xval - 300) + "px");
                }
                
                jQuery("#tbrccontainer").show().css("height",(parseInt(jQuery("#content").css("height")) + 400) + "px");
                jQuery("#tbrcpop").show();
                    
				jQuery("#clsbtn").click(function() {jQuery("#tbrcpop").hide().remove(); jQuery("#tbrccontainer").remove();});
			}
		});
		
    }
    
    function ProcessDataJiats(loc) {
        var myhash = "";
	try { myhash = window.location.hash; } catch (e) {}
        InitStripeHover();  
	
        jQuery(".jiats-box p").each(function() {
            var phtml = jQuery(this).html();
            var txtlen = (jQuery(this).html()).length - (jQuery(this).text()).length + 150;
            var alnk = jQuery(this).next("a").clone();
            var pind = phtml.substring(txtlen).indexOf(' ') + txtlen;
            phtml = phtml.substring(0,pind); // + '.... '
            if (phtml.substring(phtml.length - 1) == ".") {
                phtml = phtml.substring(0,phtml.length - 1);
            }
            jQuery(this).html(phtml + '.... ');
            jQuery(this).append(alnk);
            jQuery(this).next("a").remove();
        });
	
	// Set Browser title
	if(jQuery("h2.title").length > 0) {
		var src = jQuery("p.biblline").text();
		src = src.substring(0,src.indexOf('(') - 1).replace(', no.','') + ": ";
		var title = jQuery("h2.title").clone();
		jQuery(title).find(".popular").remove();
		title = jQuery(title).text();
		var lchar = title.substr(title.length - 1);
		lchar = lchar.replace(/[\s\d]+/,"");
		while(lchar == "" && title.length > 5) {
		    title = title.substr(0,title.length - 1);
		    lchar = title.substr(title.length - 1);
		    lchar = lchar.replace(/[\s\d]+/,"");
		}
		if(title.indexOf(":") > 0) {title = title.substring(0,title.indexOf(":"));}
		document.title = (src + title).replace(/^\s+|\s+$/g, '');
	} else if (jQuery("div.title").length > 0) {
		var src = jQuery("div.source").text();
		src = src.substring(0,src.indexOf('(') - 1).replace(', no.','') + ": ";
		var title = jQuery("div.title").clone();
		jQuery(title).find(".popular").remove();
		title = jQuery(title).text();
		document.title = (src + title).replace(/^\s+|\s+$/g, '');
	} else {
		document.title = "Journal of the International Association of Tibetan Studies";
	}
	
	// Deal with view
	DoViewAndFormat();
	
        // Deal with IMAGES
        var jqsel = "div.essay-body img:not([src*='arrow'])";
        if (jQuery(jqsel).length == 0) {jqsel = "#content img:not([src*='arrow'])";}
        jQuery(jqsel).each(function() { ProcessImage(jQuery(this)); });
        doJiatsImgLinks(); // Click images to get larger version in popup.
	
	// Embed QuickTime Videos
	EmbedQT(loc);
	
        // Deal with Links
        ActivateLinks("");
	   ActivateNavArrows("#content");
	   jQuery("a[href^=file:]").each(function() { 
			   var myhref = jQuery(this).attr("href");
			   jQuery(this).attr("href",myhref.replace("file:","").replace("///","/"));
	   });
        // Notes in articles
	jQuery("a.note").click(function () {
		var myid = jQuery(this).attr("href").replace('#','');
		scrollToId(myid);
		return false;
	});
        
	// Check TOC (function in /collections/texts/jiats/js/jiats.js file
	//checkJIATSToc();
	
        if(myhash.indexOf("jiats=") > -1) {ShowSideHomeLink();}
	   
	   jitem = "Article";
	   if(myhash.indexOf("rev_") > -1) {jitem = "Review";}
        jQuery('a.thickbox, area.thickbox, input.thickbox').attr("title","Citation for JIATS " + jitem);
        tb_init('a.thickbox, area.thickbox, input.thickbox');
	
	if(getCookieValue("essayprinting") == "on" && jQuery("#jiats-page-id").length == 1) {
		window.print();
		deleteCookie("essayprinting");
		try { 
			document.forms.formats.formsel[1].selected = true; // Change selected format to whole document
		} catch (e) {}
	}
	

    }
    
    function ProcessDataSpt(loc) {
	ActivateLinks(loc);
        jQuery(".ResourceTitle").each (function () {
            var thtml = jQuery(this).html();
            var ind = thtml.indexOf('(');
            if (ind > 0) {
                var wyl = thtml.substr(ind + 1);
                wyl = wyl.replace(')','');
                thtml = thtml.substr(0,ind);
                jQuery(this).html('<span class="title-tib">' + thtml + '</span> ').append('<span class="title-wylie">' + wyl + '</span>');
            }
        });
        
        jQuery("img[src^='SPTUI']").each(function () {
            var mysrc = jQuery(this).attr("src");
            mysrc = spt_home + mysrc;
            jQuery(this).attr("src",mysrc);
        });
    }
    
    function ProcessDataWikis(loc) {
	// Process data returned from wikis to fit into THL pages.
	jQuery("#fxSitemap").hide();                                                                                                            

	// Remove extraneous wiki tags (This may need to be changed as Collab changes its markup)
	var wcontent = jQuery("div.rwiki_RenderedContent").html();
	jQuery("div.publicview").html(wcontent);
	
	// Set body class to wiki
	jQuery("body").addClass("wiki");
	
	// Hide Breadcrumbs
	jQuery("#rwiki_content").prev("a").hide(); // hide breadcrumb links
	    
	// remove external link images
	jQuery('div.publicview img[title^=external]').remove() ;
	
	// convert image links from a wiki into images
	//jQuery('a[href*=.jpg]').each(function() {
	//	var src = jQuery(this).attr("href");
	//	jQuery("#content p:contains('a'):eq(0)").before('<div class="img-right-shadow"><div><img src="' + src + '" class="f-right"></img></div></div>');
	//	jQuery(this).remove();
	//});
	
	
	// mark-than - plain img style, note the self-closing img tag and no need to add float class to img
	jQuery('a[href*=.jpg], a[href*=.gif], a[href*=.png]').each(function() {
		var src = jQuery(this).attr("href");
		jQuery("#content p:contains('a'):eq(0)").before('<div class="img-left-plain"><img src="' + src + '" /></div>');
		jQuery(this).remove();
	});
	
	
	// Remove first link which repeats the page name unnecessarily (Added since new Collab)
	// Taking this out for tabs. Does this affect other wiki pages?
	//jQuery("#content a:first").remove();
	
	// Remove span nobrs
	jQuery("#content .nobr").each(function () {
		 var innards = jQuery(this).html();
		 jQuery(this).before(innards);
		 jQuery(this).remove();
	});
	
	// Deal with <b class="bold">
	jQuery("b.bold").each(function () {
		var cnt = jQuery(this).html();
		jQuery(this).after("<strong>" + cnt + "</strong>");
		jQuery(this).remove();
        });
        
        // Deal with lists within lists
        jQuery("li li").css("list-style-type","none").css("margin-left","0pt");
		
	// Set Target for extra-THL Links
	jQuery("*[target='rwikiexternal']").each(function() {
		var myhref = jQuery(this).attr("href");
		jQuery(this).removeAttr("target");
		if (typeof(myhref) == "string" && 
			(myhref.indexOf("thlib") > -1 || myhref.indexOf('javascript') > -1)) {
			jQuery(this).attr("rel","");
		} else if (myhref.indexOf("https://collab") == 0) {  // then it's a download
			jQuery(this).attr("rel","");
		} else {
			jQuery(this).attr("rel","external");
		}
	});
	ConvertExternalLinks();
	// Fix table styles
	jQuery(".wiki-table *").css("vertical-align","top").css("padding","2px");
	
	// scrub bad characters
	jQuery('div.publicview a[href*=%26]').each( function(i) { // %26 is the & character, which can cause wiki and nav choking
		this.href = this.href.replace( "%26" , "|amp|" ) ;
	}) ;
		
	// Do links to essays
	jQuery('div.publicview a[href*=ESSAY],div.publicview a[href*=essay/]').each(function() {
            var hrf = jQuery(this).attr("href");
            hrf = hrf.replace(/http\:\/\/ESSAY/i, "#essay=");
            jQuery(this).attr("href",hrf);
            jQuery(this).attr("target","");
        });
        
        // Deal with links to SPT
        jQuery('div.publicview a[href*=SPTHOME],div.publicview a[href*=spthome]').each(function() {
            var hrf = jQuery(this).attr("href");
            hrf = hrf.replace("http://SPTHOME/", "#spt=");
            jQuery(this).attr("href",hrf);
            jQuery(this).attr("target","");
        });
        
        // Deal with wiki internal links
	var wdhash =  window.location.hash;
	
		var hshs = wdhash + "\n";
        jQuery('div.publicview a[href^=#wiki]').each(function () {
		var linkhash = jQuery(this).attr("href");
		if(linkhash.indexOf(encodeURI(wdhash)) > -1 || linkhash.indexOf(wdhash) > -1) {
			ind = linkhash.lastIndexOf('#');
			var divid = linkhash.substr(ind);
			jQuery(this).click(function() {
				var myhrf = jQuery(this).attr("href");
				var divid = myhrf.substr(myhrf.lastIndexOf("#") + 1);
				scrollToAnchor(divid);
				return false;
			});
		}
	});
	// Deal with internal link in the present pages wiki call hash
	var h2ind = wdhash.substr(2).indexOf("#");
	if(h2ind > -1) {
		var divid = wdhash.substring(h2ind + 2);
		scrollToAnchor(divid);
	}
        
	// remove wiki "thdl" footer and put it in main page footer if not already there
	var targ_el = jQuery('div.publicview h3.heading-h6:contains("unrestricted use")') ;
	if ( jQuery('#subFooter h3.heading-h6').get() == "" ) {
		targ_el.appendTo('#subFooter') ;
	} else { 
		targ_el.remove() ;
	}
	
        // Deal with space in tags within <pre> code
        jQuery("span.java-quote").each(function(){
            var shtml = jQuery(this).html();
            jQuery(this).before(shtml);
            jQuery(this).remove();
        });
        
        jQuery("pre").each(function(){
            var phtml = jQuery(this).html();
            phtml = phtml.replace(/\s+\&gt\;/g,"&gt;");
            phtml = phtml.replace(/\&lt\;\s+/g,"&lt;");
            phtml = phtml.replace(/\/\n(\s)+/,"/");
            phtml = phtml.replace(/=\s+\"/g,"=\"");
            jQuery(this).html(phtml);
        });
	    
	// Embed QuickTime Videos
	EmbedQT(loc);
		
        // remove any copywrite notice in wiki page itself
        jQuery("h3.heading-h6 a[name^='Providedforunrestricteduse']").parent().hide(); 
	jQuery("h3.heading-h6 a[name^='Thispage']").parent().hide();
	
        // Deal with other h3-h6 links
        //jQuery("h3.heading-h6:last").removeClass("heading-h6").addClass("wikifooterh6");
        
	if(loc.indexOf("jqmwin") == -1) {
		// Set the page title, if it's not a popup window
		document.title = jQuery("h3.heading-h1:first").text().replace(/^\s+|\s+$/g, '');
	}
		
	jQuery(loc).show() ; // i don't know why, but having this here seems to smooth transitions
	
	// check if search string is back=back-to-??? and add back links
	var hsh = window.location.hash;
	var ind = hsh.indexOf("back=");
	if(ind > 0) {
		var bstr = hsh.substring(ind + 5).replace(/\-/g," ");
		jQuery("#content .publicview").append('<p class="capitalize"><a href="javascript: window.history.back();">' + bstr + "</a></p>");
	}
	ActivateLinks( 'div.publicview' ) ;
	
	HighlightNav() ; // function added by Than to highlight chosen Nav link
			
	} // End of Process Data Wikis Function
	
	// variables relevant to pageload
	External.prototype.doneAjax = 0;
	var lasthash = "";
	
	// bookmarking and ajax initiation (jev3a 7/3/08 says: we need to farm these out to different methods to tighten up the code!)
	function pageload(hash) {
		if (hash == "" && jQuery.browser.safari) {  hash = location.hash;} 
		/*if(hash == lasthash) { d = new Date; window.status = "returning " + location.hash + " : " + hash; return; }
		lasthash = hash;*/
		if (hash && ( hash.indexOf('=') == -1 || hash.indexOf('=') == hash.length - 1 ) && hash.indexOf( "img/") != 0 ) {return;} // if not a wiki= or essay= or something like that, then return. /img is for mms
		if (hash && hash != "#" && hash != "" && hash.indexOf("iframe") == -1) { // if a hash exists initially, assume it's an ajax ref (for iframe issues, see app_plug.js, jev3a@virginia.edu)
			window.scrollTo(0,0);           	// Scroll to top
			if ( hash.indexOf( 'img/') != -1 ) { 	// for the mms galleria, going back and forth between wiki and mms (temp solution, not great)
				if ( typeof(loc_old_exists) != "undefined" ) {
					reloadPage();
				} else {
					onPageLoad( hash ) ;			//galleria.js
					External.prototype.doneAjax = 1;
				}
			} else {
				ext_url = ScrubURL( hash ) ;	// perform a number of operations, like url encoding to make it ready 
				// for ajax
				hashType = hash.slice(0, hash.indexOf("="));
				var loc = "#content";
				if ( typeof(loc_old_exists) == "undefined" ) {
					loc_old_exists = 1 ; // for restoring old info
				}
				DoAjax(ext_url, loc, hashType) ;
				if(hash.indexOf('wiki=') > -1 && jQuery("#essayurl").length == 1) { getDefaultSideColumn();}
				External.prototype.doneAjax = 1;
			}
		}  else if (typeof(hash) != "undefined" && hash.indexOf("iframe") != -1) { 	//for iframes (for iframe issues, see app_plug.js, jev3a@virginia.edu)
			if ( hash.indexOf("&bookmark=true") != -1 && thlplug.status == "on" ) { 	//if  bookmarking an iframe
				//url = window.location.href.split("&bookmark") ;
				//url = url[0] ;
				//window.location.hash = url ;
				thlplug.bookmark() ;
			} 
			if ( thlplug.status != "on" ) {				// the only reason this would be on is if we've just bookmarked, in which case we don't want to go
				window.scrollTo(0,0) ;           		// Scroll to top
				try {
					thlplug.swap( window.location.href ) ;
					//ToggleNavButton( hash ) ; // in fn.js, attempts to do proper masthead-navbar button toggling (removed to keep current tab selected)
				} catch( err ) {
					//alert("1: " + err.description) ; 	// /global/js/app_plug.js not included, which is okay
				}
			}
		} else if (hash == "" && (typeof(thlplug) != "undefined") ) {			
			if ( thlplug.status == "on" ) {
				try {
					reloadPage() ;
					//thlplug.swap_undo() ; 
					//ToggleNavButton() ; // in fn.js, restores masthead-navbar button to original state					
				} catch( err ) {
					//alert("2: " + err.description) ;// /global/js/app_plug.js not included, which is okay
				}
			} else if (External.prototype.doneAjax == 1) {
				reloadPage();
				External.prototype.doneAjax = 0;
			} 
		} 
	}
    
	function ProcessImage(imgel) {
		var mysrc = jQuery(imgel).attr("src");
		var imgdiv = jQuery(imgel).parent().parent();
		var myclass = jQuery(imgdiv).attr("class");
		if (typeof(mysrc) == "undefined" || mysrc == "" ) {
			return;
		}
		if(typeof(myclass) == "undefined" || myclass== "") {
			var pars = jQuery(imgel).parents();
			for(var n=0; n<pars.length; n++) {
				myclass = jQuery(pars[n]).attr("class");
				if(typeof(myclass) == "string" && myclass.indexOf("img-") > -1 && myclass.indexOf("-shadow")) {
					imgdiv =jQuery(pars[n]);
					break;
				}
			}
			if(typeof(myclass) == "undefined" || myclass== "") {
				var imgpars = jQuery(imgel).parents().map(function () { return this.tagName; }).get().join(", ");
				return;
			}
		} 
		var jiatsbase = "www.thlib.org";
		try {jiatsbase = window.location.host;} catch (e) {}
		if (jiatsbase.indexOf("staging") > -1) {
			jiatsbase = "staging.texts.thlib.org";
		} else if (jiatsbase.indexOf(".thdl.org") > -1 || jiatsbase.indexOf(".thlib.org") > -1) {
			jiatsbase = "texts.thlib.org";
		} else {
			jiatsbase = jiatsbase + ":8080/cocoon/texts";
		}
		jiatsbase = jiatsbase + "/jiats";
		if(mysrc.search(/jiats-img/i) > -1) {
			mysrc = mysrc.replace(/jiats-img/i,jiatsbase);
		}
		jQuery(imgel).attr("src", mysrc);
		var imgid =  "#" + jQuery(imgel).attr("id");
		// Fix image captions
		jQuery('.img-left-shadow img, .img-right-shadow img').bind('load readystatechange', function(e) {
			if (this.complete || (this.readyState == 'complete' && e.type == 'readystatechange')) {
				jQuery(this).parents(".img-left-shadow, .img-right-shadow").find("h6:eq(0)").width(jQuery(this).width());
			}
		});
		jQuery(".img-left-shadow h6, .img-right-shadow h6").each(function() {
			var wd = jQuery(this).prev("div").find("img").width();
			if(wd > 0) {jQuery(this).width(wd); }
		});
	}
    
	function reloadPage() {
		if(jQuery.browser.msie) {
			window.location.reload();
		} else {
			try { window.location.reload(); } catch(err) {
				var myloc = window.location.href;
				window.location.href = myloc;
			}
		}
	}
    
	function ScrubURL( url ) {
		//var output = url.replace(/wiki=/, '') ;		// strip everything but url
		var output = url.substring(url.indexOf('=') + 1);
		if (url.indexOf('=') == -1) {output = url;}
		output = output.replace( /\|amp\||\&/ , "%26" ) ;// take care of nastiness like & characters
		return output ;
	}
	
	function ShowSideHomeLink() {
		if(jQuery("#side-column .list0 h4#side-home-link a").length > 0) {
			// move side home link to top if essay toc is inserted before it.
			if(jQuery("#side-home-link").prev().length > 0) {
				var myhtml = jQuery("#side-home-link").toXML();
				jQuery("#side-home-link").remove();
				jQuery("#side-column .list1").prepend(myhtml);
			}
			jQuery("#side-column .list0 h4#side-home-link").css("visibility","visible").css("line-height","150%").css("margin-top","0px");
			jQuery("#side-column p#side-home-link-test").css("visibility","visible");
			try {
				if(window.location.hash=="") {
					if(jQuery("#side-column .list0 h4#side-home-link").css("visibility") == "visible") {
						jQuery("#side-column .list0 h4#side-home-link").css("visibility","hidden").css("line-height","0%");
						jQuery("#side-column p#side-home-link-test").css("visibility","hidden");
					}
				}
			} catch (e) {}
		}
	}
        
	function UpdateEssayToc() {
		jQuery(".essay-toc .selected").removeClass("selected");
		jQuery(".essay-toc a[href*='#essay']").each(function () {
			var mylnk = jQuery(this).attr("href");
			if(mylnk == window.location || mylnk == window.location.href || mylnk == window.location.hash) {
				jQuery(this).addClass("selected");
			}
		});	
		if(jQuery(".essay-toc .selected").length == 0) { jQuery(".essay-toc a[href*='#essay']:first").addClass("selected"); }
	}
	
	//ActivateLinks( "body" ) ;

	HistoryInit() ;	
	
}

var contentLoader;


// JS Object for loading Wiki content into parts of a THL page such as Tzr boxes
// WikiLoader Contstructor
function WikiLoader() {
	var wiki_reader_url = "/global/php/wiki_reader.php" ; 
	
	// Wikiloader object function to insert content in el.
	WikiLoader.prototype.getWikiContent = function(el) {
	
	var cls = jQuery(el).attr("class");
	
	if (typeof(cls) == "undefined") {return;}
	if (cls.indexOf("tzr-intro-1") > -1) {
		
		cls = "tzr-intro-1";
		jQuery(el).append('<p class="wtarg">Loading .... </p>');
	
	} else if (cls.indexOf("tzr-box1") > -1) {
		
		cls = "tzr-box1";
		jQuery(el).append('<p class="wtarg">Loading .... </p>');
	
	} else if (cls.indexOf("tzr-1") > -1) {
		
		cls = "tzr-1";
		jQuery(el).append('<div class="wtarg">Loading .... </div>');
	
	} else if (el.tagName.toLowerCase() == "p") {
		
		cls = "p";
		jQuery(el).addClass("wtarg");
		jQuery(el).prepend("Loading ...");
		
	} else if (cls == "full") {
		jQuery(el).append('<p class="wtarg">Loading .... </p>');
	} else {
		/*Unknown type. Just return without doing anything */
		return;
	}
	
	var ael = jQuery(el).find("a.wiki:first");
	jQuery(ael).hide();
	var wurl = jQuery(ael).attr("href");
	
	if (typeof(wurl) == "undefined" || wurl.indexOf('/.html') > -1) { 
		jQuery(el).html("<h4><a>No Wiki Page Set</a></h4><p><b>No wiki page set for this box!</b></p>"); 
		return;
	}
	jQuery(el).append('<div class="wikicontent" style="visibility: hidden; display: none;"></div>');
	var wcnt = jQuery(el).children("div.wikicontent:first");
	jQuery.ajax({
		url: wiki_reader_url,
		data: "url=" + wurl + "&type=box",
		success: function (data) {
			jQuery(wcnt).html(data);
			processWikiContent(el, cls);
		}
	});
    }
        
    function processWikiContent(el, cls) {
	    
        var wsrc = jQuery(el).children("div.wikicontent:first"); // Wiki Source
        var ctarg = jQuery(el).find(".wtarg");  // Target paragraph where content goes
        var ael = jQuery(el).find("a.wiki:first"); // a tag linking to wiki;
        var wurl = jQuery(ael).attr("href"); // wiki URL;
        var spcs = jQuery(ael).attr("class").replace("wiki","");
        var specs = new Specs(spcs); // The specs object from the class attribute of the a tag
        var len = specs.getSpec("c");
        var lnktxt = "";
        
        jQuery(ael).remove();  // Remove wiki a tag
        
        if(cls == "tzr-intro-1") {
            if(!len) {
                if (jQuery(el).attr("class").indexOf('stacked') > -1) { 
                    len = 225;
                } else {
                    len = 400
                }
            }
            jQuery(ctarg).html(getCharRun(wsrc,len,wurl));
            if (!specs.opt("read more")) {
                
                loc = getLoc(wsrc, wurl);
                alnk = '<a href="' + loc + '" class="read-more">';     
                if(loc == "#wiki=" + wurl) {
                    lnktxt = "Read More"; 
                } else {
                    lnktxt = getLinkText(wsrc);
                }
                jQuery(ctarg).find("p:last").append("... " + alnk + lnktxt + "</a>");
            }
		  if(jQuery.browser.msie && jQuery.browser.version == "8.0") {
			myhtml = jQuery(ctarg).find("p").html();
			myhtml = myhtml.replace("<p>","").replace("</p>","");
			jQuery(ctarg).html(myhtml);
		  }
		  
            if (!specs.opt("drop cap")) { 
                doDropCap(jQuery(ctarg));
            }
            jQuery(ctarg).replaceWith(jQuery(ctarg).html());
        // TZR-BOX1 Class
         } else if (cls == "tzr-box1") {  
            jQuery(wsrc).find("a.anchorpoint").remove();    
            h4txt = jQuery(wsrc).find("h3.heading-h1:first").html();
            
            h5 = "";
            if (jQuery(wsrc).find("h3.heading-h2:first").length > 0 && !specs.opt("no head")) {
                h5 = "<h5>" + jQuery(wsrc).find("h3.heading-h2:first").html() + "</h5>";
            } 
            
            h6 = "";
            if (jQuery(wsrc).find("h3.heading-h3:first").length > 0 && !specs.opt("no head")) {
                h6 = "<h6>" + jQuery(wsrc).find("h3.heading-h3:first").html() + "</h6>";
            } 
            
            if(h5 == "" && h6 == "") {
                jQuery(el).children("p:first").css("padding-top", "6pt");
            }
            
            if(!len) {len = "300"}; // was "all"
            //jQuery(ctarg).before(h5).before(h6);// had .before(h6) ...
            var mytxt = getCharRun(wsrc,len,wurl);
	    //alert(jQuery(ctarg).toXML());
	    jQuery(ctarg).html(mytxt); 
            
            loc = getLoc(wsrc, wurl);
            alnk = '<a href="' + loc + '">'; 
            
            if(jQuery(el).children("h4:first").length == 0) {
                jQuery(el).prepend("<h4></h4>");
            }
            jQuery(el).children("h4:first").html('<a href="' + loc + '">' + h4txt + '</a>');
            
            if(jQuery(wsrc).find("a:contains('image')").length > 0) {
                var imga = jQuery(wsrc).find("a:contains('image')");
                var isrc = jQuery(imga).attr('href');
                var caption = "";
                if(jQuery(wsrc).find("div.caption").length > 0) {
                    caption = jQuery(wsrc).find("div.caption p").text();
                    jQuery(wsrc).find("div.caption").remove();
                }
                jQuery(el).children("h4:first").after(alnk + '<img src="' + isrc + '" title="' + caption +'"/></a>');
            }
            
            jQuery(el).children("img:first").wrap(alnk + "</a>");
            if (!specs.opt("read more")) {
                if(loc == "#wiki=" + wurl) {
                    lnktxt = "Read More"; 
                } else {
                    lnktxt = getLinkText(wsrc);
                }
		var lastp = jQuery(ctarg).find(">*:last");
		if(typeof(lastp) == "object" && lastp.text && lastp.text() != "") {
			jQuery(lastp).html(jQuery(lastp).html().replace("\u2026","..."));
			if(jQuery(lastp).text().indexOf("\u2026") == -1 && jQuery(lastp).text().indexOf("...") == -1) {jQuery(lastp).append("...");}
			jQuery(lastp).append(" <a href=\"" + loc + "\" class=\"read-more\">" + lnktxt + "</a>");
		}
            }
            if (specs.opt("drop cap")) { 
                doDropCap(jQuery(ctarg));
            }
            jQuery(ctarg).replaceWith(jQuery(ctarg).html());
        // TZR-1 Class
        } else if (cls == "tzr-1") { 
            
            h4txt = jQuery(wsrc).find("h3.heading-h1:first").html();
            h5 = "";
            if (jQuery(wsrc).find("h3.heading-h2:first").length > 0 && !specs.opt("no head")) {
                h5 = "<h5>" + jQuery(wsrc).find("h3.heading-h2:first").html() + "</h5>";
            } else {
                jQuery(el).children("p:first").css("padding-top", "6pt");
            }
            
            h6 = "";
            if (jQuery(wsrc).find("h3.heading-h3:first").length > 0 && !specs.opt("no head")) {
                h6 = "<h6>" + jQuery(wsrc).find("h3.heading-h3:first").html() + "</h6>";
            }
            
            if(!len) {len = "300"}; // was "all"
            jQuery(ctarg).html(getCharRun(wsrc,len,wurl)); // had .prepend(h6).prepend(h5)
            
            loc = getLoc(wsrc, wurl);
            alnk = '<a href="' + loc + '">'; 
            
            if(jQuery(el).children("h4:first").length == 0) {
                jQuery(el).prepend("<h4></h4>");
            } else {
                h4 = jQuery(el).children("h4:first").html();
            }
            /*if(specs.opt("read more")) { loc = "javascript: alert('This section is not yet available!');"; }*/
            
            jQuery(el).children("h4:first").html('<a href="' + loc + '">' + h4txt + '</a>');
            
            
            if(jQuery(wsrc).find("a:contains('image'):last").length > 0) {
                var imga = jQuery(wsrc).find("a:contains('image'):last");
                var isrc = jQuery(imga).attr('href');
                var caption = "";
                if(jQuery(wsrc).find("div.caption").length > 0) {
                    caption = jQuery(wsrc).find("div.caption p").text();
                    jQuery(wsrc).find("div.caption").remove();
                }
                jQuery(el).children("h4:first").after(alnk + '<img src="' + isrc + '" title="' + caption +'" /></a>')
            }
            
            jQuery(el).children("img:first").wrap(alnk + "</a>");
            
            if(!specs.opt("read more")) {
			var lastp = jQuery(ctarg).children("*:last");
			if(typeof(lastp) == "object" && lastp.text && lastp.text() != "") {
				jQuery(lastp).append("... ");
				var lhtml = jQuery(lastp).html();
				if(lhtml != null && typeof(lhtml) == "string") {jQuery(lastp).html(lhtml.replace(". ...","..."));}
			}                                                            
			if(loc == "#wiki=" + wurl) {
				lnktxt = "Read More"; 
			} else {
				lnktxt = getLinkText(wsrc);
			}
			if(jQuery(ctarg).children("*:last").text() != "") {jQuery(ctarg).children("*:last").append("  <a href=\"" + loc +  "\" class=\"read-more\">" + lnktxt + "</a>");}
            }
            
            if (specs.opt("drop cap")) { 
                doDropCap(jQuery(ctarg));
            }
            
        } else if (cls == "p") {
            if (!len) { len = 400; }
            jQuery(el).html(getCharRun(wsrc,len,wurl));
            var newtxt = "";
            var table = "";
            jQuery(el).find("table").each(function() { table += jQuery(this).toXML();});
            jQuery(el).find("p").each(function() {
				var ftxt = "";
				if(jQuery(this).next("p").length > 0) { ftxt = "<br/><br/>";}
				newtxt += jQuery(this).html() + ftxt;
		  });
		  jQuery(el).html(newtxt);
		  jQuery(el).after(table);
            if (!specs.opt("read more") && len != "all") {
                loc = getLoc(wsrc, wurl);
                alnk = '<a href="' + loc + '" class="read-more">'; 
                if(loc == "#wiki=" + wurl) {
                    lnktxt = "Read More";
                    if(table == "") {jQuery(el).append("... ");}
                } else {
                    lnktxt = getLinkText(wsrc);
                }
                if(table == "") {
                	  jQuery(el).append("  " + alnk + lnktxt + "</a>");
                } else {
                	 jQuery(el).siblings("table").after("<p>" + alnk + lnktxt + "</a></p>");
                }
            }
            
            if (specs.opt("drop cap")) { 
                doDropCap(el);
            }
            
        } else if (cls == "full") {
	    jQuery(el).html(jQuery(wsrc).html());
	    jQuery("ul.star").removeClass("star").addClass("bullet-blue");
	    jQuery(".heading-h6, .heading-h1").remove();
	    jQuery(el).removeClass("full").addClass("wiki");
	}
        
        jQuery(ctarg).removeClass('wtarg');
        if(cls != "p" || cls != "full") {jQuery(wsrc).remove();} // P tag get's its content replaced including wiki source.

	// remove external link images
	jQuery('img[title^=external]').remove() ;
	jQuery('img[alt^=external]').remove() ;
	jQuery('img[src*=icklearrow]').remove() ;
	jQuery('img[src=""]').remove() ;
	
	// Remove span nobrs
	jQuery("span.nobr").each(function () {
		 var innards = jQuery(this).html();
		 jQuery(this).before(innards);
		 jQuery(this).remove();
	});
	
	// Set Target for extra-THL Links
	jQuery("*[target='rwikiexternal']").each(function() {
		var myhref = jQuery(this).attr("href");
		jQuery(this).removeAttr("target");
		if (typeof(myhref) == "string" && 
			(myhref.substr(0,1) == "/" || (myhref.indexOf("www.thdl") == -1 && myhref.indexOf("old.thdl") == -1 && myhref.indexOf("thdl.org") > -1) || myhref.indexOf("thlib") > -1)) {
			jQuery(this).attr("rel","");
		} else {
			jQuery(this).attr("rel","external");
		}
	});
	
	ConvertExternalLinks();
	
	// Fix table styles
	jQuery(".wiki-table *").css("vertical-align","top").css("padding","2px");
	
	// scrub bad characters
	jQuery('a[href*=%26]').each( function(i) { // %26 is the & character, which can cause wiki and nav choking
		this.href = this.href.replace( "%26" , "|amp|" ) ;
	}) ;
	
	// Embed QuickTime Videos
	EmbedQT(el);
	ActivateLinks(el);
    }
    
    function getLoc(wsrc, wurl) {
        var loc;
        if(jQuery(wsrc).find("div.resource-link a:first").length > 0) {
            loc = jQuery(wsrc).find("div.resource-link a:first").attr("href");
        }
        // function for adjustion the location URL of the Read more
        if (typeof(loc) == "string" && loc.length > 0) {
            loc = loc.replace("http://WIKI", "#wiki=").replace("http://wiki", "#wiki=");
            loc = loc.replace("http://ESSAYPG", "#essaypg=").replace("http://essaypg", "#essaypg=");
            loc = loc.replace("http://ESSAY", "#essay=").replace("http://essay", "#essay=");
            loc = loc.replace("http://DOMAIN/", "/").replace("http://domain/", "/"); 
        } else { 
            loc = "#wiki=" + wurl;
        }
        return loc;
    }
    
    function getLinkText(wsrc) {
        var lnktxt = "Explore!";
        if(jQuery(wsrc).find("div.resource-link a:first").length > 0) {
            var lnk =  jQuery(wsrc).find("div.resource-link a:first");
	    //alert(jQuery(lnk).attr("href")+ " : " + jQuery(lnk).text());
	    var mylnktxt = jQuery(lnk).text();
	    var lnkhref = jQuery(lnk).attr("href");
	    if(lnkhref.indexOf("essay") > -1 || lnkhref.indexOf("ESSAY") > -1) { lnktxt = "Read More";}
            if(typeof(mylnktxt) == "string" && mylnktxt != lnkhref && lnkhref.indexOf(mylnktxt) == -1 && mylnktxt.indexOf('/') == -1) {
                lnktxt = Trim(mylnktxt);
            }
        }
        return lnktxt;
    }
    
	function getCharRun(wsrc, len, wurl) {
		var nsrc = jQuery(wsrc).find("#wout");
		jQuery(nsrc).find(".heading-h2").each(function () {
			var mhtl = jQuery(this).html();
			jQuery(this).replaceWith('<h5 class="whead">' + mhtl + "</h5>");
		});
		var pels = jQuery(nsrc).children().filter(function () {return jQuery(this).attr("class") == "paragraph" || jQuery(this).attr("class") == "whead";});
		var cntlen = 0;
		var phtml = "";
		var isOpen = false;
		var debug = "";
		var diff = 0;
		try {
			if (len == "all") {
				if( jQuery(nsrc).find(".whead:eq(0)").html() != null) {
					phtml = '<h5 class="whead">' + jQuery(nsrc).find(".whead:eq(0)").html() + "</h5>";
				}
				jQuery(wsrc).find("p, ul, blockquote, table, tr, td").each(function() {
						if(!jQuery(this).parent().hasClass("resource-link") && jQuery(this).find("img").length ==0 && !jQuery(this).parent().hasClass("caption")) {
							if(jQuery.browser.msie) {
								sttag = '<p class="paragraph">'; entag = "</p>";
								if(jQuery(this).is("ul")) {
									sttag = '<ul class="bullet-blue">'; entag = "</ul>";
								} else if (jQuery(this).is("ol")) {
									sttag = '<ol>'; entag = "</ol>";
								} else if (jQuery(this).is("blockquote")) {
									sttag = '<blockquote>'; entag = "</blockquote>";
								} else if (jQuery(this).is("div")) {
									sttag = '<div>'; entag = "</div>";
								} else if (jQuery(this).is("table")) {
									sttag = '<table>'; entag = "</table>";
								}  else if (jQuery(this).is("tr")) {
									sttag = '<tr>'; entag = "</tr>";
								}  else if (jQuery(this).is("td")) {
									sttag = '<td>'; entag = "</td>";
								} 
								phtml += sttag + jQuery(this).html() + entag;
							} else {
								phtml += jQuery(this).toXML();
							}
						}
				});
				phtml = phtml.replace(/class="star"/,'class="bullet-blue"');
				return phtml;
			} else {
				for(var nf = 0; nf < pels.length; nf++) {
					cntlen += ((jQuery(pels[nf]).text()).length) * 1;
					if(cntlen > len ) {
						diff = cntlen - len; 
						var myhtml = jQuery(pels[nf]).html();
						var stt = myhtml.length - diff;
						var nextsp = myhtml.substr(stt).indexOf(" ");
						myhtml = myhtml.substr(0,stt + nextsp);
						var mytag = jQuery(pels[nf]);
						jQuery(mytag).html(myhtml);
						if(jQuery.browser.msie && jQuery(mytag).is("p")) {
							phtml +=  '<p class="paragraph">' + jQuery(mytag).html() + "</p>"; 
						} else {
							phtml += " " + jQuery(mytag).toXML();
						}
						
						return phtml;
					}
					if(jQuery.browser.msie && jQuery(pels[nf]).is("p")) {
						phtml +=  '<p class="paragraph">' + jQuery(pels[nf]).html() + "</p>"; 
					} else {
						phtml += " " + jQuery(pels[nf]).toXML(); 
					}
				}
				var outStr = "";
				var chrct = 0
				var intag = false;
				for (var n=0; n<len; n++) {
					var chr = phtml.substr(n,1);
					if(!intag && chr == "<") {
						intag = true;
						if(phtml.substr(n + 1, 1) == "/") {
							isOpen = false;
						} else {
							isOpen = true;
						}
					} else if (intag && chr == ">") {
						intag = false;
					} else if (intag == false) {
						chrct += 1;
						if(chrct >= len && isOpen == false) {
							if(intag) {
								outStr += phtml.substr(n,phtml.substr(n).indexOf(">"));
							} else {
								outStr += phtml.substr(n,phtml.substr(n).indexOf(" "));
							}
							break;
						}
					}
					outStr += chr;
				}
				phtml = outStr;
			}
		} catch (e) {
		phtml = "Problem loading content! (" + typeof(phtml) + ":" + phtml + ") <!-- "  + e.toString() + " --> Possibly incorrect " +
		"<a href=\"https://collab.itc.virginia.edu" + wurl + "\" target=\"_blank\">wiki url</a>!<br/>";
	}
	
	var lastOpn = phtml.lastIndexOf("<");
	var lastCls = phtml.lastIndexOf(">");
	if(lastCls < lastOpn) {phtml = phtml.substring(0,lastCls);}
	
	return phtml;
}
    
    function doDropCap(el) {
        var elcnt = Trim(jQuery(el).html());
        var chr1 = elcnt.substr(0,1);
        while (chr1 == "<") {
            el = jQuery(el).children()[0];
            elcnt = Trim(jQuery(el).html());
            chr1 = elcnt.substr(0,1);
        }
        if(chr1 == "") {return;}
        elcnt = '<span class="dropcap">' + chr1 + '</span>' + elcnt.substr(1);
        jQuery(el).html(elcnt);
    }
        
} /* End of Wiki Loader Object */


/* Specs object functions */
function Specs(spcs) {
    this.spcs = spcs;
    this.sarr = spcs.split(' ');
}

Specs.prototype.getSpec = function(sp) {
    for (var n in this.sarr) {
        if(this.sarr[n].indexOf(sp) > -1 ) {
            return this.sarr[n].replace(sp,'');
        }
    }
    return false;
}

Specs.prototype.isSpec = function(sp) {
    for (var n in this.sarr) {
        if(this.sarr[n].indexOf(sp) > -1 ) {
            return true;
        }
    }
    return false;
}

Specs.prototype.opt = function (nm) {
    if(this.getSpec('o')) {
        switch (nm.toLowerCase().replace(' ','-')) {
            case "read-more":
                if(this.getSpec('o').toLowerCase().indexOf('1') > -1) { return true; }
                break;
                
            case "drop-cap":
                if(this.getSpec('o').toLowerCase().indexOf('2') > -1) { return true; }
                break;
                
            case "no-head":
                if(this.getSpec('o').toLowerCase().indexOf('3') > -1) { return true; }
                break;
                
            default :
            
                break;
        }
    }
    return false;
}

var wikiLoader;

// most of the functions on this page and their explanations can be found in fn.js

/* code to run before html content loads */

// system-wide variables (cookies could be consolidated into a single "prefs" cookie or something)

zmode = "testing" ; // "testing" or "production" (should also be set in ../php/fn.php)
zdomain = ( zmode == "testing" ) ? "staging.thlib.org" : "thlib.org" ;
zdomain_short = zdomain.replace(/staging\./ , "" ) ;

cookie_menu = "menus" ;		// name of cookie that holds menu state
// Use pg location for cookie name for this page's accordion settings
cookie_menu = cookie_menu + window.location.pathname;
cookie_menu =  cookie_menu.replace(/\//g,':');
cookie_lang = "lang" ;		// name of cookie that holds language pref
// cookie_tool = "jtooltips" ;	// name of cookie for tooltip prefs - commented out 8-5-08 mark
// cookie_font = "fstyle" ;		// name of cookie for font sheet prefs - commented out 8-5-08 mark
thdl_lang = "eng" ;			// default language for site
accordionBehavior = "one";  // "one" or "many". "one" means that only one menu in the sidenav can show at a time -- all others will automatically collapse

CheckTIDSearch(); // If THL ID param is passed to any page, jump right into a THL ID search, relocating either to resource or not found page. 
				// This works as long as fn.js is loaded before this file.

/* code to be run after the page is fully loaded */
jQuery(document).ready(function() {
    
	ActivateLinks('body');	
	
	AddGoogleSearchScript();
	
	AddTopAnchor();
	
	ConvertExternalLinks() ;
	
	// InitLanguages() ;   - mark 8-5-08
	
	// InitTooltipPrefs() ;  - mark 8-5-08
	
	InitAccordion() ;
			
	// InitStyling() ;  - mark 8-5-08
	
	InitSideColumn() ;
			
	AssimilateCookies() ;
	
	DoExternalContent() ;
	
	InitStripeHover() ;
	
	SetBrowserTitle() ;
	
	EmbedQT() ;
	
	// SlideShowInit() ;  - mark 8-5-08
	
}); 



jQuery.fn.checkboxToggle = function(opt){

   var check = jQuery(this).next()[0].checked == true;
   jQuery(this)
		   .attr({ src: check ? opt.unchecked : opt.checked })
		   .next()[0].checked = !check;
}

jQuery.fn.checkbox = function(opt){
   jQuery(":checkbox", this)

	   // Hide each native checkbox
	   .hide()

	   // Iterate through checkboxes and do all the magical stuff
	   .each(function (){

		   jQuery("<img>")

			   // Set image attributes
			   .attr({src: this.checked ? opt.checked : opt.unchecked, alt: "" })

			   //
			   .click(function() {
				   jQuery(this).checkboxToggle(opt);
			   })

			   // Attach image
			   .insertBefore(this);
	   });
}

jQuery.fn.cssCheckboxToggle = function(){
   jQuery(this).each(function(){
      var label = jQuery(this);
      label.toggleClass("checked");
      var check = jQuery(":checkbox[name='"+label.attr("for")+"']")[0];
      check.checked = !check.checked;
   });
}

jQuery.fn.cssCheckboxCheck = function(){
   jQuery(this).each(function(){
      var label = jQuery(this);
      label.addClass("checked");
      var check = jQuery(":checkbox[name='"+label.attr("for")+"']")[0];
      if(typeof(check) != 'undefined') {check.checked = true;}
   });
}

jQuery.fn.cssCheckboxUncheck = function(){
   jQuery(this).each(function(){
      var label = jQuery(this);
      label.removeClass("checked");
      var check = jQuery(":checkbox[name='"+label.attr("for")+"']")[0];
      if(typeof(check) != 'undefined') {check.checked = false;}
   });
}

jQuery.fn.cssCheckbox = function(){
   jQuery(":checkbox", this)

	   // Hide native checkboxes
	   .hide()

	   // Find related labels and add all the fancy stuff
	   .each(function(){

		   var check = this;
		   var jlabel = jQuery("label[for='"+jQuery(check).attr("name")+"']");

		   // Initial state check
		   if (check.checked) {
			   jlabel.addClass("checked");
		   }

		   jlabel

			   // Label hover state
			   .hover(
				   function() { jQuery(this).addClass("over"); },
				   function() { jQuery(this).removeClass("over"); }
			   )

			   // Label click state
			   .click(function(){
				   jQuery(this).cssCheckboxToggle();
			   });
	   });
}




// Where the class "default_checked" is applied to the <label> of the checkboxes you want checked by default.
 jQuery(function(){
    try {
        jQuery(".default-ck").cssCheckboxCheck();
    } catch (e) {}
 });

 /* ---- may drop this mark 2-12-08
// Where the class "default_checked" is applied to the <input> check boxes you want checked by default.
 jQuery(function(){
    jQuery(".default-ck").prev().cssCheckboxCheck({checked: "/global/images/checkbox-on.png", unchecked: "/global/images/checkbox-off.png"});
 });
 */

/*
 * Copyright (c) 2007 Josh Bush (digitalbush.com)
 * 
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:

 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE. 
 */
 
/*
 * Version: Beta 1
 * Release: 2007-06-01
 */ 
(function($) {
	var map=new Array();
	jQuery.Watermark = {
		ShowAll:function(){
			for (var i=0, len=map.length;i<len;i++){
				if(map[i].obj.val()==""){
					map[i].obj.val(map[i].text);					
					map[i].obj.css("color",map[i].WatermarkColor);
				}else{
				    map[i].obj.css("color",map[i].DefaultColor);
				}
			}
		},
		HideAll:function(){
			for (var i=0, len=map.length;i<len;i++){
				if(map[i].obj.val()==map[i].text)
					map[i].obj.val("");					
			}
		}
	}
	
	jQuery.fn.Watermark = function(text,color) {
		if(!color)
			color="#aeaeae";
		return this.each(
			function(){		
				var input=jQuery(this);
				var defaultColor=input.css("color");
				map[map.length]={text:text,obj:input,DefaultColor:defaultColor,WatermarkColor:color};
				function clearMessage(){
					if(input.val()==text)
						input.val("");
					input.css("color",defaultColor);
				}

				function insertMessage(){
					if(input.val().length==0 || input.val()==text){
						input.val(text);
						input.css("color",color);	
					}else
						input.css("color",defaultColor);				
				}

				input.focus(clearMessage);
				input.blur(insertMessage);								
				input.change(insertMessage);
				
				insertMessage();
			}
		);
	};
})(jQuery);
/*-------------------------------------------------------------------- 
Utility functions
Version: 1.0, 01.18.2008

By: Maggie Costello Wachs (maggie@filamentgroup.com)
	http://www.filamentgroup.com
		
Copyright (c) 2007 Filament Group
Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)

Dependencies:
	jQuery library
--------------------------------------------------------------------*/

function sortBigToSmall(a, b) { return b - a; };

function getScrollTop(){
	return self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
};

function getScrollLeft(){
	return self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft;
};

function getWindowHeight(){
	var de = document.documentElement;
	return self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
};

function getWindowWidth(){
	var de = document.documentElement;
	return self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
};

// getTotalWidth/Height finds the width/height of an element including padding
jQuery.fn.getTotalWidth = function(){
	return jQuery(this).width() + parseInt(jQuery(this).css('paddingRight')) + parseInt(jQuery(this).css('paddingLeft'));
};

jQuery.fn.getTotalHeight = function(){
	return jQuery(this).height() + parseInt(jQuery(this).css('paddingTop')) + parseInt(jQuery(this).css('paddingBottom'));
};

// assign random ids to a single element or a group of child elements
jQuery.fn.setRandomId = function(settings){
	var settings = jQuery.extend({
		children: null, // selectors for child elements (acts only on the caller element by default)
		attribute: null // attribute, if not id (default)
	}, settings);
	
	var thisAttr = settings.attribute || 'id';
		
	var setId = function(el){
		var newId = 'id_' + Math.floor(Math.random()*9999);
		el.attr(thisAttr, newId);
	};
	
	if (settings.children) {
		jQuery(this).find(settings.children).each(setId(jQuery(this)));
	}
	else { setId(jQuery(this)); }
	
	return jQuery(this);
};

// Test to see if this element will fit in the viewport
/* Parameters:
	@el = element to position, required
	@leftOffset / @topOffset = optional parameter if the offset cannot be calculated (i.e., if the object is in the DOM but is set to display: 'none')
*/
function fitHorizontal(el, leftOffset){
	var leftVal = parseInt(leftOffset) || jQuery(el).offset().left;
	return (leftVal + jQuery(el).width() <= getWindowWidth() + getScrollLeft() && leftVal - getScrollLeft() >= 0);
};

function fitVertical(el, topOffset){
	var topVal = parseInt(topOffset) || jQuery(el).offset().top;
	return (topVal + jQuery(el).height() <= getWindowHeight() + getScrollTop() && topVal - getScrollTop() >= 0);
};
/*-------------------------------------------------------------------- 
Scripts for creating and manipulating custom menus based on standard <ul> markup
Version: 1.0, 01.18.2008

By: Maggie Costello Wachs (maggie@filamentgroup.com) and Scott Jehl (scott@filamentgroup.com)
	http://www.filamentgroup.com
	* reference article: http://www.filamentgroup.com/lab/jquery_ipod_style_drilldown_menu/
		
Copyright (c) 2008 Filament Group
Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)

Dependencies:
	jQuery library
	position.jQuery.js
	utilities.js
--------------------------------------------------------------------*/

/* Parameters: 
@settings: see notes below
@positionOpts: // the orientation of the menu relative to the link that calls it
	posX: 'left', 
	posY: 'bottom',
	offsetX: 0,
	offsetY: 0,
	directionH: 'right',
	directionV: 'down', 
	detectH: true, // do horizontal collision detection
	detectV: true, // do vertical collision detection
	linkToFront: false // make the caller link appear over the menu (visual effect)
*/

function Menu(caller, settings) {
	var settings = jQuery.extend({
		content: null, // markup string to be inserted into the menu
		positionOpts: {offsetY: 5}, // see alternate options above -- must be passed in object notation, i.e., { offsetX: 10 }
		width: 216, // width of menu container
		maxHeight: 200, // max height of menu (if a drilldown: height does not include breadcrumb)
		showSpeed: 500, // show/hide speed in milliseconds
		callerOnState: 'btnMenuOn', // class to change the appearance of the link when the menu is showing
		itemHover: 'hover', // class for menu option hover state
		altClasses: null, // any additional classes for the menu container, separated by spaces
		crossSpeed: 200, // cross-fade speed for multi-level menus
		selectCategories: false, // false = selecting a category will navigate you to the next level until you reach a leaf node; true = each category is an accepted value in addition to leaf node
		nextMenuLink: 'nextLevel', // class to identify the link used in the multi-level menu to show the next level -- include the preceding "."
		topLinkText: 'All'
	}, settings);
	
	var menuLink = jQuery(caller);
	var menu = jQuery('<div class="menuContainer">'+settings.content+'</div>');
	var menuOpen = false;
	
	if (settings.selectCategories) {
		menu.find('li:has(ul)').each(function(){
			jQuery(this).find('a:first').after('<a href="#" class="'+settings.nextMenuLink+'">View next level &gt;</a>');
		});
	};
	
	this.create = function(){		
		if (settings.content) {
		
			menu.css({
				position: 'absolute', 
				top: 0, 
				left: '-9999px'
			});
			
			if (settings.altClasses) { menu.addClass(settings.altClasses); };
			if (menuLink.width() > menu.width()) { menu.css({ width: menuLink.width() }); };
			
			menu.appendTo('body').setRandomId({ attribute: 'menuid' }).css({ width: settings.width }).find('ul:first').addClass('menu').css({ position: 'relative' });
			
			// close all open menus			
			jQuery('*[menuid]').parent().trigger('click');					
						
			if (settings.callerOnState) { menuLink.addClass(settings.callerOnState); };
			
			// if there are multiple levels, create a drilldown menu
			if (menu.children('ul').size() > 0) { this.drilldown(menu, settings); };			
			
			menu.positionObject(menuLink, settings.positionOpts).hide().slideDown(settings.showSpeed).find('.menu:eq(0)').css({ visibility: 'visible' });
			
			menuOpen = true;		
			
			// assign events to menu & child items
			menu.parent().click(this.kill);
			jQuery(document).click(this.kill);
			
			if (settings.itemHover) {
				menu.find('li').hover(
					function(){
						jQuery(this).siblings().removeClass(settings.itemHover);
						jQuery(this).addClass(settings.itemHover);
					},
					function(){ jQuery(this).removeClass(settings.itemHover); }
				);
			};	// end if (settings.itemHover) 
			
			//click events when categories are accepted values
			var that = this;
			if (settings.selectCategories) {				
				jQuery('.ddMenu li a').not('.'+settings.nextMenuLink).click(function(){
					alert('You chose '+jQuery(this).text());
					that.kill();
					return false;
					//other actions could go here
				});
			}
			else {
				jQuery('.ddMenu li a').not('.menuIndicator').click(function(){
					alert('You chose '+jQuery(this).text());
					that.kill();
					return false;
					//other actions could go here
				});
			};			
			
		}; // end if (settings.content) 
	}; // end this.create()
	
	this.kill = function(){
		menu.parent().remove();
		if (menuLink.is('.'+settings.callerOnState)) { menuLink.removeClass(settings.callerOnState); };
		menuOpen = false;
	};
	
	return this;	
};


Menu.prototype.drilldown = function(menu, settings) {
	var breadcrumb = jQuery('<ul class="ddBreadcrumb clearfix" style="display: none;"></ul>');
	var ddmenu = jQuery('<div class="ddMenu"></div>');
	
	menu.css({ overflow: 'hidden' }).children().eq(0).wrap(ddmenu);
	menu.prepend(breadcrumb);
	
	var listHeights = [];
	menu.find('.ddMenu').find('ul').each(function(i){
	 	listHeights[i] = jQuery(this).height();	 
	 });
	listHeights.sort(sortBigToSmall);
	menu.find('.ddMenu').find('ul').css({ height: listHeights[0] });
	
	// apply scrollbar to the menu if it exceeds max height
	if (listHeights[0] > settings.maxHeight) {
		menu.find('.ddMenu').addClass('scrollNeeded').css({ height: settings.maxHeight, overflow: 'auto', 'overflow-x': 'hidden' }).find('ul').css({ width: (settings.width-15).pxToEm()});
	}
	else {
		menu.find('.ddMenu').css({ height: listHeights[0] }).find('ul').css({ width: settings.width });
	};
	
	menu.find('.ddMenu li a').each(function(){
		if (!jQuery(this).next().is('.'+settings.nextMenuLink)) {
			jQuery(this).addClass('singleLink');
		};
	});
	
	var showNextLevel = function(el) {
		var thisLink = jQuery(el);
		var thisList = jQuery(el).parents('ul:eq(0)');
		var nextList = jQuery(el).next();
		var thisListId = thisList.attr('id');
		
		//add all categories link
		if (breadcrumb.find('li').size()<1){
			var allCrumb = jQuery('<li class="all"><a href="#">'+settings.topLinkText+'</a></li>');
			allCrumb.click(function(){
				menu.find('ul').not('ul.menu, .ddBreadcrumb').css({ visibility: 'hidden' });
				breadcrumb.empty().hide();
				return false;		
			});
			breadcrumb.append(allCrumb);
		};		
		
		var addNewCrumb = function() {
			var crumbText;
			if (thisLink.prev().is('a')) { crumbText = thisLink.prev().html(); }
			else { crumbText = thisLink.html(); };
		
			var newCrumb = jQuery('<li class="currentCrumb" style="display: none;"><a href="javascript://" class="crumb">'+crumbText+'</a></li>');
			jQuery('.currentCrumb').removeClass('currentCrumb');
			breadcrumb.append(newCrumb);
			newCrumb.show();

			newCrumb.find('a').click(function(){
				if(jQuery(this).parent().is('.currentCrumb')){
					alert('You chose '+jQuery(this).text());
					//jQuery('.menuBtn').children(':last').text(jQuery(this).text());
					menu.kill();
					//other actions could go here
					return false;
				}
				else {
					nextList.find('ul').css({ visibility: 'hidden' });									
					jQuery(this).parent().nextAll().css({ visibility: 'hidden' }).slideUp(settings.crossSpeed, function(){jQuery(this).remove();});
					jQuery(this).parent().addClass('currentCrumb');
					return false;
				}
			});
		};
		
		// if the breadcrumb container is hidden, show it and add the first crumb
		if (breadcrumb.css('display') == 'none') {
			breadcrumb.slideDown();
			addNewCrumb();
		}
		else { addNewCrumb(); };
		
		// show the next list
		nextList.css({
			visibility: 'visible',
			left: settings.width
		}).animate({ left: 0 }, settings.crossSpeed);
	};
	// end showNextLevel
	
	// when category links are not selectable (only link to next level)
	if (!settings.selectCategories) {
		menu.find('.ddMenu li a').each(function(){
			if (jQuery(this).next().is('ul')) { 
				jQuery(this).addClass('menuIndicator').click(function(){
					showNextLevel(this);
					return false;
				});
			};
		});
	};	
	
	menu.find('.'+settings.nextMenuLink).click(function(){
		showNextLevel(this);
		return false;
	});		
};
/*-------------------------------------------------------------------- 
Scripts for positioning overlaid components: menus, tooltips, overlays, loading indicators, etc.
Version: 1.0, 01.18.2008

By: Maggie Costello Wachs (maggie@filamentgroup.com)
	http://www.filamentgroup.com
		
Copyright (c) 2007 Filament Group
Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)

Dependencies:
	jQuery library
	utilities.js
	
Requirements:
	- the object is absolutely positioned with CSS
	
Parameters (defaults noted with * where applicable):
	@referrer = the link (or other element) used to show the overlaid object 
	@settings = can override four of the Position defaults:
		- posX/Y: where the top left corner of the object should be positioned in relation to its referrer.
				X: left*, center, right
				Y: top, center, bottom*
		- offsetX/Y: the number of pixels to be offset from the x or y position.  Can be a positive or negative number.
		- directionH/V: where the entire menu should appear in relation to its referrer.
				Horizontal: left*, right
				Vertical: up, down*
		- detectH/V: detect the viewport horizontally / vertically
		- linkToFront: copy the menu link and place it on top of the menu (visual effect)
--------------------------------------------------------------------*/

jQuery.fn.positionObject = function(referrer, settings) { 
	var settings = jQuery.extend({
		posX: 'left', 
		posY: 'bottom',
		offsetX: 0,
		offsetY: 0,
		directionH: 'right',
		directionV: 'down', 
		detectH: true, // do horizontal collision detection  
		detectV: true, // do vertical collision detection
		linkToFront: false
	}, settings);

	var el = jQuery(this);
	var referrer = referrer;
	var dims = {
		elW: el.width(),
		elH: el.height(),
		refX: referrer.offset().left,
		refY: referrer.offset().top,
		refW: referrer.getTotalWidth(),
		refH: referrer.getTotalHeight()
	};	
	var xVal, yVal;
	
	el.insertPositionHelper(dims);
	
	// get X pos
	switch(settings.posX) {
		case 'left': 	xVal = 0; 
			break;				
		case 'center': xVal = dims.refW / 2;
			break;				
		case 'right': xVal = dims.refW;
			break;
	};
	
	// get Y pos
	switch(settings.posY) {
		case 'top': 	yVal = 0;
			break;				
		case 'center': yVal = dims.refH / 2;
			break;				
		case 'bottom': yVal = dims.refH;
			break;
	};
	
	// add the offsets (zero by default)
	xVal += settings.offsetX;
	yVal += settings.offsetY;
	
	// position the object vertically
	if (settings.directionV == 'up') {
		el.css({ top: 'auto', bottom: yVal });
		if (settings.detectV && !fitVertical(el)) {
			el.css({ bottom: 'auto', top: yVal });
		}
	} 
	else {
		el.css({ bottom: 'auto', top: yVal });
		if (settings.detectV && !fitVertical(el)) {
			el.css({ top: 'auto', bottom: yVal });
		}
	};
	
	// and horizontally
	if (settings.directionH == 'left') {
		el.css({ left: 'auto', right: xVal });
		if (settings.detectH && !fitHorizontal(el)) {
			el.css({ right: 'auto', left: xVal });
		}
	} 
	else {
		el.css({ right: 'auto', left: xVal });
		if (settings.detectH && !fitHorizontal(el)) {
			el.css({ left: 'auto', right: xVal });
		}
	};
	
	// if specified, clone the referring element and position it so that it appears on top of the menu
	if (settings.linkToFront) {
		referrer.clone().addClass('linkClone').css({
			position: 'absolute', 
			top: 0, 
			right: 'auto', 
			bottom: 'auto', 
			left: 0, 
			width: referrer.width(), 
			height: referrer.height()
		}).insertAfter(el);
	};

	return jQuery(this);
};

jQuery.fn.insertPositionHelper = function(dims) {
	var el = jQuery(this);
	var dims = dims;
	var helper = jQuery('<div class="positionHelper"></div>');
	helper.css({ left: dims.refX, top: dims.refY, width: dims.refW, height: dims.refH });
	el.wrap(helper);
	return jQuery(this);
};
/* JQuery plug-in by Mark Gibson to serialize an element into an XML string, used to get outerHTML of an element
	found at http://dev.jquery.com/wiki/Plugins/toXML and added by ndg on 11/11/08

	Syntax:  var xmlString = jQuery('#something').toXML();

	 Note: Doesn't work in IE(6)  

jQuery.fn.toXML = function () {
    var out = '';
    if (this.length > 0) {
        if (typeof XMLSerializer == 'function' ||
            typeof XMLSerializer == 'object')
        {
            var xs = new XMLSerializer();
            this.each(function() {
                out += xs.serializeToString(this);
            });
        } else if (this[0].xml !== undefined) {
            this.each(function() {
                out += this.xml;
            });
        } else {
            // TODO: Manually serialize DOM here,
            // for browsers that support neither
            // of two methods above.
        }
    }
    return out;
};
*/

jQuery.fn.toXML = function () 
{
	var toXML = function(node)
	{
		var out = '';
		var attributes = '';
		var content = '';
		
		out += '<' + node.nodeName;
		if (node.childNodes)
		{
			for (var i = 0; i < node.childNodes.length; i++)
			{
				switch(node.childNodes[i].nodeType)
				{
					case 1:     // ELEMENT_NODE
						content += toXML(node.childNodes[i]);
						break;
					case 2:     // ATTRIBUTE_NODE
						attributes += ' ' + node.childNodes[i].nodeName  + '="' 
							      + node.childNodes[i].nodeValue + '"';
						break;
					case 3:     // TEXT_NODE
					case 4:     // CDATA_SECTION_NODE
					case 5:     // ENTITY_REFERENCE_NODE
					case 6:     // ENTITY_NODE
					case 7:     // PROCESSING_INSTRUCTION_NODE
					case 8:     // COMMENT_NODE
					case 9:     // DOCUMENT_NODE
					case 10:    // DOCUMENT_TYPE_NODE
					case 11:    // DOCUMENT_FRAGMENT_NODE
					case 12:    // NOTATION_NODE
						content += node.childNodes[i].nodeValue;
						break;
				}
			}
		}
		out += attributes;
		
		if (content.length > 0)
		{
			out += '>' + content;
			out += '</' + node.tagName + '>';
		}
		else
		{
			out += '/>';
		}
		
		return out;
	}
	
	var out = '';
	if (this.length > 0) {
		if (typeof XMLSerializer == 'function' ||
		typeof XMLSerializer == 'object')
		{
			var xs = new XMLSerializer();
			this.each(function() { out += xs.serializeToString(this); });
		} 
		else if (this[0].xml !== undefined) 
		{
			this.each(function() { out += this.xml; });
		}
		else 
		{
			if (this.length > 0)
			{
				this.each( function() { out += toXML(this); } );
			}
		}
	}
	return out;
};
/*
 * jQuery UI 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI
 */jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.1",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/*
 * jQuery UI Draggable 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Draggables
 *
 * Depends:
 *	ui.core.js
 */(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(b,c,d){d=d||this._uiHash();a.ui.plugin.call(this,b,[c,d]);if(b=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return a.widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(b){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,offset:this.positionAbs}}}));a.extend(a.ui.draggable,{version:"1.7.1",eventPrefix:"drag",defaults:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false}});a.ui.plugin.add("draggable","connectToSortable",{start:function(c,e){var d=a(this).data("draggable"),f=d.options,b=a.extend({},e,{item:d.element});d.sortables=[];a(f.connectToSortable).each(function(){var g=a.data(this,"sortable");if(g&&!g.options.disabled){d.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",c,b)}})},stop:function(c,e){var d=a(this).data("draggable"),b=a.extend({},e,{item:d.element});a.each(d.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;d.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;if(d.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,b)}})},drag:function(c,f){var e=a(this).data("draggable"),b=this;var d=function(i){var n=this.offset.click.top,m=this.offset.click.left;var g=this.positionAbs.top,k=this.positionAbs.left;var j=i.height,l=i.width;var p=i.top,h=i.left;return a.ui.isOver(g+n,k+m,p,h,j,l)};a.each(e.sortables,function(g){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(b).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top;e._trigger("toSortable",c);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}if(this.instance.currentItem){this.instance._mouseDrag(c)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}e._trigger("fromSortable",c);e.dropped=false}}})}});a.ui.plugin.add("draggable","cursor",{start:function(c,d){var b=a("body"),e=a(this).data("draggable").options;if(b.css("cursor")){e._cursor=b.css("cursor")}b.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._cursor){a("body").css("cursor",d._cursor)}}});a.ui.plugin.add("draggable","iframeFix",{start:function(b,c){var d=a(this).data("draggable").options;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop+f.scrollSpeed}else{if(d.pageY-c.overflowOffset.top<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop-f.scrollSpeed}}}if(!f.axis||f.axis!="y"){if((c.overflowOffset.left+c.scrollParent[0].offsetWidth)-d.pageX<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft+f.scrollSpeed}else{if(d.pageX-c.overflowOffset.left<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft-f.scrollSpeed}}}}else{if(!f.axis||f.axis!="x"){if(d.pageY-a(document).scrollTop()<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-f.scrollSpeed)}else{if(a(window).height()-(d.pageY-a(document).scrollTop())<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+f.scrollSpeed)}}}if(!f.axis||f.axis!="y"){if(d.pageX-a(document).scrollLeft()<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-f.scrollSpeed)}else{if(a(window).width()-(d.pageX-a(document).scrollLeft())<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+f.scrollSpeed)}}}}if(b!==false&&a.ui.ddmanager&&!f.dropBehaviour){a.ui.ddmanager.prepareOffsets(c,d)}}});a.ui.plugin.add("draggable","snap",{start:function(c,d){var b=a(this).data("draggable"),e=b.options;b.snapElements=[];a(e.snap.constructor!=String?(e.snap.items||":data(draggable)"):e.snap).each(function(){var g=a(this);var f=g.offset();if(this!=b.element[0]){b.snapElements.push({item:this,width:g.outerWidth(),height:g.outerHeight(),top:f.top,left:f.left})}})},drag:function(u,p){var g=a(this).data("draggable"),q=g.options;var y=q.snapTolerance;var x=p.offset.left,w=x+g.helperProportions.width,f=p.offset.top,e=f+g.helperProportions.height;for(var v=g.snapElements.length-1;v>=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y<x&&x<n+y&&m-y<f&&f<A+y)||(s-y<x&&x<n+y&&m-y<e&&e<A+y)||(s-y<w&&w<n+y&&m-y<f&&f<A+y)||(s-y<w&&w<n+y&&m-y<e&&e<A+y))){if(g.snapElements[v].snapping){(g.options.snap.release&&g.options.snap.release.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=false;continue}if(q.snapMode!="inner"){var c=Math.abs(m-e)<=y;var z=Math.abs(A-f)<=y;var j=Math.abs(s-w)<=y;var k=Math.abs(n-x)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s-g.helperProportions.width}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n}).left-g.margins.left}}var h=(c||z||j||k);if(q.snapMode!="outer"){var c=Math.abs(m-f)<=y;var z=Math.abs(A-e)<=y;var j=Math.abs(s-x)<=y;var k=Math.abs(n-w)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A-g.helperProportions.height,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n-g.helperProportions.width}).left-g.margins.left}}if(!g.snapElements[v].snapping&&(c||z||j||k||h)){(g.options.snap.snap&&g.options.snap.snap.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=(c||z||j||k||h)}}});a.ui.plugin.add("draggable","stack",{start:function(b,c){var e=a(this).data("draggable").options;var d=a.makeArray(a(e.stack.group)).sort(function(g,f){return(parseInt(a(g).css("zIndex"),10)||e.stack.min)-(parseInt(a(f).css("zIndex"),10)||e.stack.min)});a(d).each(function(f){this.style.zIndex=e.stack.min+f});this[0].style.zIndex=e.stack.min+d.length}});a.ui.plugin.add("draggable","zIndex",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("zIndex")){e._zIndex=b.css("zIndex")}b.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._zIndex){a(c.helper).css("zIndex",d._zIndex)}}})})(jQuery);;/*
 * jQuery UI Droppable 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Droppables
 *
 * Depends:
 *	ui.core.js
 *	ui.draggable.js
 */(function(a){a.widget("ui.droppable",{_init:function(){var c=this.options,b=c.accept;this.isover=0;this.isout=1;this.options.accept=this.options.accept&&a.isFunction(this.options.accept)?this.options.accept:function(e){return e.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};a.ui.ddmanager.droppables[this.options.scope]=a.ui.ddmanager.droppables[this.options.scope]||[];a.ui.ddmanager.droppables[this.options.scope].push(this);(this.options.addClasses&&this.element.addClass("ui-droppable"))},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++){if(b[c]==this){b.splice(c,1)}}this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable")},_setData:function(b,c){if(b=="accept"){this.options.accept=c&&a.isFunction(c)?c:function(e){return e.is(c)}}else{a.widget.prototype._setData.apply(this,arguments)}},_activate:function(c){var b=a.ui.ddmanager.current;if(this.options.activeClass){this.element.addClass(this.options.activeClass)}(b&&this._trigger("activate",c,this.ui(b)))},_deactivate:function(c){var b=a.ui.ddmanager.current;if(this.options.activeClass){this.element.removeClass(this.options.activeClass)}(b&&this._trigger("deactivate",c,this.ui(b)))},_over:function(c){var b=a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.hoverClass){this.element.addClass(this.options.hoverClass)}this._trigger("over",c,this.ui(b))}},_out:function(c){var b=a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.hoverClass){this.element.removeClass(this.options.hoverClass)}this._trigger("out",c,this.ui(b))}},_drop:function(c,d){var b=d||a.ui.ddmanager.current;if(!b||(b.currentItem||b.element)[0]==this.element[0]){return false}var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var f=a.data(this,"droppable");if(f.options.greedy&&a.ui.intersect(b,a.extend(f,{offset:f.element.offset()}),f.options.tolerance)){e=true;return false}});if(e){return false}if(this.options.accept.call(this.element[0],(b.currentItem||b.element))){if(this.options.activeClass){this.element.removeClass(this.options.activeClass)}if(this.options.hoverClass){this.element.removeClass(this.options.hoverClass)}this._trigger("drop",c,this.ui(b));return this.element}return false},ui:function(b){return{draggable:(b.currentItem||b.element),helper:b.helper,position:b.position,absolutePosition:b.positionAbs,offset:b.positionAbs}}});a.extend(a.ui.droppable,{version:"1.7.1",eventPrefix:"drop",defaults:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"}});a.ui.intersect=function(q,j,o){if(!j.offset){return false}var e=(q.positionAbs||q.position.absolute).left,d=e+q.helperProportions.width,n=(q.positionAbs||q.position.absolute).top,m=n+q.helperProportions.height;var g=j.offset.left,c=g+j.proportions.width,p=j.offset.top,k=p+j.proportions.height;switch(o){case"fit":return(g<e&&d<c&&p<n&&m<k);break;case"intersect":return(g<e+(q.helperProportions.width/2)&&d-(q.helperProportions.width/2)<c&&p<n+(q.helperProportions.height/2)&&m-(q.helperProportions.height/2)<k);break;case"pointer":var h=((q.positionAbs||q.position.absolute).left+(q.clickOffset||q.offset.click).left),i=((q.positionAbs||q.position.absolute).top+(q.clickOffset||q.offset.click).top),f=a.ui.isOver(i,h,p,g,j.proportions.height,j.proportions.width);return f;break;case"touch":return((n>=p&&n<=k)||(m>=p&&m<=k)||(n<p&&m>k))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(e<g&&d>c));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d<b.length;d++){if(b[d].options.disabled||(e&&!b[d].options.accept.call(b[d].element[0],(e.currentItem||e.element)))){continue}for(var c=0;c<h.length;c++){if(h[c]==b[d].element[0]){b[d].proportions.height=0;continue droppablesLoop}}b[d].visible=b[d].element.css("display")!="none";if(!b[d].visible){continue}b[d].offset=b[d].element.offset();b[d].proportions={width:b[d].element[0].offsetWidth,height:b[d].element[0].offsetHeight};if(f=="mousedown"){b[d]._activate.call(b[d],g)}}},drop:function(b,c){var d=false;a.each(a.ui.ddmanager.droppables[b.options.scope],function(){if(!this.options){return}if(!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)){d=this._drop.call(this,c)}if(!this.options.disabled&&this.visible&&this.options.accept.call(this.element[0],(b.currentItem||b.element))){this.isout=1;this.isover=0;this._deactivate.call(this,c)}});return d},drag:function(b,c){if(b.options.refreshPositions){a.ui.ddmanager.prepareOffsets(b,c)}a.each(a.ui.ddmanager.droppables[b.options.scope],function(){if(this.options.disabled||this.greedyChild||!this.visible){return}var e=a.ui.intersect(b,this,this.options.tolerance);var g=!e&&this.isover==1?"isout":(e&&this.isover==0?"isover":null);if(!g){return}var f;if(this.options.greedy){var d=this.element.parents(":data(droppable):eq(0)");if(d.length){f=a.data(d[0],"droppable");f.greedyChild=(g=="isover"?1:0)}}if(f&&g=="isover"){f.isover=0;f.isout=1;f._out.call(f,c)}this[g]=1;this[g=="isout"?"isover":"isout"]=0;this[g=="isover"?"_over":"_out"].call(this,c);if(f&&g=="isout"){f.isout=0;f.isover=1;f._over.call(f,c)}})}}})(jQuery);;/*
 * jQuery UI Resizable 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Resizables
 *
 * Depends:
 *	ui.core.js
 */(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.1",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);;/*
 * jQuery UI Selectable 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Selectables
 *
 * Depends:
 *	ui.core.js
 */(function(a){a.widget("ui.selectable",a.extend({},a.ui.mouse,{_init:function(){var b=this;this.element.addClass("ui-selectable");this.dragged=false;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]);c.each(function(){var d=a(this);var e=d.offset();a.data(this,"selectable-item",{element:this,$element:d,left:e.left,top:e.top,right:e.left+d.outerWidth(),bottom:e.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=c.addClass("ui-selectee");this._mouseInit();this.helper=a(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(d){var b=this;this.opos=[d.pageX,d.pageY];if(this.options.disabled){return}var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",d);a(c.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:d.clientX,top:d.clientY,width:0,height:0});if(c.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!d.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;b._trigger("unselecting",d,{unselecting:e.element})}});a(d.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){e.$element.removeClass("ui-unselecting").addClass("ui-selecting");e.unselecting=false;e.selecting=true;e.selected=true;b._trigger("selecting",d,{selecting:e.element});return false}})},_mouseDrag:function(i){var c=this;this.dragged=true;if(this.options.disabled){return}var e=this.options;var d=this.opos[0],h=this.opos[1],b=i.pageX,g=i.pageY;if(d>b){var f=b;b=d;d=f}if(h>g){var f=g;g=h;h=f}this.helper.css({left:d,top:h,width:b-d,height:g-h});this.selectees.each(function(){var j=a.data(this,"selectable-item");if(!j||j.element==c.element[0]){return}var k=false;if(e.tolerance=="touch"){k=(!(j.left>b||j.right<d||j.top>g||j.bottom<h))}else{if(e.tolerance=="fit"){k=(j.left>d&&j.right<b&&j.top>h&&j.bottom<g)}}if(k){if(j.selected){j.$element.removeClass("ui-selected");j.selected=false}if(j.unselecting){j.$element.removeClass("ui-unselecting");j.unselecting=false}if(!j.selecting){j.$element.addClass("ui-selecting");j.selecting=true;c._trigger("selecting",i,{selecting:j.element})}}else{if(j.selecting){if(i.metaKey&&j.startselected){j.$element.removeClass("ui-selecting");j.selecting=false;j.$element.addClass("ui-selected");j.selected=true}else{j.$element.removeClass("ui-selecting");j.selecting=false;if(j.startselected){j.$element.addClass("ui-unselecting");j.unselecting=true}c._trigger("unselecting",i,{unselecting:j.element})}}if(j.selected){if(!i.metaKey&&!j.startselected){j.$element.removeClass("ui-selected");j.selected=false;j.$element.addClass("ui-unselecting");j.unselecting=true;c._trigger("unselecting",i,{unselecting:j.element})}}}});return false},_mouseStop:function(d){var b=this;this.dragged=false;var c=this.options;a(".ui-unselecting",this.element[0]).each(function(){var e=a.data(this,"selectable-item");e.$element.removeClass("ui-unselecting");e.unselecting=false;e.startselected=false;b._trigger("unselected",d,{unselected:e.element})});a(".ui-selecting",this.element[0]).each(function(){var e=a.data(this,"selectable-item");e.$element.removeClass("ui-selecting").addClass("ui-selected");e.selecting=false;e.selected=true;e.startselected=true;b._trigger("selected",d,{selected:e.element})});this._trigger("stop",d);this.helper.remove();return false}}));a.extend(a.ui.selectable,{version:"1.7.1",defaults:{appendTo:"body",autoRefresh:true,cancel:":input,option",delay:0,distance:0,filter:"*",tolerance:"touch"}})})(jQuery);;/*
 * jQuery UI Sortable 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Sortables
 *
 * Depends:
 *	ui.core.js
 */(function(a){a.widget("ui.sortable",a.extend({},a.ui.mouse,{_init:function(){var b=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?(/left|right/).test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY<g.scrollSensitivity){this.scrollParent[0].scrollTop=b=this.scrollParent[0].scrollTop+g.scrollSpeed}else{if(f.pageY-this.overflowOffset.top<g.scrollSensitivity){this.scrollParent[0].scrollTop=b=this.scrollParent[0].scrollTop-g.scrollSpeed}}if((this.overflowOffset.left+this.scrollParent[0].offsetWidth)-f.pageX<g.scrollSensitivity){this.scrollParent[0].scrollLeft=b=this.scrollParent[0].scrollLeft+g.scrollSpeed}else{if(f.pageX-this.overflowOffset.left<g.scrollSensitivity){this.scrollParent[0].scrollLeft=b=this.scrollParent[0].scrollLeft-g.scrollSpeed}}}else{if(f.pageY-a(document).scrollTop()<g.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-g.scrollSpeed)}else{if(a(window).height()-(f.pageY-a(document).scrollTop())<g.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+g.scrollSpeed)}}if(f.pageX-a(document).scrollLeft()<g.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-g.scrollSpeed)}else{if(a(window).width()-(f.pageX-a(document).scrollLeft())<g.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+g.scrollSpeed)}}}if(b!==false&&a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,f)}}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}for(var d=this.items.length-1;d>=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)<i&&(e+h)>f&&(e+h)<c;if(this.options.tolerance=="pointer"||this.options.forcePointerForContainers||(this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>m[this.floating?"width":"height"])){return g}else{return(f<e+(this.helperProportions.width/2)&&d-(this.helperProportions.width/2)<c&&n<k+(this.helperProportions.height/2)&&j-(this.helperProportions.height/2)<i)}},_intersectsWithPointer:function(d){var e=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,d.top,d.height),c=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,d.left,d.width),g=e&&c,b=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();if(!g){return false}return this.floating?(((f&&f=="right")||b=="down")?2:1):(b&&(b=="down"?2:1))},_intersectsWithSides:function(e){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+(e.height/2),e.height),d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+(e.width/2),e.width),b=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();if(this.floating&&f){return((f=="right"&&d)||(f=="left"&&!d))}else{return b&&((b=="down"&&c)||(b=="up"&&!c))}},_getDragVerticalDirection:function(){var b=this.positionAbs.top-this.lastPositionAbs.top;return b!=0&&(b>0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c<this.items.length;c++){for(var b=0;b<d.length;b++){if(d[b]==this.items[c].item[0]){this.items.splice(c,1)}}}},_refreshItems:function(b){this.items=[];this.containers=[this];var h=this.items;var p=this;var f=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]];var l=this._connectWith();if(l){for(var e=l.length-1;e>=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d<n;d++){var o=a(c[d]);o.data("sortable-item",k);h.push({item:o,instance:k,width:0,height:0,left:0,top:0})}}},refreshPositions:function(b){if(this.offsetParent&&this.helper){this.offset.parent=this._getParentOffset()}for(var d=this.items.length-1;d>=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)<h){h=Math.abs(f-e);g=this.items[b]}}if(!g&&!this.options.dropOnEmpty){continue}this.currentContainer=this.containers[c];g?this._rearrange(d,g,null,true):this._rearrange(d,null,this.containers[c].element,true);this._trigger("change",d,this._uiHash());this.containers[c]._trigger("change",d,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder)}this.containers[c]._trigger("over",d,this._uiHash(this));this.containers[c].containerCache.over=1}}else{if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",d,this._uiHash(this));this.containers[c].containerCache.over=0}}}},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c,this.currentItem])):(d.helper=="clone"?this.currentItem.clone():this.currentItem);if(!b.parents("body").length){a(d.appendTo!="parent"?d.appendTo:this.currentItem[0].parentNode)[0].appendChild(b[0])}if(b[0]==this.currentItem[0]){this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}}if(b[0].style.width==""||d.forceHelperSize){b.width(this.currentItem.width())}if(b[0].style.height==""||d.forceHelperSize){b.height(this.currentItem.height())}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.currentItem.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.currentItem.css("marginLeft"),10)||0),top:(parseInt(this.currentItem.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)){var c=a(e.containment)[0];var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_rearrange:function(g,f,c,e){c?c[0].appendChild(this.placeholder[0]):f.item[0].parentNode.insertBefore(this.placeholder[0],(this.direction=="down"?f.item[0]:f.item[0].nextSibling));this.counter=this.counter?++this.counter:1;var d=this,b=this.counter;window.setTimeout(function(){if(b==d.counter){d.refreshPositions(!e)}},0)},_clear:function(d,e){this.reverting=false;var f=[],b=this;if(!this._noFinalSort&&this.currentItem[0].parentNode){this.placeholder.before(this.currentItem)}this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var c in this._storedCSS){if(this._storedCSS[c]=="auto"||this._storedCSS[c]=="static"){this._storedCSS[c]=""}}this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}if(this.fromOutside&&!e){f.push(function(g){this._trigger("receive",g,this._uiHash(this.fromOutside))})}if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!e){f.push(function(g){this._trigger("update",g,this._uiHash())})}if(!a.ui.contains(this.element[0],this.currentItem[0])){if(!e){f.push(function(g){this._trigger("remove",g,this._uiHash())})}for(var c=this.containers.length-1;c>=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c<f.length;c++){f[c].call(this,d)}this._trigger("stop",d,this._uiHash())}return false}if(!e){this._trigger("beforeStop",d,this._uiHash())}this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(this.helper[0]!=this.currentItem[0]){this.helper.remove()}this.helper=null;if(!e){for(var c=0;c<f.length;c++){f[c].call(this,d)}this._trigger("stop",d,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){if(a.widget.prototype._trigger.apply(this,arguments)===false){this.cancel()}},_uiHash:function(c){var b=c||this;return{helper:b.helper,placeholder:b.placeholder||a([]),position:b.position,absolutePosition:b.positionAbs,offset:b.positionAbs,item:b.currentItem,sender:c?c.element:null}}}));a.extend(a.ui.sortable,{getter:"serialize toArray",version:"1.7.1",eventPrefix:"sort",defaults:{appendTo:"parent",axis:false,cancel:":input,option",connectWith:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);;/*
 * jQuery UI Accordion 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Accordion
 *
 * Depends:
 *	ui.core.js
 */(function(a){a.widget("ui.accordion",{_init:function(){var d=this.options,b=this;this.running=0;if(d.collapsible==a.ui.accordion.defaults.collapsible&&d.alwaysOpen!=a.ui.accordion.defaults.alwaysOpen){d.collapsible=!d.alwaysOpen}if(d.navigation){var c=this.element.find("a").filter(d.navigationFilter);if(c.length){if(c.filter(d.header).length){this.active=c}else{this.active=c.parent().parent().prev();c.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){a(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||d.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");a("<span/>").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);if(a.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(e){return b._keydown(e)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!a.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(d.event){this.headers.bind((d.event)+".accordion",function(e){return b._clickHandler.call(b,e,this)})}},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(c.autoHeight||c.fillHeight){b.css("height","")}},_setData:function(b,c){if(b=="alwaysOpen"){b="collapsible";c=!c}a.widget.prototype._setData.apply(this,arguments)},_keydown:function(e){var g=this.options,f=a.ui.keyCode;if(g.disabled||e.altKey||e.ctrlKey){return}var d=this.headers.length;var b=this.headers.index(e.target);var c=false;switch(e.keyCode){case f.RIGHT:case f.DOWN:c=this.headers[(b+1)%d];break;case f.LEFT:case f.UP:c=this.headers[(b-1+d)%d];break;case f.SPACE:case f.ENTER:return this._clickHandler({target:e.target},e.target)}if(c){a(e.target).attr("tabIndex","-1");a(c).attr("tabIndex","0");c.focus();return false}return true},resize:function(){var e=this.options,d;if(e.fillSpace){if(a.browser.msie){var b=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}d=this.element.parent().height();if(a.browser.msie){this.element.parent().css("overflow",b)}this.headers.each(function(){d-=a(this).outerHeight()});var c=0;this.headers.next().each(function(){c=Math.max(c,a(this).innerHeight()-a(this).height())}).height(Math.max(0,d-c)).css("overflow","auto")}else{if(e.autoHeight){d=0;this.headers.next().each(function(){d=Math.max(d,a(this).outerHeight())}).height(d)}}},activate:function(b){var c=this._findActive(b)[0];this._clickHandler({target:c},c)},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,f){var d=this.options;if(d.disabled){return false}if(!b.target&&d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var h=this.active.next(),e={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:h},c=(this.active=a([]));this._toggle(c,h,e);return false}var g=a(b.currentTarget||f);var i=g[0]==this.active[0];if(this.running||(!d.collapsible&&i)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!i){g.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);g.next().addClass("ui-accordion-content-active")}var c=g.next(),h=this.active.next(),e={options:d,newHeader:i&&d.collapsible?a([]):g,oldHeader:this.active,newContent:i&&d.collapsible?a([]):c.find("> *"),oldContent:h.find("> *")},j=this.headers.index(this.active[0])>this.headers.index(g[0]);this.active=i?a([]):g;this._toggle(c,h,e,i,j);return false},_toggle:function(b,i,g,j,k){var d=this.options,m=this;this.toShow=b;this.toHide=i;this.data=g;var c=function(){if(!m){return}return m._completed.apply(m,arguments)};this._trigger("changestart",null,this.data);this.running=i.size()===0?b.size():i.size();if(d.animated){var f={};if(d.collapsible&&j){f={toShow:a([]),toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}else{f={toShow:b,toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}if(!d.proxied){d.proxied=d.animated}if(!d.proxiedDuration){d.proxiedDuration=d.duration}d.animated=a.isFunction(d.proxied)?d.proxied(f):d.proxied;d.duration=a.isFunction(d.proxiedDuration)?d.proxiedDuration(f):d.proxiedDuration;var l=a.ui.accordion.animations,e=d.duration,h=d.animated;if(!l[h]){l[h]=function(n){this.slide(n,{easing:h,duration:e||700})}}l[h](f)}else{if(d.collapsible&&j){b.toggle()}else{i.hide();b.show()}c(true)}i.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();b.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(b){var c=this.options;this.running=b?0:--this.running;if(this.running){return}if(c.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});a.extend(a.ui.accordion,{version:"1.7.1",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(j,h){j=a.extend({easing:"swing",duration:300},j,h);if(!j.toHide.size()){j.toShow.animate({height:"show"},j);return}if(!j.toShow.size()){j.toHide.animate({height:"hide"},j);return}var c=j.toShow.css("overflow"),g,d={},f={},e=["height","paddingTop","paddingBottom"],b;var i=j.toShow;b=i[0].style.width;i.width(parseInt(i.parent().width(),10)-parseInt(i.css("paddingLeft"),10)-parseInt(i.css("paddingRight"),10)-(parseInt(i.css("borderLeftWidth"),10)||0)-(parseInt(i.css("borderRightWidth"),10)||0));a.each(e,function(k,m){f[m]="hide";var l=(""+a.css(j.toShow[0],m)).match(/^([\d+-.]+)(.*)$/);d[m]={value:l[1],unit:l[2]||"px"}});j.toShow.css({height:0,overflow:"hidden"}).show();j.toHide.filter(":hidden").each(j.complete).end().filter(":visible").animate(f,{step:function(k,l){if(l.prop=="height"){g=(l.now-l.start)/(l.end-l.start)}j.toShow[0].style[l.prop]=(g*d[l.prop].value)+d[l.prop].unit},duration:j.duration,easing:j.easing,complete:function(){if(!j.autoHeight){j.toShow.css("height","")}j.toShow.css("width",b);j.toShow.css({overflow:c});j.complete()}})},bounceslide:function(b){this.slide(b,{easing:b.down?"easeOutBounce":"swing",duration:b.down?1000:200})},easeslide:function(b){this.slide(b,{easing:"easeinout",duration:700})}}})})(jQuery);;/*
 * jQuery UI Dialog 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Dialog
 *
 * Depends:
 *	ui.core.js
 *	ui.draggable.js
 *	ui.resizable.js
 */(function(c){var b={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},a="ui-dialog ui-widget ui-widget-content ui-corner-all ";c.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var l=this,m=this.options,j=m.title||this.originalTitle||"&nbsp;",e=c.ui.dialog.getTitleId(this.element),k=(this.uiDialog=c("<div/>")).appendTo(document.body).hide().addClass(a+m.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:m.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){(m.closeOnEscape&&n.keyCode&&n.keyCode==c.ui.keyCode.ESCAPE&&l.close(n))}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(n){l.moveToTop(false,n)}),g=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(k),f=(this.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(k),i=c('<a href="#"/>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){i.addClass("ui-state-hover")},function(){i.removeClass("ui-state-hover")}).focus(function(){i.addClass("ui-state-focus")}).blur(function(){i.removeClass("ui-state-focus")}).mousedown(function(n){n.stopPropagation()}).click(function(n){l.close(n);return false}).appendTo(f),h=(this.uiDialogTitlebarCloseText=c("<span/>")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo(i),d=c("<span/>").addClass("ui-dialog-title").attr("id",e).html(j).prependTo(f);f.find("*").add(f).disableSelection();(m.draggable&&c.fn.draggable&&this._makeDraggable());(m.resizable&&c.fn.resizable&&this._makeResizable());this._createButtons(m.buttons);this._isOpen=false;(m.bgiframe&&c.fn.bgiframe&&k.bgiframe());(m.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(e){var d=this;if(false===d._trigger("beforeclose",e)){return}(d.overlay&&d.overlay.destroy());d.uiDialog.unbind("keypress.ui-dialog");(d.options.hide?d.uiDialog.hide(d.options.hide,function(){d._trigger("close",e)}):d.uiDialog.hide()&&d._trigger("close",e));c.ui.dialog.overlay.resize();d._isOpen=false},isOpen:function(){return this._isOpen},moveToTop:function(f,e){if((this.options.modal&&!f)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",e)}if(this.options.zIndex>c.ui.dialog.maxZ){c.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=++c.ui.dialog.maxZ));var d={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++c.ui.dialog.maxZ);this.element.attr(d);this._trigger("focus",e)},open:function(){if(this._isOpen){return}var e=this.options,d=this.uiDialog;this.overlay=e.modal?new c.ui.dialog.overlay(this):null;(d.next().length&&d.appendTo("body"));this._size();this._position(e.position);d.show(e.show);this.moveToTop(true);(e.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode!=c.ui.keyCode.TAB){return}var g=c(":tabbable",this),i=g.filter(":first")[0],f=g.filter(":last")[0];if(h.target==f&&!h.shiftKey){setTimeout(function(){i.focus()},1)}else{if(h.target==i&&h.shiftKey){setTimeout(function(){f.focus()},1)}}}));c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(g){var f=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof g=="object"&&g!==null&&c.each(g,function(){return !(d=true)}));if(d){c.each(g,function(h,i){c('<button type="button"></button>').addClass("ui-state-default ui-corner-all").text(h).click(function(){i.apply(f.element[0],arguments)}).hover(function(){c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){c(this).addClass("ui-state-focus")}).blur(function(){c(this).removeClass("ui-state-focus")}).appendTo(e)});e.appendTo(this.uiDialog)}},_makeDraggable:function(){var d=this,f=this.options,e;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){e=f.height;c(this).height(c(this).height()).addClass("ui-dialog-dragging");(f.dragStart&&f.dragStart.apply(d.element[0],arguments))},drag:function(){(f.drag&&f.drag.apply(d.element[0],arguments))},stop:function(){c(this).removeClass("ui-dialog-dragging").height(e);(f.dragStop&&f.dragStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}})},_makeResizable:function(g){g=(g===undefined?this.options.resizable:g);var d=this,f=this.options,e=typeof g=="string"?g:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:f.minHeight,start:function(){c(this).addClass("ui-dialog-resizing");(f.resizeStart&&f.resizeStart.apply(d.element[0],arguments))},resize:function(){(f.resize&&f.resize.apply(d.element[0],arguments))},handles:e,stop:function(){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();(f.resizeStop&&f.resizeStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(i){var e=c(window),f=c(document),g=f.scrollTop(),d=f.scrollLeft(),h=g;if(c.inArray(i,["center","top","right","bottom","left"])>=0){i=[i=="right"||i=="left"?i:"center",i=="top"||i=="bottom"?i:"middle"]}if(i.constructor!=Array){i=["center","middle"]}if(i[0].constructor==Number){d+=i[0]}else{switch(i[0]){case"left":d+=0;break;case"right":d+=e.width()-this.uiDialog.outerWidth();break;default:case"center":d+=(e.width()-this.uiDialog.outerWidth())/2}}if(i[1].constructor==Number){g+=i[1]}else{switch(i[1]){case"top":g+=0;break;case"bottom":g+=e.height()-this.uiDialog.outerHeight();break;default:case"middle":g+=(e.height()-this.uiDialog.outerHeight())/2}}g=Math.max(g,h);this.uiDialog.css({top:g,left:d})},_setData:function(e,f){(b[e]&&this.uiDialog.data(b[e],f));switch(e){case"buttons":this._createButtons(f);break;case"closeText":this.uiDialogTitlebarCloseText.text(f);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(a+f);break;case"draggable":(f?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(f);break;case"position":this._position(f);break;case"resizable":var d=this.uiDialog,g=this.uiDialog.is(":data(resizable)");(g&&!f&&d.resizable("destroy"));(g&&typeof f=="string"&&d.resizable("option","handles",f));(g||this._makeResizable(f));break;case"title":c(".ui-dialog-title",this.uiDialogTitlebar).html(f||"&nbsp;");break;case"width":this.uiDialog.width(f);break}c.widget.prototype._setData.apply(this,arguments)},_size:function(){var e=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var d=this.uiDialog.css({height:"auto",width:e.width}).height();this.element.css({minHeight:Math.max(e.minHeight-d,0),height:e.height=="auto"?"auto":Math.max(e.height-d,0)})}});c.extend(c.ui.dialog,{version:"1.7.1",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(d){return"ui-dialog-title-"+(d.attr("id")||++this.uuid)},overlay:function(d){this.$el=c.ui.dialog.overlay.create(d)}});c.extend(c.ui.dialog.overlay,{instances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(d){return d+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){c(document).bind(c.ui.dialog.overlay.events,function(f){var g=c(f.target).parents(".ui-dialog").css("zIndex")||0;return(g>c.ui.dialog.overlay.maxZ)})},1);c(document).bind("keydown.dialog-overlay",function(f){(e.options.closeOnEscape&&f.keyCode&&f.keyCode==c.ui.keyCode.ESCAPE&&e.close(f))});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var d=c("<div></div>").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(e.options.bgiframe&&c.fn.bgiframe&&d.bgiframe());this.instances.push(d);return d},destroy:function(d){this.instances.splice(c.inArray(this.instances,d),1);if(this.instances.length===0){c([document,window]).unbind(".dialog-overlay")}d.remove()},height:function(){if(c.browser.msie&&c.browser.version<7){var e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var d=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(e<d){return c(window).height()+"px"}else{return e+"px"}}else{return c(document).height()+"px"}},width:function(){if(c.browser.msie&&c.browser.version<7){var d=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var e=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(d<e){return c(window).width()+"px"}else{return d+"px"}}else{return c(document).width()+"px"}},resize:function(){var d=c([]);c.each(c.ui.dialog.overlay.instances,function(){d=d.add(this)});d.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);;/*
 * jQuery UI Slider 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Slider
 *
 * Depends:
 *	ui.core.js
 */(function(a){a.widget("ui.slider",a.extend({},a.ui.mouse,{_init:function(){var b=this,c=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=a([]);if(c.range){if(c.range===true){this.range=a("<div></div>");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length<c.values.length){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((e==0&&d>=b)||(e==1&&d<=b)){d=b}if(d!=this.values(e)){var c=this.values();c[e]=d;var h=this._trigger("slide",f,{handle:this.handles[e],value:d,values:c});var b=this.values(e?0:1);if(h!==false){this.values(e,d,(f.type=="mousedown"&&this.options.animate),true)}}}else{if(d!=this.value()){var h=this._trigger("slide",f,{handle:this.handles[e],value:d});if(h!==false){this._setData("value",d,(f.type=="mousedown"&&this.options.animate))}}}},_stop:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("stop",d,b)},_change:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("change",d,b)},value:function(b){if(arguments.length){this._setData("value",b);this._change(null,0)}return this._value()},values:function(b,e,c,d){if(arguments.length>1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.1",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);;/*
 * jQuery UI Tabs 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Tabs
 *
 * Depends:
 *	ui.core.js
 */(function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1<this.anchors.length?1:-1))}d.disabled=a.map(a.grep(d.disabled,function(g,f){return g!=b}),function(g,f){return g>=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.1",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"<div></div>",spinner:"<em>Loading&#8230;</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i<b.anchors.length?i:0)},d);if(h){h.stopPropagation()}});var e=b._unrotate||(b._unrotate=!f?function(h){if(h.clientX){b.rotate(null)}}:function(h){t=g.selected;c()});if(d){this.element.bind("tabsshow",c);this.anchors.bind(g.event+".tabs",e);c()}else{clearTimeout(b.rotation);this.element.unbind("tabsshow",c);this.anchors.unbind(g.event+".tabs",e);delete this._rotate;delete this._unrotate}}})})(jQuery);;/*
 * jQuery UI Datepicker 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Datepicker
 *
 * Depends:
 *	ui.core.js
 */(function($){jQuery.extend(jQuery.ui,{datepicker:{version:"1.7.1"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};jQuery.extend(this._defaults,this.regional[""]);this.dpDiv=jQuery('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}jQuery.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst(jQuery(target),inline);inst.settings=jQuery.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:jQuery('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(target,inst){var input=jQuery(target);inst.trigger=jQuery([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){input[isRTL?"before":"after"]('<span class="'+this._appendClass+'">'+appendText+"</span>")}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=jQuery(this._get(inst,"buttonImageOnly")?jQuery("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):jQuery('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:jQuery("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if(jQuery.datepicker._datepickerShowing&&jQuery.datepicker._lastInput==target){jQuery.datepicker._hideDatepicker()}else{jQuery.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});jQuery.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=jQuery(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});jQuery.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=jQuery('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);jQuery("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};jQuery.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if(jQuery.blockUI){jQuery.blockUI(this.dpDiv)}jQuery.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=jQuery(target);var inst=jQuery.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();jQuery.removeData(target,PROP_NAME);if(nodeName=="input"){inst.trigger.remove();$target.siblings("."+this._appendClass).remove().end().removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=jQuery(target);var inst=jQuery.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=jQuery.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=jQuery(target);var inst=jQuery.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=jQuery.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return jQuery.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}var inst=this._getInst(target);if(inst){if(this._curInst==inst){this._hideDatepicker(null)}extendRemove(inst.settings,settings);var date=new Date();extendRemove(inst,{rangeStart:null,endDay:null,endMonth:null,endYear:null,selectedDay:date.getDate(),selectedMonth:date.getMonth(),selectedYear:date.getFullYear(),currentDay:date.getDate(),currentMonth:date.getMonth(),currentYear:date.getFullYear(),drawMonth:date.getMonth(),drawYear:date.getFullYear()});this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=jQuery.datepicker._getInst(event.target);var handled=true;var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if(jQuery.datepicker._datepickerShowing){switch(event.keyCode){case 9:jQuery.datepicker._hideDatepicker(null,"");break;case 13:var sel=jQuery("td."+jQuery.datepicker._dayOverClass+", td."+jQuery.datepicker._currentClass,inst.dpDiv);if(sel[0]){jQuery.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{jQuery.datepicker._hideDatepicker(null,jQuery.datepicker._get(inst,"duration"))}return false;break;case 27:jQuery.datepicker._hideDatepicker(null,jQuery.datepicker._get(inst,"duration"));break;case 33:jQuery.datepicker._adjustDate(event.target,(event.ctrlKey?-jQuery.datepicker._get(inst,"stepBigMonths"):-jQuery.datepicker._get(inst,"stepMonths")),"M");break;case 34:jQuery.datepicker._adjustDate(event.target,(event.ctrlKey?+jQuery.datepicker._get(inst,"stepBigMonths"):+jQuery.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){jQuery.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){jQuery.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){jQuery.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){jQuery.datepicker._adjustDate(event.target,(event.ctrlKey?-jQuery.datepicker._get(inst,"stepBigMonths"):-jQuery.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){jQuery.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){jQuery.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){jQuery.datepicker._adjustDate(event.target,(event.ctrlKey?+jQuery.datepicker._get(inst,"stepBigMonths"):+jQuery.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){jQuery.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){jQuery.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=jQuery.datepicker._getInst(event.target);if(jQuery.datepicker._get(inst,"constrainInput")){var chars=jQuery.datepicker._possibleChars(jQuery.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=jQuery("input",input.parentNode)[0]}if(jQuery.datepicker._isDisabledDatepicker(input)||jQuery.datepicker._lastInput==input){return}var inst=jQuery.datepicker._getInst(input);var beforeShow=jQuery.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));jQuery.datepicker._hideDatepicker(null,"");jQuery.datepicker._lastInput=input;jQuery.datepicker._setDateFromField(inst);if(jQuery.datepicker._inDialog){input.value=""}if(!jQuery.datepicker._pos){jQuery.datepicker._pos=jQuery.datepicker._findPos(input);jQuery.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;jQuery(input).parents().each(function(){isFixed|=jQuery(this).css("position")=="fixed";return !isFixed});if(isFixed&&jQuery.browser.opera){jQuery.datepicker._pos[0]-=document.documentElement.scrollLeft;jQuery.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:jQuery.datepicker._pos[0],top:jQuery.datepicker._pos[1]};jQuery.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});jQuery.datepicker._updateDatepicker(inst);offset=jQuery.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:(jQuery.datepicker._inDialog&&jQuery.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=jQuery.datepicker._get(inst,"showAnim")||"show";var duration=jQuery.datepicker._get(inst,"duration");var postProcess=function(){jQuery.datepicker._datepickerShowing=true;if(jQuery.browser.msie&&parseInt(jQuery.browser.version,10)<7){jQuery("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if(jQuery.effects&&jQuery.effects[showAnim]){inst.dpDiv.show(showAnim,jQuery.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}jQuery.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){jQuery(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){jQuery(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){jQuery(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){jQuery(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");jQuery(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){jQuery(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){jQuery(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==jQuery.datepicker._curInst){jQuery(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+jQuery(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+jQuery(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?jQuery(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?jQuery(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=jQuery(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=jQuery.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){jQuery.datepicker._tidyDialog(inst)};if(duration!=""&&jQuery.effects&&jQuery.effects[showAnim]){inst.dpDiv.hide(showAnim,jQuery.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(jQuery.blockUI){jQuery.unblockUI();jQuery("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!jQuery.datepicker._curInst){return}var $target=jQuery(event.target);if(($target.parents("#"+jQuery.datepicker._mainDivId).length==0)&&!$target.hasClass(jQuery.datepicker.markerClassName)&&!$target.hasClass(jQuery.datepicker._triggerClass)&&jQuery.datepicker._datepickerShowing&&!(jQuery.datepicker._inDialog&&jQuery.blockUI)){jQuery.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=jQuery(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=jQuery(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=jQuery(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=jQuery(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!jQuery.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=jQuery(id);if(jQuery(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=jQuery("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=jQuery(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=jQuery(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));jQuery(altField).each(function(){jQuery(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return jQuery.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val():null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);var settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){this.log(event);date=defaultDate}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row<numMonths[0];row++){var group="";for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));var cornerClass=" ui-corner-all";var calender="";if(isMultiMonth){calender+='<div class="ui-datepicker-group ui-datepicker-group-';switch(col){case 0:calender+="first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+="last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+="middle";cornerClass="";break}calender+='">'}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){calender+="<tr>";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():"&#xa0;"):(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");group+=calender}html+=group}html+=buttonPanel+(jQuery.browser.msie&&parseInt(jQuery.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-title">';var monthHtml="";if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span> "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?"&#xa0;":"")}if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){jQuery.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&((jQuery.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}jQuery.fn.datepicker=function(options){if(!jQuery.datepicker.initialized){jQuery(document).mousedown(jQuery.datepicker._checkExternalClick).find("body").append(jQuery.datepicker.dpDiv);jQuery.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return jQuery.datepicker["_"+options+"Datepicker"].apply(jQuery.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?jQuery.datepicker["_"+options+"Datepicker"].apply(jQuery.datepicker,[this].concat(otherArgs)):jQuery.datepicker._attachDatepicker(this,options)})};jQuery.datepicker=new Datepicker();jQuery.datepicker.initialized=false;jQuery.datepicker.uuid=new Date().getTime();jQuery.datepicker.version="1.7.1";window.DP_jQuery=$})(jQuery);;/*
 * jQuery UI Progressbar 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Progressbar
 *
 * Depends:
 *   ui.core.js
 */(function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){arguments.length&&this._setData("value",b);return this._value()},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.1",defaults:{value:0}})})(jQuery);;/*
 * jQuery UI Effects 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */jQuery.effects||(function(d){d.effects={version:"1.7.1",save:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.data("ec.storage."+h[f],g[0].style[h[f]])}}},restore:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.css(h[f],g.data("ec.storage."+h[f]))}}},setMode:function(f,g){if(g=="toggle"){g=f.is(":hidden")?"show":"hide"}return g},getBaseline:function(g,h){var i,f;switch(g[0]){case"top":i=0;break;case"middle":i=0.5;break;case"bottom":i=1;break;default:i=g[0]/h.height}switch(g[1]){case"left":f=0;break;case"center":f=0.5;break;case"right":f=1;break;default:f=g[1]/h.width}return{x:f,y:i}},createWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent()}var g={width:f.outerWidth(true),height:f.outerHeight(true),"float":f.css("float")};f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(arguments[0].constructor==Function)){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return -(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f},easeOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return h*Math.pow(2,-10*i)*Math.sin((i*l-j)*(2*Math.PI)/k)+m+f},easeInOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l/2)==2){return f+m}if(!k){k=l*(0.3*1.5)}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}if(i<1){return -0.5*(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f}return h*Math.pow(2,-10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k)*0.5+m+f},easeInBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*(h/=j)*h*((i+1)*h-i)+f},easeOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*((h=h/j-1)*h*((i+1)*h+i)+1)+f},easeInOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}if((h/=j/2)<1){return k/2*(h*h*(((i*=(1.525))+1)*h-i))+f}return k/2*((h-=2)*h*(((i*=(1.525))+1)*h+i)+2)+f},easeInBounce:function(g,h,f,j,i){return j-d.easing.easeOutBounce(g,i-h,0,j,i)+f},easeOutBounce:function(g,h,f,j,i){if((h/=i)<(1/2.75)){return j*(7.5625*h*h)+f}else{if(h<(2/2.75)){return j*(7.5625*(h-=(1.5/2.75))*h+0.75)+f}else{if(h<(2.5/2.75)){return j*(7.5625*(h-=(2.25/2.75))*h+0.9375)+f}else{return j*(7.5625*(h-=(2.625/2.75))*h+0.984375)+f}}}},easeInOutBounce:function(g,h,f,j,i){if(h<i/2){return d.easing.easeInBounce(g,h*2,0,j,i)*0.5+f}return d.easing.easeOutBounce(g,h*2-i,0,j,i)*0.5+j*0.5+f}})})(jQuery);;/*
 * jQuery UI Effects Blind 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Blind
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.blind=function(b){return this.queue(function(){var d=a(this),c=["position","top","left"];var h=a.effects.setMode(d,b.options.mode||"hide");var g=b.options.direction||"vertical";a.effects.save(d,c);d.show();var j=a.effects.createWrapper(d).css({overflow:"hidden"});var e=(g=="vertical")?"height":"width";var i=(g=="vertical")?j.height():j.width();if(h=="show"){j.css(e,0)}var f={};f[e]=h=="show"?i:0;j.animate(f,b.duration,b.options.easing,function(){if(h=="hide"){d.hide()}a.effects.restore(d,c);a.effects.removeWrapper(d);if(b.callback){b.callback.apply(d[0],arguments)}d.dequeue()})})}})(jQuery);;/*
 * jQuery UI Effects Bounce 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Bounce
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.bounce=function(b){return this.queue(function(){var e=a(this),l=["position","top","left"];var k=a.effects.setMode(e,b.options.mode||"effect");var n=b.options.direction||"up";var c=b.options.distance||20;var d=b.options.times||5;var g=b.duration||250;if(/show|hide/.test(k)){l.push("opacity")}a.effects.save(e,l);e.show();a.effects.createWrapper(e);var f=(n=="up"||n=="down")?"top":"left";var p=(n=="up"||n=="left")?"pos":"neg";var c=b.options.distance||(f=="top"?e.outerHeight({margin:true})/3:e.outerWidth({margin:true})/3);if(k=="show"){e.css("opacity",0).css(f,p=="pos"?-c:c)}if(k=="hide"){c=c/(d*2)}if(k!="hide"){d--}if(k=="show"){var h={opacity:1};h[f]=(p=="pos"?"+=":"-=")+c;e.animate(h,g/2,b.options.easing);c=c/2;d--}for(var j=0;j<d;j++){var o={},m={};o[f]=(p=="pos"?"-=":"+=")+c;m[f]=(p=="pos"?"+=":"-=")+c;e.animate(o,g/2,b.options.easing).animate(m,g/2,b.options.easing);c=(k=="hide")?c*2:c/2}if(k=="hide"){var h={opacity:0};h[f]=(p=="pos"?"-=":"+=")+c;e.animate(h,g/2,b.options.easing,function(){e.hide();a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}})}else{var o={},m={};o[f]=(p=="pos"?"-=":"+=")+c;m[f]=(p=="pos"?"+=":"-=")+c;e.animate(o,g/2,b.options.easing).animate(m,g/2,b.options.easing,function(){a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}})}e.queue("fx",function(){e.dequeue()});e.dequeue()})}})(jQuery);;/*
 * jQuery UI Effects Clip 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Clip
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.clip=function(b){return this.queue(function(){var f=a(this),j=["position","top","left","height","width"];var i=a.effects.setMode(f,b.options.mode||"hide");var k=b.options.direction||"vertical";a.effects.save(f,j);f.show();var c=a.effects.createWrapper(f).css({overflow:"hidden"});var e=f[0].tagName=="IMG"?c:f;var g={size:(k=="vertical")?"height":"width",position:(k=="vertical")?"top":"left"};var d=(k=="vertical")?e.height():e.width();if(i=="show"){e.css(g.size,0);e.css(g.position,d/2)}var h={};h[g.size]=i=="show"?d:0;h[g.position]=i=="show"?0:d/2;e.animate(h,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){f.hide()}a.effects.restore(f,j);a.effects.removeWrapper(f);if(b.callback){b.callback.apply(f[0],arguments)}f.dequeue()}})})}})(jQuery);;/*
 * jQuery UI Effects Drop 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Drop
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.drop=function(b){return this.queue(function(){var e=a(this),d=["position","top","left","opacity"];var i=a.effects.setMode(e,b.options.mode||"hide");var h=b.options.direction||"left";a.effects.save(e,d);e.show();a.effects.createWrapper(e);var f=(h=="up"||h=="down")?"top":"left";var c=(h=="up"||h=="left")?"pos":"neg";var j=b.options.distance||(f=="top"?e.outerHeight({margin:true})/2:e.outerWidth({margin:true})/2);if(i=="show"){e.css("opacity",0).css(f,c=="pos"?-j:j)}var g={opacity:i=="show"?1:0};g[f]=(i=="show"?(c=="pos"?"+=":"-="):(c=="pos"?"-=":"+="))+j;e.animate(g,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){e.hide()}a.effects.restore(e,d);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/*
 * jQuery UI Effects Explode 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Explode
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.explode=function(b){return this.queue(function(){var k=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;var e=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;b.options.mode=b.options.mode=="toggle"?(a(this).is(":visible")?"hide":"show"):b.options.mode;var h=a(this).show().css("visibility","hidden");var l=h.offset();l.top-=parseInt(h.css("marginTop"),10)||0;l.left-=parseInt(h.css("marginLeft"),10)||0;var g=h.outerWidth(true);var c=h.outerHeight(true);for(var f=0;f<k;f++){for(var d=0;d<e;d++){h.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/*
 * jQuery UI Effects Fold 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Fold
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);;/*
 * jQuery UI Effects Highlight 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Highlight
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/*
 * jQuery UI Effects Pulsate 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Pulsate
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c<f;c++){d.animate({opacity:0},e,b.options.easing).animate({opacity:1},e,b.options.easing)}if(g=="hide"){d.animate({opacity:0},e,b.options.easing,function(){d.hide();if(b.callback){b.callback.apply(this,arguments)}})}else{d.animate({opacity:0},e,b.options.easing).animate({opacity:1},e,b.options.easing,function(){if(b.callback){b.callback.apply(this,arguments)}})}d.queue("fx",function(){d.dequeue()});d.dequeue()})}})(jQuery);;/*
 * jQuery UI Effects Scale 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Scale
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.puff=function(b){return this.queue(function(){var f=a(this);var c=a.extend(true,{},b.options);var h=a.effects.setMode(f,b.options.mode||"hide");var g=parseInt(b.options.percent,10)||150;c.fade=true;var e={height:f.height(),width:f.width()};var d=g/100;f.from=(h=="hide")?e:{height:e.height*d,width:e.width*d};c.from=f.from;c.percent=(h=="hide")?g:100;c.mode=h;f.effect("scale",c,b.duration,b.callback);f.dequeue()})};a.effects.scale=function(b){return this.queue(function(){var g=a(this);var d=a.extend(true,{},b.options);var j=a.effects.setMode(g,b.options.mode||"effect");var h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:(j=="hide"?0:100));var i=b.options.direction||"both";var c=b.options.origin;if(j!="effect"){d.origin=c||["middle","center"];d.restore=true}var f={height:g.height(),width:g.width()};g.from=b.options.from||(j=="show"?{height:0,width:0}:f);var e={y:i!="horizontal"?(h/100):1,x:i!="vertical"?(h/100):1};g.to={height:f.height*e.y,width:f.width*e.x};if(b.options.fade){if(j=="show"){g.from.opacity=0;g.to.opacity=1}if(j=="hide"){g.from.opacity=1;g.to.opacity=0}}d.from=g.from;d.to=g.to;d.mode=j;g.effect("size",d,b.duration,b.callback);g.dequeue()})};a.effects.size=function(b){return this.queue(function(){var c=a(this),n=["position","top","left","width","height","overflow","opacity"];var m=["position","top","left","overflow","opacity"];var j=["width","height","overflow"];var p=["fontSize"];var k=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];var f=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"];var g=a.effects.setMode(c,b.options.mode||"effect");var i=b.options.restore||false;var e=b.options.scale||"both";var o=b.options.origin;var d={height:c.height(),width:c.width()};c.from=b.options.from||d;c.to=b.options.to||d;if(o){var h=a.effects.getBaseline(o,d);c.from.top=(d.height-c.from.height)*h.y;c.from.left=(d.width-c.from.width)*h.x;c.to.top=(d.height-c.to.height)*h.y;c.to.left=(d.width-c.to.width)*h.x}var l={from:{y:c.from.height/d.height,x:c.from.width/d.width},to:{y:c.to.height/d.height,x:c.to.width/d.width}};if(e=="box"||e=="both"){if(l.from.y!=l.to.y){n=n.concat(k);c.from=a.effects.setTransition(c,k,l.from.y,c.from);c.to=a.effects.setTransition(c,k,l.to.y,c.to)}if(l.from.x!=l.to.x){n=n.concat(f);c.from=a.effects.setTransition(c,f,l.from.x,c.from);c.to=a.effects.setTransition(c,f,l.to.x,c.to)}}if(e=="content"||e=="both"){if(l.from.y!=l.to.y){n=n.concat(p);c.from=a.effects.setTransition(c,p,l.from.y,c.from);c.to=a.effects.setTransition(c,p,l.to.y,c.to)}}a.effects.save(c,i?n:m);c.show();a.effects.createWrapper(c);c.css("overflow","hidden").css(c.from);if(e=="content"||e=="both"){k=k.concat(["marginTop","marginBottom"]).concat(p);f=f.concat(["marginLeft","marginRight"]);j=n.concat(k).concat(f);c.find("*[width]").each(function(){child=a(this);if(i){a.effects.save(child,j)}var q={height:child.height(),width:child.width()};child.from={height:q.height*l.from.y,width:q.width*l.from.x};child.to={height:q.height*l.to.y,width:q.width*l.to.x};if(l.from.y!=l.to.y){child.from=a.effects.setTransition(child,k,l.from.y,child.from);child.to=a.effects.setTransition(child,k,l.to.y,child.to)}if(l.from.x!=l.to.x){child.from=a.effects.setTransition(child,f,l.from.x,child.from);child.to=a.effects.setTransition(child,f,l.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){if(i){a.effects.restore(child,j)}})})}c.animate(c.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(g=="hide"){c.hide()}a.effects.restore(c,i?n:m);a.effects.removeWrapper(c);if(b.callback){b.callback.apply(this,arguments)}c.dequeue()}})})}})(jQuery);;/*
 * jQuery UI Effects Shake 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Shake
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.shake=function(b){return this.queue(function(){var e=a(this),l=["position","top","left"];var k=a.effects.setMode(e,b.options.mode||"effect");var n=b.options.direction||"left";var c=b.options.distance||20;var d=b.options.times||3;var g=b.duration||b.options.duration||140;a.effects.save(e,l);e.show();a.effects.createWrapper(e);var f=(n=="up"||n=="down")?"top":"left";var p=(n=="up"||n=="left")?"pos":"neg";var h={},o={},m={};h[f]=(p=="pos"?"-=":"+=")+c;o[f]=(p=="pos"?"+=":"-=")+c*2;m[f]=(p=="pos"?"-=":"+=")+c*2;e.animate(h,g,b.options.easing);for(var j=1;j<d;j++){e.animate(o,g,b.options.easing).animate(m,g,b.options.easing)}e.animate(o,g,b.options.easing).animate(h,g/2,b.options.easing,function(){a.effects.restore(e,l);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}});e.queue("fx",function(){e.dequeue()});e.dequeue()})}})(jQuery);;/*
 * jQuery UI Effects Slide 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Slide
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.slide=function(b){return this.queue(function(){var e=a(this),d=["position","top","left"];var i=a.effects.setMode(e,b.options.mode||"show");var h=b.options.direction||"left";a.effects.save(e,d);e.show();a.effects.createWrapper(e).css({overflow:"hidden"});var f=(h=="up"||h=="down")?"top":"left";var c=(h=="up"||h=="left")?"pos":"neg";var j=b.options.distance||(f=="top"?e.outerHeight({margin:true}):e.outerWidth({margin:true}));if(i=="show"){e.css(f,c=="pos"?-j:j)}var g={};g[f]=(i=="show"?(c=="pos"?"+=":"-="):(c=="pos"?"-=":"+="))+j;e.animate(g,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(i=="hide"){e.hide()}a.effects.restore(e,d);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/*
 * jQuery UI Effects Transfer 1.7.1
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Transfer
 *
 * Depends:
 *	effects.core.js
 */(function(a){a.effects.transfer=function(b){return this.queue(function(){var f=a(this),h=a(b.options.to),e=h.offset(),g={top:e.top,left:e.left,height:h.innerHeight(),width:h.innerWidth()},d=f.offset(),c=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);;
	
/*
	6/18/08: jev3a@virginia.edu
	
	This is for adding thl applications in an iframe. It is called by setting an a href to:
	 	
		#iframe=url&div_id=<div id>&css_url=<css url>
	
	@param	url		required	the url that should be the source of the iframe
	@param	div_id	optional	the id of the div or other element that should be emptied and replaced with the iframe
								defaults to the div_id set in thlplug below
	@param	css_url	optional	the absolute url of the stylesheet to use with the iframed document 
								defaults to the first stylesheet of the parent page
								you can also set a default stylesheet below in the css_url proprety of thlplug
	
	Example: <a href="#iframe=http://tmb.thlib.org/categories/119/children&div_id=content"></a>
	
	Dependencies: 1) jquery; 2) For history management, it depends on class_external.js; 3) there are some obliquely relevant functions in fn.js
	
	TODO: break off functions from class_external.js and add them here, so that there is minimal code there
*/

	//var env_tmb = env_mms = 'http://localhost:3000' ;
	var env_tmb = 'http://staging.tmb.thlib.org' ;
	var env_mms = 'http://staging.mms.thlib.org' ;
	
	jQuery(document).ready(function() {
		ActivateAppLinks.init() ;
		GetCSS() ;	// grab stylesheet from parent document as default; has to be here because needs both doc and thlplug to have loaded
		thlplug.init(); // initialize plugin when page loads
	}) ;

	var ActivateAppLinks = {
		
		EnableKillers: function() { //this is to kill cookies associated with apps in iframes.		
			var apps = new Array( 
				"http://dev.tmb.thlib.org" ,
				"http://staging.tmb.thlib.org" ,
				"http://tmb.thlib.org" ,
				"http://dev.mms.thlib.org" ,
				"http://staging.mms.thlib.org" ,
				"http://mms.thlib.org" ,
				"http://dev.places.thlib.org",
				"http://staging.places.thlib.org",
				"http://places.thlib.org"
			);
	
			var i = apps.length - 1 ; do {
				arg = "body a[href^=" + apps[i] + "]" ;
				/* jQuery( arg ).click( function() {
					KillFrameCookies( jQuery( arg ) ) ; //handle issue for same domain, if cookie names are known
				}) */
		
				//for different domains, send cookie destroy message
				jQuery(arg).each(function(i){
					link = jQuery(this).attr("href");
					
					// Parse out the hash, if it exists; we'll add it back in later
					link_split = link.split('#', 2);
					link = link_split[0];
					link_hash = link_split.length > 1 ? link_split[1] : false;
					
					// Check for a query string
					link_split = link.split('?');
					
					// If a query string exists, append using "&"
					if(link_split.length > 1){
						link_split[1] += "&frame=destroy";
						link = link_split.join('');
						
					// Otherwise, append using "?"
					}else{
						link = link + "?frame=destroy";
					}
					
					// Append the hash
					if(link_hash){
						link += '#' + link_hash;
					}
					
					jQuery(this).attr("href", link);
				});
			} while ( i-- ) ;
			
		} ,
		
		EnableIframeLinks: function() { // this activates all links that start with #iframe		
			jQuery( "a[href*=#iframe]" ).click(function() {				
				thlplug.swap( this.href ) ;
			})			
		} ,
		
		init: function() {
			this.EnableKillers() ;
			this.EnableIframeLinks() ;
		}
		
	} ;
	
	function GetCSS() {
		var link_href = jQuery( "link[rel^=stylesheet]" ).attr("href") ;
		jQuery('body').append('<div style=\'display:none\'>' + link_href + '</div>');
		var new_href = '' ;
		if ( link_href.indexOf('http://') == -1 ) {
			var zhost = window.location.hostname ;
			if ( zhost.indexOf('places') == -1 ) { // temp fix for places dictionary ror app
				new_href = window.location.protocol + "//" + window.location.hostname ;
			} else {
				new_href = "http://staging.thlib.org/" ;
			}
		}
		new_href += link_href ;
		thlplug.css_url = new_href ;
	}


	var thlplug = {
		
		div_id: "content" , 		// should be set in url of #iframe href (see above example), but defaults to this value
		css_url: "" , 				// first priority for this is in href (see above example), then here, then first <link> stylesheet in parent doc
		iframe_id: "thl_app" ,		// id to use for iframe
		bookmark_arg: "iframe=" , 	// the arg used after hash to trigger this plug-in (this is not globally referenced -- needs to be put in more global loc)
		iframe_html: "<iframe id='{id}' name='{id}' src='{src}' width='{x}' height='{y}' frameborder='0' scrolling='no' style='border:0pt; margin:0px; padding:0pt; overflow-x:hidden; overflow-y:hidden'></iframe>" ,	// html comprising actual iframe
		content_old: '' ,			// storage for content that iframe replaces
		
		// replaces iframe_html with real values
		do_subs: function( data ) {
			dims = this.dims_get( this.iframe_tokens['iframe'] ) ;
			data = data.replace( /{id}/g , this.iframe_id ) ; 
			if(data.indexOf("{src}") > -1) {
				data = data.replace( /{src}/ , this.app_url) ;
			} else {
				// The params that need to persist are listed beginning with css_url, so take those out, make
				// a substitution on the rest of the string, and add the persistant params back in by appending them.
				var data_split = data.split(/css_url/);
				data_split[0] = data_split[0].replace( /src=\'.+/ , "src='" + this.iframe_tokens['iframe']) ;
				var sep = data_split[0].indexOf('?') == -1 ? '?' : '&' ;
				data_split[1] = sep + 'css_url'+data_split[1] ;
				data = data_split[0] + data_split[1];
				// Previously was:
				// data = data.replace( /src=\'[^?]+/ , "src='" + this.iframe_tokens['iframe']) ;
			}
			data = data.replace( /{x}/ , dims.x ) ;
			data = data.replace( /{y}/ , dims.y ) ;
			return data ;
		},
		
		// calculates dims based on size of iframe parent and content requirements (set in dims_load)
		dims_get: function( url ) {
			var dim = new Object() ;
			if ( obj = this.dim_arr[url] ) {
				dim.y = obj.y > 0 ? this.target_div.y + ( obj.y - this.target_div.y ) + 10 : this.target_div.y ; // add 10 pixels as bottom buffer
				dim.x = obj.x > 0 ? this.target_div.x + ( obj.x - this.target_div.x ) : this.target_div.x ;
			} else { //the url has not been loaded into this.dim_arr in the dims_load method, so default to container dimensions
				dim.y = this.target_div.y ;
				dim.x = this.target_div.x ;
			}
			return dim ;
		},
		
		// for setting the iframe dimensions to appropriate values based on what url is being loaded (shaky solution at best)
		// a 0 value does not actually mean 0, but defaults to the container element width
		// a better way to do this might be to have the app provide dynamic dims in json format, but that risks perfomance
		dims_load: function() {
			this.dim_arr = new Array() ;
			this.dim_arr[env_tmb + '/categories/119/children'] = { y: 1043 , x: 0 } ; 
			this.dim_arr[env_mms + '/media_collection_associations?collection_id=22'] = { y: 577 , x: 0 } ;
		},
		
		// Checks to see if four necessary conditions for an iframe redirect are true.  If they are, redirect the page
		// to itself, with "frame=create" to create the cookie.
		iframe_check: function() {
			var loc = window.location;
			if(	top != self // Is inside an iframe
				&& typeof frame_service == 'undefined' // Doesn't have iframe code defined
				&& loc.search.indexOf('frame=create') == -1 // Isn't already part of one of these redirects
				&& (document.referrer.indexOf('parent_url=') != -1 || loc.search.indexOf('parent_url=') != -1) // Is either referred from a cookied page or should be a cookied page
			){
				var separator = loc.search ? '&' : '?';
				var search = loc.search.replace('frame=destroy', '');
				window.location = loc.protocol+'//'+loc.host+loc.pathname+search+separator+'frame=create'+loc.hash;
			}
		},
		
		// called when this page first loads
		init: function() {
			this.iframe_check() ;
			this.dims_load() ;
		},

		// remove old iframe to make way for new
		kill_old: function() {
			if ( this.target_div  ) {
				this.target_div.html( this.content_old ) ;
				this.status = "off" ;
			}
		},
	
		// this is the main function, swapping out old content for iframe
		swap: function( iframe_data ) {
			// see above for what iframe_data should look like
						
			this.kill_old() ; 								// kill previous iterations; need to refine if doing multiple iframes per page
			
			this.status = "on" ; 							// for swap_undo (when someone uses nav buttons back to pre-iframe page)

			iframe_tokens = this.tokenize( iframe_data ) ;	// take iframe hash and parse out info
			
			this.div_id = !iframe_tokens["div_id"] ? this.div_id : iframe_tokens["div_id"] ;		// resort to div_id default if not in iframe hash
			this.css_url = !iframe_tokens["css_url"] ? this.css_url : iframe_tokens["css_url"] ;	// resort to css_url default if not in iframe hash
			this.parent_url = iframe_tokens["parent_url"] ; // get parent_url from iframe hash

			this.target_div = jQuery( '#' + this.div_id ) ;		// get dimensions of iframe parent
			this.target_div.x = this.target_div.width() ;
			this.target_div.y = this.target_div.height() ;
			
			if (this.content_old == '') { this.content_old = this.target_div.html() }	// store old content
			this.app_url = 									// construct url for iframe src
				iframe_tokens["iframe"] + 					// main url
				( iframe_tokens["iframe"].indexOf("?") > -1 ? "&" : "?" ) + // check for ? already in url; TODO: create an "add_arg" function for all this
				"css_url=" + this.css_url + 				
				"&parent_url=" + iframe_tokens["parent_url"] + 
				"&x=" + this.target_div.x + 
				"&y=" + this.target_div.y
			;
			
			this.iframe_html = this.do_subs( this.iframe_html ) ; // take the iframe html template and swap in real values
			
			// add a back to top link because we have to have extra space at bottom to accommodate unknown iframe content height
			var scroll_link = "<div style=\"position:relative;vertical-align:bottom;text-align:center\"><a href=\"javascript:self.scrollTo(0,0)\">Back to Top</a></div>" ;
			
			this.target_div.html( this.iframe_html + scroll_link ) ; 		// write the html into the target div
			this.iframe_obj = document.getElementById( this.iframe_id ) ;	// get the new dom element for future reference (necessary?)
		
			if(jQuery("#side-home-link").length){
				jQuery("#side-home-link").show().css({
					'line-height': 'normal',
					'visibility': 'visible'
				});
			}
			jQuery("#sideMenuLink").css("background-position", "0% 0%");
			jQuery("#fxSideMenu").hide();
		
		},
		
		// when a user clicks the back nav button to go to the pre-iframe content
		swap_undo: function() {
			this.kill_old() ;
			this.target_div.show() ;			
		},
		
		// for parsing iframe hash and adding parent url if necessary (could save resources here by having different params instead of one url)
		tokenize: function( data ) {			
			
			this.iframe_tokens = new Array() ;

			iframe_regex = new RegExp( this.bookmark_arg + "(((?!&div_id|&css_url?=).)+)" ) ; //extracts everything between iframe= and div_id|css_url|$
			frame_arr = data.match(iframe_regex) ;
			this.iframe_tokens['iframe'] = frame_arr[1] ;

			data_split = data.match(/([^=&#]+)=([^&]*)/g) ; //returns in an array each arg=val after # 

			var i = data_split.length - 1 ; do {
				if ( i > 0 ) {	// don't extract iframe= here because url may have its own args that shouldn't be split, which is why we did it separately above
					zitem = data_split[i] ;
					arg_arr = zitem.split("=") ;
					arg = arg_arr[0] ;
					this.iframe_tokens[arg] = arg_arr[1] ;
				}
			} while ( i-- ) ;
			
			parent_data = window.location.href.split("#") ;
			this.iframe_tokens["parent_url"] = parent_data[0] ;
			
			return this.iframe_tokens ;

		}


	};
	
	// This is called from an invisible iframe that is loaded into the body of app iframes.  The script loaded in this iframe
	// is passed a height value from the main iframe and that height is passed to this.  See in_frame.js for details.
	function set_iframe_height(height){
		jQuery('#'+thlplug.iframe_id).css('height', height+'px');
	};
/*
 * jqModal - Minimalist Modaling with jQuery
 *   (http://dev.iceburg.net/jquery/jqModal/)
 *
 * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 * 
 * $Version: 03/01/2009 +r14
 */
(function($) {
jQuery.fn.jqm=function(o){
var olc = (jQuery.browser.msie)?"jqmOverlay ieOverlay": "jqmOverlay";
var p={
overlay: 50,
overlayClass: olc,
closeClass: 'jqmClose',
trigger: '.jqModal',
ajax: F,
ajaxText: '',
target: F,
modal: F,
toTop: F,
onShow: F,
onHide: F,
onLoad: F
};
return this.each(function(){if(this._jqm)return H[this._jqm].c=jQuery.extend({},H[this._jqm].c,o);s++;this._jqm=s;
H[s]={c:jQuery.extend(p,jQuery.jqm.params,o),a:F,w:jQuery(this).addClass('jqmID'+s),s:s};
if(p.trigger)jQuery(this).jqmAddTrigger(p.trigger);
});};

jQuery.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
jQuery.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
jQuery.fn.jqmShow=function(t){return this.each(function(){t=t||window.event;jQuery.jqm.open(this._jqm,t);});};
jQuery.fn.jqmHide=function(t){return this.each(function(){t=t||window.event;jQuery.jqm.close(this._jqm,t)});};

jQuery.jqm = {
hash:{},
open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index'))),z=(z>0)?z:3000,o=jQuery('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)return F;h.t=t;h.a=true;h.w.css('z-index',z);
 if(c.modal) {if(!A[0])L('bind');A.push(s);}
 else if(c.overlay > 0)h.w.jqmAddClose(o);
 else o=F;

 h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
 if(ie6){jQuery('html,body').css({height:'100%',width:'100%'});if(o){o=o.css({position:'absolute'})[0];for(var y in {Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}

 if(c.ajax) {var r=c.target||h.w,u=c.ajax,r=(typeof r == 'string')?jQuery(r,h.w):jQuery(r),u=(u.substr(0,1) == '@')?jQuery(t).attr(u.substring(1)):u;
  r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose(jQuery(cc,h.w));e(h);});}
 else if(cc)h.w.jqmAddClose(jQuery(cc,h.w));

 if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);	
 (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
},
close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
 if(A[0]){A.pop();if(!A[0])L('unbind');}
 if(h.c.toTop&&h.o)jQuery('#jqmP'+h.w[0]._jqm).after(h.w).remove();
 if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
},
params:{}};
var s=0,H=jQuery.jqm.hash,A=[],ie6=jQuery.browser.msie&&(jQuery.browser.version == "6.0"),F=false,
i=jQuery('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0}),
e=function(h){if(ie6)if(h.o)h.o.html('<p style="width:100%;height:100%"/>').prepend(i);else if(!jQuery('iframe.jqm',h.w)[0])h.w.prepend(i); f(h);},
f=function(h){try{jQuery(':input:visible',h.w)[0].focus();}catch(_){}},
L=function(t){jQuery()[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
m=function(e){var h=H[A[A.length-1]],r=(!jQuery(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
hs=function(w,t,c){return w.each(function(){var s=this._jqm;jQuery(t).each(function() {
 if(!this[c]){this[c]=[];jQuery(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return F;});}this[c].push(s);});});};
})(jQuery);
/*
Usage:
var popup = jQuery().thlPopup({
	id: 'my_thl_popup',
	header: 'Any <a href="#">HTML<\/a> can go here.',
	content: 'Initial <strong>content<\/strong>.',
	footer: 'Any <a href="#">HTML<\/a> can go here.',
	width: 200,
	open: false
});
popup.setContent('New <strong>content<\/strong>.');
*/

jQuery.fn.thlPopup = function(options){
	this.defaults = {
		id: false,
		header: '',
		content: '',
		footer: '',
		width: 590,
		height: 540,
		flexibleHeight: false,
		overflow: 'hidden',
		url: false,
		linkUrl : false,
		showLink: true,
		newWindow: false,
		loadWith: 'ajax',
		closeWith: 'remove',
		type: false,
		open: true
	};
	this.options = options = jQuery.extend(this.defaults, options);
	this.id = null;
	this.div = null;
	this.headerDiv = null;
	this.footerDiv = null;
	this.contentDiv = null;
	this.boxCreated = false;
	this.init = function(){
		if(options.type == 'wiki'){
			this.options.linkUrl = window.location.href.replace(/#(.*)/, '')+'#wiki='+this.options.url;
			this.options.url = '/global/php/wiki_reader.php?url='+options.url+'&type=popup';
		}
		// Remove any existing popups
		jQuery('.thl-popup').remove();
		// Create the popup box
		this.createBox();
		if(this.options.url){
			if(this.options.loadWith == 'ajax'){
				this.loadAjax(this.options.url);
			}else if(this.options.loadWith == 'iframe'){
				this.loadIframe(this.options.url);
				if(this.options.overflowX){
					this.contentDiv.find('iframe:first').css('overflow-x', this.options.overflowX);
				}
				if(this.options.overflowY){
					this.contentDiv.find('iframe:first').css('overflow-y', this.options.overflowY);
				}
			}
		}
		if(this.options.open){
			this.open();
		}
		return this;
	};
	this.center = function(){
		this.div.css('position','absolute')
			.css('left', ( Math.max(0, jQuery(window).width() - this.div.width() ) ) / 2+jQuery(window).scrollLeft() + 'px');
		// If the popup is inside an iframe, it's vertical position can't easily be centered on the window due to security
		// restraints preventing us from getting the window dimensions, so put it near the top of the iframe to prevent it
		// from being below the bottom of the screen.
		if(top != self){
			this.div.css('top', '20px');
		}else{
			this.div.css('top', ( Math.max(0, jQuery(window).height() - this.div.height() ) ) / 2+jQuery(window).scrollTop() + 'px');
		}
		return this;
	};
	this.createBox = function(){
		if(!this.boxCreated){
			if(this.options.id){
				this.id = this.options.id;
			}else{
				this.id = 'thl_popup_'+jQuery('.thl-popup').length;
			}
			var div_html = 
				'<div class="thl-popup" id="'+this.id+'">'+
					'<div class="thl-popup-header">'+this.options.header+'</div>'+
					'<div class="thl-popup-close"></div>'+
					'<div class="thl-popup-content"><div>'+this.options.content+'</div></div>'+
					'<div class="thl-popup-footer">'+this.options.footer+'</div>'+
				'</div>';
			jQuery('body').append(div_html);
			this.div = jQuery('#'+this.id);
			this.contentDiv = this.div.children('.thl-popup-content');
			this.headerDiv = this.div.children('.thl-popup-header');
			this.footerDiv = this.div.children('.thl-popup-footer');
			this.closeDiv = this.div.children('.thl-popup-close');
			this.div.draggable({cancel: '.thl-popup-content,.thl-popup-close'});
			this.contentDiv.css('overflow', this.options.overflow);
			if(this.options.overflowX){
				this.contentDiv.css('overflow-x', this.options.overflowX);
			}
			if(this.options.overflowY){
				this.contentDiv.css('overflow-y', this.options.overflowY);
			}
			this.contentDiv.css('width', this.options.width+'px');
			if(this.options.flexibleHeight){
				this.contentDiv.css('max-height', this.options.height+'px');
			}else{
				this.contentDiv.css('height', this.options.height+'px');
			}
			if(this.options.showLink && this.options.url){
				var header_text = this.options.newWindow ? 'View this page in a new window...' : 'View this page alone...';
				var header_html = '<a href="'+(this.options.linkUrl ? this.options.linkUrl : this.options.url)+'" title="'+header_text+'"'+
					' onclick="jQuery(\'#'+this.id+'\').remove();"'+
					(this.options.newWindow ? ' target="_blank"' : '')+
					'>'+header_text+'</a>';
				this.headerDiv.html(header_html);
			}
			this.div.attr('id', this.id);
			// This condition can't be within the onclick handler, as there isn't a clear way to
			// access this.options in there.
			if(this.options.closeWith == 'hide'){
				this.closeDiv.click(function(){
					jQuery(this).parent('.thl-popup').hide();
					return false;
				});
			}else{
				this.closeDiv.click(function(){
					jQuery(this).parent('.thl-popup').remove();
					return false;
				});
			}
			this.boxCreated = true;
		}
		return this;
	};
	this.setContent = function(content){
		this.contentDiv.html(content);
		return this;
	};
	this.open = function(){
		this.div.show();
		this.center();
		return this;
	};
	this.close = function(){
		this.div.hide();
		return this;
	};
	this.remove = function(){
		this.div.remove();
		return this;
	};
	this.loadAjax = function(url){
		this.contentDiv.load(url, null, function(){});
		return this;
	};
	this.loadIframe = function(url){
		this.contentDiv.html('<iframe id="'+this.id+'_iframe" src="'+url+'"></iframe>');
		return this;
	};
	this.init();
	return this;
}

function ActivateThlPopups(parent_selector){
	parent_selector = parent_selector ? parent_selector: 'body';
	jQuery(parent_selector).find('a.thl-pop').each(function(){
		var match, options = {};
		options.url = jQuery(this).attr('href');
		if(jQuery(this).hasClass('wiki')){
			options.type = 'wiki';
		}
		if(jQuery(this).hasClass('iframe')){
			options.loadWith = 'iframe';
		}
		if(jQuery(this).hasClass('new-window')){
			options.newWindow = true;
		}
		if(jQuery(this).hasClass('no-view-alone')){
			options.showLink = false;
		}
		if(match = this.className.match(/width-([\d]+)/)){
			options.width = match[1];
		}
		if(match = this.className.match(/height-([\d]+)/)){
			options.height = match[1];
		}
		if(match = this.className.match(/overflow-x-([a-z]+)/)){
			options.overflowX = match[1];
		}
		if(match = this.className.match(/overflow-y-([a-z]+)/)){
			options.overflowY = match[1];
		}
		jQuery(this).click(function(){
			jQuery().thlPopup(options);
			return false;
		});
	});
}

/*jQuery(document).ready(function(){
	ActivateThlPopups();
});*/
ï»¿/*

THLTibetanTranslationPlugin is a tool for tranlating Tibetan script to English.  It queries the API
of the THL Tibetan to English Translation Tool, located at the URL below, and displays the results
in a draggable popup box.
http://www.thlib.org/reference/dictionaries/tibetan-dictionary/translate.php

To use the plugin, the user just needs to select some Tibetan script on a web page and press
"Ctrl /" to open up the popup box with the appropriate translation of the script.

To install the plugin, one should include this file (thl-tt-plugin.js), thl-tt-plugin.css, and (optionally) the jquery.js
file that we provide.  The jquery.js file includes jQuery 1.3.2, jQuery UI 1.7.2, and jQuery UI Draggable
1.7.2.  If you are already using jQuery, you should be sure to include the core jQuery UI, along with 
jQuery UI Draggable.  We cannot guarantee that THLTibetanTranslationPlugin will work with versions of 
jQuery earlier or later than the ones specified above.  It is likely, though, that it will work with
jQuery 1.2.6 or later.

*/

var THLTibetanTranslationPlugin = {
	apiUrl: 'http://ttt.thlib.org/org.thdl.tib.scanner.RemoteScannerFilter?jwf=?&text=',
	isIE: document.all?true:false,
	selectedText: '',
	popup: null,
	wordsDiv: null,
	
	queryAPI: function(text){
		text = escape(this.encodeUtf8(text));
		var url = this.apiUrl + text;
		jQuery.ajax({	
			type: "GET",
			dataType: "json",
			url: url,
			error: function(response){THLTibetanTranslationPlugin.setContent('Sorry, there was an error with this request.')},
			success: function(response){THLTibetanTranslationPlugin.displayWords(response)}
		});
	},
	
	translate: function(text){
		this.createBox();
		this.showBox();
		this.queryAPI(text);
	},
	
	checkSelection: function(){
		if(this.selectedText == ""){
			alert("Please select some Tibetan text or Wylie transliteration to be translated, then press \"Control \/\".");
			return false;
		}
		return true;
	},
	
	createBox: function(){
		var popup = jQuery().thlPopup({
			id: 'thl_tt_plugin',
			footer: 'Courtesy of the <a href="http://www.thlib.org" target="_blank">THL</a> '+
				'<a href="http://www.thlib.org/reference/dictionaries/tibetan-dictionary/translate.php" target="_blank">'+
				'Tibetan Translation Plugin</a></div>',
			flexibleHeight: true,
			overflow: 'auto',
			open: false
		});
		this.popup = popup;
		this.wordsDiv = popup.contentDiv;
	},
	
	showBox: function(){
		this.setContent('<img src="http://thlib.org/global/images/ajax-loader.gif" alt="" /> Searching...');
		this.popup.open();
	},
	
	setContent: function(content){
		this.popup.setContent(content);
	},
	
	displayWords: function(data){
		this.setContent(this.formatWords(data));
		this.wordsDiv.get(0).scrollTop = 0;
		this.popup.center();
	},
	
	formatWords: function(json){
		var words = json.words;
		var has_words = false;
		var s = '<div class="thl-tt-plugin">';
		var word;
		for(key in words){ has_words = true; }
		if(!has_words){
			s = "Sorry, no results for this text were found.";
		}else{
			for (key in words){
				word = words[key];
				s += '<dl>'+
						'<dt>'+key+'</dt>'+
						'<dd>';
				if(word.length == 0){
					s += 'Sorry, this word wasn\'t found.';
				}else{
					s += '<table>';
					for (var i=0; i<word.length-1; i+=2){
						s += '<tr><td class="word">' + word[i] + '</td><td>' + word[i+1] + '</td></tr>';
					}
					s +='</table>';
				}
				s += '</dd></dl>';
			}
		}
		s += '</div>';
		return s;
	},
	
	onKeyDown: function (e){
		var code = (e.keyCode ? e.keyCode : e.which);
		var ctrl = e.ctrlKey;
		if(ctrl && (code == 191 || code == 79)){
			if(this.checkSelection()){
				this.translate(this.selectedText);
			}
		}
	},
	
	onMouseUp: function(e){
		this.setSelectedText();
		return true;
	},
		
	setSelectedText: function(){
		var str;
		if(document.getSelection){
			str = document.getSelection();
		}else if(document.selection && document.selection.createRange){
			var range = document.selection.createRange();
			str = range.text;
		}else{
			str = window.getSelection()+"";
		}
		this.selectedText = str;
	},
	
	encodeUtf8: function(string){
		string = string+"";
		string = string.replace(/\n/g," ");
		string = string.replace(/\r/g," ");
		var c, utftext = "";
		for (var n = 0; n < string.length; n++){
			c = string.charCodeAt(n);
	
			if(c < 128){
				utftext += String.fromCharCode(c);
			}else if((c > 127) && (c < 2048)){
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}else{
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
		}
		return utftext;
	}
	
};

jQuery(document).ready(function(){
	jQuery(document).bind("mouseup",function(e){THLTibetanTranslationPlugin.onMouseUp(e)});
	jQuery(document).bind("keydown",function(e){THLTibetanTranslationPlugin.onKeyDown(e)});
});
