/* 
 * Titan - Javascript Web Framework
 * Version 1.0
 * Copyright 2009 Valio, Inc.
 * 
 * Visit the Titan website for more information and documentation:
 * http://www.titanproject.org
 *
 * ---------------------------------------------------------------------------
 *
 * CREDITS:
 *
 * Mike Osuna, Will Wilson, Drew Wilson
 *
 * ---------------------------------------------------------------------------
 *
 * LICENCE:
 *
 * Released under a MIT Licence: http://www.opensource.org/licenses/mit-license.php
 *
 */
(function($){var willChangeStack=[];var didChangeStack=[];function makeChain(target,keys,fn,origTarget,origPath){var key=keys.shift();if(keys.length>0){var nextTarget=$(target).attr(key);var reobserveOriginal=function(){$(origTarget).unobserve(origPath,fn);$(origTarget).observe(origPath,fn);fn();};var undoChainLink=function(){$(target).unbind(key+"-changed",reobserveOriginal);};if(nextTarget){$(target).bind(key+"-changed",reobserveOriginal);return[undoChainLink].concat(makeChain(nextTarget,keys,fn,origTarget,origPath));}}else{$(target).bind(key+"-changed",fn);}
return[];}
$.extend({willChangeValueForKey:function(obj,key){willChangeStack.push({obj:obj,key:key,val:$(obj).valueForKey(key)});},didChangeValueForKey:function(obj,key){var changed=willChangeStack.pop();if(changed.key!=key){console.log("Expected didChangeValueForKey: "+
changed.key+" but got "+key);}
didChangeStack.push(changed);if(willChangeStack.length==0){var changes=didChangeStack;didChangeStack=[];$(changes).each(function(){if($(this.obj).valueForKey(this.key)!==this.val){$(this.obj).trigger(this.key+"-changed",{oldValue:this.val,newValue:$(this.obj).valueForKey(this.key)});}});}},valueForKey:function(obj,key,value){if((value!=undefined)&&(obj.automaticallyNotifiesObserversForKey===undefined||obj.automaticallyNotifiesObserversForKey(key))){$.willChangeValueForKey(obj,key);}
var val;if($.isFunction(obj[key])){val=obj[key].call(obj,key,value);}else{if(value!=undefined){obj[key]=value;}
val=obj[key];}
if((value!=undefined)&&(obj.automaticallyNotifiesObserversForKey===undefined||obj.automaticallyNotifiesObserversForKey(key))){$.didChangeValueForKey(obj,key);}
return val;},valueForKeyPath:function(obj,path,value){var keys=path.split(".");var key;while(keys.length>1){key=keys.shift();obj=$(obj).valueForKey(key);if(obj==undefined){return undefined;}}
key=keys.shift();return $(obj).valueForKey(key,value);},observe:function(obj,path,fn){var keys=path.split(".");var chainKey=path.replace(/\./g,"_");chain=$(obj).data(chainKey,{});if(keys.length>1){var chain=$(obj).data(chainKey);var tmp=makeChain(obj,keys.slice(),fn,obj,path);chain[$.data(fn)]=tmp;}else{$(obj).bind(path+"-changed",fn);}
return fn;},unobserve:function(obj,path,fn){var keys=path.split(".");if(keys.length>1){var chainKey=path.replace(/\./g,"_");var chain=$(obj).data(chainKey);$(chain[$.data(fn)]).each(function(){this();});}else{$(obj).unbind(path+"-changed",fn);}
return fn;},connect:function(from,fromAttr,to,toAttr){var binding={from:from,to:to,fromAttr:fromAttr,toAttr:toAttr,updateTo:true,updateFrom:true};$(from).data(fromAttr+$.data(to)+toAttr,binding);binding.fromFn=$(from).observe(fromAttr,function(){if(binding.updateTo==false){binding.updateTo=true;binding.updateFrom=true;return;}
binding.updateFrom=false;$(to).valueForKeyPath(toAttr,$(from).valueForKeyPath(fromAttr));});binding.toFn=$(to).observe(toAttr,function(){if(binding.updateFrom==false){binding.updateTo=true;binding.updateFrom=true;return;}
binding.updateTo=false;$(from).valueForKeyPath(fromAttr,$(to).valueForKeyPath(toAttr));});binding.updateTo=false;$(from).valueForKeyPath(fromAttr,$(to).valueForKeyPath(toAttr));},disconnect:function(obj,fromAttr,to,toAttr){var binding=$(obj).data(fromAttr+$.data(to)+toAttr);binding.to.unobserve(toAttr,binding.toFn);binding.from.unobserve(fromAttr,binding.fromFn);}});$.fn.extend({valueForKey:function(key,value){if(value===undefined){return $.valueForKey(this[0],key);}
return this.each(function(){$.valueForKey(this,key,value);});},valueForKeyPath:function(path,value){if(value===undefined){return $.valueForKeyPath(this[0],path);}
return this.each(function(){$.valueForKeyPath(this,path,value);});},observe:function(path,fn){return this.each(function(){$.observe(this,path,fn);});},unobserve:function(path,fn){return this.each(function(){$.unobserve(this,path,fn);});},connect:function(attr,to,toAttr){return this.each(function(){$.connect(this,attr,to,toAttr);});},disconnect:function(attr,to,toAttr){return this.each(function(){$.disconnect(this,attr,to,toAttr);});}});})(jQuery);(function($){$.serialize=function(object){var values=[];var prefix='';values=$.serialize.recursive_serialize(object,values,prefix);param_string=values.join('&');return param_string;};$.serialize.recursive_serialize=function(object,values,prefix){var key;for(key in object){if(typeof object[key]=='object'){if(prefix.length>0){prefix+='['+key+']';}else{prefix+=key;}
values=$.serialize.recursive_serialize(object[key],values,prefix);prefixes=prefix.split('[');if(prefixes.length>1){prefix=prefixes.slice(0,prefixes.length-1).join('[');}else{prefix=prefixes[0];}}else{value=encodeURIComponent(object[key]);if(prefix.length>0){prefixed_key=prefix+'['+key+']';}else{prefixed_key=key;}
prefixed_key=encodeURIComponent(prefixed_key);if(value)values.push(prefixed_key+'='+value);}}
return values;};})(jQuery);(function($){$.controller={defaults:{},array:function(model,conditions){if(this.constructor==$.controller.array){var that=this;this.model=model;if(conditions){this.conditions=conditions;if(conditions.noRetrieve){var noRetrieve=conditions.noRetrieve;delete conditions.noRetrieve;}
if(conditions.master){this.master=conditions.master[0];this.attr=conditions.master[1];if(this.master){delete this.conditions.master;$(this.master).observe("selection",function(){if(!conditions.noRetrieve){that.retrieve();}});}}
if(conditions.paginate){var defaults={perPage:10,numberLimit:10,overlap:false,startPage:1}
var opts=$.extend(defaults,conditions.paginate);this.paginating=true;this.paginate=conditions.paginate;this.perPage=opts.perPage;this.numberLimit=opts.numberLimit;this._page=opts.startPage;(opts.overlap!==false)?this.overlap=opts.overlap:this.overlap=0;delete this.conditions.paginate;}}
if(!noRetrieve){this.retrieve();}}else{return new $.controller.array(model,conditions);}},object:function(){if(this.constructor==$.controller.object){}else{return new $.controller.object();}},create:function(model,obj,options){var that=this;var data={};if(model){data=obj;data=$.serialize(data);}else{data=obj;}
$.ajax($.extend({url:$.controller.defaults.url+"/"+model,data:data,type:"POST"},options));},destroy:function(model,id,options){var data={};data={id:id};$.ajax($.extend({url:$.controller.defaults.url+"/"+model+"?"+$.serialize(data),type:"DELETE"},options));},update:function(model,obj,options){var data={};data=obj;$.ajax($.extend({url:$.controller.defaults.url+"/"+model,data:$.serialize(data),contentType:"application/json",type:"PUT"},options));},retrieve:function(model,conditions,options){var that=this;var data={};if(conditions&&conditions!={}){data=$.serialize(conditions);}
$.ajax($.extend({url:$.controller.defaults.url+"/"+model,contentType:"application/json",dataType:"json",type:"GET",data:data},options));},count:0};$.extend($.controller.array.prototype,{root:"",page:function(value){if(value!==undefined){this._page=value;this.retrieve();}
return this._page;},create:function(obj){var that=this;$.controller.create(that.model,obj,{success:function(data){that.retrieve();}});},destroy:function(id){var that=this;$.controller.destroy(that.model,id,{success:function(data){that.retrieve();}});},update:function(obj,options){var that=this;var defaults={autoRetrieve:true,complete:function(){}};options=$.extend(defaults,options);$.controller.update(that.model,obj,{success:function(data){if(options.autoRetrieve){that.retrieve();}
if(options.complete){options.complete.call(this);}}});},retrieve:function(opts){var that=this;var conditions={};if(!opts){opts={};}
function onSuccess(data){if(opts.success){opts.success.call(this,data);}
that.count=parseInt(data.count);data=data.items;that._last_id=undefined;var found=false;if(that._last_id){$(data).each(function(){if(that._last_id==this.id){found=true;$(that).valueForKey("selection",this);return false;}});if(!found&&data.length>0){$(that).valueForKey("selection",data[0]);}}else{$.willChangeValueForKey(that,"selection");that.selection=undefined;$.didChangeValueForKey(that,"selection");}
if(that.paginating){var extra=that.overlap*(that.count/that.perPage);var total=that.count+extra;that.pages=Math.round((total/that.perPage)+0.5);if(((that.pages-1)*that.perPage)-(that.overlap*(that.pages-2))==that.count&&that.pages>1){that.pages=that.pages-1;}
that.offset=(that._page-1)*(that.perPage-that.overlap);$.fn.rearrange.offset=that.offset;$(that.paginate.selector).pager(that);}
$(that).valueForKey("contents",data);}
if(that.master){var selection=$(that.master).valueForKey("selection");if(selection){if(that.master_last_id!=$(selection).valueForKey("id")){that._page=1;}
conditions[that.attr]=$(selection).valueForKey("id");that.master_last_id=$(selection).valueForKey("id");}else{$(that).valueForKey("contents",[]);return;}}
if($(that).valueForKey("selection")!==undefined){that._last_id=$(that).valueForKeyPath("selection.id");}
conditions=$.extend(conditions,this.conditions);if(this.paginating){that.offset=(that._page-1)*(that.perPage-that.overlap);conditions['limit']=that.perPage;conditions['offset']=that.offset;$.controller.retrieve(that.model,conditions,{success:onSuccess});}else{$.controller.retrieve(that.model,conditions,{success:onSuccess});}}});})(jQuery);(function($){$.template=function(root,controller,options){var tpl=this;var defaults={};tpl.root=root;tpl.pristine=$(root).cloneTemplate(true)[0];tpl.contents=[];tpl.controller=controller;this.options=$.extend(defaults,options);$(tpl).observe("contents",function(){tpl.render();});$(this).connect("contents",controller,"contents");}
$.template.prefix="ti_";$.template.defaultRender=function(elem,data){$(elem).data("data",data);if($(elem).data("format")&&!$(elem).data("formatExtend")){return $(elem).data("format").call(this,elem,data);}else{if($(elem).data("formatExtend")){$(elem).data("formatExtend").call(this,elem,data);}
var classes=elem.className.split(/\s+/);var prefix=new RegExp("^"+$.template.prefix);for(var i=0;i<classes.length;i++){if(prefix.test(classes[i])){var curData=data[classes[i].replace(prefix,"")];if(curData!=undefined){if(curData.constructor==Array){var tmp=$("<div></div>");$(curData).each(function(){$(tmp).append($.visit($(elem).cloneTemplate(true)[0],this,$.template.defaultRender));});$(elem).empty();$(elem).append($(tmp).contents());return false;}else{var flat=classes.toString();if(/opt_text/.test(classes)){$(elem).text(curData);}else if(/opt_append/.test(classes)){$(elem).append(curData);}else if(/opt_prepend/.test(classes)){$(elem).prepend(curData);}else if(!/opt_no_html/.test(classes)){$(elem).html(curData);}
return true;}}}}
return true;}},$.template.prototype={deactivate:function(root){if(this.children){$(this.children).each(function(){this.deactivate(false);});}
if(!root){$(this).disconnect("contents",this.controller,"contents");delete this.controller;}},render:function(){var tpl=this;var contents=$(tpl).valueForKey("contents");if(contents){$(tpl.root).empty();$(contents).each(function(i){$(tpl.root).append($.visit($(tpl.pristine).cloneTemplate(true)[0],this,$.template.defaultRender));});}
if(this.options.success){this.options.success();}}}
$.visit=function(root,data,fn){var func,start,current,next=null;current=start=root;do{if(current.nodeType==1){if(fn.call(this,current,data)){next=current.firstChild||current.nextSibling;}else{next=current.nextSibling;}}else{next=current.firstChild||current.nextSibling;}
var tmp=current;if(!next){var tmp=current;do{next=tmp.parentNode||start;if(next==start)break;tmp=next;next=next.nextSibling;}while(!next);}
current=next;}while(current!=start);return $(start).contents();}
$.fn.cloneTemplate=function(events){var ret=$(this).clone(events);var clone=ret.find("*").andSelf();$(this).find("*").andSelf().each(function(i){if(this.nodeType==3)
return;var format=$.data(this,"format");if(format){$.data(clone[i],"format",format);}
var formatExtend=$.data(this,"formatExtend");if(formatExtend){$.data(clone[i],"formatExtend",formatExtend);}});return ret;}
$.fn.format=function(fn){return $(this).data("format",fn);}
$.fn.formatExtend=function(fn){return $(this).data("formatExtend",fn);}
$.fn.template=function(controller,options){return this.each(function(){$(this).data("template",new $.template(this,controller,options))});}})(jQuery);(function($){$.fillIn=function(obj,data){obj=$.extend({},obj);for(attr in obj){if(obj[attr].constructor==Array){$(obj[attr]).each(function(){obj[attr]=$.fillIn(obj[attr],data);});}else if(typeof obj[attr]=="object"){obj[attr]=$.fillIn(obj[attr],data);}else if(typeof obj[attr]=="string"){obj[attr]=obj[attr].replace(/{([^{}]*)}/g,function(tag,name){var value=data[name];return typeof value==='string'||typeof value==='number'?value:tag;});}}
return obj;}})(jQuery);(function($){$.fn.hasData=function(key,value){var returnVal=false;var curData=$(this).data("data");if(curData){$.each(curData,function(objKey,objVal){if(value){if(key==objKey&&value==objVal){returnVal=true;}}else{if(key==objKey&&objVal!=""){returnVal=true;}}});}
return returnVal;}})(jQuery);(function($){function date(format,timestamp){var a,jsdate=((typeof(timestamp)=='undefined')?new Date():(typeof(timestamp)=='number')?new Date(timestamp*1000):new Date(timestamp));var pad=function(n,c){if((n=n+"").length<c){return new Array(++c-n.length).join("0")+n;}else{return n;}};var txt_weekdays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var txt_ordin={1:"st",2:"nd",3:"rd",21:"st",22:"nd",23:"rd",31:"st"};var txt_months=["","January","February","March","April","May","June","July","August","September","October","November","December"];var f={d:function(){return pad(f.j(),2);},D:function(){var t=f.l();return t.substr(0,3);},j:function(){return jsdate.getDate();},l:function(){return txt_weekdays[f.w()];},N:function(){return f.w()+1;},S:function(){return txt_ordin[f.j()]?txt_ordin[f.j()]:'th';},w:function(){return jsdate.getDay();},z:function(){return(jsdate-new Date(jsdate.getFullYear()+"/1/1"))/864e5>>0;},W:function(){var a=f.z(),b=364+f.L()-a;var nd2,nd=(new Date(jsdate.getFullYear()+"/1/1").getDay()||7)-1;if(b<=2&&((jsdate.getDay()||7)-1)<=2-b){return 1;}else{if(a<=2&&nd>=4&&a>=(6-nd)){nd2=new Date(jsdate.getFullYear()-1+"/12/31");return date("W",Math.round(nd2.getTime()/1000));}else{return(1+(nd<=3?((a+nd)/7):(a-(7-nd))/7)>>0);}}},F:function(){return txt_months[f.n()];},m:function(){return pad(f.n(),2);},M:function(){t=f.F();return t.substr(0,3);},n:function(){return jsdate.getMonth()+1;},t:function(){var n;if((n=jsdate.getMonth()+1)==2){return 28+f.L();}else{if(n&1&&n<8||!(n&1)&&n>7){return 31;}else{return 30;}}},L:function(){var y=f.Y();return(!(y&3)&&(y%1e2||!(y%4e2)))?1:0;},o:function(){if(f.n()===12&&f.W()===1){return jsdate.getFullYear()+1;}
if(f.n()===1&&f.W()>=52){return jsdate.getFullYear()-1;}
return jsdate.getFullYear();},Y:function(){return jsdate.getFullYear();},y:function(){return(jsdate.getFullYear()+"").slice(2);},a:function(){return jsdate.getHours()>11?"pm":"am";},A:function(){return f.a().toUpperCase();},B:function(){var off=(jsdate.getTimezoneOffset()+60)*60;var theSeconds=(jsdate.getHours()*3600)+
(jsdate.getMinutes()*60)+
jsdate.getSeconds()+off;var beat=Math.floor(theSeconds/86.4);if(beat>1000)beat-=1000;if(beat<0)beat+=1000;if((String(beat)).length==1)beat="00"+beat;if((String(beat)).length==2)beat="0"+beat;return beat;},g:function(){return jsdate.getHours()%12||12;},G:function(){return jsdate.getHours();},h:function(){return pad(f.g(),2);},H:function(){return pad(jsdate.getHours(),2);},i:function(){return pad(jsdate.getMinutes(),2);},s:function(){return pad(jsdate.getSeconds(),2);},u:function(){return pad(jsdate.getMilliseconds()*1000,6);},I:function(){var DST=(new Date(jsdate.getFullYear(),6,1,0,0,0));DST=DST.getHours()-DST.getUTCHours();var ref=jsdate.getHours()-jsdate.getUTCHours();return ref!=DST?1:0;},O:function(){var t=pad(Math.abs(jsdate.getTimezoneOffset()/60*100),4);if(jsdate.getTimezoneOffset()>0)t="-"+t;else t="+"+t;return t;},P:function(){var O=f.O();return(O.substr(0,3)+":"+O.substr(3,2));},Z:function(){var t=-jsdate.getTimezoneOffset()*60;return t;},c:function(){return f.Y()+"-"+f.m()+"-"+f.d()+"T"+f.h()+":"+f.i()+":"+f.s()+f.P();},r:function(){return f.D()+', '+f.d()+' '+f.M()+' '+f.Y()+' '+f.H()+':'+f.i()+':'+f.s()+' '+f.O();},U:function(){return Math.round(jsdate.getTime()/1000);}};return format.replace(/[\\]?([a-zA-Z])/g,function(t,s){if(t!=s){ret=s;}else if(f[s]){ret=f[s]();}else{ret=s;}
return ret;});}
$.formatDate=function(format,prop,tzoffset){return function(elem,data){var ca=$(data).valueForKey(prop);if(ca==undefined||ca==""){$(elem).html("");}else{var m=ca.match(/(\d{4})-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/);var t=new Date(m[1],m[2]-1,m[3],m[4],m[5],m[6]);var tz=0;if(tzoffset){tz=t.getTimezoneOffset()*60;}
t=(t.getTime()*0.001)-tz;$(elem).html(date(format,t));}}}
$.fn.formatDate=function(format,prop,tzoffset){return $(this).format($.formatDate(format,prop,tzoffset));}
function number_format(number,decimals,dec_point,thousands_sep){var n=number,prec=decimals,dec=dec_point,sep=thousands_sep;n=!isFinite(+n)?0:+n;prec=!isFinite(+prec)?0:Math.abs(prec);sep=sep==undefined?',':sep;var s=n.toFixed(prec),abs=Math.abs(n).toFixed(prec),_,i;if(abs>1000){_=abs.split(/\D/);i=_[0].length%3||3;_[0]=s.slice(0,i+(n<0))+
_[0].slice(i).replace(/(\d{3})/g,sep+'$1');s=_.join(dec||'.');}else{s=abs.replace('.',dec_point);}
return s;}
$.fn.formatNumber=function(number,options){var defaults={decimals:0,decPoint:".",thousandsSep:""};var opts=$.extend(defaults,options);return $(this).format(function(elem,data){var val=$(data).valueForKey(number);decimals=opts.decimals;decPoint=opts.decPoint;thousandsSep=opts.thousandsSep;if(val==undefined||val==""){$(elem).html("");}else{$(elem).html(number_format(val,decimals,decPoint,thousandsSep));}});}
$.fn.formatLink=function(text,href,options){var defaults={title:"",className:"",target:""};return $(this).format(function(elem,data){var opts=$.extend(defaults,{text:text,href:href},options);opts=$.fillIn(opts,data);$(elem).text(opts.text);$(elem).attr("href",opts.href);if(opts.title!=""){$(elem).attr("title",opts.title);}
if(opts.className!=""){$(elem).addClass(opts.className);}
if(opts.target!=""){$(elem).attr("target",opts.target);}});}
$.fn.formatForm=function(controller,options){return $(this).format(function(elem,data){$(elem).submit(function(event){event.preventDefault();var data=$(elem).serialize();if(options){data=data+"&"+$.serialize(options);}
$.controller.create(false,data,{success:function(){controller.retrieve();}});});});}
$.objCount=function(obj){var count=0;for(k in obj)if(obj.hasOwnProperty(k))count++;return count;}
$.ajaxq=function(queue,options){if(typeof document.ajaxq=="undefined")document.ajaxq={q:{},r:null};if(typeof document.ajaxq.q[queue]=="undefined")document.ajaxq.q[queue]=[];if(typeof options!="undefined"){var optionsCopy={};for(var o in options)optionsCopy[o]=options[o];options=optionsCopy;var originalCompleteCallback=options.complete;options.complete=function(request,status){document.ajaxq.q[queue].shift();document.ajaxq.r=null;if(originalCompleteCallback)originalCompleteCallback(request,status);if(document.ajaxq.q[queue].length>0)document.ajaxq.r=jQuery.ajax(document.ajaxq.q[queue][0]);};document.ajaxq.q[queue].push(options);if(document.ajaxq.q[queue].length==1)document.ajaxq.r=jQuery.ajax(options);}else{if(document.ajaxq.r){document.ajaxq.r.abort();document.ajaxq.r=null;}document.ajaxq.q[queue]=[];}}})(jQuery);

/* 
 * Titan UI - Javascript Web Framework
 * Version 1.0
 * 
 * Visit the Titan website for more information and documentation:
 * http://www.titanproject.org
 *
 * ---------------------------------------------------------------------------
 *
 * CREDITS:
 *
 * Mike Osuna, Will Wilson, Drew Wilson
 *
 * ---------------------------------------------------------------------------
 *
 * LICENCE:
 *
 * Released under a MIT Licence: http://www.opensource.org/licenses/mit-license.php
 *
 */
(function($){$.fn.rearrange=function(controller,options){return $(this).each(function(){var items;var container=this;var user_update;var autoRetrieve=true;var complete=function(){};var start=function(){};if(typeof controller=="string"){return $(this).sortable(controller,options);}
if(options){user_update=options.update;if(options.autoRetrieve!==undefined){autoRetrieve=options.autoRetrieve;delete options.autoRetrieve;}
if(options.complete!==undefined){complete=options.complete;delete options.complete;}
if(options.start!==undefined){start=options.start;delete options.start;}}
$(this).sortable($.extend(options,{update:function(event,ui){if(start){start.call(this);}
items=$(container).sortable('option','items');$(container).find(items).each(function(idx){if(this===ui.item[0]){controller.update({id:$(this).data("data").id,position:$.fn.rearrange.offset+idx},{autoRetrieve:autoRetrieve,complete:complete});}});if(user_update){user_update(event,ui);}}}));});}
$.fn.rearrange.offset=0;$.fn.pager=function(cntrl){var prefix=$.template.prefix;var that=this;$(cntrl).observe("contents",function(){var cntr=this;var curPage=cntr._page;$(that).find("."+prefix+"next").unbind();$(that).find("."+prefix+"prev").unbind();if(cntr._page<cntr.pages){$(that).find("."+prefix+"next").click(function(){cntr.page(parseInt(curPage)+1);return false;}).removeClass("disabled");}else{$(that).find("."+prefix+"next").click(function(){return false;}).addClass("disabled");}
if(cntr._page>1){$(that).find("."+prefix+"prev").click(function(){cntr.page(parseInt(cntr._page)-1);return false;}).removeClass("disabled");}else{$(that).find("."+prefix+"prev").click(function(){return false;}).addClass("disabled");}
if($(that).data(prefix+"numbers")==undefined){$(that).data(prefix+"numbers",$.trim($(that).find("."+prefix+"numbers").html()));}
var template=$($(that).data(prefix+"numbers"));var ti_num=(template.hasClass(prefix+"number")||template.find("."+prefix+"number").length);$(that).find("."+prefix+"numbers").html("");var start=1;if(cntr.pages>cntr.numberLimit){start=parseInt(cntr.numberLimit/2);if(start>cntr._page){start=1;}else{start=cntr._page-start;}}
var numLimit=parseInt(cntr.numberLimit)+start;for(var i,i=1;i<=cntr.pages;i++){if(i>=start-1&&numLimit>=i){var link=template.clone();if(!ti_num){link=link.find("."+prefix+"number");}
if((start>1&&i==(start-1))||numLimit==i){if(link.find("."+prefix+"number").length){var place=link.find("."+prefix+"number");if(place.attr("href")!=undefined){place.parent().html('<span class="'+prefix+'number_dots">...</span>');place.remove();}else{place.html('<span class="'+prefix+'number_dots">...</span>');}}else{link='<span class="'+prefix+'number_dots">...</span>';}}else{if(cntr._page==i){if(link.find("."+prefix+"number").length){var place=link.find("."+prefix+"number");if(place.attr("href")!=undefined){place.parent().html('<span class="'+prefix+'number_current">'+i+'</span>');place.remove();}else{place.html('<span class="'+prefix+'number_current">'+i+'</span>');}}else{link='<span class="'+prefix+'number_current">'+i+'</span>';}}else{if(link.find("."+prefix+"number").length){link.find("."+prefix+"number").text(i);}else{link.text(i);}
link.click((function(i2){return function(){cntr.page(i2);return false;}})(i));}}
$(that).find("."+prefix+"numbers").append(link);}}
var firstItem=(cntr.count==0)?0:cntr.offset+1
$(that).find("."+prefix+"item_start").text(firstItem)
var lastItem=((cntr.offset+cntr.perPage)<=cntr.count)?cntr.offset+cntr.perPage:cntr.count;$(that).find("."+prefix+"item_end").text(lastItem);$(that).find("."+prefix+"item_total").text(cntr.count);});}})(jQuery);

/* ===========================================================================
 *
 * JQuery URL Parser
 * Version 1.0
 * Parses URLs and provides easy access to information within them.
 *
 * Author: Mark Perkins
 * Author email: mark@allmarkedup.com
 *
 * For full documentation and more go to http://projects.allmarkedup.com/jquery_url_parser/
 *
 * ---------------------------------------------------------------------------
 *
 * CREDITS:
 *
 * Parser based on the Regex-based URI parser by Stephen Levithian.
 * For more information (including a detailed explaination of the differences
 * between the 'loose' and 'strict' pasing modes) visit http://blog.stevenlevithan.com/archives/parseuri
 *
 * ---------------------------------------------------------------------------
 *
 * LICENCE:
 *
 * Released under a MIT Licence. See licence.txt that should have been supplied with this file,
 * or visit http://projects.allmarkedup.com/jquery_url_parser/licence.txt
 *
 * ---------------------------------------------------------------------------
 */
 jQuery.url=function()
{var segments={};var parsed={};var options={url:window.location,strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};var parseUri=function()
{str=decodeURI(options.url);var m=options.parser[options.strictMode?"strict":"loose"].exec(str);var uri={};var i=14;while(i--){uri[options.key[i]]=m[i]||"";}
uri[options.q.name]={};uri[options.key[12]].replace(options.q.parser,function($0,$1,$2){if($1){uri[options.q.name][$1]=$2;}});return uri;};var key=function(key)
{if(!parsed.length)
{setUp();}
if(key=="base")
{if(parsed.port!==null&&parsed.port!=="")
{return parsed.protocol+"://"+parsed.host+":"+parsed.port+"/";}
else
{return parsed.protocol+"://"+parsed.host+"/";}}
return(parsed[key]==="")?null:parsed[key];};var param=function(item)
{if(!parsed.length)
{setUp();}
return(parsed.queryKey[item]===null)?null:parsed.queryKey[item];};var setUp=function()
{parsed=parseUri();getSegments();};var getSegments=function()
{var p=parsed.path;segments=[];segments=parsed.path.length==1?{}:(p.charAt(p.length-1)=="/"?p.substring(1,p.length-1):path=p.substring(1)).split("/");};return{setMode:function(mode)
{strictMode=mode=="strict"?true:false;return this;},setUrl:function(newUri)
{options.url=newUri===undefined?window.location:newUri;setUp();return this;},segment:function(pos)
{if(!parsed.length)
{setUp();}
if(pos===undefined)
{return segments.length;}
return(segments[pos]===""||segments[pos]===undefined)?null:segments[pos];},attr:key,param:param};}();

// COOKIE PLUGIN
// @author Klaus Hartl/klaus.hartl@stilbuero.de
jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;}
var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){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.toUTCString();}
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;}};

/* CUSTOMIZED FOR FIRERIFT
 * FancyBox - simple jQuery plugin for fancy image zooming
 * Examples and documentation at: http://fancy.klade.lv/
 * Version: 1.0.0 (29/04/2008)
 * Copyright (c) 2008 Janis Skarnelis
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/
(function($){var opts={},imgPreloader=new Image,imgTypes=['png','jpg','jpeg','gif'],loadingTimer,loadingFrame=1;$.fn.fancybox=function(settings){opts.settings=$.extend({},$.fn.fancybox.defaults,settings);$.fn.fancybox.init();return this.each(function(){var $this=$(this);var o=$.metadata?$.extend({},opts.settings,$this.metadata()):opts.settings;$this.unbind('click').click(function(){$.fn.fancybox.start(this,o);return false;});});};$.fn.fancybox.start=function(el,o){if(opts.animating)return false;if(o.overlayShow){$("#fancy_wrap").prepend('<div id="fancy_overlay"></div>');$("#fancy_overlay").css({'width':$(window).width(),'height':$(document).height(),'opacity':o.overlayOpacity});if($.browser.msie){$("#fancy_wrap").prepend('<iframe id="fancy_bigIframe" scrolling="no" frameborder="0"></iframe>');$("#fancy_bigIframe").css({'width':$(window).width(),'height':$(document).height(),'opacity':0});}
$("#fancy_overlay").click($.fn.fancybox.close);}
opts.itemArray=[];opts.itemNum=0;if(jQuery.isFunction(o.itemLoadCallback)){o.itemLoadCallback.apply(this,[opts]);var c=$(el).children("img:first").length?$(el).children("img:first"):$(el);var tmp={'width':c.width(),'height':c.height(),'pos':$.fn.fancybox.getPosition(c)}
for(var i=0;i<opts.itemArray.length;i++){opts.itemArray[i].o=$.extend({},o,opts.itemArray[i].o);if(o.zoomSpeedIn>0||o.zoomSpeedOut>0){opts.itemArray[i].orig=tmp;}}}else{if(!el.rel||el.rel==''){var item={url:el.href,title:el.title,o:o};if(o.zoomSpeedIn>0||o.zoomSpeedOut>0){var c=$(el).children("img:first").length?$(el).children("img:first"):$(el);item.orig={'width':c.width(),'height':c.height(),'pos':$.fn.fancybox.getPosition(c)}}
opts.itemArray.push(item);}else{var arr=$("a[@rel="+el.rel+"]").get();for(var i=0;i<arr.length;i++){var tmp=$.metadata?$.extend({},o,$(arr[i]).metadata()):o;var item={url:arr[i].href,title:arr[i].title,o:tmp};if(o.zoomSpeedIn>0||o.zoomSpeedOut>0){var c=$(arr[i]).children("img:first").length?$(arr[i]).children("img:first"):$(el);item.orig={'width':c.width(),'height':c.height(),'pos':$.fn.fancybox.getPosition(c)}}
if(arr[i].href==el.href)opts.itemNum=i;opts.itemArray.push(item);}}}
$.fn.fancybox.changeItem(opts.itemNum);};$.fn.fancybox.changeItem=function(n){$.fn.fancybox.showLoading();opts.itemNum=n;$("#fancy_nav").empty();$("#fancy_outer").stop();$("#fancy_title").hide();imgRegExp=imgTypes.join('|');imgRegExp=new RegExp('\.'+imgRegExp+'$','i');var url=opts.itemArray[n].url;if(url.match(/#/)){var target=window.location.href.split('#')[0];target=url.replace(target,'');$.fn.fancybox.showItem('<div id="fancy_div">'+$(target).html()+'</div>');$("#fancy_loading").hide();}else if(url.match(imgRegExp)){$(imgPreloader).unbind('load').bind('load',function(){$("#fancy_loading").hide();opts.itemArray[n].o.frameWidth=imgPreloader.width;opts.itemArray[n].o.frameHeight=imgPreloader.height;$.fn.fancybox.showItem('<img id="fancy_img" src="'+imgPreloader.src+'" />');}).attr('src',url+'?rand='+Math.floor(Math.random()*999999999));}else{if(!opts.itemArray[n].o.iframeScroll){opts.itemArray[n].o.iframeScroll="yes";}
if(opts.itemArray[n].o.iframeScroll=="no"){var scrolling=' scrolling="no"'}
$.fn.fancybox.showItem('<iframe id="fancy_frame" onload="$.fn.fancybox.showIframe()" name="fancy_iframe'+Math.round(Math.random()*1000)+'" frameborder="0" hspace="0" src="'+url+'"'+scrolling+'></iframe>');}};$.fn.fancybox.showIframe=function(){$("#fancy_loading").hide();$("#fancy_frame").show();};$.fn.fancybox.showItem=function(val){$.fn.fancybox.preloadNeighborImages();var viewportPos=$.fn.fancybox.getViewport();var itemSize=$.fn.fancybox.getMaxSize(viewportPos[0]-50,viewportPos[1]-100,opts.itemArray[opts.itemNum].o.frameWidth,opts.itemArray[opts.itemNum].o.frameHeight);var itemLeft=viewportPos[2]+Math.round((viewportPos[0]-itemSize[0])/2)-20;var itemTop=viewportPos[3]+Math.round((viewportPos[1]-itemSize[1])/2)-40;var itemOpts={'left':itemLeft,'top':itemTop,'width':itemSize[0]+'px','height':itemSize[1]+'px'}
if(opts.active){$('#fancy_content').fadeOut("normal",function(){$("#fancy_content").empty();$("#fancy_outer").animate(itemOpts,"normal",function(){$("#fancy_content").append($(val)).fadeIn("normal");$.fn.fancybox.updateDetails();});});}else{opts.active=true;$("#fancy_content").empty();if($("#fancy_content").is(":animated")){console.info('animated!');}
if(opts.itemArray[opts.itemNum].o.zoomSpeedIn>0){opts.animating=true;itemOpts.opacity="show";$("#fancy_outer").css({'top':opts.itemArray[opts.itemNum].orig.pos.top-18,'left':opts.itemArray[opts.itemNum].orig.pos.left-18,'height':opts.itemArray[opts.itemNum].orig.height,'width':opts.itemArray[opts.itemNum].orig.width});$("#fancy_content").append($(val)).show();$("#fancy_outer").animate(itemOpts,opts.itemArray[opts.itemNum].o.zoomSpeedIn,function(){opts.animating=false;$.fn.fancybox.updateDetails();});}else{$("#fancy_content").append($(val)).show();$("#fancy_outer").css(itemOpts).show();$.fn.fancybox.updateDetails();}}};$.fn.fancybox.updateDetails=function(){$("#fancy_bg,#fancy_close").show();if(opts.itemArray[opts.itemNum].title!==undefined&&opts.itemArray[opts.itemNum].title!==''){$('#fancy_title div').html(opts.itemArray[opts.itemNum].title);$('#fancy_title').show();}
if(opts.itemArray[opts.itemNum].o.hideOnContentClick){$("#fancy_content").click($.fn.fancybox.close);}else{$("#fancy_content").unbind('click');}
if(opts.itemNum!=0){$("#fancy_nav").append('<a id="fancy_left" href="javascript:;"></a>');$('#fancy_left').click(function(){$.fn.fancybox.changeItem(opts.itemNum-1);return false;});}
if(opts.itemNum!=(opts.itemArray.length-1)){$("#fancy_nav").append('<a id="fancy_right" href="javascript:;"></a>');$('#fancy_right').click(function(){$.fn.fancybox.changeItem(opts.itemNum+1);return false;});}};$.fn.fancybox.preloadNeighborImages=function(){if((opts.itemArray.length-1)>opts.itemNum){preloadNextImage=new Image();preloadNextImage.src=opts.itemArray[opts.itemNum+1].url;}
if(opts.itemNum>0){preloadPrevImage=new Image();preloadPrevImage.src=opts.itemArray[opts.itemNum-1].url;}};$.fn.fancybox.close=function(){if(opts.animating)return false;$(imgPreloader).unbind('load');$("#fancy_loading,#fancy_title,#fancy_close,#fancy_bg").hide();$("#fancy_nav").empty();opts.active=false;if(opts.itemArray[opts.itemNum].o.zoomSpeedOut>0){var itemOpts={'top':opts.itemArray[opts.itemNum].orig.pos.top-18,'left':opts.itemArray[opts.itemNum].orig.pos.left-18,'height':opts.itemArray[opts.itemNum].orig.height,'width':opts.itemArray[opts.itemNum].orig.width,'opacity':'hide'};opts.animating=true;$("#fancy_outer").animate(itemOpts,opts.itemArray[opts.itemNum].o.zoomSpeedOut,function(){$("#fancy_content").hide().empty();$("#fancy_overlay,#fancy_bigIframe").remove();opts.animating=false;});}else{$("#fancy_outer").hide();$("#fancy_content").hide().empty();$("#fancy_overlay,#fancy_bigIframe").fadeOut("fast").remove();}};$.fn.fancybox.showLoading=function(){clearInterval(loadingTimer);var pos=$.fn.fancybox.getViewport();$("#fancy_loading").css({'left':((pos[0]-40)/2+pos[2]),'top':((pos[1]-40)/2+pos[3])}).show();$("#fancy_loading").bind('click',$.fn.fancybox.close);loadingTimer=setInterval($.fn.fancybox.animateLoading,66);};$.fn.fancybox.animateLoading=function(el,o){if(!$("#fancy_loading").is(':visible')){clearInterval(loadingTimer);return;}
$("#fancy_loading > div").css('top',(loadingFrame*-40)+'px');loadingFrame=(loadingFrame+1)%12;};$.fn.fancybox.init=function(){if(!$('#fancy_wrap').length){$('<div id="fancy_wrap"><div id="fancy_loading"><div></div></div><div id="fancy_outer"><div id="fancy_inner"><div id="fancy_nav"></div><div id="fancy_close"></div><div id="fancy_content"></div><div id="fancy_title"></div></div></div></div>').appendTo("body");$('<div id="fancy_bg"><div class="fancy_bg fancy_bg_n"></div><div class="fancy_bg fancy_bg_ne"></div><div class="fancy_bg fancy_bg_e"></div><div class="fancy_bg fancy_bg_se"></div><div class="fancy_bg fancy_bg_s"></div><div class="fancy_bg fancy_bg_sw"></div><div class="fancy_bg fancy_bg_w"></div><div class="fancy_bg fancy_bg_nw"></div></div>').prependTo("#fancy_inner");$('<table cellspacing="0" cellpadding="0" border="0"><tr><td id="fancy_title_left"></td><td id="fancy_title_main"><div></div></td><td id="fancy_title_right"></td></tr></table>').appendTo('#fancy_title');}
if($.browser.msie){$("#fancy_inner").prepend('<iframe id="fancy_freeIframe" scrolling="no" frameborder="0"></iframe>');}
if(jQuery.fn.pngFix)$(document).pngFix();$("#fancy_close").click($.fn.fancybox.close);};$.fn.fancybox.getPosition=function(el){var pos=el.offset();pos.top+=$.fn.fancybox.num(el,'paddingTop');pos.top+=$.fn.fancybox.num(el,'borderTopWidth');pos.left+=$.fn.fancybox.num(el,'paddingLeft');pos.left+=$.fn.fancybox.num(el,'borderLeftWidth');return pos;};$.fn.fancybox.num=function(el,prop){return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;};$.fn.fancybox.getPageScroll=function(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
return[xScroll,yScroll];};$.fn.fancybox.getViewport=function(){var scroll=$.fn.fancybox.getPageScroll();return[$(window).width(),$(window).height(),scroll[0],scroll[1]];};$.fn.fancybox.getMaxSize=function(maxWidth,maxHeight,imageWidth,imageHeight){var r=Math.min(Math.min(maxWidth,imageWidth)/imageWidth,Math.min(maxHeight,imageHeight)/imageHeight);return[Math.round(r*imageWidth),Math.round(r*imageHeight)];};$.fn.fancybox.defaults={hideOnContentClick:false,zoomSpeedIn:500,zoomSpeedOut:500,frameWidth:600,frameHeight:400,overlayShow:false,overlayOpacity:0.4,itemLoadCallback:null};})(jQuery);

 /*
 * Image Centering
 * Copyright 2009 Drew Wilson
 * www.drewwilson.com
 *
 * Version 1   -   Updated: Jul. 12, 2009
 *
 * This Plug-In will center images inside of it's parent element.
 * By default it even scales each image up or down to fit inside it's parent element.
 *
 * This Fullsize jQuery plug-in is dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
(function($){$.fn.imgCenter=function(options){var defaults={parentSteps:0,scaleToFit:true,start:function(){},end:function(){}};var opts=$.extend(defaults,options);opts.start.call(this);var len=this.length-1;return this.each(function(i){var current=i;var org_image=$(this);org_image.hide();var theParent=org_image;for(var i=0;i<=opts.parentSteps;i++){theParent=theParent.parent();}
var parWidth=parseInt(theParent.width());var parHeight=parseInt(theParent.height());var parAspect=parWidth/parHeight;var imgWidth=parseInt(org_image.width());var imgHeight=parseInt(org_image.height());var imgAspect=imgWidth/imgHeight;if(parWidth!=imgWidth||parHeight!=imgHeight){theParent.css("overflow","hidden");if(opts.scaleToFit){if(parAspect>=1){org_image.css({"width":parWidth+"px"});imgWidth=parWidth;imgHeight=Math.round(imgWidth/imgAspect);if((parWidth/imgAspect)<parHeight){org_image.css({"height":parHeight+"px","width":"auto"});imgHeight=parHeight;imgWidth=Math.round(imgHeight*imgAspect);}}else{org_image.css({"height":parHeight+"px"});imgHeight=parHeight;imgWidth=Math.round(imgHeight*imgAspect);if((parHeight*imgAspect)<parWidth){org_image.css({"width":parWidth+"px","height":"auto"});imgWidth=parWidth;imgHeight=Math.round(imgWidth/imgAspect);}}
if(imgWidth>parWidth){org_image.css({"margin-left":"-"+Math.round((imgWidth-parWidth)/2)+"px"});}
if(imgHeight>parHeight){org_image.css({"margin-top":"-"+Math.round((imgHeight-parHeight)/2)+"px"});}}else{if(imgWidth>parWidth){org_image.css({"margin-left":"-"+Math.round((imgWidth-parWidth)/2)+"px"});}else if(imgWidth<parWidth){org_image.css({"margin-left":Math.round((parWidth-imgWidth)/2)+"px"});}
if(imgHeight>parHeight){org_image.css({"margin-top":"-"+Math.round((imgHeight-parHeight)/2)+"px"});}else if(imgHeight<parHeight){org_image.css({"margin-top":Math.round((parHeight-imgHeight)/2)+"px"});}}
if(current==len){opts.end.call(this);}}
org_image.show();});}})(jQuery);

/* Color picker
 * Author: Stefan Petre www.eyecon.ro
 */
 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(d($){q 1q=d(){q 3d={},3e,22=2Z,3f,2E=\'<n N="p"><n N="2J"><n><n></n></n></n><n N="21"><n></n></n><n N="2L"></n><n N="36"></n><n N="3g"><11 1k="1i" 1h="6" 1b="6" /></n><n N="3c 1m"><11 1k="1i" 1h="3" 1b="3" /><P></P></n><n N="3h 1m"><11 1k="1i" 1h="3" 1b="3" /><P></P></n><n N="3b 1m"><11 1k="1i" 1h="3" 1b="3" /><P></P></n><n N="3t 1m"><11 1k="1i" 1h="3" 1b="3" /><P></P></n><n N="3p 1m"><11 1k="1i" 1h="3" 1b="3" /><P></P></n><n N="3q 1m"><11 1k="1i" 1h="3" 1b="3" /><P></P></n><n N="34"></n></n>\',2G={31:\'2Y\',2x:d(){},2z:d(){},2r:d(){},2V:d(){},2d:d(){},A:\'3s\',1D:1o,20:T},1p=d(e,7){q 9=1z(e);$(7).a(\'p\').K.J(1).E(9.r).14().J(2).E(9.g).14().J(3).E(9.b).14()},1Q=d(e,7){$(7).a(\'p\').K.J(4).E(e.h).14().J(5).E(e.s).14().J(6).E(e.b).14()},1n=d(e,7){$(7).a(\'p\').K.J(0).E(1d(e)).14()},1N=d(e,7){$(7).a(\'p\').23.1a(\'26\',\'#\'+1d({h:e.h,s:L,b:L}));$(7).a(\'p\').2Q.1a({15:I(R*e.s/L,10),X:I(R*(L-e.b)/L,10)})},1P=d(e,7){$(7).a(\'p\').2O.1a(\'X\',I(R-R*e.h/1s,10))},1O=d(e,7){$(7).a(\'p\').2M.1a(\'26\',\'#\'+1d(e))},1L=d(e,7){$(7).a(\'p\').2K.1a(\'26\',\'#\'+1d(e))},2C=d(c){q 1R=c.3o||c.3n||-1;j((1R>22&&1R<=3j)||1R==32){B T}q 7=$(f).G().G();j(7.a(\'p\').1D===1o){18.Z(f)}},18=d(c){q 7=$(f).G().G(),k;j(f.1f.1F.1u(\'2W\')>0){7.a(\'p\').A=k=1T(2f(f.3k))}C j(f.1f.1F.1u(\'2p\')>0){7.a(\'p\').A=k=1U({h:I(7.a(\'p\').K.J(4).E(),10),s:I(7.a(\'p\').K.J(5).E(),10),b:I(7.a(\'p\').K.J(6).E(),10)})}C{7.a(\'p\').A=k=1I(2g({r:I(7.a(\'p\').K.J(1).E(),10),g:I(7.a(\'p\').K.J(2).E(),10),b:I(7.a(\'p\').K.J(3).E(),10)}))}j(c){1p(k,7.x(0));1n(k,7.x(0));1Q(k,7.x(0))}1N(k,7.x(0));1P(k,7.x(0));1L(k,7.x(0));7.a(\'p\').2V.Z(7,[k,1d(k),1z(k)])},28=d(c){q 7=$(f).G().G();7.a(\'p\').K.G().1V(\'1C\')},1B=d(){22=f.1f.1F.1u(\'2W\')>0?3l:2Z;$(f).G().G().a(\'p\').K.G().1V(\'1C\');$(f).G().2b(\'1C\')},2D=d(c){q 1g=$(f).G().U(\'11\').1B();q O={1c:$(f).G().2b(\'2h\'),M:f.1f.1F.1u(\'3m\')>0?1s:(f.1f.1F.1u(\'2p\')>0?L:13),y:c.1M,1g:1g,E:I(1g.E(),10),1t:$(f).G().G().a(\'p\').1D};$(D).H(\'1x\',O,1X);$(D).H(\'1v\',O,2c)},2c=d(c){c.a.1g.E(z.M(0,z.S(c.a.M,I(c.a.E+c.1M-c.a.y,10))));j(c.a.1t){18.Z(c.a.1g.x(0),[1o])}B T},1X=d(c){18.Z(c.a.1g.x(0),[1o]);c.a.1c.1V(\'2h\').U(\'11\').1B();$(D).19(\'1x\',1X);$(D).19(\'1v\',2c);B T},2N=d(c){q O={7:$(f).G(),y:$(f).2a().X};O.1t=O.7.a(\'p\').1D;$(D).H(\'1x\',O,1Z);$(D).H(\'1v\',O,1W)},1W=d(c){18.Z(c.a.7.a(\'p\').K.J(4).E(I(1s*(R-z.M(0,z.S(R,(c.1M-c.a.y))))/R,10)).x(0),[c.a.1t]);B T},1Z=d(c){1p(c.a.7.a(\'p\').A,c.a.7.x(0));1n(c.a.7.a(\'p\').A,c.a.7.x(0));$(D).19(\'1x\',1Z);$(D).19(\'1v\',1W);B T},2P=d(c){q O={7:$(f).G(),1w:$(f).2a()};O.1t=O.7.a(\'p\').1D;$(D).H(\'1x\',O,25);$(D).H(\'1v\',O,29)},29=d(c){18.Z(c.a.7.a(\'p\').K.J(6).E(I(L*(R-z.M(0,z.S(R,(c.1M-c.a.1w.X))))/R,10)).14().J(5).E(I(L*(z.M(0,z.S(R,(c.3r-c.a.1w.15))))/R,10)).x(0),[c.a.1t]);B T},25=d(c){1p(c.a.7.a(\'p\').A,c.a.7.x(0));1n(c.a.7.a(\'p\').A,c.a.7.x(0));$(D).19(\'1x\',25);$(D).19(\'1v\',29);B T},30=d(c){$(f).2b(\'1C\')},2H=d(c){$(f).1V(\'1C\')},37=d(c){q 7=$(f).G();q k=7.a(\'p\').A;7.a(\'p\').24=k;1O(k,7.x(0));7.a(\'p\').2d(k,1d(k),1z(k))},1r=d(c){q 7=$(\'#\'+$(f).a(\'17\'));7.a(\'p\').2z.Z(f,[7.x(0)]);q 1w=$(f).2a();q 1G=2q();q X=1w.X+f.2k;q 15=1w.15;j(X+2v>1G.t+1G.h){X-=f.2k+2v}j(15+2w>1G.l+1G.w){15-=2w}7.1a({15:15+\'2y\',X:X+\'2y\'});j(7.a(\'p\').2x.Z(f,[7.x(0)])!=T){7.1r()}$(D).H(\'1H\',{7:7},1y);B T},1y=d(c){j(!2m(c.a.7.x(0),c.3W,c.a.7.x(0))){j(c.a.7.a(\'p\').2r.Z(f,[c.a.7.x(0)])!=T){c.a.7.1y()}$(D).19(\'1H\',1y)}},2m=d(1j,1c,2o){j(1j==1c){B 1o}j(1j.2l){B 1j.2l(1c)}j(1j.2n){B!!(1j.2n(1c)&16)}q 1l=1c.1f;3T(1l&&1l!=2o){j(1l==1j)B 1o;1l=1l.1f}B T},2q=d(){q m=D.3O==\'3P\';B{l:1K.3Q||(m?D.1J.2s:D.1A.2s),t:1K.3R||(m?D.1J.2u:D.1A.2u),w:1K.3S||(m?D.1J.2j:D.1A.2j),h:1K.3u||(m?D.1J.2e:D.1A.2e)}},1U=d(e){B{h:z.S(1s,z.M(0,e.h)),s:z.S(L,z.M(0,e.s)),b:z.S(L,z.M(0,e.b))}},2g=d(9){B{r:z.S(13,z.M(0,9.r)),g:z.S(13,z.M(0,9.g)),b:z.S(13,z.M(0,9.b))}},2f=d(F){q 27=6-F.33;j(27>0){q o=[];3V(q i=0;i<27;i++){o.2I(\'0\')}o.2I(F);F=o.2S(\'\')}B F},2T=d(F){q F=I(((F.1u(\'#\')>-1)?F.3M(1):F),16);B{r:F>>16,g:(F&3A)>>8,b:(F&3B)}},1T=d(F){B 1I(2T(F))},1I=d(9){q e={};e.b=z.M(z.M(9.r,9.g),9.b);e.s=(e.b<=0)?0:z.12(L*(e.b-z.S(z.S(9.r,9.g),9.b))/e.b);e.b=z.12((e.b/13)*L);j((9.r==9.g)&&(9.g==9.b))e.h=0;C j(9.r>=9.g&&9.g>=9.b)e.h=Y*(9.g-9.b)/(9.r-9.b);C j(9.g>=9.r&&9.r>=9.b)e.h=Y+Y*(9.g-9.r)/(9.g-9.b);C j(9.g>=9.b&&9.b>=9.r)e.h=38+Y*(9.b-9.r)/(9.g-9.r);C j(9.b>=9.g&&9.g>=9.r)e.h=39+Y*(9.b-9.g)/(9.b-9.r);C j(9.b>=9.r&&9.r>=9.g)e.h=3a+Y*(9.r-9.g)/(9.b-9.g);C j(9.r>=9.b&&9.b>=9.g)e.h=2A+Y*(9.r-9.b)/(9.r-9.g);C e.h=0;e.h=z.12(e.h);B e},1z=d(e){q 9={};q h=z.12(e.h);q s=z.12(e.s*13/L);q v=z.12(e.b*13/L);j(s==0){9.r=9.g=9.b=v}C{q W=v;q V=(13-s)*v/13;q 1e=(W-V)*(h%Y)/Y;j(h==1s)h=0;j(h<Y){9.r=W;9.b=V;9.g=V+1e}C j(h<38){9.g=W;9.b=V;9.r=W-1e}C j(h<39){9.g=W;9.r=V;9.b=V+1e}C j(h<3a){9.b=W;9.r=V;9.g=W-1e}C j(h<2A){9.b=W;9.g=V;9.r=V+1e}C j(h<1s){9.r=W;9.g=V;9.b=W-1e}C{9.r=0;9.g=0;9.b=0}}B{r:z.12(9.r),g:z.12(9.g),b:z.12(9.b)}},2R=d(9){q F=[9.r.1Y(16),9.g.1Y(16),9.b.1Y(16)];$.1E(F,d(35,E){j(E.33==1){F[35]=\'0\'+E}});B F.2S(\'\')},1d=d(e){B 2R(1z(e))};B{2t:d(u){u=$.2U({},2G,u||{});j(2i u.A==\'2X\'){u.A=1T(u.A)}C j(u.A.r!=Q&&u.A.g!=Q&&u.A.b!=Q){u.A=1I(u.A)}C j(u.A.h!=Q&&u.A.s!=Q&&u.A.b!=Q){u.A=1U(u.A)}C{B f}u.24=u.A;B f.1E(d(){j(!$(f).a(\'17\')){q 1S=\'3y\'+I(z.3v()*3w);$(f).a(\'17\',1S);q 7=$(2E).3x(\'1S\',1S);j(u.20){7.2B(f).1r()}C{7.2B(D.1A)}u.K=7.U(\'11\').H(\'3D\',2C).H(\'18\',18).H(\'28\',28).H(\'1B\',1B);7.U(\'P\').H(\'1H\',2D);u.23=7.U(\'n.2J\').H(\'1H\',2P);u.2Q=u.23.U(\'n n\');u.2O=7.U(\'n.21 n\');7.U(\'n.21\').H(\'1H\',2N);u.2K=7.U(\'n.2L\');u.2M=7.U(\'n.36\');7.a(\'p\',u);7.U(\'n.34\').H(\'3E\',30).H(\'3K\',2H).H(\'2Y\',37);1p(u.A,7.x(0));1Q(u.A,7.x(0));1n(u.A,7.x(0));1P(u.A,7.x(0));1N(u.A,7.x(0));1O(u.A,7.x(0));1L(u.A,7.x(0));j(u.20){7.1a({3L:\'3J\',3I:\'3F\'})}C{$(f).H(u.31,1r)}}})},3G:d(){B f.1E(d(){j($(f).a(\'17\')){1r.Z(f)}})},3H:d(){B f.1E(d(){j($(f).a(\'17\')){$(\'#\'+$(f).a(\'17\')).1y()}})},2F:d(k){j(2i k==\'2X\'){k=1T(k)}C j(k.r!=Q&&k.g!=Q&&k.b!=Q){k=1I(k)}C j(k.h!=Q&&k.s!=Q&&k.b!=Q){k=1U(k)}C{B f}B f.1E(d(){j($(f).a(\'17\')){q 7=$(\'#\'+$(f).a(\'17\'));7.a(\'p\').A=k;7.a(\'p\').24=k;1p(k,7.x(0));1Q(k,7.x(0));1n(k,7.x(0));1P(k,7.x(0));1N(k,7.x(0));1O(k,7.x(0));1L(k,7.x(0))}})}}}();$.3N.2U({1q:1q.2t,3U:1q.1y,3C:1q.1r,3i:1q.2F})})(3z)',62,245,'|||||||cal||rgb|data||ev|function|hsb|this||||if|col|||div||colorpicker|var||||options|||get||Math|color|return|else|document|val|hex|parent|bind|parseInt|eq|fields|100|max|class|current|span|undefined|150|min|false|find|t2|t1|top|60|apply||input|round|255|end|left||colorpickerId|change|unbind|css|size|el|HSBToHex|t3|parentNode|field|maxlength|text|parentEl|type|prEl|colorpicker_field|fillHexFields|true|fillRGBFields|ColorPicker|show|360|preview|indexOf|mousemove|pos|mouseup|hide|HSBToRGB|body|focus|colorpicker_focus|livePreview|each|className|viewPort|mousedown|RGBToHSB|documentElement|window|setNewColor|pageY|setSelector|setCurrentColor|setHue|fillHSBFields|pressedKey|id|HexToHSB|fixHSB|removeClass|moveHue|upIncrement|toString|upHue|flat|colorpicker_hue|charMin|selector|origColor|upSelector|backgroundColor|len|blur|moveSelector|offset|addClass|moveIncrement|onSubmit|clientHeight|fixHex|fixRGB|colorpicker_slider|typeof|clientWidth|offsetHeight|contains|isChildOf|compareDocumentPosition|container|_hsb|getViewport|onHide|scrollLeft|init|scrollTop|176|356|onShow|px|onBeforeShow|300|appendTo|keyDown|downIncrement|tpl|setColor|defaults|leaveSubmit|push|colorpicker_color|newColor|colorpicker_new_color|currentColor|downHue|hue|downSelector|selectorIndic|RGBToHex|join|HexToRGB|extend|onChange|_hex|string|click|65|enterSubmit|eventName||length|colorpicker_submit|nr|colorpicker_current_color|clickSubmit|120|180|240|colorpicker_rgb_b|colorpicker_rgb_r|ids|inAction|visible|colorpicker_hex|colorpicker_rgb_g|ColorPickerSetColor|90|value|70|_hsb_h|keyCode|charCode|colorpicker_hsb_s|colorpicker_hsb_b|pageX|ff0000|colorpicker_hsb_h|innerHeight|random|1000|attr|collorpicker_|jQuery|0x00FF00|0x0000FF|ColorPickerShow|keydown|mouseenter|block|showPicker|hidePicker|display|relative|mouseleave|position|substring|fn|compatMode|CSS1Compat|pageXOffset|pageYOffset|innerWidth|while|ColorPickerHide|for|target'.split('|'),0,{}))

// FIRERIFT GLOBAL JS
var allExt="blog,gallery,page,data,feed,user,system";(function($){function unserialize(data){if(data==undefined)return false;var error=function(type,msg,filename,line){throw new window[type](msg,filename,line);};var read_until=function(data,offset,stopchr){var buf=[];var chr=data.slice(offset,offset+1);var i=2;while(chr!=stopchr){if((i+offset)>data.length){error('Error','Invalid');}
buf.push(chr);chr=data.slice(offset+(i-1),offset+i);i+=1;}
return[buf.length,buf.join('')];};var read_chrs=function(data,offset,length){var buf;buf=[];for(var i=0;i<length;i++){var chr=data.slice(offset+(i-1),offset+i);buf.push(chr);length-=utf8Overhead(chr);}
return[buf.length,buf.join('')];};var utf8Overhead=function(char){var code=char.charCodeAt(0);if(code<0x0080)
return 0;if(code<0x0800)
return 1;return 2;};var _unserialize=function(data,offset){if(!offset)offset=0;var buf=[];var dtype=(data.slice(offset,offset+1)).toLowerCase();var dataoffset=offset+2;var typeconvert=new Function('x','return x');var chrs=0;var datalength=0;switch(dtype){case"i":typeconvert=new Function('x','return parseInt(x)');var readData=read_until(data,dataoffset,';');var chrs=readData[0];var readdata=readData[1];dataoffset+=chrs+1;break;case"b":typeconvert=new Function('x','return (parseInt(x) == 1)');var readData=read_until(data,dataoffset,';');var chrs=readData[0];var readdata=readData[1];dataoffset+=chrs+1;break;case"d":typeconvert=new Function('x','return parseFloat(x)');var readData=read_until(data,dataoffset,';');var chrs=readData[0];var readdata=readData[1];dataoffset+=chrs+1;break;case"n":readdata=null;break;case"s":var ccount=read_until(data,dataoffset,':');var chrs=ccount[0];var stringlength=ccount[1];dataoffset+=chrs+2;var readData=read_chrs(data,dataoffset+1,parseInt(stringlength));var chrs=readData[0];var readdata=readData[1];dataoffset+=chrs+2;if(chrs!=parseInt(stringlength)&&chrs!=readdata.length){error('SyntaxError','String length mismatch');}
break;case"a":var readdata={};var keyandchrs=read_until(data,dataoffset,':');var chrs=keyandchrs[0];var keys=keyandchrs[1];dataoffset+=chrs+2;for(var i=0;i<parseInt(keys);i++){var kprops=_unserialize(data,dataoffset);var kchrs=kprops[1];var key=kprops[2];dataoffset+=kchrs;var vprops=_unserialize(data,dataoffset);var vchrs=vprops[1];var value=vprops[2];dataoffset+=vchrs;readdata[key]=value;}
dataoffset+=1;break;default:error('SyntaxError','Unknown / Unhandled data type(s): '+dtype);break;}
return[dtype,dataoffset-offset,typeconvert(readdata)];};return _unserialize(data,0)[2];}
$.session=unserialize($.cookie('ci_631d98317234a380'));if(!($.session)||!($.session.user)){window.location="http://demo.firerift.com/app/auth/";}})(jQuery);$(function(){var permissions;if($.session.user){permissions=$.session.user.permissions.split(',');$(permissions).each(function(){$("#"+this+"_ext").show();if(this=='user'){$("#"+this+"_ext a").attr("href","http://demo.firerift.com/app/user/");}});}
$.getJSON("http://demo.firerift.com/api/core/extensions",function(data){$(data.items).each(function(){if(this.info[0]){if(this.info[0].ext_description){$(".more-nav-inner").append("<a href=\"http://demo.firerift.com/app/"+this.name+"/\">"+this.info[0].ext_name+"</a>");}}});$(".nav-link-holder").show();});$("#btn-nav-more").click(function(){$("#more-nav-holder").slideToggle("fast");if($('#more-arrow').hasClass('nav-more')){$('#more-arrow').removeClass('nav-more');$('#more-arrow').addClass('nav-less');}else{$('#more-arrow').removeClass('nav-less');$('#more-arrow').addClass('nav-more');};return false;});$.controller.defaults.url="http://demo.firerift.com/api";$.ajaxSetup({beforeSend:function(){if($("div#alert-holder").css("display")!="block"){$("div#alert-loading-holder").stop(true,true).fadeIn("normal");}},complete:function(){$("div#alert-loading-holder").stop(true,true).fadeOut("normal");$("div.select-gen").each(function(){if($(this).hasClass("full")){$(this).find("span:first").css("width",$(this).width()-35);$(this).find("select").css("width",$(this).width());}else{$(this).find("span:first").css("width",$(this).find("select").width()-22);}
if($(this).hasClass("inline")){$(this).css("width",$(this).find("select").width()+10);}});}});$(".checkbox:not(.custom_check)").live("click",function(){if($(this).hasClass("check-on")){$(this).removeClass("check-on");$(this).addClass("check-off");$("input[name="+this.id+"]").val("NO");}else{$(this).removeClass("check-off");$(this).addClass("check-on");$("input[name="+this.id+"]").val("YES");}
return false;});if($.session.user.tips=="YES"){$("a#shared").live("mouseover",function(){if(!$(this).hasClass("category")){$("div#alert-holder").html(tips[5]);$("div#alert-holder").stop(true,true).fadeIn("normal");}});$("a#resized").live("mouseover",function(){$("div#alert-holder").html(tips[8]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("a#published").live("mouseover",function(){$("div#alert-holder").html(tips[4]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("select#category_id").live("mouseover",function(){$("div#alert-holder").html(tips[6]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("select#shared_category_id").live("mouseover",function(){$("div#alert-holder").html(tips[7]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("div.btn-sortorder").live("mouseover",function(){$("div#alert-holder").html(tips[3]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("a#allow_comments").live("mouseover",function(){$("div#alert-holder").html(tips[9]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("a#change_date").live("mouseover",function(){$("div#alert-holder").html(tips[13]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("a#use_title_link").live("mouseover",function(){$("div#alert-holder").html(tips[10]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("a#custom_linked").live("mouseover",function(){$("div#alert-holder").html(tips[11]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("a.gen-tag").live("mouseover",function(){$("div#alert-holder").html(tips[14]);$("div#alert-holder").stop(true,true).fadeIn("normal");});$("a.checkbox, select#category_id, select#shared_category_id, div.btn-sortorder, a.gen-tag").live("mouseout",function(){$("div#alert-holder").stop(true,true).fadeOut("normal");});$("a#exclude_cover").live("mouseover",function(){$("div#alert-holder").html(tips[15]);$("div#alert-holder").stop(true,true).fadeIn("normal");});}
var user_name=$.session.user.name;$("div.head-welcome-user span").text(user_name.replace(/\+/g," "));$.getJSON("http://demo.firerift.com/api/system/systems",function(data){$("div.head-welcome-site a").text(data.items[0].website_title);$("div.head-welcome-site a").attr("href",data.items[0].website_url).attr("target","_blank");if(data.items[0].custom_email){$("#support_link").attr("href","mailto:"+data.items[0].custom_email);}
if(data.items[0].remove_copyright!='YES'){$("#copyright_brand").show();}
(data.items[0].app_title)?appTitle=data.items[0].app_title:appTitle="FIRERIFT";document.title=appTitle+" | "+$.trim($("div.subnav-title").text());});$("#logout").live("click",function(){$("body").ajaxStop(function(){window.location="http://demo.firerift.com/app/auth/";});$.getJSON("http://demo.firerift.com/api/auth/sessions/?_method=DELETE");return false;});$("a.close-btn,input.btn-cancel").live("click",function(){$("div#dropdown-holder").hide("slide",{direction:"up"},500);return false;});});function errorAlert(){$("div#alert-holder").html(tips[1]);$("div#alert-holder").fadeIn("normal").fadeTo(2000,1).fadeOut("normal");}
function noAccess(){window.location="http://demo.firerift.com/app/core/no_access";}
function hasPermission(ext){var permissions=$.session.user.permissions;if(permissions.search(ext)==-1){if(allExt.search(ext)>-1){noAccess();return false;}}
return true;}
function checkAccess(user_id,shared,ext,page){var permissions=$.session.user.permissions;if(page.search("comment")>-1||ext=="system"){return true;}
if((user_id==$.session.user.id&&ext=="user")||(user_id==$.session.user.id||shared=="YES")){return true;}
if(user_id==undefined){return true;}
if(ext=="user"&&permissions.search("user")>-1){return true;}
noAccess();return false;}
curKey="";altKey="";$(document).keydown(function(event){curKey=event.keyCode;if(curKey==27&&$("#dropdown-holder").css("display")=="block"){$("div#dropdown-holder").hide("slide",{direction:"up"},500)}else if(curKey==27){$.fn.fancybox.close();}
if(event.altKey==true){altKey="ALT";}
return curKey;}).keyup(function(event){curKey="";altKey="";return curKey;});

//TIPS JS
tips = ["<div id='alert-loading'><span>Loading...</span></div>","<div id='alert-warning'>Something absolutely horrible went wrong. Please try again.</div>","<div id='alert-success'><em></em> has been saved to <em></em>.</div>","<div id='alert-help'><em>Click &amp; Drag</em> this to re-arrange the order of this list.</div>","<div id='alert-help'>Turn this <em>ON</em> to make this live on your website. Turn this <em>OFF</em> to put it into the Drafts.</div>","<div id='alert-help'>Turn this <em>ON</em> to share this with other users, and let them edit it.</div>","<div id='alert-help'>Post this into one of <em>Your</em> Categories, that you have created.</div>","<div id='alert-help'>Post this into a Category <em>Shared</em> by another user.</div>","<div id='alert-help'>Turn this <em>ON</em> to display images in this gallery using the resized dimensions to the left. Turn this <em>OFF</em> to display the Original image instead.</div>","<div id='alert-help'>Turn this <em>ON</em> to enable people to leave Comments on this.</div>","<div id='alert-help'>Turn this <em>ON</em> to make this Title become an active link on your website.</div>","<div id='alert-help'>Turn this <em>ON</em> to make this Title link to something other than the default; which is to it's own permalink page.</div>","<div id='alert-help'>Turn this <em>ON</em> to make this Link open up in a new window when someone clicks it.</div>","<div id='alert-help'>Turn this <em>ON</em> to change the post Date for this to reflect the current Date &amp; Time.</div>","<div id='alert-help'>Click to add this tag.</div>","<div id='alert-help'>Turn this <em>ON</em> to keep the Cover Image from showing up inside of this Gallery on your website.</div>","<div id='alert-success'><em></em> has been removed from <em></em>.</div>"]