var utils={};utils.message={delay:7000,show:function(a){var b=$("nextg-message");if(b){if($defined(a)){b.getElementById("nextg-message-content").innerHTML=a}this.resize();b.removeClass("nextg-hidden");$clear(utils.message.auto_hide);utils.message.auto_hide=utils.message.hide.delay(utils.message.delay)}},hide:function(){if(msg=$("nextg-message")){$clear(utils.message.auto_hide);msg.addClass("nextg-hidden")}},resize:function(){var b=$("nextg-message");var a=b.getElement(".calculate-width");a.setStyle("position","absolute");b.removeProperty("style");b.setStyle("width",a.clientWidth+50);a.setStyle("position","static")}};utils.form={validate:function(b,c){utils.message.show(b.message);var a=[];if(b.data&&b.data.fields){a=b.data.fields}document.getElements("input[type=text], input[type=password]").each(function(d){d.removeClass("error");if(c&&!d.disabled&&(a.contains(d.name)||a.length==0)){d.value=""}if(b.status!="ok"&&a.contains(d.name)){d.addClass("error")}})}};utils.ajaxloading={show:function(){utils.message.hide();$("nextg-ajax-loading").style.display=""},hide:function(){$("nextg-ajax-loading").style.display="none"}};utils.request={options:{indicator:true,onRequest:function(){if(this.options.indicator){utils.ajaxloading.show()}},onComplete:function(){if(this.options.indicator){utils.ajaxloading.hide()}if(this.options.callback){this.options.callback()}},onFailure:function(){(function(){utils.message.show("Connection error!")}).delay(2000)}},html:function(a){new Request.HTML($merge(this.options,a)).send()},send:function(a){new Request($merge(this.options,a)).send()}};utils.ajaxlink={init:function(a,c,d){this.container=a;this.content=c;this.callback=d;this.hashListener=new HashListener({start:true});this.links=a.getElements("a");this.link=this.links[0];var b=this.hashListener.getHash();if(!b){b=this.links[0].getProperty("index");this.hashListener.setHash(b)}this.attachEvents()},attachEvents:function(){this.links.each(function(a){a.addEvent("click",function(b){b.stop();this.hashListener.setHash(a.getProperty("index"))}.bind(this))}.bind(this));this.hashListener.addEvent("hashChanged",function(b){var a=this.container.getElement("a[index="+b+"]");if(a){this.select(a)}}.bind(this))},select:function(a){if(!a.hasClass("selected")){this.content.setOpacity(0.5);utils.request.send({url:a.getProperty("href"),method:"get",link:"cancel",onSuccess:function(b){this.active(a);this.content.innerHTML=b;if(this.callback){this.callback(this.content)}}.bind(this),callback:function(){this.content.setOpacity(1)}.bind(this)})}},active:function(a){if(this.link){this.link.removeClass("selected");this.link.getParent().removeClass("active")}a.addClass("selected");a.getParent().addClass("active");this.link=a},callback:function(){}};utils.event={onmousedown:function(a){a=$(a);if(a.hasClass("nextg-button")){a=a.getParent()}a.removeEvent("mouseup");a.addEvent("mouseup",function(){a.removeClass("clicked")});a.addClass("clicked")}};utils.effect={tween:function(c,a,b){return new Fx.Tween(c,{property:a,link:"cancel",duration:b}).addEvent("onStart",Chain.prototype.clearChain)}};utils.toggler={options:{expand_text:"[More]",collapse_text:"[Less]"},expand:function(){var a=this.content.clientHeight;this.content_wrapper.fx.start(a).chain(function(){this.handler.innerHTML=this.options.collapse_text;this.content.is_expand=true}.bind(this))},collapse:function(){this.content_wrapper.fx.start(0).chain(function(){this.handler.innerHTML=this.options.expand_text;this.content.is_expand=false}.bind(this))},click:function(c,a){this.handler=$(c);this.options=$merge(this.options,a);var b=c.getParent(".toggler");if(b){this.content=b.getElement(".toggler-content");this.content_wrapper=b.getElement(".toggler-content-wrapper");if(!this.content_wrapper.fx){this.content_wrapper.fx=utils.effect.tween(this.content_wrapper,"height",300).set(0)}if(!this.content.is_expand){this.expand()}else{this.collapse()}}}};
