var hexcase=0;var b64pad="";function hex_md5(s){return rstr2hex(rstr_md5(str2rstr_utf8(s)));}
function b64_md5(s){return rstr2b64(rstr_md5(str2rstr_utf8(s)));}
function any_md5(s,e){return rstr2any(rstr_md5(str2rstr_utf8(s)),e);}
function hex_hmac_md5(k,d)
{return rstr2hex(rstr_hmac_md5(str2rstr_utf8(k),str2rstr_utf8(d)));}
function b64_hmac_md5(k,d)
{return rstr2b64(rstr_hmac_md5(str2rstr_utf8(k),str2rstr_utf8(d)));}
function any_hmac_md5(k,d,e)
{return rstr2any(rstr_hmac_md5(str2rstr_utf8(k),str2rstr_utf8(d)),e);}
function md5_vm_test()
{return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72";}
function rstr_md5(s)
{return binl2rstr(binl_md5(rstr2binl(s),s.length*8));}
function rstr_hmac_md5(key,data)
{var bkey=rstr2binl(key);if(bkey.length>16)bkey=binl_md5(bkey,key.length*8);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
var hash=binl_md5(ipad.concat(rstr2binl(data)),512+data.length*8);return binl2rstr(binl_md5(opad.concat(hash),512+128));}
function rstr2hex(input)
{try{hexcase}catch(e){hexcase=0;}
var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var output="";var x;for(var i=0;i<input.length;i++)
{x=input.charCodeAt(i);output+=hex_tab.charAt((x>>>4)&0x0F)
+hex_tab.charAt(x&0x0F);}
return output;}
function rstr2b64(input)
{try{b64pad}catch(e){b64pad='';}
var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var output="";var len=input.length;for(var i=0;i<len;i+=3)
{var triplet=(input.charCodeAt(i)<<16)|(i+1<len?input.charCodeAt(i+1)<<8:0)|(i+2<len?input.charCodeAt(i+2):0);for(var j=0;j<4;j++)
{if(i*8+j*6>input.length*8)output+=b64pad;else output+=tab.charAt((triplet>>>6*(3-j))&0x3F);}}
return output;}
function rstr2any(input,encoding)
{var divisor=encoding.length;var i,j,q,x,quotient;var dividend=Array(Math.ceil(input.length/2));for(i=0;i<dividend.length;i++)
{dividend[i]=(input.charCodeAt(i*2)<<8)|input.charCodeAt(i*2+1);}
var full_length=Math.ceil(input.length*8/(Math.log(encoding.length)/Math.log(2)));var remainders=Array(full_length);for(j=0;j<full_length;j++)
{quotient=Array();x=0;for(i=0;i<dividend.length;i++)
{x=(x<<16)+dividend[i];q=Math.floor(x/divisor);x-=q*divisor;if(quotient.length>0||q>0)
quotient[quotient.length]=q;}
remainders[j]=x;dividend=quotient;}
var output="";for(i=remainders.length-1;i>=0;i--)
output+=encoding.charAt(remainders[i]);return output;}
function str2rstr_utf8(input)
{var output="";var i=-1;var x,y;while(++i<input.length)
{x=input.charCodeAt(i);y=i+1<input.length?input.charCodeAt(i+1):0;if(0xD800<=x&&x<=0xDBFF&&0xDC00<=y&&y<=0xDFFF)
{x=0x10000+((x&0x03FF)<<10)+(y&0x03FF);i++;}
if(x<=0x7F)
output+=String.fromCharCode(x);else if(x<=0x7FF)
output+=String.fromCharCode(0xC0|((x>>>6)&0x1F),0x80|(x&0x3F));else if(x<=0xFFFF)
output+=String.fromCharCode(0xE0|((x>>>12)&0x0F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F));else if(x<=0x1FFFFF)
output+=String.fromCharCode(0xF0|((x>>>18)&0x07),0x80|((x>>>12)&0x3F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F));}
return output;}
function str2rstr_utf16le(input)
{var output="";for(var i=0;i<input.length;i++)
output+=String.fromCharCode(input.charCodeAt(i)&0xFF,(input.charCodeAt(i)>>>8)&0xFF);return output;}
function str2rstr_utf16be(input)
{var output="";for(var i=0;i<input.length;i++)
output+=String.fromCharCode((input.charCodeAt(i)>>>8)&0xFF,input.charCodeAt(i)&0xFF);return output;}
function rstr2binl(input)
{var output=Array(input.length>>2);for(var i=0;i<output.length;i++)
output[i]=0;for(var i=0;i<input.length*8;i+=8)
output[i>>5]|=(input.charCodeAt(i/8)&0xFF)<<(i%32);return output;}
function binl2rstr(input)
{var output="";for(var i=0;i<input.length*32;i+=8)
output+=String.fromCharCode((input[i>>5]>>>(i%32))&0xFF);return output;}
function binl_md5(x,len)
{x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16)
{var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);}
return Array(a,b,c,d);}
function md5_cmn(q,a,b,x,s,t)
{return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);}
function md5_ff(a,b,c,d,x,s,t)
{return md5_cmn((b&c)|((~b)&d),a,b,x,s,t);}
function md5_gg(a,b,c,d,x,s,t)
{return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t);}
function md5_hh(a,b,c,d,x,s,t)
{return md5_cmn(b^c^d,a,b,x,s,t);}
function md5_ii(a,b,c,d,x,s,t)
{return md5_cmn(c^(b|(~d)),a,b,x,s,t);}
function safe_add(x,y)
{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
function bit_rol(num,cnt)
{return(num<<cnt)|(num>>>(32-cnt));};var JSON;if(!JSON){JSON={};}
(function(){"use strict";function f(n){return n<10?'0'+n:n;}
if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+
f(this.getUTCMonth()+1)+'-'+
f(this.getUTCDate())+'T'+
f(this.getUTCHours())+':'+
f(this.getUTCMinutes())+':'+
f(this.getUTCSeconds())+'Z':null;};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}
var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}
function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}
if(typeof rep==='function'){value=rep.call(holder,key,value);}
switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}
v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v;}
if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==='string'){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}
v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}
if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}
rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}
return str('',{'':value});};}
if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}
return reviver.call(holder,key,value);}
text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+
('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}
if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}
throw new SyntaxError('JSON.parse');};}}());;jQuery.cookie=function(key,value,options){if(arguments.length>1&&String(value)!=="[object Object]"){options=jQuery.extend({},options);if(value===null||value===undefined){options.expires=-1;}
if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}
value=String(value);return(document.cookie=[encodeURIComponent(key),'=',options.raw?value:encodeURIComponent(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}
options=value||{};var result,decode=options.raw?function(s){return s;}:decodeURIComponent;return(result=new RegExp('(?:^|; )'+encodeURIComponent(key)+'=([^;]*)').exec(document.cookie))?decode(result[1]):null;};;(function(){var initializing=false,fnTest=/xyz/.test(function(){xyz;})?/\b_super\b/:/.*/;this.Class=function(){};Class.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this();initializing=false;for(var name in prop){prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?(function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);this._super=tmp;return ret;};})(name,prop[name]):prop[name];}
function Class(){if(!initializing&&this.init)
this.init.apply(this,arguments);}
Class.prototype=prototype;Class.constructor=Class;Class.extend=arguments.callee;return Class;};})();;(function($){Turbulent=window.Turbulent||{};Turbulent=Class.extend({});Turbulent.bindMethod=function(target,handler)
{return function()
{return handler.apply(target,Array.prototype.slice.call(arguments));};};Turbulent.Object=Class.extend({init:function()
{this.boundMethods={};},bindMethod:function(method,scope)
{if(!scope)scope=this;if(!this.boundMethods)
throw"Wrongly initialized Turbulent.Object, did you properly call _super() in init()?";if(!this.boundMethods[method])
{var boundMethod=function()
{return method.apply(scope,Array.prototype.slice.call(arguments));};this.boundMethods[method]=boundMethod;}
return this.boundMethods[method];}});})(jQuery);;(function($){Turbulent=window.Turbulent||{};Turbulent.Form=Turbulent.Object.extend({init:function(params)
{this._super();var params=params||{};if(!params.form_selector)throw"Turbulent.Form: missing form selector!";this.form=$(params.form_selector);this.error_class='error';this.available_error_elements=['input','select','textarea'];this.options=params;if(!this.form.is('form')||this.form.length<=0)throw"Turbulent.Form: Invalid form selector!";},reset:function()
{},showErrors:function(response)
{var that=this;if(!response.success)
{if(response.data&&(response.data!=undefined))
{$.each(response.data,function(kerr,verr){that.showErrorMessage(kerr,verr);});}}},hideErrors:function()
{},showErrorMessage:function(kerr,verr)
{if(console&&this.options.log_errors)
{console.log('kerr='+kerr+'; verr='+verr+';');}},hideErrorMessage:function()
{},getErrorElement:function(name,wrapper)
{var elem=null;var name_str='[name="'+name+'"]';var name_array_str='[name="'+name+'[]"]';if(!wrapper)
wrapper='body';$.each(this.available_error_elements,function(index,err_elem){curr_selector=err_elem+name_str;curr_array_selector=err_elem+name_array_str;if(!elem)
{if($(curr_selector,wrapper).length)
{elem=$(curr_selector,wrapper).eq(0);}
else if($(curr_array_selector,wrapper).length)
{elem=$(curr_array_selector,wrapper).eq(0);}}});return elem;},getErrorLabel:function()
{},getFormData:function()
{var ret={};var that=this;this.form.find('.js-form-data').each(function()
{var elem=$(this);var elem_name=elem.attr('name');var elem_value=elem.val();if(elem.is("input:checkbox")&&!elem.is(":checked"))
{elem_value=0;}
else if(elem.is("input:radio"))
{if(!elem.is(":checked"))return;}
if(typeof(elem_value)=='string'&&elem_value.length<=0)
{if(elem.is('.js-form-nullable'))
{elem_value=null;}
else if(elem.is('.js-form-ignore-empty'))
{return;}}
if(elem_value&&elem_value.match(/^json:\/\//))
{elem_value=elem_value.replace(/^json:\/\//,'');elem_value=JSON.parse(elem_value);}
var handle=ret;var arrayValue=false;if(elem_name.match(/\[\]$/))
arrayValue=true;if(elem_name.match(/\[([^\]]*)\]$/))
{var parts=elem_name.match(/[^\[\]]+/g);for(var i=0;i<parts.length-1;i++)
{if(!handle[parts[i]])
handle[parts[i]]={};handle=handle[parts[i]];}
elem_name=parts[parts.length-1];}
if(arrayValue)
{elem_name=elem_name.replace(/\[\]$/,'');if(!handle[elem_name])handle[elem_name]=[];if(elem_value){handle[elem_name].push(elem_value);}}
else
{handle[elem_name]=elem_value;}});return ret;}});})(jQuery);;(function($){Turbulent=window.Turbulent||{};Turbulent.Carousel=Turbulent.Object.extend({init:function(params)
{this._super();$this=this;this.initMembers(params);this.bindTrigger();},initMembers:function(params)
{holder=$(params.holder);this._super();this.vert=params.vertical?true:false;this.width=this.vert?holder.children().first().outerHeight(true):holder.children().first().outerWidth(true);this.length=holder.children().length;this.holder=holder;this.moving=false;this.params=params;if(params.afterNext)
this.afterNext=params.afterNext;if(params.afterPrev)
this.afterPrev=params.afterPrev;this.params.moveBy=this.params.moveBy?this.params.moveBy:1;this.params.initialOffset=this.params.initialOffset?this.params.initialOffset:0;this.params.displayItems=this.params.displayItems?this.params.displayItems:1;this.displayItemsWidth=this.params.displayItems*this.width;this.displayItems=this.params.displayItems;if(this.params.index&&this.params.index>this.displayItems){this.moveCarousel((this.params.index-this.displayItems)*this.width,{speed:this.length*200});}
if(this.params.circular&&this.length>this.displayItems){var firstItems=holder.children(":lt("+this.displayItems+")").clone();var lastItems=holder.children(":gt("+(this.length-this.displayItems-1)+")").clone();firstItems.removeClass("on");lastItems.removeClass("on");this.holder.append(firstItems);this.holder.prepend(lastItems);}
this.resetWidth();if(holder.children(".on").length==1){this.index=holder.children(".on").index()-this.params.initialOffset;if(this.index<0)
this.index=0;else if(this.index+this.displayItems>this.length){this.index=this.length-this.displayItems;}
if(this.vert){this.holder.css({top:(-this.width*this.index)});}
else{this.holder.css({left:(-this.width*this.index)});}}
else{this.index=(this.params.circular&&this.length>this.displayItems)?this.displayItems:0;this.holder.children().eq(this.index).addClass("on");if(this.vert){this.holder.css({top:(-this.width*this.index)});}
else{this.holder.css({left:(-this.width*this.index)});}}
if(this.length<=this.displayItems&&this.params.pagerContainer)
this.params.pagerContainer.addClass("off");this.checkArrows();},bindTrigger:function()
{if(this.params.timeout&&this.length>this.displayItems)
this.timer=setTimeout(this.bindMethod(this.moveToNext),this.params.timeout);if(this.params.firstButton){$(this.params.firstButton).bind('click',this.bindMethod(this.onFirstBtnClick));}
if(this.params.lastButton){$(this.params.lastButton).bind('click',this.bindMethod(this.onLastBtnClick));}
if(this.beforeNextBtnClick){$(this.params.nextButton).bind('click',this.bindMethod(this.beforeNextBtnClick));}
else if(this.params.nextButton){$(this.params.nextButton).bind('click',this.bindMethod(this.onNextBtnClick));}
if(this.beforePrevBtnClick){$(this.params.prevButton).bind('click',this.bindMethod(this.beforePrevBtnClick));}
else if(this.params.prevButton){$(this.params.prevButton).bind('click',this.bindMethod(this.onPrevBtnClick));}
if(this.params.pagerContainer&&this.beforePageClick){$(this.params.pagerContainer).children().bind('click',this.bindMethod(this.beforePageClick));}
else if(this.params.pagerContainer){$(this.params.pagerContainer).children().bind('click',this.bindMethod(this.pagerContainerClick));}},resetWidth:function(){this.length=this.holder.children().length;if(this.vert){this.holder.height(this.width*this.length);}
else{this.holder.width(this.width*this.length);}
if(this.params.circular)
this.length-=this.displayItems*2;},onFirstBtnClick:function(e)
{e.preventDefault();this.index=0;if(this.params.circular){this.index+=this.displayItems;}
this.moveCarousel(0);},onLastBtnClick:function(e)
{e.preventDefault();this.index=this.length*-this.displayItems;this.moveCarousel((-this.width*this.index)+this.displayItemsWidth);},checkNext:function()
{if(this.afterNext)
this.afterNext();},checkPrev:function()
{if(this.afterPrev)
this.afterPrev();},onNextBtnClick:function(e)
{e.preventDefault();this.moveToNext();},moveToNext:function(){if(this.hasNext()&&!this.moving){var moveBy=this.params.moveBy;if(this.params.moveBy+this.index+this.displayItems>this.length&&!this.params.circular){moveBy=(this.length-this.index-this.displayItems);}
this.index+=moveBy;this.moveCarousel(this.width*moveBy,{clbk:this.bindMethod(this.checkNext)});}},onPrevBtnClick:function(e)
{e.preventDefault();this.moveToPrev();},moveToPrev:function(){if(this.hasPrev()&&!this.moving){var moveBy=this.params.moveBy;if(this.params.moveBy-this.index>0&&!this.params.circular)
moveBy=this.index;this.index-=moveBy;this.moveCarousel(this.width*-moveBy,{clbk:this.bindMethod(this.checkPrev)});}},pagerContainerClick:function(e)
{e.preventDefault();if(!this.moving){if($(e.currentTarget).attr("rel")){this.index=$(e.currentTarget).attr("rel")}
else{this.index=$(e.currentTarget).index();}
if(this.params.circular){this.index+=this.displayItems;}
this.moveCarouselTo(this.displayItemsWidth*this.index*-1);}},checkArrows:function(){if(!this.params.circular||this.length<=this.displayItems){if(this.params.prevButton){if(this.index==0){$(this.params.prevButton).addClass('off');}
else{$(this.params.prevButton).removeClass('off');}}
if(this.params.nextButton){if(this.index+this.displayItems>=this.length){$(this.params.nextButton).addClass('off');}
else{$(this.params.nextButton).removeClass('off');}}}
else{if(this.index==0){if(this.vert){this.holder.css("top",this.length*-this.width);}
else{this.holder.css("left",this.length*-this.width);}
this.index=this.length;}
if(this.index==this.holder.children().length-1){if(this.vert){this.holder.css("top",-this.displayItemsWidth);}
else{this.holder.css("left",-this.displayItemsWidth);}
this.index=this.displayItems;}
this.resetCurrentCarouselState();}
this.resetPagerState();},resetCurrentCarouselState:function(){this.holder.children(".on").removeClass("on");this.holder.children().eq(this.index).addClass("on");},resetPagerState:function(){var newIndex=this.params.circular?this.index-this.displayItems:this.index;if(this.params.pagerContainer){this.params.pagerContainer.children(".on").removeClass("on");this.params.pagerContainer.children().eq(newIndex).addClass("on");}},hasPrev:function(){return(this.index>0||this.params.circular);},hasNext:function(){return(this.index+this.displayItems<this.length||this.params.circular);},pause:function(){window.clearTimeout(this.timer);},play:function(){this.timer=window.setTimeout(this.bindMethod(this.moveToNext),this.params.timeout);},moveCarousel:function(position,options)
{var speed=500;if(options&&options.speed)
speed=options.speed;var direction=this.vert?"top":"left";var whatToAnimate={};whatToAnimate[direction]='-='+position+'px';if(this.moving==false){var that=this;this.moving=true;this.holder.animate(whatToAnimate,speed,function(){that.moving=false;that.checkArrows();if(options&&options.clbk){options.clbk();}});if(this.params.timeout){clearTimeout(this.timer);this.timer=setTimeout(this.bindMethod(this.moveToNext),this.params.timeout);}}},moveCarouselTo:function(position,options)
{var speed=500;if(options&&options.speed)
speed=options.speed;var direction=this.vert?"top":"left";var whatToAnimate={};whatToAnimate[direction]=position+'px';if(this.moving==false){var that=this;this.moving=true;this.holder.animate(whatToAnimate,speed,function(){that.moving=false;that.checkArrows();if(options&&options.clbk){options.clbk();}});if(this.params.timeout){clearTimeout(this.timer);this.timer=setTimeout(this.bindMethod(this.moveToNext),this.params.timeout);}}}});})(jQuery);;(function($){Turbulent=window.Turbulent||{};Turbulent.Overlay=Turbulent.Object.extend({holder:null,init:function(params)
{this._super();this.initMembers(params);this.bindTrigger();},initMembers:function(params)
{this.params=params||{};if(!this.params.content)this.params.content='';if(!this.params.appendTo)this.params.appendTo=$("body");this.include_margin=params.include_margin;this.create(this.params.content,this.params.class_name,this.params.appendTo);},bindTrigger:function()
{this.holder.find(".js-close").bind('click',{instance:this},function(e){e.preventDefault();e.data.instance.hide();});},width:function()
{return this.holder.outerWidth();},height:function()
{return this.holder.outerHeight();},left:function()
{return this.holder.css('left');},top:function()
{return this.holder.css('top');},moveToTop:function()
{Turbulent.Overlay.zindex++;this.holder.css('z-index',this.zindex);return this;},show:function(duration,easing,callback)
{this.moveToTop();duration=duration?duration:0;easing=easing?easing:"swing";this.holder.show(duration,easing,callback);return this;},hide:function(duration,easing,callback)
{this.holder.hide(duration,easing,callback);return this;},fadeIn:function(duration,easing,callback)
{this.holder.stop(true,true).show(duration,easing,callback);return this;},fadeOut:function(duration,easing,callback)
{this.holder.stop(true,true).fadeOut(duration,easing,callback);return this;},resize:function(width,height,duration,easing,complete)
{var css_size={width:width,height:height};if(!duration)
{this.holder.css(css_size);}
else
{var args=Array.prototype.slice.call(arguments);args.splice(0,2,css_size);this.holder.animate.apply(this.holder,args);}
return this;},move:function(left,top,duration,easing,complete)
{var css_coord={left:left,top:top};if(!duration)
{this.holder.css(css_coord);}
else
{var args=Array.prototype.slice.call(arguments);args.splice(0,2,css_coord);this.holder.animate.apply(this.holder,args);}
return this;},align:function(node,points,duration,easing,complete)
{var target_coord=this.getAlignCoord(node,points);var args=Array.prototype.slice.call(arguments);args.splice(0,2,target_coord[1]);args.splice(0,0,target_coord[0]);this.move.apply(this,args);return this;},setContent:function(content)
{this.holder.html(content);return this;},getContent:function()
{return this.holder.html();},loadContent:function(callback,url,parameters,method)
{method=method?method:'GET';var that=this;$.ajax({url:url,data:parameters,success:function(response){that.setContent(response);if(callback)callback();}});return this;},create:function(content,className,appendTo)
{if(!appendTo)appendTo=$("body");this.holder=$('<div class="js-overlay overlay '+className+'" style="display: none; position: absolute; left: 0px; top: 0px; z-index:'+Turbulent.Overlay.zindex+'">'+content+'</div>');$(appendTo).append(this.holder);return this;},destroy:function()
{this.hide();this.holder.remove();this.holder=null;return this;},getAlignCoord:function(node,points)
{node=$(node);if(node.length<=0)throw"Overlay.getAlignCoord: Could not find node '"+node.name+"'";var node_coord=this.findNodeCoord(node[0]);target_coord=node_coord;if(typeof(points)!='undefined'&&points.length==2)
{this_point=points[0];node_point=points[1];this_point_left=this_point.charAt(0);this_point_top=this_point.charAt(1);node_point_left=node_point.charAt(0);node_point_top=node_point.charAt(1);if(this_point_left=='C'){target_coord[0]=target_coord[0]-(this.width()/2);}else if(this_point_left=='R'){target_coord[0]=target_coord[0]-this.width();}
if(node_point_left=='C'){target_coord[0]=target_coord[0]+(node.outerWidth(this.include_margin)/2);}else if(node_point_left=='R'){target_coord[0]=target_coord[0]+node.outerWidth(this.include_margin);}
if(this_point_top=='C'){target_coord[1]=target_coord[1]-(this.height()/2);}else if(this_point_top=='B'){target_coord[1]=target_coord[1]-this.height();}
if(node_point_top=='C'){target_coord[1]=target_coord[1]+(node.outerHeight(this.include_margin)/2);}else if(node_point_top=='B'){target_coord[1]=target_coord[1]+node.outerHeight(this.include_margin);}}
return target_coord;},findNodeCoord:function(obj)
{var curleft=curtop=0;if(obj.offsetParent)
{do
{curleft+=obj.offsetLeft;curtop+=obj.offsetTop;}
while((obj=obj.offsetParent)&&$(obj)[0]!=this.params.appendTo[0]);}
return[curleft,curtop];},reset:function()
{return this;}});Turbulent.Overlay.zindex=1000;})(jQuery);;(function($){Turbulent=window.Turbulent||{};Turbulent.Popover=Turbulent.Overlay.extend({init:function(params)
{this._super(params);Turbulent.Popover.Popovers.push(this);},initMembers:function(params)
{if(!params.trigger)throw"Turbulent.Popover: missing trigger!";this.close_markup='<a href="" class="close js-close"></a>';if(!params.content)
params.content='';this.popover_markup='<div class="js-content content">'+params.content+'</div><span class="js-arrow arrow"></span>';params.content="";if(!params.hide_close)
params.content+=this.close_markup;params.content+=this.popover_markup;this._super(params);this.holder.addClass("js-popover popover");this.trigger=$(params.trigger);this.target=params.target?$(params.target):false;this.frame=this.holder;this.arrow=this.holder.find('.js-arrow');this.content=this.holder.find('.js-content');this.position=params.position?params.position:"auto";this.position_container=params.position_container?params.position_container:window;this.arrow_offset=params.arrow_offset?params.arrow_offset:0;params.position_order=params.position_order?params.position_order:new Array();this.order=params.position_order.concat(["bottom","top","right","left","right-bottom","bottom-right","bottom-left","left-bottom","left-top","top-left","top-right","right-top"]);this.removeDuplicates();},bindTrigger:function()
{this._super();this.trigger.bind('focus',this.bindMethod(this.onTriggerFocus));this.trigger.bind('keydown',this.bindMethod(this.onTriggerKeyDown));this.trigger.bind('click',this.bindMethod(this.onTriggerClick));$(this.position_container).bind('resize',this.bindMethod(this.onWindowResize));},unbindTrigger:function()
{this.trigger.unbind('focus',this.bindMethod(this.onTriggerFocus));this.trigger.unbind('keydown',this.bindMethod(this.onTriggerKeyDown));this.trigger.unbind('click',this.bindMethod(this.onTriggerClick));$(this.position_container).unbind('resize',this.bindMethod(this.onWindowResize));},onTriggerFocus:function(e)
{if(this.isVisible)return false;this.current_trigger=$(e.currentTarget);this.setCurrentTarget();this.show();},onTriggerKeyDown:function(e)
{if(e.keyCode=='9')
{this.hide();}},onTriggerClick:function(e)
{if(e.target!=e.currentTarget&&$(e.target).is("a"))return;if(this.isVisible)return false;this.current_trigger=$(e.currentTarget);this.setCurrentTarget();e.preventDefault();e.stopPropagation()
if(!$(e.currentTarget).is('input'))
this.show();},setCurrentTarget:function(){if(this.target){this.current_target=$(this.current_trigger).find(this.target);}
else
if(this.current_trigger)
{this.current_target=this.current_trigger;}
else
{this.current_target=this.trigger;}},onWindowResize:function(e)
{if(this.current_target&&this.coordinates)
this.align(this.current_target,this.coordinates);},getContent:function()
{return this.content.html();},setContent:function(content)
{this.content.html(content);if(this.current_trigger)
this.resetPosition();return this;},reset:function()
{this._super();this.resetPosition();},resetPosition:function(){var position=null;if(this.position=="auto"){position=this.calculatePosition();}
else{position=this.position;}
this.positionPopover(position);},positionPopover:function(position)
{if(!this.current_target);this.setCurrentTarget();this.frame.removeClass('bottom top left right left-top left-bottom right-top right-bottom top-left top-right bottom-left bottom-right');this.frame.addClass(position);this.frameWidth=this.frame.innerWidth();this.frameHeight=this.frame.innerHeight();this.arrowWidth=this.arrow.innerWidth();this.arrowHeight=this.arrow.innerHeight();this.frame.css({'margin':0});var coordinates=['CT','CB'];this.arrow.css({'left':0,'top':0,'marginTop':0,'marginLeft':0});switch(position)
{case'top':this.frame.css({'marginTop':-this.arrowHeight-5});this.arrow.css({'left':(this.frameWidth-this.arrowWidth)/2,'top':this.frameHeight});coordinates=['CB','CT'];break;case'left':this.frame.css({'marginLeft':-this.arrowWidth-5});this.arrow.css({'left':this.frameWidth,'top':(this.frameHeight-this.arrowHeight)/2});coordinates=['RC','LC'];break;case'right':this.frame.css({'marginLeft':this.arrowWidth+5});this.arrow.css({'left':0-this.arrowWidth,'top':(this.frameHeight-this.arrowHeight)/2});coordinates=['LC','RC'];break;case'top-right':this.frame.css({'marginTop':-this.arrowHeight-5});this.frame.css({'marginLeft':-(this.arrowWidth/2)-this.arrow_offset});this.arrow.css({'left':0,'top':this.frameHeight,'marginLeft':this.arrow_offset});coordinates=['LB','CT'];break;case'top-left':this.frame.css({'marginTop':-this.arrowHeight-5});this.frame.css({'marginLeft':+(this.arrowWidth/2)+this.arrow_offset});this.arrow.css({'left':(this.frameWidth-this.arrowWidth),'top':this.frameHeight,'marginLeft':-this.arrow_offset});coordinates=['RB','CT'];break;case'bottom-right':this.frame.css({'marginTop':this.arrowHeight+5});this.frame.css({'marginLeft':-(this.arrowWidth/2)-this.arrow_offset});this.arrow.css({'left':0,'top':0-this.arrowHeight,'marginLeft':this.arrow_offset});coordinates=['LT','CT'];break;case'bottom-left':this.frame.css({'marginTop':this.arrowHeight+5});this.frame.css({'marginLeft':+(this.arrowWidth/2)+this.arrow_offset});this.arrow.css({'left':(this.frameWidth-this.arrowWidth),'top':0-this.arrowHeight,'marginLeft':-this.arrow_offset});coordinates=['RT','CT'];break;case'right-top':this.frame.css({'marginTop':+(this.arrowHeight/2)+this.arrow_offset});this.frame.css({'marginLeft':+(this.arrowWidth)+5});this.arrow.css({'left':-this.arrowWidth,'top':this.frameHeight,'marginTop':-this.arrowHeight-this.arrow_offset});coordinates=['LB','RC'];break;case'right-bottom':this.frame.css({'marginTop':-(this.arrowHeight/2)-this.arrow_offset});this.frame.css({'marginLeft':+(this.arrowWidth)+5});this.arrow.css({'left':-this.arrowWidth,'top':0,'marginTop':this.arrow_offset});coordinates=['LT','RC'];break;case'left-top':this.frame.css({'marginTop':+(this.arrowHeight/2)+this.arrow_offset});this.frame.css({'marginLeft':-(this.arrowWidth)-5});this.arrow.css({'left':this.frameWidth,'top':this.frameHeight,'marginTop':-this.arrowHeight-this.arrow_offset});coordinates=['RB','LC'];break;case'left-bottom':this.frame.css({'marginTop':-(this.arrowHeight/2)-this.arrow_offset});this.frame.css({'marginLeft':-(this.arrowWidth)-5});this.arrow.css({'left':this.frameWidth,'top':0,'marginTop':this.arrow_offset});coordinates=['RT','LC'];break;default:this.frame.css({'marginTop':this.arrowHeight-5});this.arrow.css({'left':(this.frameWidth-this.arrowWidth)/2,'top':(0-this.arrowHeight)});break;}
this.align(this.current_target,coordinates);this.coordinates=coordinates;},move:function(left,top,duration,easing,complete)
{return this._super(left,top,duration,easing,complete);},calculatePosition:function(){if(!this.current_target);this.setCurrentTarget();var position;for(var i=0;i<this.order.length;i++){position=this.performTest(this.order[i]);if(position){return position;}}
return"bottom";},performTest:function(testName){var $window=$(this.position_container);var $popover=$(this.holder);var $target=$(this.current_target);var $arrow=$(this.arrow);var windowOffset=$(this.position_container).offset()==null?{left:0,top:0}:$(this.position_container).offset();var target_offset_left=$(this.current_target).offset().left-windowOffset.left-$(this.position_container).scrollLeft();var target_offset_top=$(this.current_target).offset().top-windowOffset.top-$(this.position_container).scrollTop();var returnedPosition=false;switch(testName){case"bottom":if($window.height()-target_offset_top>$popover.height()&&$window.width()-target_offset_left>$popover.outerWidth()/2&&target_offset_left>$popover.outerWidth()/2&&$window.height()>$popover.outerHeight())
returnedPosition="bottom";break;case"top":if(target_offset_top>$popover.height()&&$window.width()-target_offset_left>$popover.outerWidth()/2&&target_offset_left>$popover.outerWidth()/2&&$window.height()>$popover.outerHeight())
returnedPosition="top";break;case"right":if($window.width()-target_offset_left>$popover.outerWidth()&&$window.height()-target_offset_top>$popover.outerHeight()/2&&target_offset_top>$popover.outerHeight()/2&&$window.width()>$popover.outerWidth())
returnedPosition="right";break;case"left":if(target_offset_left>$popover.width()&&$window.height()-target_offset_top>$popover.outerHeight()/2&&target_offset_top>$popover.outerHeight()/2&&$window.width()>$popover.outerWidth())
returnedPosition="left";break;case"right-bottom":if($window.width()-target_offset_left>$popover.outerWidth()&&$window.height()-target_offset_top>$popover.outerHeight()/2&&target_offset_top>$arrow.height()+this.arrow_offset&&$window.width()>$popover.outerWidth())
returnedPosition="right-bottom";break;case"bottom-right":if($window.height()-target_offset_top>$popover.height()&&$window.width()-target_offset_left>$popover.outerWidth()/2&&target_offset_left>$arrow.width()+this.arrow_offset&&$window.height()>$popover.outerHeight())
returnedPosition="bottom-right";break;case"bottom-left":if($window.height()-target_offset_top>$popover.height()&&$window.width()-target_offset_left>$arrow.width()+this.arrow_offset&&target_offset_left>$popover.outerWidth()/2&&$window.height()>$popover.outerHeight())
returnedPosition="bottom-left";break;case"left-bottom":if(target_offset_left>$popover.width()&&$window.height()-target_offset_top>$popover.outerHeight()/2&&target_offset_top>$arrow.height()+this.arrow_offset&&$window.width()>$popover.outerWidth())
returnedPosition="left-bottom";break;case"left-top":if(target_offset_left>$popover.width()&&$window.height()-target_offset_top>$arrow.height()+this.arrow_offset&&target_offset_top>$popover.outerHeight()/2&&$window.width()>$popover.outerWidth())
returnedPosition="left-top";break;case"top-left":if(target_offset_top>$popover.height()&&$window.width()-target_offset_left>$arrow.width()+this.arrow_offset&&target_offset_left>$popover.outerWidth()/2&&$window.height()>$popover.outerHeight())
returnedPosition="top-left";break;case"top-right":if(target_offset_top>$popover.height()&&$window.width()-target_offset_left>$popover.outerWidth()/2&&target_offset_left>$arrow.width()+this.arrow_offset&&$window.height()>$popover.outerHeight())
returnedPosition="top-right";break;case"right-top":if($window.width()-target_offset_left>$popover.outerWidth()&&$window.height()-target_offset_top>$arrow.height()+this.arrow_offset&&target_offset_top>$popover.outerHeight()/2&&$window.width()>$popover.outerWidth())
returnedPosition="right-top";break;}
return returnedPosition;},destroy:function()
{this.hide();this.unbindTrigger();this._super();},hide:function(duration,easing,callback)
{this.isVisible=false;$(document).unbind('click',this.bindMethod(this.onDocumentClick));this._super(duration,easing,callback);},fadeIn:function(duration,easing,callback)
{if(this.params.one_at_a_time){for(var i=0;i<Turbulent.Popover.Popovers.length;i++)
{var popover=Turbulent.Popover.Popovers[i];if(popover==this)continue;if(popover.isVisible)
popover.fadeOut();}}
this._super(duration,easing,callback);this.reset();return this;},show:function(duration,easing,callback){if(this.params.one_at_a_time){for(var i=0;i<Turbulent.Popover.Popovers.length;i++)
{var popover=Turbulent.Popover.Popovers[i];if(popover==this)continue;if(popover.isVisible)
popover.hide();}}
this._super(duration,easing,Turbulent.bindMethod(this,this.reset));this.isVisible=true;$(document).bind('click',this.bindMethod(this.onDocumentClick));},onDocumentClick:function(e)
{var raw_trigger=this.trigger[0];if(raw_trigger!=e.target&&$(raw_trigger).find(e.target).length==0&&this.holder.find(e.target).length==0){this.hide();}},removeDuplicates:function(){var new_order=new Array();var found;for(var i=0;i<this.order.length;i++){found=false;for(var j=0;j<new_order.length;j++){if(new_order[j]==this.order[i]){found=true;}}
if(!found){new_order[new_order.length]=this.order[i];}}
this.order=new_order;}});Turbulent.Popover.Popovers=[];})(jQuery);;(function($){Turbulent=window.Turbulent||{};Turbulent.Tooltip=Turbulent.Popover.extend({init:function(params)
{this._super(params);},initMembers:function(params){params.class_name=params.class_name+" tooltip js-tooltip ";params.hide_close=true;params.content='<span>'+params.content+'</span>';this._super(params);if(!this.params.trigger)throw"Turbulent.Tooltip: missing trigger!";this.trigger=$(params.trigger);if(params.position=='undefined'||params.position==''){this.align(this.trigger,["LC","RC"]);}},bindTrigger:function(){this._super();var that=this;if(this.params.hide_on_focus)
{this.trigger.bind('focus click',{instance:this},function(e){e.data.instance.fadeOut();if(that.params.unbind_on_focus)
{that.trigger.unbind("focus");}});}
if(this.params.timeout>0)
{var that=this;this.fadeOutTimeout=window.setTimeout(function(){that.fadeOut();},this.params.timeout);}
if(this.params.show_on_hover)
{this.trigger.bind('mouseover focus',{instance:this},function(e){e.data.instance.current_trigger=$(e.currentTarget);if(e.data.instance.params.timeout){window.clearInterval(e.data.instance.fadeOutTimeout);}
if(e.data.instance.position=="auto")
e.data.instance.resetPosition();else
e.data.instance.positionPopover(e.data.instance.position);e.data.instance.fadeIn();});this.trigger.bind('mouseout',{instance:this},function(e){if(e.data.instance.params.timeout){e.data.instance.fadeOutTimeout=window.setTimeout(function(){e.data.instance.fadeOut();},e.data.instance.params.timeout);}
else{if(e.data.instance.params.no_fade)
e.data.instance.hide();else
e.data.instance.fadeOut();}});this.trigger.unbind("click",this.bindMethod(this.onTriggerClick));}},setContent:function(text)
{return this._super("<span>"+text+"</span>");},getContent:function()
{return this.holder.find(".js-content > span").html();}});})(jQuery);;Heap=window.Heap||{};Heap.Api={};Heap.Api.setup=function(setupParams)
{var target=setupParams['object'];var api_url=setupParams['url'];var methods=setupParams['methods'];if(!target)throw new Error("Missing target for Heap.Api.setup");if(!api_url)throw new Error("Missing url for Heap.Api.setup");if(!methods)methods=new Array();target.url=setupParams['url'];for(var m=0;m<methods.length;m++)(function(api_method)
{target[api_method]=function(callback,params)
{jQuery.ajax({type:'POST',url:api_url+'/'+api_method,data:{parameters:JSON.stringify(params)},success:callback});}})(methods[m]);};Heap.Api.HeapAtom={};Heap.Api.setup({object:Heap.Api.HeapAtom,url:"/heap/api/json/atoms",methods:["load","search","create","edit","erase","tag","untag","publish","unpublish","bookmark","lock","unlock","checkLock"]});Heap.Api.HeapChannel={};Heap.Api.setup({object:Heap.Api.HeapChannel,url:"/heap/api/json/channels",methods:["load","search","create","edit","erase","tag","untag","publish","unpublish","bookmark","lock","unlock","checkLock"]});Heap.Api.HeapReaction={};Heap.Api.setup({object:Heap.Api.HeapReaction,url:"/heap/api/json/reactions",methods:["load","search","create","edit","erase","tag","untag","publish","unpublish","bookmark","lock","unlock","checkLock","moderate","approve","disapprove"]});Heap.Api.HeapMedia={};Heap.Api.setup({object:Heap.Api.HeapMedia,url:"/heap/api/json/media",methods:["load","search","create","edit","erase","tag","untag","publish","unpublish","bookmark","lock","unlock","checkLock","replaceDerivedImage"]});Heap.Api.HeapAccount={};Heap.Api.setup({object:Heap.Api.HeapAccount,url:"/heap/api/json/accounts",methods:["load","search","create","edit","erase","publish","unpublish","isloggedin","login","logout"]});Heap.Api.HeapAccountProfile={};Heap.Api.setup({object:Heap.Api.HeapAccountProfile,url:"/heap/api/json/accountprofiles",methods:["load","search","create","edit","erase"]});Heap.Api.HeapMenu={};Heap.Api.setup({object:Heap.Api.HeapMenu,url:"/heap/api/json/menus",methods:["load","search","create","edit","erase","bookmark"]});Heap.Api.HeapGrid={};Heap.Api.setup({object:Heap.Api.HeapGrid,url:"/heap/api/json/grids",methods:["load","search","create","edit","erase","bookmark"]});Heap.Api.HeapBlock={};Heap.Api.setup({object:Heap.Api.HeapBlock,url:"/heap/api/json/blocks",methods:["load","search","create","edit","erase","bookmark"]});Heap.Api.HeapJob={};Heap.Api.setup({object:Heap.Api.HeapJob,url:"/heap/api/json/jobs",methods:["load","search","create","edit","erase","bookmark","retry"]});Heap.Api.HeapRedirect={};Heap.Api.setup({object:Heap.Api.HeapRedirect,url:"/heap/api/json/redirects",methods:["load","search","create","edit","erase","publish","unpublish","bookmark"]});Heap.Api.HeapTag={};Heap.Api.setup({object:Heap.Api.HeapTag,url:"/heap/api/json/taxonomy",methods:["load","search","create","edit","erase","bookmark","rename","merge","renameDictionary","eraseDictionary"]});Heap.Api.HeapAccount.login=function(callback,params)
{params['password']=hex_md5(params['password']);jQuery.ajax({url:"/heap/api/json/accounts/login",data:{parameters:JSON.stringify(params)},success:callback});};;Halo={};Halo.Api={};Heap.Api.setup({object:Halo.Api,url:HaloApiUrl,methods:["login","logout","register","upload_submission","edit_submission","vote","view","share_facebook","share_twitter","share_email"]});var asFlash;var p={};(function($){Halo.UI={initInputText:function(who,label)
{var lbl_now='';$(who).bind('focus',function(){if($(this).val()==label){lbl_now=$(this).val();$(this).val('');}}).bind('blur',function(){if($(this).val()==''){$(this).val(lbl_now);}});},initInputPassword:function(who,label)
{var lbl_now='';$(who+'_text').bind('focus',function(){$(this).hide();$(who).show().focus();});$(who).bind('blur',function(){if($(this).val()==''){$(this).hide();$(who+'_text').show();}});},initDateSelect:function(hidden,year_select,month_select,day_select)
{var on_change_date=function()
{var year=$(year_select).val();var month=$(month_select).val();var day=$(day_select).val();$(hidden).val(year+'-'+month+'-'+day);}
$(year_select).change(on_change_date);$(month_select).change(on_change_date)
$(day_select).change(on_change_date)},initSelect:function(select)
{$(select).find('select').change(function(){var selectTitle=$(this).find('option:selected').text();$(select+' span').text(selectTitle);})},initRadioSubmit:function()
{$('.radio').bind('click',function(e){if($(this).hasClass('active')){return false;}else{var name=$(this).find('input').attr('name');$('input[name="'+name+'"]').parent().removeClass('active');$('input[name="'+name+'"]').attr('checked','');$(this).addClass('active');$(this).find('radio').attr('checked','checked');}});},initCheckboxSubmit:function()
{$('.checkbox').bind('click',function(e){if($(this).hasClass('active')){$(this).removeClass('active');$(this).find('checkbox').attr('checked','');}else{$(this).addClass('active');$(this).find('checkbox').attr('checked','checked');}});},expandPrizes:function()
{$('.js-expand-btn').bind('click',function(e){e.preventDefault();if($(this).hasClass('minus')){$(this).removeClass('minus');}else{$(this).addClass('minus');}
$('.js-expand').slideToggle();});},initAvatar:function(options)
{$(options.container).children().hide();var selectedItem=$(options.container).children().first();selectedItem.show();$(options.previous).bind('click',function(e){e.preventDefault();selectedItem.fadeOut();if(selectedItem.prev().index()!=-1){$('.js-meta-avatar').attr('value',selectedItem.prev().attr('alt'));selectedItem.prev().fadeIn();selectedItem=selectedItem.prev();}else{$('.js-meta-avatar').attr('value',$(options.container).children().last().attr('alt'));$(options.container).children().last().fadeIn();selectedItem=$(options.container).children().last();}});$(options.next).bind('click',function(e){e.preventDefault();selectedItem.fadeOut();if(selectedItem.next().index()!=-1){$('.js-meta-avatar').attr('value',selectedItem.next().attr('alt'));selectedItem.next().fadeIn();selectedItem=selectedItem.next();}else{$('.js-meta-avatar').attr('value',$(options.container).children().first().attr('alt'));$(options.container).children().first().fadeIn();selectedItem=$(options.container).children().first();}});},initFilters:function()
{$('.js-filter').bind('click',function(e){e.preventDefault()
if($(this).parents('.js-humans-all').length){if($(this).hasClass('active')){$('.js-humans .js-filter').removeClass('active');}else{$('.js-humans .js-filter').addClass('active');}}else if($(this).parents('.js-aliens-all').length){if($(this).hasClass('active')){$('.js-aliens .js-filter').removeClass('active');}else{$('.js-aliens .js-filter').addClass('active');}}else{if($(this).hasClass('active')){$(this).removeClass('active');}else{$(this).addClass('active');}}});},initSorters:function()
{$('#video-bar .js-sorter').bind('click',function(e){e.preventDefault();$('#video-bar .btn').removeClass('active');$(this).parents('.btn').addClass('active');});},initVote:function()
{$('.js-vote').bind('click',Halo.UI.vote);},showMailForm:function(){var form=$('.js-mail-form');if(form.css('display')=='block'){form.fadeOut();}else{form.fadeIn();}},initShare:function()
{$('.js-share-facebook').bind('click',function(e){if(asFlash==true){e.preventDefault();}
var atom_id=$(this).attr('rel');var href=$(this).attr('href');Halo.Api.share_facebook(function(response){if(asFlash==true){window.open(href,'_blank');}},{id:atom_id});});$('.js-share-twitter').bind('click',function(e){if(asFlash==true){e.preventDefault();}
var atom_id=$(this).attr('rel');var href=$(this).attr('href');Halo.Api.share_twitter(function(response){if(asFlash==true){window.open(href,'_blank');}},{id:atom_id});});$('.js-share-mail').bind('click',function(e){e.preventDefault();Halo.UI.showMailForm();});$('.js-mail-form').bind('submit',function(e){e.preventDefault();$('.js-overlay').remove();var form_obj=new Halo.Form({form_selector:this});var form_params=form_obj.getFormData();Halo.Api.share_email(function(response){if(!response.success){form_obj.showErrors(response);return;}
Halo.UI.showMailForm();},form_params);});},callHomeVideo:function(id)
{if(id=='')return false;document.getElementById("player").HaloAccueil_loadVideo(id);},initComments:function(){$('#postComment').bind('click',Halo.UI.openComment);$('form.js-post-comment').bind('submit',Halo.UI.postComment);},checkSearch:function(text,ele)
{if($(ele).val()==text){$(ele).val('');}},openComment:function(e){if(e)e.preventDefault();if($('#comments .submit').css('display')=='block'){$('#postComment').removeClass('on');$('#comments .submit').fadeOut();}else{$('#postComment').addClass('on');$('#comments .submit').fadeIn();}},connectOverlay:function(e){$('.js-overlay').fadeIn();Halo.UI.centerBox();Halo.UI.closeBox();},centerBox:function(){var bHeight=$('.js-box').height();var wHeight=$(window).height();var mTop=(wHeight-bHeight)/2;$('.js-box').css('margin-top',mTop-30+'px')},closeBox:function(){var isIn=false;$('.js-box').mouseenter(function(){isIn=true;}).mouseleave(function(){isIn=false;});$('.js-overlay').click(function(){if(!isIn){$(this).fadeOut();}})},vote:function(e){e.preventDefault();if($(this).hasClass('done')){return false;}
if(!$(this).hasClass('connected')){Halo.UI.connectOverlay();return false;}
var properties={type:'vote',subject_id:$(e.target).attr('rel'),subject_class:'HeapAtom'};Halo.Api.vote(function(response){if(!response.success){var params={trigger:$(e.target),content:response.msg,show_on_hover:true,hide_on_focus:true,position:'left'};if(response.code!="HaloBrigade_ErrEmailNotConfirmed")params.timeout=1000;var tooltip=new Turbulent.Tooltip(params);tooltip.fadeIn();return;}
$(e.target).parent().fadeOut(500,function(){$(this).html('<a rel="" class="vote img js-vote connected done" href="#">Vote</a>');$(this).fadeIn();});},{properties:properties});},postComment:function(e){e.preventDefault();var form=$(e.target);var form_obj=new Halo.Form({form_selector:form});var form_params=form_obj.getFormData();Heap.Api.HeapReaction.create(function(response){if(!response.success){form_obj.showErrors(response);return;}
$('.js-post-comment textarea').val('');Halo.UI.openComment();comments_pager.refresh();},{properties:form_params});},setSeeallHeader:function(query,nb){if(query!=''){if(siteLang=='en'){var html='<div> Results for : <span class="orange">'+query+'</span></div>';}else{var html='<div> Résultats de : <span class="orange">'+query+'</span></div>';}
$('.js-result').html(html);}else{$('.js-result').html('');}
$('.js-totalrows').html(nb);},initPlayerStep3:function(params){p.playerUrl=params.playerUrl;p.apiJson=params.apiJson;p.mclass=params.mclass;$(p.mclass).bind('click',this.videoClickStep3)
$('.js-playerStep3 .js-close').bind('click',this.closeVideoStep3)},videoClickStep3:function(e){var mthis=$(this).parent().parent();videoUrl=mthis.find('.js-info').attr('rel');videoId=mthis.find('.js-info').attr('alt');thumbUrl=mthis.find('.js-image').attr('title');var mtitre=mthis.find('.js-fiTitle').text();var mUrl=mthis.find('.js-fiUrl').attr('href');var puStart=mthis.find('.js-puStart').text();var view=mthis.find('.js-vCount').text();var vote=mthis.find('.js-voCount').text();$('#player_cont .info a').attr('href',mUrl);$('#player_cont .seemore').attr('href',mUrl);$('#player_cont .info a strong').text(mtitre);$('#player_cont .js-puStart').text(puStart);$('#player_cont .js-watch').text(view);$('#player_cont .js-vote').text(vote);var height='326';var width='580';var params={allowScriptAccess:'always',allowFullscreen:'true',wmode:'opaque',bgcolor:'#000'};var flashvars={video_url:videoUrl,video_id:videoId,api_url:p.apiJson,auto_play:'false',thumb_url:thumbUrl,shared:"false"};var urlPlayer=p.playerUrl;swfobject.embedSWF(urlPlayer,'player',width,height,"9.0.0",null,flashvars,params,{id:'player',name:'player'},Halo.UI.videoCB);if(asFlash){e.preventDefault();$('.js-playerStep3').fadeIn('700');}},videoCB:function(e){asFlash=e.success;},closeVideoStep3:function(e){e.preventDefault();$('.js-playerStep3').fadeOut('700');}};Halo.Tooltip=Turbulent.Tooltip.extend({});Halo.Form=Turbulent.Form.extend({showErrors:function(response)
{var that=this;$('.js-tooltip').remove();$('.js-error').each(function(){$(this).removeClass('js-error');})
if(!response.success)
{if(response.data&&(response.data!=undefined))
{if(response.data.properties&&(response.data.properties!=undefined))
{$.each(response.data.properties,function(kerr,verr){that.showErrorMessage(kerr,verr);});}
else
{$.each(response.data,function(kerr,verr){that.showErrorMessage(kerr,verr);});}}}},showErrorMessage:function(field_name,error_message)
{field_name=field_name.split('.').join('');$('.js-'+field_name).addClass('js-error');var params={trigger:'.js-'+field_name,content:error_message,show_on_hover:true,hide_on_focus:true,position:'right',timeout:1000};var tooltip=new Turbulent.Tooltip(params);tooltip.fadeIn();}});Halo.Login=Turbulent.Object.extend({init:function(options)
{this._super();this.form=$(options.form)
this.form.bind('submit',this.bindMethod(this.onSubmit));$(options.logout).bind('click',this.bindMethod(this.onLogout));},onSubmit:function(e)
{var usernameErr;e.preventDefault();if(siteLang=='en'){if($('.js-log-username').val()=='Username'){$('.js-log-username').val('');usernameErr=true;}}else{if($('.js-log-username').val()=='Identifiant'){$('.js-log-username').val('');usernameErr=true;}}
this.form_obj=new Halo.Form({form_selector:this.form});this.form_params=this.form_obj.getFormData();if(usernameErr==true){if(siteLang=='en'){$('.js-log-username').val('Username');}else{$('.js-log-username').val('Identifiant');}}
Halo.Api.login(this.bindMethod(this.onApiLogin),this.form_params);},onLogout:function(e)
{e.preventDefault();Halo.Api.logout(this.bindMethod(this.onApiLogout),{});},onApiLogin:function(response)
{if(!response.success)
{if(response.code=="ErrKo"){if(siteLang=='en'){response.data={"log-username":"Please enter your username and/or password."};}else{response.data={"log-username":"Veuillez indiquer votre identifiant et/ou mot de passe"};}}else if(response.code=="ErrUnrecognizedAccount"||response.code=="ErrAccountNotActivated"){response.data={"log-username":response.msg};}
else if(response.code=="ErrWrongPassword"){response.data={"log-password":response.msg};}
this.form_obj.showErrors(response);return;}
location.reload();},onApiLogout:function(response)
{if(!response.success){alert(response.msg);return;}
location.reload();}});Halo.Submit=Turbulent.Object.extend({init:function(options)
{this._super();this.options=options;if(options.step1)this.initStep1(options.step1);if(options.step2)this.initStep2(options.step2);if(options.step3)this.initStep3(options.step3);},initStep1:function(form)
{this.termsAccepted=false;this.validating=false;$('.js-terms').bind('click',this.bindMethod(this.checkTerms));$(form).bind('submit',this.bindMethod(this.onSubmitStep1));},initStep2:function(form)
{this.fileSelected=false;this.uploadSucces=false;this.uploader=new plupload.Uploader({runtimes:'gears,flash,html5',browse_button:'pickfiles',max_file_size:'200mb',url:$(form).attr('action'),flash_swf_url:'/js-codex/externals/plupload/plupload.flash.swf',silverlight_xap_url:'/js-codex/externals/plupload/plupload.silverlight.xap',multi_selection:false,filters:[{"title":"Video files","extensions":"mpeg,mp4,mov,flv,m4v,divx"}],multipart_params:this.options.uploader_params,});this.uploader.bind('FilesAdded',this.bindMethod(this.onFilesAdded));this.uploader.bind('UploadProgress',this.bindMethod(this.onUploadProgress));this.uploader.bind('FileUploaded',this.bindMethod(this.onFileUploaded));this.uploader.init();$(form).bind('submit',this.bindMethod(this.onSubmitStep2));$('.js-rules').bind('click',this.bindMethod(this.checkBtn));},initStep3:function(form)
{$(form).bind('submit',this.bindMethod(this.onSubmitStep3));$(form).find('.js-filter').bind('click',this.bindMethod(this.onFilterClick));},onFilesAdded:function(uploader,files)
{if(uploader.files.length>0){uploader.removeFile(uploader.files[0]);}
for(var i in files){var megs=files[i].size/1024/1024;if(megs>200){var params={trigger:'#pickfiles',content:"Your file is too big!",show_on_hover:true,hide_on_focus:true,position:'right',timeout:1000};var tooltip=new Turbulent.Tooltip(params);tooltip.fadeIn();uploader.removeFile(uploader.files[i]);continue;}
this.fileSelected=true;this.checkBtn();$('.js-upload-name').text(files[i].name);}},onUploadProgress:function(uploader,file)
{$('.js-progress').css({width:file.percent+'%'});},onFileUploaded:function(uploader,file,response)
{$('.js-progress').css({width:'100%'});$('.js-progress-icon').hide();$('.js-progress-text').text("Complete!");var media_response=JSON.parse(response.response);if(!media_response.success){$('.js-progress-text').html(media_response.msg+'<a href="">Retry</a>');return false;}
var mid=media_response.data.id;this.media=[{id:mid,slot:'thumbnail'},{id:mid,slot:'video'}];$('.to-step-4').attr('src','/halo/static/images/next.png');},onFilterClick:function(e)
{e.preventDefault();var filter=$(e.target);if(!filter.is('.js-filter'))filter=filter.parents('.js-filter');var tag="toy."+filter.attr('rel');if(tag=="toy.undefined")throw"Encountered undefined rel in js-filter!";var tags=[];if(this.selected_tags)tags=this.selected_tags;for(var i=0;i<tags.length;i++){if(tags[i]==tag)tags.splice(i,1);}
if(filter.is('.js-active')){filter.removeClass('js-active');}
else{filter.addClass('js-active');tags.push(tag);}
this.selected_tags=tags;},onSubmitStep1:function(e)
{e.preventDefault();if(this.termsAccepted==true&&this.validating==false){this.form=$(e.target);this.form_obj=new Halo.Form({form_selector:this.form});this.form_params=this.form_obj.getFormData();this.blockSubmitStep1();Halo.Api.register(this.bindMethod(this.onApiRegister),this.form_params);}},onApiRegister:function(response)
{if(!response.success){this.blockSubmitStep1(true);this.form_obj.showErrors(response);return;}
$.cookie('newHaloUser','1');location.href="/submit/step2";},blockSubmitStep1:function(v)
{if(v==true){this.validating=false;$('.js-progress-icon').hide();$('.js-to-step-2').attr('src','/halo/static/images/next.png')}else{this.validating=true;$('.js-progress-icon').show();$('.js-to-step-2').attr('src','/halo/static/images/next30.png')}},checkBtn:function(e){if($('.js-rules').is('.active')&&this.fileSelected==true){$('#to-step-3').attr('src','/halo/static/images/next.png')}
else{$('#to-step-3').attr('src','/halo/static/images/next30.png')}},checkTerms:function(e){if($('.js-terms').is('.active')){this.termsAccepted=true;$('.js-to-step-2').attr('src','/halo/static/images/next.png')}
else{this.termsAccepted=false;$('.js-to-step-2').attr('src','/halo/static/images/next30.png')}},onSubmitStep2:function(e)
{e.preventDefault();if($('.js-rules').is('.active')&&this.fileSelected==true){$('#steps').removeClass('step2').addClass('step3');$(this.options.step2).find('.js-window').removeClass('active');$(this.options.step3).find('.js-window').addClass('active');this.uploader.start();}},onSubmitStep3:function(e)
{e.preventDefault();if(!this.media)return;var form=$(e.target);this.form_obj=new Halo.Form({form_selector:form});this.form_params=this.form_obj.getFormData();var final_params={properties:this.form_params,media:this.media};if(this.selected_tags){final_params.tags=this.selected_tags;}
Halo.Api.edit_submission(this.bindMethod(this.onApiEditSubmission),final_params);},onApiEditSubmission:function(response)
{if(!response.success){this.form_obj.showErrors(response);return;}
location.href="/submit/confirmation";}});Halo.Signup=Turbulent.Object.extend({init:function(options)
{this._super();this.options=options;if(options.step1)this.initStep1(options.step1);},initStep1:function(form)
{this.termsAccepted=false;this.validating=false;$('.js-terms').bind('click',this.bindMethod(this.checkTerms));$(form).bind('submit',this.bindMethod(this.onSubmitStep1));},onSubmitStep1:function(e)
{e.preventDefault();if(this.termsAccepted==true&&this.validating==false){this.form=$(e.target);this.form_obj=new Halo.Form({form_selector:this.form});this.form_params=this.form_obj.getFormData();this.blockSubmitStep1();Halo.Api.register(this.bindMethod(this.onApiRegister),this.form_params);}},onApiRegister:function(response)
{if(!response.success){this.blockSubmitStep1(true);this.form_obj.showErrors(response);return;}
location.href=this.options.thanksUrl;},blockSubmitStep1:function(v)
{if(siteLang=='en'){if(v==true){this.validating=false;$('.js-progress-icon').hide();$('.js-to-step-2').attr('src','/halo/static/images/submit.png')}else{this.validating=true;$('.js-progress-icon').show();$('.js-to-step-2').attr('src','/halo/static/images/submit30.png')}}else{if(v==true){this.validating=false;$('.js-progress-icon').hide();$('.js-to-step-2').attr('src','/halo/static/images/submit_fr.png')}else{this.validating=true;$('.js-progress-icon').show();$('.js-to-step-2').attr('src','/halo/static/images/submit30_fr.png')}}},checkBtn:function(e){if($('.js-rules').is('.active')&&this.fileSelected==true){$('#to-step-3').attr('src','/halo/static/images/next.png')}
else{$('#to-step-3').attr('src','/halo/static/images/next30.png')}},checkTerms:function(e){if(siteLang=='en'){if($('.js-terms').is('.active')){this.termsAccepted=true;$('.js-to-step-2').attr('src','/halo/static/images/submit.png')}
else{this.termsAccepted=false;$('.js-to-step-2').attr('src','/halo/static/images/submit30.png')}}else{if($('.js-terms').is('.active')){this.termsAccepted=true;$('.js-to-step-2').attr('src','/halo/static/images/submit_fr.png')}
else{this.termsAccepted=false;$('.js-to-step-2').attr('src','/halo/static/images/submit30_fr.png')}}},onApiEditSubmission:function(response)
{if(!response.success){this.form_obj.showErrors(response);return;}
location.href="/submit/confirmation";}});Halo.AjaxSearch=Turbulent.Object.extend({init:function(options)
{this._super();if(!options.refresh_block)throw"AjaxSearch: No refresh_block!";if(!options.url)throw"AjaxSearch: No url!";this.options=options;this.params=this.options.params||{};this.bind('body');},bind:function(block)
{if(this.options.filters){$(block).find(this.options.filters).bind('click',this.bindMethod(this.onFilterClick));}
if(this.options.sorters){$(block).find(this.options.sorters).bind('click',this.bindMethod(this.onSorterClick));}
if(this.options.pagers){$(block).find(this.options.pagers).bind('click',this.bindMethod(this.onPagerClick));}
if(this.options.text){$(block).find(this.options.text).bind('keypress',this.bindMethod(this.onTextKeyPress));}},refresh:function()
{var url=this.options.url;var params=this.params;if(this.options.showLoader){$('.js-loading').show();}
$.ajax({type:'GET',url:url,data:params,success:Turbulent.bindMethod(this,this.onRefresh)});},onFilterClick:function(e)
{e.preventDefault();var filter=$(e.target);if(!filter.is('.js-filter'))filter=filter.parents('.js-filter');var tag=filter.attr('rel');if(typeof(tag)=='undefined')throw"Encountered undefined rel in a .js-filter!";var tags=[];if(this.params.tags)tags=this.params.tags.split('|');for(var i=0;i<tags.length;i++){if(tags[i]==tag)tags.splice(i,1);}
if(filter.is('.js-active')){filter.removeClass('js-active');}
else{filter.addClass('js-active');tags.push(tag);}
this.params.tags=tags.join('|');this.refresh();},onSorterClick:function(e)
{e.preventDefault();this.params.sort=$(e.target).attr('rel');this.refresh();},onPagerClick:function(e)
{e.preventDefault();var elem=$(e.target);this.params.page=elem.attr('rel');this.refresh();},onTextKeyPress:function(e)
{if(e.which!=13)return;e.preventDefault();this.params.text=$(e.target).val();this.refresh();},onRefresh:function(response)
{if(this.options.showLoader){$('.js-loading').hide();}
$(this.options.refresh_block).html(response);this.bind(this.options.refresh_block);}});})(jQuery);
