// Cookie plugin Copyright (c) 2006 Klaus Hartl (stilbuero.de) Dual licensed under the MIT and GPL licenses: http://www.opensource.org/licenses/mit-license.php http://www.gnu.org/licenses/gpl.html
jQuery.cookie=function(name, value, options){if (typeof value !='undefined'){options=options ||{};var expires='';if (options.expires && (typeof options.expires=='number' || options.expires.toGMTString)){var date;if (typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires * 24 * 60 * 60 * 1000));}else{date=options.expires;}
expires='; expires='+date.toGMTString();}
var path=options.path ? '; path='+options.path :'';var domain=options.domain ? '; domain='+options.domain :'';var secure=options.secure ? '; secure' :'';document.cookie=[name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');}else{var cookieValue=null;if (document.cookie && document.cookie !=''){var cookies=document.cookie.split(';');for (var i=0; i < cookies.length; i++){var cookie=jQuery.trim(cookies[i]);if (cookie.substring(0, name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};

// Thickbox 2.1 - jQuery plugin for displaying content in a box above the page.Copyright (c) 2006, 2007 Cody Lindley (http://www.codylindley.com).Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
$(document).ready(TB_init);function TB_init(){$("a.thickbox").click(function(event){event.preventDefault();this.blur();var caption=this.title || this.name || "";var group=this.rel || false;TB_show(caption, this.href, group);});}
function TB_show(caption, url, rel){
if ( !$("#TB_HideSelect").length ){$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");$("#TB_overlay").click(TB_remove);}
$(window).scroll(TB_position);TB_overlaySize();$("body").append("<div id='TB_load'><img src='/gm/im/loadingAnimation.gif' /></div>");TB_load_position();var baseURL=url.match(/(.+)?/)[1] || url;var imageURL=/\.(jpe?g|png|gif|bmp)/gi;if ( baseURL.match(imageURL) ){var dummy={caption: "", url: "", html: ""};var prev=dummy,
next=dummy,
imageCount="";if ( rel ){function getInfo(image, id, label){return{caption: image.title,
url: image.href,
html: "<span id='TB_"+id+"'>&nbsp;&nbsp;<a href='#'>"+label+"</a></span>"
}}
var imageGroup=$("a[@rel="+rel+"]").get();var foundSelf=false;for (var i=0; i < imageGroup.length; i++){var image=imageGroup[i];var urlTypeTemp=image.href.match(imageURL);if ( image.href==url ){foundSelf=true;imageCount="Image "+(i+1)+" of "+(imageGroup.length);}else{
if ( foundSelf ){next=getInfo(image, "next", "Next &gt;");break;}else{
prev=getInfo(image, "prev", "&lt; Prev");}}}}
imgPreloader=new Image();imgPreloader.onload=function(){imgPreloader.onload=null;var pagesize=TB_getPageSize();var x=pagesize[0] - 150;var y=pagesize[1] - 150;var imageWidth=imgPreloader.width;var imageHeight=imgPreloader.height;if (imageWidth > x){imageHeight=imageHeight * (x / imageWidth);imageWidth=x;if (imageHeight > y){imageWidth=imageWidth * (y / imageHeight);imageHeight=y;}}else if (imageHeight > y){imageWidth=imageWidth * (y / imageHeight);imageHeight=y;if (imageWidth > x){imageHeight=imageHeight * (x / imageWidth);imageWidth=x;}}
TB_WIDTH=imageWidth+30;TB_HEIGHT=imageHeight+60;$("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>"+"<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>"+imageCount+prev.html+next.html+"</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div>");$("#TB_closeWindowButton").click(TB_remove);function buildClickHandler(image){return function(){$("#TB_window").remove();$("body").append("<div id='TB_window'></div>");TB_show(image.caption, image.url, rel);return false;};}
var goPrev=buildClickHandler(prev);var goNext=buildClickHandler(next);if ( prev.html ){$("#TB_prev").click(goPrev);}
if ( next.html ){$("#TB_next").click(goNext);}
document.onkeydown=function(e){if (e==null){keycode=event.keyCode;}else{keycode=e.which;}
switch(keycode){case 27:
TB_remove();break;case 190:
if( next.html ){document.onkeydown=null;goNext();}
break;case 188:
if( prev.html ){document.onkeydown=null;goPrev();}
break;}}
TB_position();$("#TB_load").remove();$("#TB_ImageOff").click(TB_remove);$("#TB_window").css({display:"block"});}
imgPreloader.src=url;}else{
var queryString=url.match(/\?(.+)/)[1];var params=TB_parseQuery( queryString );TB_WIDTH=(params['width']*1)+30;TB_HEIGHT=(params['height']*1)+40;var ajaxContentW=TB_WIDTH - 30,
ajaxContentH=TB_HEIGHT - 45;if(url.indexOf('TB_iframe') !=-1){urlNoQuery=url.split('TB_');$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent' style='width:"+(ajaxContentW+29)+"px;height:"+(ajaxContentH+17)+"px;' onload='TB_showIframe()'> </iframe>");}else{$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");}
$("#TB_closeWindowButton").click(TB_remove);if(url.indexOf('TB_inline') !=-1){$("#TB_ajaxContent").html($('#'+params['inlineId']).html());TB_position();$("#TB_load").remove();$("#TB_window").css({display:"block"});}else if(url.indexOf('TB_iframe') !=-1){TB_position();if(frames['TB_iframeContent']==undefined){/* be nice to safari */
$("#TB_load").remove();$("#TB_window").css({display:"block"});$(document).keyup( function(e){var key=e.keyCode; if(key==27){TB_remove()}});}}else{$("#TB_ajaxContent").load(url, function(){TB_position();$("#TB_load").remove();$("#TB_window").css({display:"block"});});}}
$(window).resize(TB_position);document.onkeyup=function(e){if (e==null){keycode=event.keyCode;}else{keycode=e.which;}
if(keycode==27){TB_remove();}}}
function TB_showIframe(){$("#TB_load").remove();$("#TB_window").css({display:"block"});}
function TB_remove(){$("#TB_imageOff").unbind("click");$("#TB_overlay").unbind("click");$("#TB_closeWindowButton").unbind("click");$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').remove();});$("#TB_load").remove();return false;}
function TB_position(){var pagesize=TB_getPageSize();var arrayPageScroll=TB_getPageScrollTop();var style={width: TB_WIDTH, left: (arrayPageScroll[0]+(pagesize[0] - TB_WIDTH)/2), top: (arrayPageScroll[1]+(pagesize[1]-TB_HEIGHT)/2)};$("#TB_window").css(style);}
function TB_overlaySize(){if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX){yScroll=window.innerHeight+window.scrollMaxY;xScroll=window.innerWidth+window.scrollMaxX;var deff=document.documentElement;var wff=(deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;var hff=(deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;xScroll -=(window.innerWidth - wff);yScroll -=(window.innerHeight - hff);}else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){yScroll=document.body.scrollHeight;xScroll=document.body.scrollWidth;}else{yScroll=document.body.offsetHeight;xScroll=document.body.offsetWidth;}
$("#TB_overlay").css({"height": yScroll, "width": xScroll});$("#TB_HideSelect").css({"height": yScroll,"width": xScroll});}
function TB_load_position(){var pagesize=TB_getPageSize();var arrayPageScroll=TB_getPageScrollTop();$("#TB_load")
.css({left: (arrayPageScroll[0]+(pagesize[0] - 100)/2), top: (arrayPageScroll[1]+((pagesize[1]-100)/2))})
.css({display:"block"});}
function TB_parseQuery ( query ){
if( !query )
return{};var params={};var pairs=query.split(/[;&]/);for ( var i=0; i < pairs.length; i++){var pair=pairs[i].split('=');if ( !pair || pair.length !=2 )
continue;params[unescape(pair[0])]=unescape(pair[1]).replace(/\+/g, ' ');}
return params;}
function TB_getPageScrollTop(){var yScrolltop;var xScrollleft;if (self.pageYOffset || self.pageXOffset){yScrolltop=self.pageYOffset;xScrollleft=self.pageXOffset;}else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){yScrolltop=document.documentElement.scrollTop;xScrollleft=document.documentElement.scrollLeft;}else if (document.body){/* all other Explorers */
yScrolltop=document.body.scrollTop;xScrollleft=document.body.scrollLeft;}
arrayPageScroll=new Array(xScrollleft,yScrolltop) 
return arrayPageScroll;}
function TB_getPageSize(){var de=document.documentElement;var w=window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;var h=window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight
arrayPageSize=new Array(w,h) 
return arrayPageSize;}
jQuery.fn._height=jQuery.fn.height;jQuery.fn._width=jQuery.fn.width;jQuery.fn.height=function(){if ( this[0]==window )
return self.innerHeight ||
jQuery.boxModel && document.documentElement.clientHeight ||
document.body.clientHeight;if ( this[0]==document ) 
return Math.max( document.body.scrollHeight, document.body.offsetHeight );return this._height(arguments[0]);};jQuery.fn.width=function(){if ( this[0]==window )
return self.innerWidth ||
jQuery.boxModel && document.documentElement.clientWidth ||
document.body.clientWidth;if ( this[0]==document )
return Math.max( document.body.scrollWidth, document.body.offsetWidth );return this._width(arguments[0]);};jQuery.fn.innerHeight=function(){return this[0]==window || this[0]==document ?
this.height() :
this.css('display') !='none' ?
this[0].offsetHeight - (parseInt(this.css("borderTopWidth")) || 0) - (parseInt(this.css("borderBottomWidth")) || 0) :
this.height()+(parseInt(this.css("paddingTop")) || 0)+(parseInt(this.css("paddingBottom")) || 0);};jQuery.fn.innerWidth=function(){return this[0]==window || this[0]==document ?
this.width() :
this.css('display') !='none' ?
this[0].offsetWidth - (parseInt(this.css("borderLeftWidth")) || 0) - (parseInt(this.css("borderRightWidth")) || 0) :
this.height()+(parseInt(this.css("paddingLeft")) || 0)+(parseInt(this.css("paddingRight")) || 0);};jQuery.fn.outerHeight=function(){return this[0]==window || this[0]==document ?
this.height() :
this.css('display') !='none' ?
this[0].offsetHeight :
this.height()+(parseInt(this.css("borderTopWidth")) || 0)+(parseInt(this.css("borderBottomWidth")) || 0)
+(parseInt(this.css("paddingTop")) || 0)+(parseInt(this.css("paddingBottom")) || 0);};jQuery.fn.outerWidth=function(){return this[0]==window || this[0]==document ?
this.width() :
this.css('display') !='none' ?
this[0].offsetWidth :
this.height()+(parseInt(this.css("borderLeftWidth")) || 0)+(parseInt(this.css("borderRightWidth")) || 0)
+(parseInt(this.css("paddingLeft")) || 0)+(parseInt(this.css("paddingRight")) || 0);};jQuery.fn.scrollLeft=function(){if ( this[0]==window || this[0]==document )
return self.pageXOffset ||
jQuery.boxModel && document.documentElement.scrollLeft ||
document.body.scrollLeft;return this[0].scrollLeft;};jQuery.fn.scrollTop=function(){if ( this[0]==window || this[0]==document )
return self.pageYOffset ||
jQuery.boxModel && document.documentElement.scrollTop ||
document.body.scrollTop;return this[0].scrollTop;};jQuery.fn.offset=function(options, returnObject){var x=0, y=0, elem=this[0], parent=this[0], op, sl=0, st=0, options=jQuery.extend({margin: true, border: true, padding: false, scroll: true}, options ||{});do{x+=parent.offsetLeft || 0;y+=parent.offsetTop  || 0;if (jQuery.browser.mozilla || jQuery.browser.msie){
var bt=parseInt(jQuery.css(parent, 'borderTopWidth')) || 0;var bl=parseInt(jQuery.css(parent, 'borderLeftWidth')) || 0;x+=bl;y+=bt;if (jQuery.browser.mozilla && parent !=elem && jQuery.css(parent, 'overflow') !='visible'){x+=bl;y+=bt;}}
if (options.scroll){
op=parent.offsetParent;do{sl+=parent.scrollLeft || 0;st+=parent.scrollTop  || 0;parent=parent.parentNode;if (jQuery.browser.mozilla && parent !=elem && parent !=op && jQuery.css(parent, 'overflow') !='visible'){y+=parseInt(jQuery.css(parent, 'borderTopWidth')) || 0;x+=parseInt(jQuery.css(parent, 'borderLeftWidth')) || 0;}}while (parent !=op);}else
parent=parent.offsetParent;if (parent && (parent.tagName=='BODY' || parent.tagName=='HTML')){
if (jQuery.browser.safari && jQuery.css(parent, 'position') !='absolute'){x+=parseInt(jQuery.css(op, 'marginLeft')) || 0;y+=parseInt(jQuery.css(op, 'marginTop'))  || 0;}
break;}}while (parent);if ( !options.margin){x -=parseInt(jQuery.css(elem, 'marginLeft')) || 0;y -=parseInt(jQuery.css(elem, 'marginTop'))  || 0;}
if ( options.border && (jQuery.browser.safari || jQuery.browser.opera) ){x+=parseInt(jQuery.css(elem, 'borderLeftWidth')) || 0;y+=parseInt(jQuery.css(elem, 'borderTopWidth'))  || 0;}else if ( !options.border && !(jQuery.browser.safari || jQuery.browser.opera) ){x -=parseInt(jQuery.css(elem, 'borderLeftWidth')) || 0;y -=parseInt(jQuery.css(elem, 'borderTopWidth'))  || 0;}
if ( options.padding ){x+=parseInt(jQuery.css(elem, 'paddingLeft')) || 0;y+=parseInt(jQuery.css(elem, 'paddingTop'))  || 0;}
if (options.scroll && jQuery.browser.opera && jQuery.css(elem, 'display')=='inline'){sl -=elem.scrollLeft || 0;st -=elem.scrollTop  || 0;}
var returnValue=options.scroll ?{top: y - st, left: x - sl, scrollTop:  st, scrollLeft: sl}
:{top: y, left: x};if (returnObject){jQuery.extend(returnObject, returnValue); return this;}
else{return returnValue;}};

// jQuery autocomplete Copyright Dylan Verheul <dylan@dyve.net> Licensed like jQuery, see http://docs.jquery.com/License
$.autocomplete=function(input, options){
var me=this;var $input=$(input).attr("autocomplete", "off");;if (options.inputClass) $input.addClass(options.inputClass);var results=document.createElement("div");var $results=$(results);var pos=findPos(input);$results.hide().addClass(options.resultsClass).css({position: "absolute",
top: (pos.y+input.offsetHeight)+"px",
left: pos.x+"px"
});$("body").append(results);input.autocompleter=me;input.lastSelected=$input.val();var timeout=null;var prev="";var active=-1;var cache={};var keyb=false;$input
.keydown(function(e){switch(e.keyCode){case 38: 
e.preventDefault();moveSelect(-1);break;case 40: 
e.preventDefault();moveSelect(1);break;case 9:  
case 13: 
if (selectCurrent()){e.preventDefault();}
break;default:
active=-1;if (timeout) clearTimeout(timeout);timeout=setTimeout(onChange, options.delay);break;}})
.blur(function(){hideResults();});hideResultsNow();function onChange(){var v=$input.val();if (v==prev) return;prev=v;if (v.length >=options.minChars){$input.addClass(options.loadingClass);requestData(v);}else{$input.removeClass(options.loadingClass);$results.hide();}};function moveSelect(step){var lis=$("li", results);if (!lis) return;active+=step;if (active < 0){active=0;}else if (active >=lis.size()){active=lis.size() - 1;}
lis.removeClass("over");$(lis[active]).addClass("over");};function selectCurrent(){var li=$("li.over", results)[0];if (!li){var $li=$("li", results);if (options.selectOnly){if ($li.length==1) li=$li[0];}else if (options.selectFirst){li=$li[0];}}
if (li){selectItem(li);return true;}else{return false;}};function selectItem(li){if (!li){li=document.createElement("li");li.extra=[];li.selectValue="";}
var v=$.trim(li.selectValue ? li.selectValue : li.innerHTML);input.lastSelected=v;prev=v;$results.html("");$input.val(v);hideResultsNow();if (options.onItemSelect) setTimeout(function(){options.onItemSelect(li)}, 1);};function hideResults(){if (timeout) clearTimeout(timeout);timeout=setTimeout(hideResultsNow, 200);};function hideResultsNow(){if (timeout) clearTimeout(timeout);$input.removeClass(options.loadingClass);if ($results.is(":visible")){$results.hide();}
if (options.mustMatch){var v=$input.val();if (v !=input.lastSelected){selectItem(null);}}};function receiveData(q, data){if (data){$input.removeClass(options.loadingClass);results.innerHTML="";if ($.browser.msie){
$results.append(document.createElement('iframe'));}
results.appendChild(dataToDom(data));$results.show();}else{hideResultsNow();}};function parseData(data){if (!data) return null;var parsed=[];var rows=data.split(options.lineSeparator);for (var i=0; i < rows.length; i++){var row=$.trim(rows[i]);if (row){parsed[parsed.length]=row.split(options.cellSeparator);}}
return parsed;};function dataToDom(data){var ul=document.createElement("ul");var num=data.length;for (var i=0; i < num; i++){var row=data[i];if (!row) continue;var li=document.createElement("li");if (options.formatItem){li.innerHTML=options.formatItem(row, i, num);li.selectValue=row[0];}else{li.innerHTML=row[0];}
var extra=null;if (row.length > 1){extra=[];for (var j=1; j < row.length; j++){extra[extra.length]=row[j];}}
li.extra=extra;ul.appendChild(li);$(li).hover(
function(){$("li", ul).removeClass("over"); $(this).addClass("over");},
function(){$(this).removeClass("over");}
).click(function(e){e.preventDefault(); e.stopPropagation(); selectItem(this)});}
return ul;};function requestData(q){if (!options.matchCase) q=q.toLowerCase();var data=options.cacheLength ? loadFromCache(q) : null;if (data){receiveData(q, data);}else{$.get(makeUrl(q), function(data){data=parseData(data)
addToCache(q, data);receiveData(q, data);});}};function makeUrl(q){var url=options.url+"?q="+q;for (var i in options.extraParams){url+="&"+i+"="+options.extraParams[i];}
return url;};function loadFromCache(q){if (!q) return null;if (cache[q]) return cache[q];if (options.matchSubset){for (var i=q.length - 1; i >=options.minChars; i--){var qs=q.substr(0, i);var c=cache[qs];if (c){var csub=[];for (var j=0; j < c.length; j++){var x=c[j];var x0=x[0];if (matchSubset(x0, q)){csub[csub.length]=x;}}
return csub;}}}
return null;};function matchSubset(s, sub){if (!options.matchCase) s=s.toLowerCase();var i=s.indexOf(sub);if (i==-1) return false;return i==0 || options.matchContains;};this.flushCache=function(){cache={};};this.setExtraParams=function(p){options.extraParams=p;};function addToCache(q, data){if (!data || !q || !options.cacheLength) return;if (!cache.length || cache.length > options.cacheLength){cache={};cache.length=1;}else if (!cache[q]){cache.length++;}
cache[q]=data;};function findPos(obj){var curleft=obj.offsetLeft || 0;var curtop=obj.offsetTop || 0;while (obj=obj.offsetParent){curleft+=obj.offsetLeft
curtop+=obj.offsetTop
}
return{x:curleft,y:curtop};}}
$.fn.autocomplete=function(url, options){
options=options ||{};options.url=url;options.inputClass=options.inputClass || "ac_input";options.resultsClass=options.resultsClass || "ac_results";options.lineSeparator=options.lineSeparator || "\n";options.cellSeparator=options.cellSeparator || "|";options.minChars=options.minChars || 1;options.delay=options.delay || 400;options.matchCase=options.matchCase || 0;options.matchSubset=options.matchSubset || 1;options.matchContains=options.matchContains || 0;options.cacheLength=options.cacheLength || 1;options.mustMatch=options.mustMatch || 0;options.extraParams=options.extraParams ||{};options.loadingClass=options.loadingClass || "ac_loading";options.selectFirst=options.selectFirst || false;options.selectOnly=options.selectOnly || false;this.each(function(){var input=this;new $.autocomplete(input, options);});return this;}

