function addSeparatorsNF(d,e,a,c){d+="";var f=d.indexOf(e);var g="";if(f!=-1){g=a+d.substring(f+1,d.length);d=d.substring(0,f)}var b=/(\d+)(\d{3})/;while(b.test(d)){d=d.replace(b,"$1"+c+"$2")}return d+g}function updateStats(){var c=new Date();s=c.getHours()*3600+c.getMinutes()*60+c.getSeconds();var g=$("todayUsers")?$("todayUsers").innerHTML.replace(/\s/g,""):0;var f=$("todayPhotos")?$("todayPhotos").innerHTML.replace(/\s/g,""):0;
var b=$("messages")?$("messages").innerHTML.replace(/\s/g,""):0;var e=$("instant")?$("instant").innerHTML.replace(/\s/g,""):0;if(!(g&&f&&b&&e)){return}if(typeof(window.currentMessages)=="undefined"){window.currentMessages=Number(b);window.currentInstant=Number(e);window.initialInstant=Number(e);window.noRuns=0}if($("membri")){membersNr=Number($("membersDailyCount").innerHTML)/(24*3600)*s+Number(g);
$("membri").update(addSeparatorsNF(membersNr.toFixed(0),".",","," "))}photosNr=Number($("photosDailyCount").innerHTML)/(24*3600)*s+Number(f);$("photos").update(addSeparatorsNF(photosNr.toFixed(0),".",","," "));window.currentMessages+=Number($("messagesDailyCount").innerHTML)/(24*3600);if($("messages")){$("messages").update(addSeparatorsNF(window.currentMessages.toFixed(0),".",","," "))}var d=Number($("instantDailyCount").innerHTML)/(24*3600)*window.noRuns+window.initialInstant;
var a=d-window.currentInstant;var h=Math.floor(Math.random()*a);window.currentInstant+=h;$("instant").update(addSeparatorsNF(window.currentInstant.toFixed(0),".",","," "));if($("online")&&$("online").innerHTML.indexOf(".")>-1){$("online").innerHTML=$("online").innerHTML.replace("."," ")}window.noRuns+=0.9}document.observe("dom:loaded",function(){if(typeof(clickHeatSite)!="undefined"){initClickHeat()
}if($("todayUsers")&&$("messages")){var a=new PeriodicalExecuter(updateStats,0.9)}});var FormValidator=Class.create();FormValidator.prototype={initialize:function(a){if(typeof(a)!="object"){a={}}this.form=a.form||null;this.successCallback=a.onSuccess||Prototype.emptyFunction;this.failureCallback=a.onFailure||Prototype.emptyFunction;this.onValidateAllCallback=a.onValidateAll||Prototype.emptyFunction;
this.event=a.event||"none";this.onSubmit=a.onSubmit||null;this.invalid=[];this.successCallback=this.successCallback.bind(this);this.failureCallback=this.failureCallback.bind(this);this.onValidateAllCallback=this.onValidateAllCallback.bind(this);this.counter=0;if(this.form){this.form=$(this.form);Event.observe(this.form,"submit",this.submitter.bindAsEventListener(this))}this.validatorTypes=$H({email:this.emailValidator,length:this.lengthValidator,numeric:this.numericValidator,number:this.numberValidator,alpha:this.alphaValidator,alnum:this.alphaNumValidator,username:this.usernameValidator,size:this.sizeValidator,required:this.requiredValidator,equals:this.equalsValidator,regexp:this.regexpValidator,least:this.leastValidator});
this.validators=$H({})},submitter:function(a){var b=this.validateAll();if(!b&&a){a.stop()}if(b&&this.onSubmit){if(a){a.stop()}this.onSubmit()}},add:function(d){if(typeof($(d.id))=="undefined"&&typeof($(d.name))=="undefined"){throw"id or name of the validator is mandatory";return}if(typeof(d.type)=="undefined"){throw"type of the validator is mandatory"}var a=new Array();if(d.id){a=a.concat(d.id)}if(d.name){a=a.concat(d.name)
}var l=new Array();l=l.concat(d.message);if(Object.isFunction(d.type)){this.register("custom"+this.counter,d.type);d.type=["custom"+this.counter];this.counter++}var j=new Array();j=j.concat(d.type);var p=d.parameters||{};for(var h=0;h<a.length;h++){var c=a[h];var b=null;for(var o=0;o<j.length;o++){var k=j[o];var r=k.indexOf("|");if(r!=-1){var n=k.split("|");k=n[0];for(var g=1;g<n.length;g++){var q=n[g].indexOf("=");
var f=new Object();f[n[g].substr(0,q)]=n[g].substr(q+1);p=Object.extend(p,f)}}var e=l[o]=="undefined"?" ":l[o];if(typeof(this.validators.get(c))=="undefined"){b=$H({id:c,types:[k],successCallback:d.onSuccess||this.successCallback,failureCallback:d.onFailure||this.failureCallback,parameters:p||{},event:d.event||this.event,message:[e]})}else{b=this.validators.get(c);b.set("event",d.event||b.get("event"));
b.get("types").push(k);b.get("message").push(e);b.set("parameters",Object.extend(b.get("parameters"),p))}this.validators.set(c,b)}if(b.get("event")!="none"){Event.observe(c,b.get("event"),function(){this.validate(c)}.bind(this))}}},remove:function(a){this.validators.unset(a)},validate:function(f){var c=this.validators.get(f);for(ii=0;ii<c.get("types").length;ii++){var d=this.validatorTypes.get(c.get("types")[ii]);
try{var a=d(f,c.get("parameters"))}catch(b){if(window.console){window.console.log(b)}}if(a){try{c.get("successCallback")(f,ii)}catch(b){alert("Success callback error:"+b.message)}}else{var e=c.get("message")[ii];try{c.get("failureCallback")(f,e,ii)}catch(b){if(window.console){window.console.log(b)}}return false}}return true},validateAll:function(){this.invalid.clear();var b=this.validators.keys();if(!b.length){return true
}this.onValidateAllCallback(b);var a=true;for(var d=0;d<b.length;d++){good=this.validate(b[d]);if(!good){a=false}}if(this.invalid.length){var c=$(this.invalid[0]);if(Element.viewportOffset(c).top<150){c.focus();window.scrollBy(0,-150)}else{window.scrollBy(0,150);c.focus()}}return a},forceSuccess:function(a){a.each(function(b){this.validators.get(b).get("successCallback")(b)})},forceFailure:function(a){a.each(function(b){this.validators.get(b).get("failureCallback")(b)
})},register:function(b,a){this.validatorTypes.set(b,a)},$:function(a){var b=$A(document.getElementsByName(a));if(count(b)){return b[0]}else{return $(a)}},emailValidator:function(f,b){emailStr=$(f).value;if(!emailStr.length){return true}var e=emailStr.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},lengthValidator:function(b,a){if(a.max&&$(b).value.length>a.max){return false}if(a.min&&$(b).value.length<a.min){return false}return true},numericValidator:function(d,b){var a=/[^0-9]/;var c=$(d).value.search(a);if($(d).value.length>0&&c>=0){return false}return true
},numberValidator:function(){var a=$(id).value;if(a.length>0&&isNaN(a)){return false}return true},alphaValidator:function(d,b){var a=/[^a-z]/i;var c=$(d).value.search(a);if($(d).value.length>0&&c>=0){return false}return true},alphaNumValidator:function(d,b){var a=/[a-z]{1}[^a-z0-9]/i;var c=$(d).value.search(a);if($(d).value.length>0&&c>=0){return false}return true},usernameValidator:function(c,a){var b=/^[a-z]+[a-z0-9_]*$/i;
if(!$(c).value.match(b)){return false}return true},sizeValidator:function(c,a){var b=parseFloat($(c).value);if(b.length==0||isNaN(b)){return false}if(typeof(a.max)!="undefined"&&b>a.max){return false}if(typeof(a.min)!="undefined"&&b<a.min){return false}return true},requiredValidator:function(d,c){var a=$(d);var b=a.type;if(b=="checkbox"&&!a.checked){return false}if($F(d).length==0){return false}return true
},equalsValidator:function(c,b){var a=$(c);if(a.value!=$(b.id).value){return false}return true},leastValidator:function(c,a){var b=$A(document.getElementsByName(a.name));good=false;b.each(function(d){d=$(d);if(d.checked==true){good=true}});return good},regexpValidator:function(c,b){if($(c).value.length>0){var a;if(typeof(b.modifier)!="undefined"){a=new RegExp(b.pattern,b.modifier)}else{a=new RegExp(b.pattern)
}if(!a.match($(c).value)){return false}}return true}};