var img=new Image();var spinnerWidth=0;var spinnerHeight=0;$(img).load(function(){spinnerWidth=img.width;spinnerHeight=img.height});img.src=base+"img/spinner.gif";jQuery.fn.spinner=function(){var a=this.innerWidth();if(a<spinnerWidth){a=spinnerWidth}var c=this.innerHeight();if(c<spinnerHeight){c=spinnerHeight}var b=$("<div></div>");var d=$("<div></div>");if(parseInt(this.css("padding-top"))){d.css("margin-top","-"+parseInt(this.css("padding-top"))+"px");b.css("margin-top","-"+parseInt(this.css("padding-top"))+"px")}if(parseInt(this.css("padding-left"))){d.css("margin-left","-"+parseInt(this.css("padding-top"))+"px");b.css("margin-left","-"+parseInt(this.css("padding-top"))+"px")}b.attr("class","overlay");b.css({position:"absolute","z-index":"99999",height:c,width:a,"background-color":"#FFF",opacity:0.4});d.attr("class","spinner");d.css({position:"absolute","z-index":"99999",height:c,width:a,"background-image":"url("+img.src+")","background-repeat":"no-repeat","background-position":"center"});this.prepend(b);this.prepend(d)};jQuery.fn.loads=function(c,b,a){$(this).spinner();if(c.href){c=c.href}else{if(c.substr(0,5)!="http:"){c=base+c}}var d=this;$.get(c,function(e){if(typeof b=="undefined"){$(d).html(e)}else{if(e.substr(0,2)=="ok"){$(d).html(b)}else{if(typeof a!="undefined"){$(d).html(a)}else{$(d).html(b)}}}$(window).resize()})};jQuery.fn.loadImg=function(a){$(this).spinner();if(a.href){a=a.href}else{if(a.substr(0,5)!="http:"){a=base+a}}var b=new Image();var c=this;$(b).load(function(){c.html(this);$(window).resize()});b.src=a};function l(b,a){if(typeof window.debug=="undefined"){window.debug=false}if(typeof a=="undefined"){a=false}if(typeof console=="object"){if((window.debug)||(a)){console.log(b)}}}function setAnchor(a){if(location.href.search("#")!=-1){location.href=location.href.substr(0,location.href.search("#"))+"#"+a}else{location.href+="#"+a}}function getAnchor(){if(location.href.search("#")!=-1){return location.href.substr(location.href.search("#")+1)}else{return""}}function getHref(a){if(typeof a=="undefined"){a=true}if(a){return location.href}else{if(location.href.search("#")!=-1){return location.href.substr(0,location.href.search("#"))}else{return location.href}}}function setHref(a){location.href=base+a}var Newsletter={form:"",add:function(a){this.form=a;$("#"+a).submit(function(){if(Validation.validateForm(Newsletter.form)){$.ajax({url:$("#"+Newsletter.form).attr("action"),data:$("#"+Newsletter.form).serialize(),cache:false,dataType:"json",type:"POST",success:function(b){$("#"+Newsletter.form).html(b.message)}});$("#"+Newsletter.form).spinner()}return false})}};var Validation={timer:0,params:new Array(),usernameRequest:"",emailRequest:"",usernameRequestResult:true,emailRequestResult:true,ajaxRequestUrl:"users",beforeMessage:"",afterMessage:"",add:function(b,e,j,m,g,c,k,h,d){var i=new Array(10);i.field=j;i.model=e;i.message=m;i.rule=h;i.params=d;i.required=g;i.allowEmpty=c;i.last=k;i.on=true;i.form=b;if(!this.params[b]){this.params[b]=new Array()}if(!this.params[b]["fields"]){this.params[b]["fields"]=new Array()}if(!this.params[b]["fields"][j]){this.params[b]["fields"][j]=new Array()}this.params[b]["fields"][j][h]=i;var f=$("#"+b).find(":input[name^='data["+e+"]["+j+"]'][type!=hidden]");if(f.length!=0){f.addClass("validate");f.data("validate",{form:b,model:e,field:j});f.blur(function(){var a=$(this).data("validate");if(a){Validation.validateField(a.form,a.field)}Validation.hideSubmitMessage(a.form)});f.keyup(function(){var a=$(this).data("validate");if(a){if(Validation.timer){clearTimeout(Validation.timer)}Validation.timer=setTimeout(function(){Validation.validateField(a.form,a.field)},1000);Validation.hideSubmitMessage(a.form)}});f.mouseup(function(){var a=$(this).data("validate");if(a){if(Validation.timer){clearTimeout(Validation.timer)}Validation.timer=setTimeout(function(){Validation.validateField(a.form,a.field)},1000);Validation.hideSubmitMessage(a.form)}})}},init:function(c,a,b){if(!this.params[c]){this.params[c]=new Array()}this.params[c]["model"]=a;this.params[c]["form"]=c;this.params[c]["message"]=b;$("#"+c).find(":input[type=submit]").attr("disabled",false);$("#"+c).submit(function(){return Validation.validateForm($(this).attr("id"))})},validateForm:function(a,c){if(typeof c=="undefined"){c=true}$("#"+a).find(":input[type=submit]").attr("disabled",true);var d=true;for(var b in Validation.params[a]["fields"]){if(!Validation.validateField(a,b)){d=false}}if(c){if(!d){Validation.showSubmitMessage(a)}else{Validation.hideSubmitMessage(a)}}$("#"+a).find(":input[type=submit]").attr("disabled",false);return d},validateField:function(a,h,i){if(typeof i=="undefined"){i=true}var f=true;var e="";var j="";var k="";var c="";var d="";var b="";if(this.params[a]["fields"][h]){for(var g in this.params[a]["fields"][h]){if(this.params[a]["fields"][h][g]["on"]){e=this.params[a]["fields"][h][g]["model"];j=this.params[a]["fields"][h][g]["last"];k=this.params[a]["fields"][h][g]["message"];c=this.params[a]["fields"][h][g]["allowEmpty"];d=this.params[a]["fields"][h][g]["params"];b=this.getValue(a,e,h);if((typeof b=="boolean")&&(!b)){return true}else{if((typeof b=="string")&&(b=="")&&(c)){continue}if((typeof b=="number")&&(b==0)&&(c)){continue}if(!this.checkRule(a,e,h,b,g,d,k)){f=false;if(i){this.showMessage(a,e,h,k)}if(j){break}}else{if(i){this.hideMessage(a,e,h)}}}}}}return f},validateRule:function(a,h,g,i){if(typeof i=="undefined"){i=true}var f=true;var e="";var j="";var c="";var d="";var b="";if(this.params[a]["fields"][h]){if(this.params[a]["fields"][h][g]["on"]){e=this.params[a]["fields"][h][g]["model"];j=this.params[a]["fields"][h][g]["message"];c=this.params[a]["fields"][h][g]["allowEmpty"];d=this.params[a]["fields"][h][g]["params"];b=this.getValue(a,e,h);if((typeof b=="boolean")&&(!b)){return true}else{if((typeof b=="string")&&(b=="")&&(c)){return true}if((typeof b=="number")&&(b==0)&&(c)){return true}if(!this.checkRule(a,e,h,b,g,d,j)){f=false;if(i){this.showMessage(a,e,h,j)}}else{if(i){this.hideMessage(a,e,h)}}}}}return f},getValue:function(b,a,d){var c=$("#"+b).find(":input[name^='data["+a+"]["+d+"]'][type!=hidden]");if(c.length==0){return false}else{var e=false;if(c.length==1){switch(c.prop("type")){case"checkbox":if(c.prop("checked")==true){e=1}else{e=0}break;case"radio":if($(c).prop("checked")){e=$(this).val()}else{e=""}break;case"select-one":case"select-multiple":if(c.val()){e=c.val()}else{e=0}break;default:if(c.val()){e=c.val()}else{if(c.text()){e=c.text()}else{e=""}}break}}else{switch(c.prop("type")){case"select-one":if(c.length==3){if((c.eq(0).val())&&(c.eq(1).val())&&(c.eq(2).val())){e=c.eq(0).val()+"-"+c.eq(1).val()+"-"+c.eq(2).val()}else{e=""}}else{if(c.length==5){if((c.eq(0).val())&&(c.eq(1).val())&&(c.eq(2).val())&&(c.eq(3).val())&&(c.eq(4).val())){e=c.eq(0).val()+"-"+c.eq(1).val()+"-"+c.eq(2).val()+" "+c.eq(3).val()+":"+c.eq(4).val()}else{e=""}}}break;case"radio":e="";c.each(function(){if($(this).prop("checked")){e=$(this).val()}});break;case"checkbox":e=new Array();c.each(function(){if($(this).prop("checked")){e.push($(this).val())}});break}}return e}},showMessage:function(c,a,d,b){this.hideMessage(c,a,d);$("#"+c).find(":input[name^='data["+a+"]["+d+"]'][type!=hidden]").eq(0).closest("div.input").addClass("error").append('<div class="error-message">'+this.beforeMessage+b+this.afterMessage+"</div>").show()},hideMessage:function(b,a,c){$("#"+b).find(":input[name^='data["+a+"]["+c+"]'][type!=hidden]").eq(0).closest("div.input").removeClass("error").find(".error-message").remove()},showSubmitMessage:function(b,a){var c=$("#"+b).find(".error:first").offset().top-30;$("html:not(:animated),body:not(:animated)").animate({scrollTop:c});this.hideSubmitMessage(b);if(typeof a=="undefined"){a=this.params[b]["message"]}$("#"+b).find(":input[type=submit]").eq(0).closest("div.submit").append('<div class="error-message">'+this.beforeMessage+a+this.afterMessage+"</div>").show()},hideSubmitMessage:function(a){$("#"+a).find(":input[type=submit]").eq(0).closest("div.submit").find(".error-message").remove()},checkRule:function(form,model,field,val,rule,params,message){switch(rule){case"between":return(((val.length)>=eval(params.param1))&&((val.length)<=eval(params.param2)))?true:false;break;case"comparison":if(isNaN(val)){return false}switch(params.param1){case"isgreater":case">":return(eval(val)>eval(params.param2))?true:false;break;case"isless":case"<":return(eval(val)<eval(params.param2))?true:false;break;case"greaterorequal":case">=":return(eval(val)>=eval(params.param2))?true:false;break;case"lessorequal":case"<=":return(eval(val)>=eval(params.param2))?true:false;break;case"equalto":case"==":return(eval(val)==eval(params.param2))?true:false;break;case"notequal":case"!=":return(eval(val)!=eval(params.param2))?true:false;break}break;case"datetime":return val.match(/^(?:(?:(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.|\x20)(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.|\x20)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8])))) ([01]\d|2[0-3])(:[0-5]\d){0,2}$/);break;case"date":return val.match(/^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.|\x20)(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.|\x20)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))))$/);break;case"time":return val.match(/^([01]\d|2[0-3])(:[0-5]\d){0,2}$/);break;case"boolean":return val.match(/^0|1$/);break;case"decimal":return val.match(/^[-+]?[0-9]*\.{1}[0-9]+(?:[eE][-+]?[0-9]+)?$/);break;case"email":return this.validEmail(val);break;case"equalTo":return(val==params.param1)?true:false;break;case"extension":return val.match(params.param1);break;case"ip":return val.match(/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/);break;case"minLength":return(val.length<params.param1)?false:true;break;case"maxLength":return(val.length>params.param1)?false:true;break;case"length":return(val.length==params.param1);break;case"numeric":return val.match(/^[-+]?[0-9]*\.{1}[0-9]+(?:[eE][-+]?[0-9]+)?$/);break;case"phone":return val.match(/^\+[0-9]{11}$/);break;case"postal":return val.match(/^[0-9]{2}-[0-9]{3}$/);break;case"range":if(isNaN(val)){return false}return((eval(val)>eval(params.param1))&&(eval(val)<eval(params.param2)))?true:false;break;case"inList":return val.match(params.param1);break;case"username":return val.match(/^[a-zA-Z0-9_]+$/);break;case"alpha":return val.match(/^[a-zA-Z]+$/);break;case"alphanumeric":return val.match(/^[a-zA-Z0-9]+$/);break;case"int":case"integer":return val.match(/^[0-9]+$/);break;case"float":return val.match(/[0-9]+\.[0-9]+$|^[0-9]+$/);break;case"tags":return val.match(/^[ ]*[\w ,]+[ ]*$/);break;case"notEmpty":case"notempty":if((typeof val=="number")||(typeof val=="boolean")){if(val!=0){return true}else{return false}}return val.match(/[^\s]+/m);break;case"custom":case"regex":return val.match(params.param1);break;case"url":return val.match(/^(?:(?:https?|ftps?|file|news|gopher):\/\/)?(?:(?:(?:25[0-5]|2[0-4]\d|(?:(?:1\d)?|[1-9]?)\d)\.){3}(?:25[0-5]|2[0-4]\d|(?:(?:1\d)?|[1-9]?)\d)|(?:[0-9a-z]{1}[0-9a-z\-]*\.)*(?:[0-9a-z]{1}[0-9a-z\-]{0,62})\.(?:[a-z]{2,6}|[a-z]{2}\.[a-z]{2,6})(?::[0-9]{1,4})?)(?:\/?|\/[\w\-\.,@?^=%&:;\/~\+#]*[\w\-\@?^=%&\/~\+#])$/i);break;case"multiple":var v=true;if((params.param1)&&(val.length<params.param1)){v=false}if((params.param2)&&(val.length>params.param2)){v=false}if(params.param3){$.each(val,function(index,element){if(!element.match(params.param3)){v=false}})}return v;break;case"uniqueUsername":return this.uniqueUsername(form,model,field,val,rule,params,message);break;case"uniqueEmail":return this.uniqueEmail(form,model,field,val,rule,params,message);break;case"confirmPassword":return this.confirmPassword(form,model,field,val,rule,params,message);break;case"password":return val.match(/^.*(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$/);break;default:try{eval("this.rule="+rule);return this.rule(form,model,field,val,rule,params,message)}catch(err){}return true;break}},validEmail:function(b){if(b.length<=0){return true}var e=b.match("^(.+)@(.+)$");if(e==null){return false}if(e[1]!=null){var d=/^\"?[\w-_\.]*\"?$/;if(e[1].match(d)==null){return false}}if(e[2]!=null){var c=/^[\w-\.]*\.[A-Za-z]{2,4}$/;if(e[2].match(c)==null){var a=/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;if(e[2].match(a)==null){return false}}return true}return false},uniqueUsername:function(c,a,e,g,d,f,b){if((g)&&(g!=this.usernameRequest)){this.usernameRequest=g;$.ajax({url:base+this.ajaxRequestUrl+"/check_username/"+g+"/",cache:false,dataType:"json",success:function(h){if((!h)||(h.response=="err")){Validation.showMessage(c,a,e,b);Validation.usernameRequestResult=false}else{Validation.hideMessage(c,a,e,b);Validation.usernameRequestResult=true}}})}else{return Validation.usernameRequestResult}},uniqueEmail:function(c,a,e,g,d,f,b){if((g)&&(g!=this.emailRequest)){this.emailRequest=g;$.ajax({url:base+this.ajaxRequestUrl+"/check_email/"+g+"/",cache:false,dataType:"json",success:function(h){if((!h)||(h.response=="err")){Validation.showMessage(c,a,e,b);Validation.emailRequestResult=false}else{Validation.hideMessage(c,a,e,b);Validation.emailRequestResult=true}}})}else{return Validation.emailRequestResult}},confirmPassword:function(c,a,e,g,d,f,b){if(g!=this.getValue(c,a,"password")){return false}return true},turnOff:function(a,c,b){if(this.params[a]["fields"][c][b]){this.params[a]["fields"][c][b]["on"]=false}},turnOn:function(a,c,b){if(this.params[a]["fields"][c][b]){this.params[a]["fields"][c][b]["on"]=true}}};$(document).ready(function(){$('a[href^="#"]').each(function(a){$(this).attr("href",location.href+$(this).attr("href"))});$('a[rel="external"]').click(function(){window.open(this.href);return false});$("#menu>ul>li").each(function(a){$(this).addClass("i"+(a+1))});$("#menu ul").addClass("sf-menu").superfish({hoverClass:"hover"});$("#search-form input").focus(function(){$(this).parent().find("label").hide()});$("#search-form input").each(function(){if($(this).val()){$(this).parent().find("label").hide()}});$("#slide ul li").galleryslide({navigation:$("#slide-nav"),loop:true,autoplay:true,delay:5000});$('a[rel="preview"]').fancybox({transitionIn:"elastic",transitionOut:"elastic",type:"image",centerOnScroll:true})});
