var _____WB$wombat$assign$function_____=function(name){return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name))||self[name];};if(!self.__WB_pmw){self.__WB_pmw=function(obj){this.__WB_source=obj;return this;}}{ let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opens = _____WB$wombat$assign$function_____("opens"); //MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006-2007 Valerio Proietti, , MIT Style License. var MooTools={version:"1.11"};function $defined(A){return(A!=undefined);}function $type(B){if(!$defined(B)){return false;}if(B.htmlElement){return"element"; }var A=typeof B;if(A=="object"&&B.nodeName){switch(B.nodeType){case 1:return"element";case 3:return(/\S/).test(B.nodeValue)?"textnode":"whitespace";}}if(A=="object"||A=="function"){switch(B.constructor){case Array:return"array"; case RegExp:return"regexp";case Class:return"class";}if(typeof B.length=="number"){if(B.item){return"collection";}if(B.callee){return"arguments";}}}return A; }function $merge(){var C={};for(var B=0;B-1:this.indexOf(A)>-1;},escapeRegExp:function(){return this.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1"); }});Array.extend({rgbToHex:function(D){if(this.length<3){return false;}if(this.length==4&&this[3]==0&&!D){return"transparent";}var B=[];for(var A=0;A<3; A++){var C=(this[A]-0).toString(16);B.push((C.length==1)?"0"+C:C);}return D?B:"#"+B.join("");},hexToRgb:function(C){if(this.length!=3){return false;}var A=[]; for(var B=0;B<3;B++){A.push(parseInt((this[B].length==1)?this[B]+this[B]:this[B],16));}return C?A:"rgb("+A.join(",")+")";}});Function.extend({create:function(A){var B=this; A=$merge({bind:B,event:false,"arguments":null,delay:false,periodical:false,attempt:false},A);if($chk(A.arguments)&&$type(A.arguments)!="array"){A.arguments=[A.arguments]; }return function(E){var C;if(A.event){E=E||window.event;C=[(A.event===true)?E:new A.event(E)];if(A.arguments){C.extend(A.arguments);}}else{C=A.arguments||arguments; }var F=function(){return B.apply($pick(A.bind,B),C);};if(A.delay){return setTimeout(F,A.delay);}if(A.periodical){return setInterval(F,A.periodical);}if(A.attempt){try{return F(); }catch(D){return false;}}return F();};},pass:function(A,B){return this.create({"arguments":A,bind:B});},attempt:function(A,B){return this.create({"arguments":A,bind:B,attempt:true})(); },bind:function(B,A){return this.create({bind:B,"arguments":A});},bindAsEventListener:function(B,A){return this.create({bind:B,event:true,"arguments":A}); },delay:function(B,C,A){return this.create({delay:B,bind:C,"arguments":A})();},periodical:function(A,C,B){return this.create({periodical:A,bind:C,"arguments":B})(); }});Number.extend({toInt:function(){return parseInt(this);},toFloat:function(){return parseFloat(this);},limit:function(B,A){return Math.min(A,Math.max(B,this)); },round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A;},times:function(B){for(var A=0;A";}D=document.createElement(D);}D=$(D);return(!C||!D)?D:D.set(C);}});var Elements=new Class({initialize:function(A){return(A)?$extend(A,this):this; }});Elements.extend=function(A){for(var B in A){this.prototype[B]=A[B];this[B]=$native.generic(B);}};function $(B){if(!B){return null;}if(B.htmlElement){return Garbage.collect(B); }if([window,document].contains(B)){return B;}var A=$type(B);if(A=="string"){B=document.getElementById(B);A=(B)?"element":false;}if(A!="element"){return null; }if(B.htmlElement){return Garbage.collect(B);}if(["object","embed"].contains(B.tagName.toLowerCase())){return B;}$extend(B,Element.prototype);B.htmlElement=function(){}; return Garbage.collect(B);}document.getElementsBySelector=document.getElementsByTagName;function $$(){var D=[];for(var C=0,B=arguments.length;C0&&A<13){this.key="f"+A;}}this.key=this.key||String.fromCharCode(this.code).toLowerCase();}else{if(this.type.test(/(click|mouse|menu)/)){this.page={x:C.pageX||C.clientX+document.documentElement.scrollLeft,y:C.pageY||C.clientY+document.documentElement.scrollTop}; this.client={x:C.pageX?C.pageX-window.pageXOffset:C.clientX,y:C.pageY?C.pageY-window.pageYOffset:C.clientY};this.rightClick=(C.which==3)||(C.button==2); switch(this.type){case"mouseover":this.relatedTarget=C.relatedTarget||C.fromElement;break;case"mouseout":this.relatedTarget=C.relatedTarget||C.toElement; }this.fixRelatedTarget();}}}return this;},stop:function(){return this.stopPropagation().preventDefault();},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation(); }else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();}else{this.event.returnValue=false; }return this;}});Event.fix={relatedTarget:function(){if(this.relatedTarget&&this.relatedTarget.nodeType==3){this.relatedTarget=this.relatedTarget.parentNode; }},relatedTargetGecko:function(){try{Event.fix.relatedTarget.call(this);}catch(A){this.relatedTarget=this.target;}}};Event.prototype.fixRelatedTarget=(window.gecko)?Event.fix.relatedTargetGecko:Event.fix.relatedTarget; Event.keys=new Abstract({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Element.Methods.Events={addEvent:function(C,B){this.$events=this.$events||{}; this.$events[C]=this.$events[C]||{keys:[],values:[]};if(this.$events[C].keys.contains(B)){return this;}this.$events[C].keys.push(B);var A=C;var D=Element.Events[C]; if(D){if(D.add){D.add.call(this,B);}if(D.map){B=D.map;}if(D.type){A=D.type;}}if(!this.addEventListener){B=B.create({bind:this,event:true});}this.$events[C].values.push(B); return(Element.NativeEvents.contains(A))?this.addListener(A,B):this;},removeEvent:function(C,B){if(!this.$events||!this.$events[C]){return this;}var F=this.$events[C].keys.indexOf(B); if(F==-1){return this;}var A=this.$events[C].keys.splice(F,1)[0];var E=this.$events[C].values.splice(F,1)[0];var D=Element.Events[C];if(D){if(D.remove){D.remove.call(this,B); }if(D.type){C=D.type;}}return(Element.NativeEvents.contains(C))?this.removeListener(C,E):this;},addEvents:function(A){return Element.setMany(this,"addEvent",A); },removeEvents:function(A){if(!this.$events){return this;}if(!A){for(var B in this.$events){this.removeEvents(B);}this.$events=null;}else{if(this.$events[A]){this.$events[A].keys.each(function(C){this.removeEvent(A,C); },this);this.$events[A]=null;}}return this;},fireEvent:function(C,B,A){if(this.$events&&this.$events[C]){this.$events[C].keys.each(function(D){D.create({bind:this,delay:A,"arguments":B})(); },this);}return this;},cloneEvents:function(C,A){if(!C.$events){return this;}if(!A){for(var B in C.$events){this.cloneEvents(C,B);}}else{if(C.$events[A]){C.$events[A].keys.each(function(D){this.addEvent(A,D); },this);}}return this;}};window.extend(Element.Methods.Events);document.extend(Element.Methods.Events);Element.extend(Element.Methods.Events);Element.Events=new Abstract({mouseenter:{type:"mouseover",map:function(A){A=new Event(A); if(A.relatedTarget!=this&&!this.hasChild(A.relatedTarget)){this.fireEvent("mouseenter",A);}}},mouseleave:{type:"mouseout",map:function(A){A=new Event(A); if(A.relatedTarget!=this&&!this.hasChild(A.relatedTarget)){this.fireEvent("mouseleave",A);}}},mousewheel:{type:(window.gecko)?"DOMMouseScroll":"mousewheel"}}); Element.NativeEvents=["click","dblclick","mouseup","mousedown","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","keydown","keypress","keyup","load","unload","beforeunload","resize","move","focus","blur","change","submit","reset","select","error","abort","contextmenu","scroll"]; Function.extend({bindWithEvent:function(B,A){return this.create({bind:B,"arguments":A,event:Event});}});Elements.extend({filterByTag:function(A){return new Elements(this.filter(function(B){return(Element.getTag(B)==A); }));},filterByClass:function(A,C){var B=this.filter(function(D){return(D.className&&D.className.contains(A," "));});return(C)?B:new Elements(B);},filterById:function(C,B){var A=this.filter(function(D){return(D.id==C); });return(B)?A:new Elements(A);},filterByAttribute:function(B,A,D,E){var C=this.filter(function(F){var G=Element.getProperty(F,B);if(!G){return false;}if(!A){return true; }switch(A){case"=":return(G==D);case"*=":return(G.contains(D));case"^=":return(G.substr(0,D.length)==D);case"$=":return(G.substr(G.length-D.length)==D); case"!=":return(G!=D);case"~=":return G.contains(D," ");}return false;});return(E)?C:new Elements(C);}});function $E(A,B){return($(B)||document).getElement(A); }function $ES(A,B){return($(B)||document).getElementsBySelector(A);}$$.shared={regexp:/^(\w*|\*)(?:#([\w-]+)|\.([\w-]+))?(?:\[(\w+)(?:([!*^$]?=)["']?([^"'\]]*)["']?)?])?$/,xpath:{getParam:function(B,D,E,C){var A=[D.namespaceURI?"xhtml:":"",E[1]]; if(E[2]){A.push('[@id="',E[2],'"]');}if(E[3]){A.push('[contains(concat(" ", @class, " "), " ',E[3],' ")]');}if(E[4]){if(E[5]&&E[6]){switch(E[5]){case"*=":A.push("[contains(@",E[4],', "',E[6],'")]'); break;case"^=":A.push("[starts-with(@",E[4],', "',E[6],'")]');break;case"$=":A.push("[substring(@",E[4],", string-length(@",E[4],") - ",E[6].length,' + 1) = "',E[6],'"]'); break;case"=":A.push("[@",E[4],'="',E[6],'"]');break;case"!=":A.push("[@",E[4],'!="',E[6],'"]');}}else{A.push("[@",E[4],"]");}}B.push(A.join(""));return B; },getItems:function(B,E,G){var F=[];var A=document.evaluate(".//"+B.join("//"),E,$$.shared.resolver,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(var D=0,C=A.snapshotLength; D<\/script>'); $("ie_ready").onreadystatechange=function(){if(this.readyState=="complete"){A();}};}}else{window.addListener("load",A);document.addListener("DOMContentLoaded",A); }}}};window.onDomReady=function(A){return this.addEvent("domready",A);};window.extend({getWidth:function(){if(this.webkit419){return this.innerWidth;}if(this.opera){return document.body.clientWidth; }return document.documentElement.clientWidth;},getHeight:function(){if(this.webkit419){return this.innerHeight;}if(this.opera){return document.body.clientHeight; }return document.documentElement.clientHeight;},getScrollWidth:function(){if(this.ie){return Math.max(document.documentElement.offsetWidth,document.documentElement.scrollWidth); }if(this.webkit){return document.body.scrollWidth;}return document.documentElement.scrollWidth;},getScrollHeight:function(){if(this.ie){return Math.max(document.documentElement.offsetHeight,document.documentElement.scrollHeight); }if(this.webkit){return document.body.scrollHeight;}return document.documentElement.scrollHeight;},getScrollLeft:function(){return this.pageXOffset||document.documentElement.scrollLeft; },getScrollTop:function(){return this.pageYOffset||document.documentElement.scrollTop;},getSize:function(){return{size:{x:this.getWidth(),y:this.getHeight()},scrollSize:{x:this.getScrollWidth(),y:this.getScrollHeight()},scroll:{x:this.getScrollLeft(),y:this.getScrollTop()}}; },getPosition:function(){return{x:0,y:0};}});var Fx={};Fx.Base=new Class({options:{onStart:Class.empty,onComplete:Class.empty,onCancel:Class.empty,transition:function(A){return -(Math.cos(Math.PI*A)-1)/2; },duration:500,unit:"px",wait:true,fps:50},initialize:function(A){this.element=this.element||null;this.setOptions(A);if(this.options.initialize){this.options.initialize.call(this); }},step:function(){var A=$time();if(A=(7-4*B)/11){C=-Math.pow((11-6*B-11*D)/4,2)+A*A;break;}}return C;},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3); }});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2]);});Fx.Transitions.compat(B); });var Drag={};Drag.Base=new Class({options:{handle:false,unit:"px",onStart:Class.empty,onBeforeStart:Class.empty,onComplete:Class.empty,onSnap:Class.empty,onDrag:Class.empty,limit:false,modifiers:{x:"left",y:"top"},grid:false,snap:6},initialize:function(B,A){this.setOptions(A); this.element=$(B);this.handle=$(this.options.handle)||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.bound={start:this.start.bindWithEvent(this),check:this.check.bindWithEvent(this),drag:this.drag.bindWithEvent(this),stop:this.stop.bind(this)}; this.attach();if(this.options.initialize){this.options.initialize.call(this);}},attach:function(){this.handle.addEvent("mousedown",this.bound.start);return this; },detach:function(){this.handle.removeEvent("mousedown",this.bound.start);return this;},start:function(C){this.fireEvent("onBeforeStart",this.element); this.mouse.start=C.page;var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue;}this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt(); this.mouse.pos[D]=C.page[D]-this.value.now[D];if(A&&A[D]){for(var B=0;B<2;B++){if($chk(A[D][B])){this.limit[D][B]=($type(A[D][B])=="function")?A[D][B]():A[D][B]; }}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid};}document.addListener("mousemove",this.bound.check); document.addListener("mouseup",this.bound.stop);this.fireEvent("onStart",this.element);C.stop();},check:function(A){var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2))); if(B>this.options.snap){document.removeListener("mousemove",this.bound.check);document.addListener("mousemove",this.bound.drag);this.drag(A);this.fireEvent("onSnap",this.element); }A.stop();},drag:function(A){this.out=false;this.mouse.now=A.page;for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue;}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B]; if(this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1];this.out=true;}else{if($chk(this.limit[B][0])&&(this.value.now[B]B.left&&A.xB.top);},stop:function(){if(this.overed&&!this.out){this.overed.fireEvent("drop",[this.element,this]); }else{this.element.fireEvent("emptydrop",this);}this.parent();return this;}});Element.extend({makeDraggable:function(A){return new Drag.Move(this,A);}}); var XHR=new Class({options:{method:"post",async:true,onRequest:Class.empty,onSuccess:Class.empty,onFailure:Class.empty,urlEncoded:true,encoding:"utf-8",autoCancel:false,headers:{}},setTransport:function(){this.transport=(window.XMLHttpRequest)?new XMLHttpRequest():(window.ie?new ActiveXObject("Microsoft.XMLHTTP"):false); return this;},initialize:function(A){this.setTransport().setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers={};if(this.options.urlEncoded&&this.options.method=="post"){var B=(this.options.encoding)?"; charset="+this.options.encoding:""; this.setHeader("Content-type","application/x-www-form-urlencoded"+B);}if(this.options.initialize){this.options.initialize.call(this);}},onStateChange:function(){if(this.transport.readyState!=4||!this.running){return ; }this.running=false;var A=0;try{A=this.transport.status;}catch(B){}if(this.options.isSuccess.call(this,A)){this.onSuccess();}else{this.onFailure();}this.transport.onreadystatechange=Class.empty; },isSuccess:function(A){return((A>=200)&&(A<300));},onSuccess:function(){this.response={text:this.transport.responseText,xml:this.transport.responseXML}; this.fireEvent("onSuccess",[this.response.text,this.response.xml]);this.callChain();},onFailure:function(){this.fireEvent("onFailure",this.transport);},setHeader:function(A,B){this.headers[A]=B; return this;},send:function(A,C){if(this.options.autoCancel){this.cancel();}else{if(this.running){return this;}}this.running=true;if(C&&this.options.method=="get"){A=A+(A.contains("?")?"&":"?")+C; C=null;}this.transport.open(this.options.method.toUpperCase(),A,this.options.async);this.transport.onreadystatechange=this.onStateChange.bind(this);if((this.options.method=="post")&&this.transport.overrideMimeType){this.setHeader("Connection","close"); }$extend(this.headers,this.options.headers);for(var B in this.headers){try{this.transport.setRequestHeader(B,this.headers[B]);}catch(D){}}this.fireEvent("onRequest"); this.transport.send($pick(C,null));return this;},cancel:function(){if(!this.running){return this;}this.running=false;this.transport.abort();this.transport.onreadystatechange=Class.empty; this.setTransport();this.fireEvent("onCancel");return this;}});XHR.implement(new Chain,new Events,new Options);var Ajax=XHR.extend({options:{data:null,update:null,onComplete:Class.empty,evalScripts:false,evalResponse:false},initialize:function(B,A){this.addEvent("onSuccess",this.onComplete); this.setOptions(A);this.options.data=this.options.data||this.options.postBody;if(!["post","get"].contains(this.options.method)){this._method="_method="+this.options.method; this.options.method="post";}this.parent();this.setHeader("X-Requested-With","XMLHttpRequest");this.setHeader("Accept","text/javascript, text/html, application/xml, text/xml, */*"); this.url=B;},onComplete:function(){if(this.options.update){$(this.options.update).empty().setHTML(this.response.text);}if(this.options.evalScripts||this.options.evalResponse){this.evalScripts(); }this.fireEvent("onComplete",[this.response.text,this.response.xml],20);},request:function(A){A=A||this.options.data;switch($type(A)){case"element":A=$(A).toQueryString(); break;case"object":A=Object.toQueryString(A);}if(this._method){A=(A)?[this._method,A].join("&"):this._method;}return this.send(this.url,A);},evalScripts:function(){var B,A; if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){A=this.response.text;}else{A=[];var C=/]*>([\s\S]*?)<\/script>/gi; while((B=C.exec(this.response.text))){A.push(B[1]);}A=A.join("\n");}if(A){(window.execScript)?window.execScript(A):window.setTimeout(A,0);}},getHeader:function(A){try{return this.transport.getResponseHeader(A); }catch(B){}return null;}});Object.toQueryString=function(B){var C=[];for(var A in B){C.push(encodeURIComponent(A)+"="+encodeURIComponent(B[A]));}return C.join("&"); };Element.extend({send:function(A){return new Ajax(this.getProperty("action"),$merge({data:this.toQueryString()},A,{method:"post"})).request();}});var Cookie=new Abstract({options:{domain:false,path:false,duration:false,secure:false},set:function(C,D,B){B=$merge(this.options,B); D=encodeURIComponent(D);if(B.domain){D+="; domain="+B.domain;}if(B.path){D+="; path="+B.path;}if(B.duration){var A=new Date();A.setTime(A.getTime()+B.duration*24*60*60*1000); D+="; expires="+A.toGMTString();}if(B.secure){D+="; secure";}document.cookie=C+"="+D;return $extend(B,{key:C,value:D});},get:function(A){var B=document.cookie.match("(?:^|;)\\s*"+A.escapeRegExp()+"=([^;]*)"); return B?decodeURIComponent(B[1]):false;},remove:function(B,A){if($type(B)=="object"){this.set(B.key,"",$merge(B,{duration:-1}));}else{this.set(B,"",$merge(A,{duration:-1})); }}});var Json={toString:function(C){switch($type(C)){case"string":return'"'+C.replace(/(["\\])/g,"\\$1")+'"';case"array":return"["+C.map(Json.toString).join(",")+"]"; case"object":var A=[];for(var B in C){A.push(Json.toString(B)+":"+Json.toString(C[B]));}return"{"+A.join(",")+"}";case"number":if(isFinite(C)){break;}case false:return"null"; }return String(C);},evaluate:function(str,secure){return(($type(str)!="string")||(secure&&!str.test(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/)))?null:eval("("+str+")"); }};Json.Remote=XHR.extend({initialize:function(B,A){this.url=B;this.addEvent("onSuccess",this.onComplete);this.parent(A);this.setHeader("X-Request","JSON"); },send:function(A){return this.parent(this.url,"json="+Json.toString(A));},onComplete:function(){this.fireEvent("onComplete",[Json.evaluate(this.response.text,this.options.secure)]); }});var Asset=new Abstract({javascript:function(C,B){B=$merge({onload:Class.empty},B);var A=new Element("script",{src:C}).addEvents({load:B.onload,readystatechange:function(){if(this.readyState=="complete"){this.fireEvent("load"); }}});delete B.onload;return A.setProperties(B).inject(document.head);},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head); },image:function(C,B){B=$merge({onload:Class.empty,onabort:Class.empty,onerror:Class.empty},B);var D=new Image();D.src=C;var A=new Element("img",{src:C}); ["load","abort","error"].each(function(E){var F=B["on"+E];delete B["on"+E];A.addEvent(E,function(){this.removeEvent(E,arguments.callee);F.call(this);}); });if(D.width&&D.height){A.fireEvent("load",A,1);}return A.setProperties(B);},images:function(D,C){C=$merge({onComplete:Class.empty,onProgress:Class.empty},C); if(!D.push){D=[D];}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B);B++;if(B==D.length){C.onComplete(); }}});A.push(E);});return new Elements(A);}});var Hash=new Class({length:0,initialize:function(A){this.obj=A||{};this.setLength();},get:function(A){return(this.hasKey(A))?this.obj[A]:null; },hasKey:function(A){return(A in this.obj);},set:function(A,B){if(!this.hasKey(A)){this.length++;}this.obj[A]=B;return this;},setLength:function(){this.length=0; for(var A in this.obj){this.length++;}return this;},remove:function(A){if(this.hasKey(A)){delete this.obj[A];this.length--;}return this;},each:function(A,B){$each(this.obj,A,B); },extend:function(A){$extend(this.obj,A);return this.setLength();},merge:function(){this.obj=$merge.apply(null,[this.obj].extend(arguments));return this.setLength(); },empty:function(){this.obj={};this.length=0;return this;},keys:function(){var A=[];for(var B in this.obj){A.push(B);}return A;},values:function(){var A=[]; for(var B in this.obj){A.push(this.obj[B]);}return A;}});function $H(A){return new Hash(A);}Hash.Cookie=Hash.extend({initialize:function(B,A){this.name=B; this.options=$extend({autoSave:true},A||{});this.load();},save:function(){if(this.length==0){Cookie.remove(this.name,this.options);return true;}var A=Json.toString(this.obj); if(A.length>4096){return false;}Cookie.set(this.name,A,this.options);return true;},load:function(){this.obj=Json.evaluate(Cookie.get(this.name),true)||{}; this.setLength();}});Hash.Cookie.Methods={};["extend","set","merge","empty","remove"].each(function(A){Hash.Cookie.Methods[A]=function(){Hash.prototype[A].apply(this,arguments); if(this.options.autoSave){this.save();}return this;};});Hash.Cookie.implement(Hash.Cookie.Methods);var Color=new Class({initialize:function(B,D){D=D||(B.push?"rgb":"hex"); var C,A;switch(D){case"rgb":C=B;A=C.rgbToHsb();break;case"hsb":C=B.hsbToRgb();A=B;break;default:C=B.hexToRgb(true);A=C.rgbToHsb();}C.hsb=A;C.hex=C.rgbToHex(); return $extend(C,Color.prototype);},mix:function(){var A=$A(arguments);var C=($type(A[A.length-1])=="number")?A.pop():50;var B=this.copy();A.each(function(D){D=new Color(D); for(var E=0;E<3;E++){B[E]=Math.round((B[E]/100*(100-C))+(D[E]/100*C));}});return new Color(B,"rgb");},invert:function(){return new Color(this.map(function(A){return 255-A; }));},setHue:function(A){return new Color([A,this.hsb[1],this.hsb[2]],"hsb");},setSaturation:function(A){return new Color([this.hsb[0],A,this.hsb[2]],"hsb"); },setBrightness:function(A){return new Color([this.hsb[0],this.hsb[1],A],"hsb");}});function $RGB(C,B,A){return new Color([C,B,A],"rgb");}function $HSB(C,B,A){return new Color([C,B,A],"hsb"); }Array.extend({rgbToHsb:function(){var B=this[0],C=this[1],J=this[2];var G,F,H;var I=Math.max(B,C,J),E=Math.min(B,C,J);var K=I-E;H=I/255;F=(I!=0)?K/I:0; if(F==0){G=0;}else{var D=(I-B)/K;var A=(I-C)/K;var L=(I-J)/K;if(B==I){G=L-A;}else{if(C==I){G=2+D-L;}else{G=4+A-D;}}G/=6;if(G<0){G++;}}return[Math.round(G*360),Math.round(F*100),Math.round(H*100)]; },hsbToRgb:function(){var C=Math.round(this[2]/100*255);if(this[1]==0){return[C,C,C];}else{var A=this[0]%360;var E=A%60;var F=Math.round((this[2]*(100-this[1]))/10000*255); var D=Math.round((this[2]*(6000-this[1]*E))/600000*255);var B=Math.round((this[2]*(6000-this[1]*(60-E)))/600000*255);switch(Math.floor(A/60)){case 0:return[C,B,F]; case 1:return[D,C,F];case 2:return[F,C,B];case 3:return[F,D,C];case 4:return[B,F,C];case 5:return[C,F,D];}}return false;}});var Scroller=new Class({options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B); }},initialize:function(B,A){this.setOptions(A);this.element=$(B);this.mousemover=([window,document].contains(B))?$(document.body):this.element;},start:function(){this.coord=this.getCoords.bindWithEvent(this); this.mousemover.addListener("mousemove",this.coord);},stop:function(){this.mousemover.removeListener("mousemove",this.coord);this.timer=$clear(this.timer); },getCoords:function(A){this.page=(this.element==window)?A.client:A.page;if(!this.timer){this.timer=this.scroll.periodical(50,this);}},scroll:function(){var A=this.element.getSize(); var D=this.element.getPosition();var C={x:0,y:0};for(var B in this.page){if(this.page[B]<(this.options.area+D[B])&&A.scroll[B]!=0){C[B]=(this.page[B]-this.options.area-D[B])*this.options.velocity; }else{if(this.page[B]+this.options.area>(A.size[B]+D[B])&&A.scroll[B]+A.size[B]!=A.scrollSize[B]){C[B]=(this.page[B]-A.size[B]+this.options.area-D[B])*this.options.velocity; }}}if(C.y||C.x){this.fireEvent("onChange",[A.scroll.x+C.x,A.scroll.y+C.y]);}}});Scroller.implement(new Events,new Options);var Slider=new Class({options:{onChange:Class.empty,onComplete:Class.empty,onTick:function(A){this.knob.setStyle(this.p,A); },mode:"horizontal",steps:100,offset:0},initialize:function(D,A,B){this.element=$(D);this.knob=$(A);this.setOptions(B);this.previousChange=-1;this.previousEnd=-1; this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bindWithEvent(this));var C,F;switch(this.options.mode){case"horizontal":this.z="x";this.p="left"; C={x:"left",y:false};F="offsetWidth";break;case"vertical":this.z="y";this.p="top";C={x:false,y:"top"};F="offsetHeight";}this.max=this.element[F]-this.knob[F]+(this.options.offset*2); this.half=this.knob[F]/2;this.getPos=this.element["get"+this.p.capitalize()].bind(this.element);this.knob.setStyle("position","relative").setStyle(this.p,-this.options.offset); var E={};E[this.z]=[-this.options.offset,this.max-this.options.offset];this.drag=new Drag.Base(this.knob,{limit:E,modifiers:C,snap:0,onStart:function(){this.draggedKnob(); }.bind(this),onDrag:function(){this.draggedKnob();}.bind(this),onComplete:function(){this.draggedKnob();this.end();}.bind(this)});if(this.options.initialize){this.options.initialize.call(this); }},set:function(A){this.step=A.limit(0,this.options.steps);this.checkStep();this.end();this.fireEvent("onTick",this.toPosition(this.step));return this; },clickedElement:function(B){var A=B.page[this.z]-this.getPos()-this.half;A=A.limit(-this.options.offset,this.max-this.options.offset);this.step=this.toStep(A); this.checkStep();this.end();this.fireEvent("onTick",A);},draggedKnob:function(){this.step=this.toStep(this.drag.value.now[this.z]);this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step; this.fireEvent("onChange",this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("onComplete",this.step+""); }},toStep:function(A){return Math.round((A+this.options.offset)/this.max*this.options.steps);},toPosition:function(A){return this.max*A/this.options.steps; }});Slider.implement(new Events);Slider.implement(new Options);var SmoothScroll=Fx.Scroll.extend({initialize:function(B){this.parent(window,B);this.links=(this.options.links)?$$(this.options.links):$$(document.links); var A=window.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(D){if(D.href.indexOf(A)!=0){return ;}var C=D.href.substr(A.length);if(C&&$(C)){this.useLink(D,C); }},this);if(!window.webkit419){this.addEvent("onComplete",function(){window.location.hash=this.anchor;});}},useLink:function(B,A){B.addEvent("click",function(C){this.anchor=A; this.toElement(A);C.stop();}.bindWithEvent(this));}});var Sortables=new Class({options:{handles:false,onStart:Class.empty,onComplete:Class.empty,ghost:true,snap:3,onDragStart:function(A,B){B.setStyle("opacity",0.7); A.setStyle("opacity",0.7);},onDragComplete:function(A,B){A.setStyle("opacity",1);B.remove();this.trash.remove();}},initialize:function(D,B){this.setOptions(B); this.list=$(D);this.elements=this.list.getChildren();this.handles=(this.options.handles)?$$(this.options.handles):this.elements;this.bound={start:[],moveGhost:this.moveGhost.bindWithEvent(this)}; for(var C=0,A=this.handles.length;C0);var D=this.active.getPrevious();var C=this.active.getNext(); if(D&&A&&BC.getCoordinates().top){this.active.injectAfter(C);}this.previous=B;},serialize:function(A){return this.list.getChildren().map(A||function(B){return this.elements.indexOf(B); },this);},end:function(){this.previous=null;document.removeListener("mousemove",this.bound.move);document.removeListener("mouseup",this.bound.end);if(this.options.ghost){document.removeListener("mousemove",this.bound.moveGhost); this.fireEvent("onDragComplete",[this.active,this.ghost]);}this.fireEvent("onComplete",this.active);}});Sortables.implement(new Events,new Options);var Tips=new Class({options:{onShow:function(A){A.setStyle("visibility","visible"); },onHide:function(A){A.setStyle("visibility","hidden");},maxTitleChars:30,showDelay:100,hideDelay:100,className:"tool",offsets:{x:16,y:16},fixed:false},initialize:function(B,A){this.setOptions(A); this.toolTip=new Element("div",{"class":this.options.className+"-tip",styles:{position:"absolute",top:"0",left:"0",visibility:"hidden"}}).inject(document.body); this.wrapper=new Element("div").inject(this.toolTip);$$(B).each(this.build,this);if(this.options.initialize){this.options.initialize.call(this);}},build:function(B){B.$tmp.myTitle=(B.href&&B.getTag()=="a")?B.href.replace("http://",""):(B.rel||false); if(B.title){var C=B.title.split("::");if(C.length>1){B.$tmp.myTitle=C[0].trim();B.$tmp.myText=C[1].trim();}else{B.$tmp.myText=B.title;}B.removeAttribute("title"); }else{B.$tmp.myText=false;}if(B.$tmp.myTitle&&B.$tmp.myTitle.length>this.options.maxTitleChars){B.$tmp.myTitle=B.$tmp.myTitle.substr(0,this.options.maxTitleChars-1)+"…"; }B.addEvent("mouseenter",function(D){this.start(B);if(!this.options.fixed){this.locate(D);}else{this.position(B);}}.bind(this));if(!this.options.fixed){B.addEvent("mousemove",this.locate.bindWithEvent(this)); }var A=this.end.bind(this);B.addEvent("mouseleave",A);B.addEvent("trash",A);},start:function(A){this.wrapper.empty();if(A.$tmp.myTitle){this.title=new Element("span").inject(new Element("div",{"class":this.options.className+"-title"}).inject(this.wrapper)).setHTML(A.$tmp.myTitle); }if(A.$tmp.myText){this.text=new Element("span").inject(new Element("div",{"class":this.options.className+"-text"}).inject(this.wrapper)).setHTML(A.$tmp.myText); }$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);},end:function(A){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this); },position:function(A){var B=A.getPosition();this.toolTip.setStyles({left:B.x+this.options.offsets.x,top:B.y+this.options.offsets.y});},locate:function(B){var D={x:window.getWidth(),y:window.getHeight()}; var A={x:window.getScrollLeft(),y:window.getScrollTop()};var C={x:this.toolTip.offsetWidth,y:this.toolTip.offsetHeight};var G={x:"left",y:"top"};for(var E in G){var F=B.page[E]+this.options.offsets[E]; if((F+C[E]-A[E])>D[E]){F=B.page[E]-this.options.offsets[E]-C[E];}this.toolTip.setStyle(G[E],F);}},show:function(){if(this.options.timeout){this.timer=this.hide.delay(this.options.timeout,this); }this.fireEvent("onShow",[this.toolTip]);},hide:function(){this.fireEvent("onHide",[this.toolTip]);}});Tips.implement(new Events,new Options);var Group=new Class({initialize:function(){this.instances=$A(arguments); this.events={};this.checker={};},addEvent:function(B,A){this.checker[B]=this.checker[B]||{};this.events[B]=this.events[B]||[];if(this.events[B].contains(A)){return false; }else{this.events[B].push(A);}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D]));},this);return this;},check:function(C,A,B){this.checker[C][B]=true; var D=this.instances.every(function(F,E){return this.checker[C][E]||false;},this);if(!D){return ;}this.checker[C]={};this.events[C].each(function(E){E.call(this,this.instances,A); },this);}});var Accordion=Fx.Elements.extend({options:{onActive:Class.empty,onBackground:Class.empty,display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C,E,F,B; $each(arguments,function(I,H){switch($type(I)){case"object":C=I;break;case"element":B=$(I);break;default:var G=$$(I);if(!E){E=G;}else{F=G;}}});this.togglers=E||[]; this.elements=F||[];this.container=$(B);this.setOptions(C);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true;}if($chk(this.options.show)){this.options.display=false; this.previous=this.options.show;}if(this.options.start){this.options.display=false;this.options.show=false;}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity"; }if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth";}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight"; }for(var D=0,A=this.togglers.length;D0));this.fireEvent(C?"onBackground":"onActive",[this.togglers[D],E]); for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]];}},this);return this.start(B);},showThisHideOpen:function(A){return this.display(A);}});Fx.Accordion=Accordion; /** * Observer - Observe formelements for changes * * @version 1.0rc2 * * @license MIT-style license * @author Harald Kirschner * @copyright Author */ var Observer = new Class({ options: { periodical: false, onChange: Class.empty, delay: 500 }, initialize: function(el, options){ this.setOptions(options); this.element = el; this.value = this.element.value; if (this.options.periodical) this.timer = this.changed.periodical(this.options.periodical, this); else this.element.addEvent('keyup', this.changed.bind(this)); }, changed: function() { var value = this.element.value; if ($equals(this.value, value)) return; this.clear(); this.value = value; this.timeout = this.onFired.delay(this.options.delay, this); }, setValue: function(value) { this.value = value; this.element.value = value; return this.clear(); }, onFired: function() { this.fireEvent('onChange', [this.element.value, this.element]); }, clear: function() { $clear(this.timeout); return this; } }); Observer.implement(new Options); Observer.implement(new Events); var $equals = function(obj1, obj2) { return (obj1 == obj2); };window.addEvent('load', function () { $$("div .profile-widget").each(function(e) { e.getFirst().getNext().eff = new Fx.Slide(e.getFirst().getNext(), {duration: 200}); e.getFirst().addEvent('click', function() { el = this.getNext().getFirst(); if(!el.st || el.st == 'out') { el.st = 'in'; el.eff.slideOut(); this.addClass('collapsed'); } else { el.st = 'out'; el.eff.slideIn(); this.removeClass('collapsed'); } }); }); }); var App = new Object(); App.fixTarget = function(t) { if(!t.target) { return t.srcElement; } else { return t.target; } }; App.Button = new Class({ options: { onClick: Class.empty }, initialize: function(el, options) { this.setOptions(options); if(!this.options.id) { this.options.id = (Math.random()*1000).round(); } d = new Element('div'); d.id = this.options.id+'cont'; d.injectInside(el); bt = new Element('a'); bt.id = this.options.id; if(this.options.text) { bt.setHTML(this.options.text); } bt.injectInside(d); bt.addEvent('click', (function(e) { if(this.options.toggle) { if(!App.fixTarget(e).hasClass('toggled')) { App.fixTarget(e).addClass('toggled'); } else { App.fixTarget(e).removeClass('toggled'); } } this.fireEvent('onClick', [App.fixTarget(e), this]); }).bind(this)); } }); App.Button.implement(new Options); App.Button.implement(new Events); //элемент Форма. App.Form = new Class({ options: { itemClass: 'profile-item', labelClass: 'label', labelSep: ':', onSubmit: Class.empty }, initialize: function(el, options, noParent) { this.setOptions(options); trgt = el.getParent(); if(!el.getParent().id) { trgt = el; } if($(trgt.id+"-ui-xform")) { $(trgt.id+"-ui-xform").remove(); } nc = el.clone(); nc.injectAfter(el); nc.empty(); el.setStyle('display', 'none'); this.topEl = el; this.container = nc; this.container.addClass('xform'); this.container.id = trgt.id+"-ui-xform"; this.container.setStyle("display", ""); if(this.options.preloader) { this.options.preloader.clean = true; this.preloader = new App.Preloader(this.container, this.options.preloader); } if(this.options.ds) { new App.DataStore(this.options.ds, { onComplete: (function(resp) { this.preloader.hide(); this.struct(resp); }).bind(this) }); } else { this.struct(); } ((function() { if(trgt.getParent().eff) { trgt.getParent().getParent().setStyle('height', ''); } }).bind(this)).delay(100); }, struct: function(dt) { this.items = new Array(); this.options.items.each((function(et, i) { if($type(et) == 'object') { if(dt && $type(et.dataIndex) == 'string') { et.value = eval("dt."+et.dataIndex); } eval('fe = new App.Form.'+et.type.capitalize()+'(et, this);'); fe.mouseover = 0; fe.container.addEvent('mouseenter', (function(fee) { fee.mouseover = 1; }).bind(this, fe)); fe.container.addEvent('mouseleave', (function(fee) { fee.mouseover = 0; }).bind(this, fe)); this.items.push(fe); } }).bind(this)); if(this.options.buttons) { this.buttons = new Element('div', { 'class': 'xfrom-tb' }).injectInside(this.container); this.options.buttons.each((function(eu,i) { new App.Form.Button(this.buttons, eu, this); }).bind(this)); } }, validate: function() { r = 0; this.items.each(function(el) { if(el.options) { if(el.options.required && (el.element.value.trim() == '-1' || el.element.value.trim() == '')) { el.container.addClass('xform-item-req'); r= 1; } if(el.options.required && (el.element.value.trim() != '-1' && el.element.value.trim() != '')) { el.container.removeClass('xform-item-req'); } } }); return r==0 ? true : false; }, getQuery: function() { res = new Object(); this.items.each(function(e) { eval("res."+e.element.name+" = e.element.value;"); }); return Object.toQueryString(res); }, addItem: function(options) { eval('options.to.appended = new App.Form.'+options.type.capitalize()+'(options, this);'); // this.items.push(options.to.appended); }, close: function() { this.container.remove(); this.topEl.setStyle('display', ''); ((function() { if(this.topEl.getParent().getParent().eff) { this.topEl.getParent().getParent().getParent().setStyle('height', ''); } }).bind(this)).delay(100); }, submit: function() { // this.fireEvent('onSubmit', []); }, hideByType: function(type, id) { this.items.each(function(e, i) { if(e.options.type == type) { if(e.fx && i != id) { e.fx.slideOut(); } } }); } }); App.Form.implement(new Options); App.Form.implement(new Events); //элемент input App.Form.Textfield = new Class({ options: { itype: 'text', onFocus: Class.empty, onBlur: Class.empty }, initialize: function(params, form) { this.setOptions(params); this.form = form; cn = new Element('div'); cn.addClass("xform-row"); if(this.options.to) { cn.injectAfter(this.options.to.container); }else { cn.injectInside(form.container); } this.container = cn; if(this.options.label) { lb = new Element('div', { 'class': form.options.labelClass }); if(this.options.label) { lb.setHTML(this.options.label+form.options.labelSep); } lb.injectInside(this.container); this.label = lb; } sc = new Element('div', { 'class': form.options.itemClass }); sc.injectInside(this.container); i = new Element('input', { type: this.options.itype, value: !this.options.value ? '' : this.options.value }); if(this.options.emptyText) { i.value = this.options.emptyText; i.addEvent('focus', function() { this.value = ''; }); i.addEvent('blur', (function(e) { if(App.fixTarget(e).value != this.options.emptyText) { App.fixTarget(e).value = this.options.emptyText; } }).bind(this)); } i.injectInside(sc); this.element = i; this.element.name = this.options.name; this.element.addEvent("focus", (function(){ this.fireEvent("onFocus", [this.element, this.form]); }).bind(this)); this.element.addEvent("blur", (function(e){ this.fireEvent("onBlur", [this.element, this.form]); }).bind(this)); if(this.options.observable) { if(this.options.observable.minLength === 0) { lstart = this.options.observable.minLength; } else { lstart = 2; } new Observer(this.element, { onChange: (function(v, el) { if(v.length > lstart) { if(!el.hasClass('progress')) { el.addClass('progress'); } new Ajax(this.options.observable.from, { method: 'post', data: 's='+v, onComplete: (function(resp) { el.removeClass('progress'); resp = eval(resp); ht = new App.Renderer({ template: this.options.observable.template, emptyText: '', data: resp }).getText(); if(ht != '') { ht = ht.replace(new RegExp("("+v+")" ,"gi"), "$1"); if(el.selectbox) { el.selectbox.setText(ht); } else { el.selectbox = new App.Form.Textfield.Selectbox(el, { 'html': ht, 'onSelect': this.options.observable.onSelect }); } } else { if(el.selectbox) { el.selectbox.container.remove(); } delete el.selectbox; } }).bind(this) }).request(); } }).bind(this) }); } } }); App.Form.Textfield.implement(new Options); App.Form.Textfield.implement(new Events); App.Form.Textfield.Selectbox = new Class({ options: { onSelect: Class.empty }, initialize: function(el, options) { this.setOptions(options); this.parentEl = el; this.id = 'id'+(Math.random()*10000).round(); this.container = new Element('div', { 'class': 'selectbox', id: this.id, styles: { 'width': this.parentEl.getSize().size.x+50, 'left': this.parentEl.getPosition().x, 'top' : this.parentEl.getPosition().y + this.parentEl.getSize().size.y } }).injectInside(document.body); if(window.ie) { fix = new Element('iframe', { 'height': '100%', 'width': '100%', 'marginwidth': "0", 'marginheight': "0", 'align': "bottom", 'scrolling': "no", 'frameborder': "0", styles: { 'position': 'absolute', 'top': "0", 'left': "0", 'display': 'block', 'z-index' : '-10000', 'filter': "alpha(opacity=0)" } }).injectInside(this.container); } this.elements = new Element('div').injectInside(this.container); this.setText(this.options.html); this.parentEl.addEvent('blur', (function() { if($(this.id)) { ffn = (function() { $(this.id).remove(); try { delete this.parentEl.selectbox; } catch (e){ } }).bind(this); ffn.delay(150); } }).bind(this)); }, setText: function(text) { this.elements.setHTML(text); this.elements.getChildren().each((function(el) { el.addEvent('mouseover', function() { this.addClass('hovered'); }); el.addEvent('mouseout', function() { this.removeClass('hovered'); }); el.addEvent('click', (function(mm) { // alert('aaaaaa'); this.fireEvent('onSelect', [mm.id.toInt(), mm]); }).bind(this, el)); }).bind(this)); } }); App.Form.Textfield.Selectbox.implement(new Options); App.Form.Textfield.Selectbox.implement(new Events); //элемент textarea App.Form.Textarea = new Class({ options: { itype: 'text' }, initialize: function(params, form) { this.setOptions(params); cn = new Element('div'); cn.addClass("xform-row"); cn.setStyle('height', '100px'); cn.injectInside(form.container); this.container = cn; if(this.options.label) { lb = new Element('div', { 'class': form.options.labelClass }); lb.setHTML(this.options.label+form.options.labelSep); lb.injectInside(this.container); this.label = lb; } sc = new Element('div', { 'class': form.options.itemClass }); sc.injectInside(this.container); i = new Element('textarea', { type: this.options.itype, value: !this.options.value ? '' : this.options.value }); i.setStyle('width', '250px'); i.setStyle('height', '80px'); i.injectInside(sc); this.element = i; this.element.name = this.options.name; } }); App.Form.Textarea.implement(new Options); App.Form.Textarea.implement(new Events); // Выпадающий список App.Form.Selectbox = new Class({ options: { onLoad: Class.empty, onChange: Class.empty, emptyText: ' - ', preloaderText: 'Загрузка...' }, initialize: function(params, form) { this.setOptions(params); cn = new Element('div'); cn.addClass("xform-row"); cn.injectInside(form.container); this.form = form; this.container = cn; if(this.options.hiddenName) { this.hidden = new Element('input', { type: 'hidden', name: this.options.hiddenName }); this.hidden.injectInside(this.container); } if(this.options.label) { lb = new Element('div', { 'class': form.options.labelClass }); lb.setHTML(this.options.label+form.options.labelSep); lb.injectInside(this.container); this.label = lb; } sbc = new Element('div', { 'class': form.options.itemClass }); sbc.injectInside(this.container); sb = new Element('select', { name: this.options.name }).injectInside(sbc); if(this.options.cls) { sb.addClass(this.options.cls); } if(this.options.id) { sb.id = this.options.id; } sb.addEvent('change', (function(e) { this.element.value = App.fixTarget(e).options[App.fixTarget(e).selectedIndex].value; this.fireEvent('onChange', [this.element.value, this.getForm(), this]); if(this.options.append) { if(this.element.value == this.options.append.value) { new this.options.append.onSelect(App.fixTarget(e).options[App.fixTarget(e).selectedIndex], this); } } }).bind(this)); this.element = sb; this.element.name = this.options.name; this.load(); this.fireEvent('onLoad', [this, form]); }, load: function() { if(this.appended) { this.appended.container.remove(); delete this.appended; } this.element.empty(); this.first = new App.Form.Selectbox.Option(this.element, { value: '-1', text: this.options.preloaderText }); this.element.disabled = true; // alert(this.options.value); if(this.options.ds) { if(this.options.ds.data) { this.struct(this.options.ds.data); } if(!this.options.ds.data && this.options.ds.from) { new App.DataStore(this.options.ds, { onComplete: (function(resp) { this.struct(resp); }).bind(this) }); } } else { this.struct(); } }, getForm: function() { return this.form; }, struct: function(data) { this.first.element.text = this.options.emptyText; if(data) { if(data.length != 0) { this.element.disabled = ''; } data.each((function(n, i) { opts = {}; if($type(n) == 'object') { opts.value = eval('n.'+this.options.ds.fields.value); opts.text = eval('n.'+this.options.ds.fields.text); } else { opts.value = i; opts.text = n; } if(this.options.value == opts.value) { this.element.value = this.options.value; opts.selected = true; } if(this.options.hilight) { if(this.options.hilight.contains(opts.value)) { opts.hilight = true; } } // alert(opts.selected + '|' +opts.value + '|' + opts.text); new App.Form.Selectbox.Option(this.element, opts); }).bind(this)); } if(this.options.append) { new App.Form.Selectbox.Option(this.element, this.options.append); } }, addItem: function(opts) { new App.Form.Selectbox.Option(this.element, opts); }, reset: function(dsb) { this.element.selectedIndex = 0; if (this.form.appended) { this.form.appended.container.remove(); } this.form.items.each(function(m) { if(m.appended) { m.appended.container.remove(); delete m.appended; } }); if(this.hidden) { this.hidden.value = ''; } if(dsb) { this.element.disabled = 'true'; } } }); App.Form.Selectbox.implement(new Options); App.Form.Selectbox.implement(new Events); App.Form.Selectbox.Option = new Class({ options: { }, initialize: function(el, options) { this.setOptions(options); this.container = el; this.element = new Element('option', { value: this.options.value }); this.element.setHTML(this.options.text); if(this.options.hilight) { this.element.setStyles({ 'font-weight': 'bold', 'color' : '#555' }); } if(this.container.getLast() && this.container.getLast().value == 'other') { this.element.injectBefore(this.container.getLast()); } else { this.element.injectInside(this.container); } if(this.options.selected) { this.element.selected = 'true'; // this.container.selectedIndex = this.element.index; } } }); App.Form.Selectbox.Option.implement(new Options); App.Form.Selectbox.Option.implement(new Events); // Кнопки формы App.Form.Button = new Class({ options: { onClick: Class.empty }, initialize: function(el, options, form) { this.setOptions(options); this.form = form; bt = new Element('a', { // href: '#' }); bt.addClass("pointer"); bt.setHTML(this.options.text); bt.injectInside(el); bt.addEvent('click', (function(e) { this.fireEvent('onClick', [App.fixTarget(e), this.form]); }).bind(this)); } }); App.Form.Button.implement(new Options); App.Form.Button.implement(new Events); App.DataStore = new Class({ options: { onComplete: Class.empty }, initialize: function(options, callbacks) { this.setOptions(options); this.setOptions(callbacks); new Ajax(this.options.from, { method: 'get', onComplete: (function(resp) { this.fireEvent('onComplete', [eval(resp)]); }).bind(this) }).request(); } }); App.DataStore.implement(new Options); App.DataStore.implement(new Events); // Выбор даты App.Form.Datepicker = new Class({ options: { iDate: false }, initialize: function(options, form) { this.setOptions(options); cn = new Element('div'); cn.addClass("xform-row"); cn.injectInside(form.container); this.form = form; this.container = cn; this.element = new Element('input', { type: 'hidden' }).injectInside(this.container); this.element.name = this.options.name; this.element.value = this.options.value; rg = /(\d{4})-(\d{2})-(\d{2})/; rgYear = /(\d{1,4})/; lb = new Element('div', { 'class': form.options.labelClass }); lb.setHTML(this.options.label+form.options.labelSep); lb.injectInside(this.container); if(rg.test(this.options.value)) { _d = this.options.value.replace(rg, "$3"); _m = this.options.value.replace(rg, "$2"); _y = this.options.value.replace(rg, "$1"); months = ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"]; thirty = ['3', '5', '8', '10']; twentyNine = ['1']; //Months mm = new Element("select"); mm.setStyle("width", "70px"); mm.injectInside(this.container); mm.addEvent('change', (function() { mo = this.mm.options[this.mm.selectedIndex].value; // alert(mo); if(mo != '-1') { moo = (mo.toInt()+1); this.element.value = this.element.value.replace(rg, "$1-"+(moo < 10 ? "0"+moo : moo)+"-$3"); switch(true) { case thirty.contains(mo): maxDays = 30; break; case twentyNine.contains(mo): maxDays = 29; break; default: maxDays = 31; } this.dd.setHTML(""); _dd = new Element("option", { 'value' : '-1', 'selected' : 'selected' }).injectInside(this.dd); _dd.setHTML("День:"); this.dd.disabled = ''; for(i = 1; i <= maxDays; i++) { _dd = new Element("option", { 'value' : i }).injectInside(this.dd); if(_d != '00' && _d.toInt() == i) { _dd.selected = 'selected'; } _dd.setHTML(i); } } else { this.dd.disabled = 'true'; this.element.value = this.element.value.replace(rg, "$1-00-$3"); } }).bind(this)); this.mm = mm; _mm = new Element("option", { 'value' : '-1', 'selected' : 'selected' }).injectInside(this.mm); _mm.setHTML("Месяц:"); sp = new Element("span").injectInside(this.container); sp.setHTML(" "); //Days dd = new Element("select", { 'disabled' : (_d == '00' ? 'true': '') }); dd.setStyle("width", "60px"); dd.injectInside(this.container); dd.addEvent('change', (function() { svalue = this.dd.options[this.dd.selectedIndex].value; if(svalue != '-1') { moo = (svalue.toInt()); this.element.value = this.element.value.replace(rg, "$1-$2-"+(moo < 10 ? "0"+moo : moo)); } else { this.element.value = this.element.value.replace(rg, "$1-$2-00"); } }).bind(this)); this.dd = dd; _dd = new Element("option", { 'value' : '-1', 'selected' : 'selected' }).injectInside(this.dd); _dd.setHTML("День:"); sp = new Element("span").injectInside(this.container); sp.setHTML(" "); //fill months months.each(function(e, i) { _mm = new Element("option", { 'value' : i }).injectInside(this.mm); if(_m != '00' && _m.toInt()-1 == i) { _mm.selected = 'selected'; } _mm.setHTML(e); }); //fill days if(_m != '00' && _d != '00') { switch(true) { case thirty.contains(_m.toInt()-1): maxDays = 30; break; case twentyNine.contains(_m.toInt()-1): maxDays = 29; break; default: maxDays = 31; } for(i = 1; i <= maxDays; i++) { _dd = new Element("option", { 'value' : i }).injectInside(this.dd); if(_d != '00' && _d.toInt() == i) { _dd.selected = 'selected'; } _dd.setHTML(i); } } } // alert(this.options.value); dt = new Date(); if(rgYear.test(this.options.defaultValue)) { _y = this.options.defaultValue; startY = 1940; endY = dt.getFullYear()+10; } else { startY = dt.getFullYear()-90; endY = dt.getFullYear()-14; } //Years yy = new Element("select"); yy.setStyle("width", "55px"); yy.injectInside(this.container); yy.addEvent('change', (function() { svalue = this.yy.options[this.yy.selectedIndex].value; if(svalue != '-1') { moo = (svalue.toInt()); this.element.value = this.element.value.replace(rg, moo+"-$2-$3"); } else { this.element.value = this.element.value.replace(rg, "0000-$2-$3"); } }).bind(this)); this.yy = yy; _yy = new Element("option", { 'value' : '-1', 'selected' : 'selected' }).injectInside(this.yy); _yy.setHTML("Год:"); //fill years for(i = endY; i >= startY; i--) { _yy = new Element("option", { 'value' : i }).injectInside(this.yy); if(_y != '0000' && _y == i) { _yy.selected = 'selected'; } _yy.setHTML(i); } // this.days = days; } }); App.Form.Datepicker.implement(new Options); App.Form.Datepicker.implement(new Events); // Выбор года отдельно App.Form.Yearpicker = new Class({ options: { iDate: false }, initialize: function(options, form) { this.setOptions(options); cn = new Element('div'); cn.addClass("xform-row"); cn.injectInside(form.container); this.form = form; this.container = cn; this.element = new Element('input', { type: 'hidden' }).injectInside(this.container); this.element.name = this.options.name; this.element.value = this.options.value; rg = /(\d{4})-(\d{2})-(\d{2})/; rgYear = /(\d{1,4})/; lb = new Element('div', { 'class': form.options.labelClass }); lb.setHTML(this.options.label+form.options.labelSep); lb.injectInside(this.container); // alert(this.options.value); dt = new Date(); _y = this.options.defaultValue; // if(rgYear.test(this.options.defaultValue)) { _y = this.options.defaultValue; startY = 1940; endY = dt.getFullYear()+10; // } else { // startY = dt.getFullYear()-90; // endY = dt.getFullYear()-14; // } //Years yy = new Element("select"); yy.setStyle("width", "55px"); yy.injectInside(this.container); yy.addEvent('change', (function() { svalue = this.yy.options[this.yy.selectedIndex].value; if(svalue != '-1') { moo = (svalue.toInt()); this.element.value = moo; } else { this.element.value = ''; } }).bind(this)); this.yy = yy; _yy = new Element("option", { 'value' : '-1', 'selected' : 'selected' }).injectInside(this.yy); _yy.setHTML("Год:"); if(!this.value) { this.element.value = '-1'; } //fill years for(i = endY; i >= startY; i--) { _yy = new Element("option", { 'value' : i }).injectInside(this.yy); if(_y != '0000' && _y == i) { _yy.selected = 'selected'; } _yy.setHTML(i); } // this.days = days; } }); App.Form.Yearpicker.implement(new Options); App.Form.Yearpicker.implement(new Events); // Самый простой прелоадер =) App.Preloader = new Class({ options: { message: "Подождите...", clean: false }, initialize: function(el, options) { this.setOptions(options); this.container = el; h = el.getParent().getSize().size.y; d = new Element('div'); d.setStyle('height', h); d.setStyle('position', 'relative'); d.setStyle('line-height', h); d.setStyle('margin-bottom', '-'+h+'px'); d.setStyle('background-color', '#fff'); d.setStyle('color', '#999'); d.setStyle('font-size', '300%'); d.setStyle('text-align', 'center'); d.setHTML(this.options.message); d.setOpacity(.8); d.injectTop(el.getParent()); this.element = d; }, hide: function() { if(this.options.clean) { this.container.empty(); } new Fx.Style(this.element, 'opacity', { onComplete: (function() { this.element.remove(); }).bind(this) }).start(0.8, 0); } }); App.Preloader.implement(new Options); App.Preloader.implement(new Events); App.Renderer = new Class({ options: { template: '', emptyText: '
Информация отсутствует
', rg: /\{(.*?)\}/gi }, initialize: function(options) { this.setOptions(options); if(this.options.template == '') { alert('Небходимо указать шаблон!'); return false; } this.output = ''; if(this.options.data.length != 0) { this.options.data.each((function(e){ this.output = this.output + this.options.template.replace(this.options.rg, (function(str, p1) { return eval("e."+p1); }).bind(this)); }).bind(this)); } else { this.output = this.options.emptyText; } }, getText: function() { return this.output; } }); App.Renderer.implement(new Options); App.Renderer.implement(new Events); App.Form.Radiogroup = new Class({ options: { }, initialize: function(options, form) { this.setOptions(options); cn = new Element('div'); cn.addClass("xform-row"); cn.injectInside(form.container); if(this.options.cls) { cn.addClass(this.options.cls); } this.form = form; this.container = cn; if(this.options.fx) { this.fx = new Fx.Slide(this.container, {duration: 200}).hide(); } this.element = new Element('input', { type: 'hidden' }).injectInside(this.container); this.element.name = this.options.name; this.element.value = this.options.value; lb = new Element('div', { 'class': form.options.labelClass }); lb.setHTML(this.options.label+form.options.labelSep); lb.injectInside(this.container); this.options.variants.each((function(e, i) { inp = new Element('input', { type: 'radio', name: this.options.name, value: i, 'class': 'normal' }).injectInside(this.container); inp.checked = (this.options.value.toInt() == i ? true : false); inp.addEvent('click', (function(ii) { this.element.value = ii.value; }).bind(this, inp)); d = new Element('span'); d.setHTML(" " + e + " "); d.injectInside(this.container); }).bind(this)); } }); App.Form.Radiogroup.implement(new Options); App.Form.Radiogroup.implement(new Events); /** * Autocompleter * * @version 1.0rc4 * * @license MIT-style license * @author Harald Kirschner * @copyright Author */ var Autocompleter = {}; Autocompleter.Base = new Class({ options: { minLength: 1, useSelection: true, markQuery: true, inheritWidth: true, maxChoices: 10, injectChoice: null, onSelect: Class.empty, onShow: Class.empty, onHide: Class.empty, customTarget: null, className: 'autocompleter-choices', zIndex: 42, observerOptions: {}, fxOptions: {}, overflown: [] }, initialize: function(el, options) { this.setOptions(options); this.element = $(el); this.build(); this.observer = new Observer(this.element, this.prefetch.bind(this), $merge({ delay: 400 }, this.options.observerOptions)); this.value = this.observer.value; this.queryValue = null; }, /** * build - Initialize DOM * * Builds the html structure for choices and appends the events to the element. * Override this function to modify the html generation. */ build: function() { if ($(this.options.customTarget)) this.choices = this.options.customTarget; else { this.choices = new Element('ul', { 'class': this.options.className, styles: {zIndex: this.options.zIndex} }).injectInside(document.body); this.fix = new OverlayFix(this.choices); } this.fx = this.choices.effect('opacity', $merge({ wait: false, duration: 200 }, this.options.fxOptions)) .addEvent('onStart', function() { if (this.fx.now) return; this.choices.setStyle('display', ''); this.fix.show(); }.bind(this)) .addEvent('onComplete', function() { if (this.fx.now) return; this.choices.setStyle('display', 'none'); this.fix.hide(); }.bind(this)).set(0); this.element.setProperty('autocomplete', 'off') .addEvent(window.ie ? 'keydown' : 'keypress', this.onCommand.bindWithEvent(this)) .addEvent('mousedown', this.onCommand.bindWithEvent(this, [true])) .addEvent('focus', this.toggleFocus.bind(this, [true])) .addEvent('blur', this.toggleFocus.bind(this, [false])) .addEvent('trash', this.destroy.bind(this)); }, destroy: function() { this.choices.remove(); }, toggleFocus: function(state) { this.focussed = state; if (!state) this.hideChoices(); }, onCommand: function(e, mouse) { if (mouse && this.focussed) this.prefetch(); if (e.key && !e.shift) switch (e.key) { case 'enter': if (this.selected && this.visible) { this.choiceSelect(this.selected); e.stop(); } return; case 'up': case 'down': if (this.observer.value != (this.value || this.queryValue)) this.prefetch(); else if (this.queryValue === null) break; else if (!this.visible) this.showChoices(); else { this.choiceOver((e.key == 'up') ? this.selected.getPrevious() || this.choices.getLast() : this.selected.getNext() || this.choices.getFirst() ); this.setSelection(); } e.stop(); return; case 'esc': this.hideChoices(); return; } this.value = false; }, setSelection: function() { if (!this.options.useSelection) return; var startLength = this.queryValue.length; if (this.element.value.indexOf(this.queryValue) != 0) return; var insert = this.selected.inputValue.substr(startLength); if (document.getSelection) { this.element.value = this.queryValue + insert; this.element.selectionStart = startLength; this.element.selectionEnd = this.element.value.length; } else if (document.selection) { var sel = document.selection.createRange(); sel.text = insert; sel.move("character", - insert.length); sel.findText(insert); sel.select(); } this.value = this.observer.value = this.element.value; }, hideChoices: function() { if (!this.visible) return; this.visible = this.value = false; this.observer.clear(); this.fx.start(0); this.fireEvent('onHide', [this.element, this.choices]); }, showChoices: function() { if (this.visible || !this.choices.getFirst()) return; this.visible = true; var pos = this.element.getCoordinates(this.options.overflown); this.choices.setStyles({ left: pos.left, top: pos.bottom }); if (this.options.inheritWidth) this.choices.setStyle('width', pos.width); this.fx.start(1); this.choiceOver(this.choices.getFirst()); this.fireEvent('onShow', [this.element, this.choices]); }, prefetch: function() { if (this.element.value.length < this.options.minLength) this.hideChoices(); else if (this.element.value == this.queryValue) this.showChoices(); else this.query(); }, updateChoices: function(choices) { this.choices.empty(); this.selected = null; if (!choices || !choices.length) return; if (this.options.maxChoices < choices.length) choices.length = this.options.maxChoices; choices.each(this.options.injectChoice || function(choice, i){ var el = new Element('li').setHTML(this.markQueryValue(choice)); el.inputValue = choice; this.addChoiceEvents(el).injectInside(this.choices); }, this); this.showChoices(); }, choiceOver: function(el) { if (this.selected) this.selected.removeClass('autocompleter-selected'); this.selected = el.addClass('autocompleter-selected'); }, choiceSelect: function(el) { this.observer.value = this.element.value = el.inputValue; this.hideChoices(); this.fireEvent('onSelect', [this.element], 20); }, /** * markQueryValue * * Marks the queried word in the given string with * * Call this i.e. from your custom parseChoices, same for addChoiceEvents * * @param {String} Text * @return {String} Text */ markQueryValue: function(txt) { return (this.options.markQuery && this.queryValue) ? txt.replace(new RegExp('^(' + this.queryValue.escapeRegExp() + ')', 'i'), '$1') : txt; }, /** * addChoiceEvents * * Appends the needed event handlers for a choice-entry to the given element. * * @param {Element} Choice entry * @return {Element} Choice entry */ addChoiceEvents: function(el) { return el.addEvents({ mouseover: this.choiceOver.bind(this, [el]), mousedown: this.choiceSelect.bind(this, [el]) }); } }); Autocompleter.Base.implement(new Events); Autocompleter.Base.implement(new Options); Autocompleter.Local = Autocompleter.Base.extend({ options: { minLength: 0, filterTokens : null }, initialize: function(el, tokens, options) { this.parent(el, options); this.tokens = tokens; if (this.options.filterTokens) this.filterTokens = this.options.filterTokens.bind(this); }, query: function() { this.hideChoices(); this.queryValue = this.element.value; this.updateChoices(this.filterTokens()); }, filterTokens: function(token) { var regex = new RegExp('^' + this.queryValue.escapeRegExp(), 'i'); return this.tokens.filter(function(token) { return regex.test(token); }); } }); Autocompleter.Ajax = {}; Autocompleter.Ajax.Base = Autocompleter.Base.extend({ options: { postVar: 'value', postData: {}, ajaxOptions: {}, onRequest: Class.empty, onComplete: Class.empty }, initialize: function(el, url, options) { this.parent(el, options); this.ajax = new Ajax(url, $merge({ autoCancel: true }, this.options.ajaxOptions)); this.ajax.addEvent('onComplete', this.queryResponse.bind(this)); this.ajax.addEvent('onFailure', this.queryResponse.bind(this, [false])); }, query: function(){ var data = $extend({}, this.options.postData); data[this.options.postVar] = this.element.value; this.fireEvent('onRequest', [this.element, this.ajax]); this.ajax.request(data); }, /** * queryResponse - abstract * * Inherated classes have to extend this function and use this.parent(resp) * * @param {String} Response */ queryResponse: function(resp) { this.value = this.queryValue = this.element.value; this.selected = false; this.hideChoices(); this.fireEvent(resp ? 'onComplete' : 'onFailure', [this.element, this.ajax], 20); } }); Autocompleter.Ajax.Json = Autocompleter.Ajax.Base.extend({ queryResponse: function(resp) { this.parent(resp); var choices = Json.evaluate(resp || false); if (!choices || !choices.length) return; this.updateChoices(choices); } }); Autocompleter.Ajax.Xhtml = Autocompleter.Ajax.Base.extend({ options: { parseChoices: null }, queryResponse: function(resp) { this.parent(resp); if (!resp) return; this.choices.setHTML(resp).getChildren().each(this.options.parseChoices || this.parseChoices, this); this.showChoices(); }, parseChoices: function(el) { var value = el.innerHTML; el.inputValue = value; el.setHTML(this.markQueryValue(value)); } }); var OverlayFix = new Class({ initialize: function(el) { this.element = $(el); if (window.ie){ this.element.addEvent('trash', this.destroy.bind(this)); this.fix = new Element('iframe', { properties: { frameborder: '0', scrolling: 'no', src: 'javascript:false;' }, styles: { position: 'absolute', border: 'none', display: 'none', filter: 'progid:DXImageTransform.Microsoft.Alpha(opacity=0)' } }).injectAfter(this.element); } }, show: function() { if (this.fix) this.fix.setStyles($extend( this.element.getCoordinates(), { display: '', zIndex: (this.element.getStyle('zIndex') || 1) - 1 })); return this; }, hide: function() { if (this.fix) this.fix.setStyle('display', 'none'); return this; }, destroy: function() { this.fix.remove(); } }); App.constants = {"privacy":{"globals":["\u0412\u0441\u0435","\u0414\u0440\u0443\u0437\u044c\u044f","\u041d\u0438\u043a\u0442\u043e"],"graffity":["\u0412\u0441\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438","\u0414\u0440\u0443\u0437\u044c\u044f","\u0422\u043e\u043b\u044c\u043a\u043e \u044f"],"birthDate":["\u041d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c","\u0422\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446 \u0438 \u0434\u0435\u043d\u044c","\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u0442\u0443 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f"]},"lists":{"sex":["\u0416\u0435\u043d\u0441\u043a\u0438\u0439","\u041c\u0443\u0436\u0441\u043a\u043e\u0439"],"months":["\u044f\u043d\u0432\u0430\u0440\u044f","\u0444\u0435\u0432\u0440\u0430\u043b\u044f","\u043c\u0430\u0440\u0442\u0430","\u0430\u043f\u0440\u0435\u043b\u044f","\u043c\u0430\u044f","\u0438\u044e\u043d\u044f","\u0438\u044e\u043b\u044f","\u0430\u0432\u0433\u0443\u0441\u0442\u0430","\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f","\u043e\u043a\u0442\u044f\u0431\u0440\u044f","\u043d\u043e\u044f\u0431\u0440\u044f","\u0434\u0435\u043a\u0430\u0431\u0440\u044f"],"familyStatus1":["\u041d\u0435 \u0437\u0430\u043c\u0443\u0436\u0435\u043c","\u0415\u0441\u0442\u044c \u0434\u0440\u0443\u0433","\u041f\u043e\u043c\u043e\u043b\u0432\u043b\u0435\u043d\u0430","\u0417\u0430\u043c\u0443\u0436\u0435\u043c","\u0412\u0441\u0435 \u0441\u043b\u043e\u0436\u043d\u043e","\u0412 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0435"],"familyStatus2":["\u041d\u0435 \u0436\u0435\u043d\u0430\u0442","\u0415\u0441\u0442\u044c \u043f\u043e\u0434\u0440\u0443\u0433\u0430","\u041f\u043e\u043c\u043e\u043b\u0432\u043b\u0435\u043d","\u0416\u0435\u043d\u0430\u0442","\u0412\u0441\u0435 \u0441\u043b\u043e\u0436\u043d\u043e","\u0412 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0435"],"politics":["\u0418\u043d\u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0442\u043d\u044b\u0435","\u041a\u043e\u043c\u043c\u0443\u043d\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435","\u0421\u043e\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u0435c\u043a\u0438\u0435","\u0423\u043c\u0435\u0440\u0435\u043d\u043d\u044b\u0435","\u041b\u0438\u0431\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0435","\u041a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0442\u0438\u0432\u043d\u044b\u0435","\u041c\u043e\u043d\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u0435","\u0423\u043b\u044c\u0442\u0440\u0430\u043a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0442\u0438\u0432\u043d\u044b\u0435"],"edstatus":["\u0410\u0431\u0438\u0442\u0443\u0440\u0438\u0435\u043d\u0442","\u0421\u0442\u0443\u0434\u0435\u043d\u0442 (\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442)","\u0421\u0442\u0443\u0434\u0435\u043d\u0442 (\u0431\u0430\u043a\u0430\u043b\u0430\u0432\u0440)","\u0421\u0442\u0443\u0434\u0435\u043d\u0442 (\u043c\u0430\u0433\u0438\u0441\u0442\u0440)","\u0412\u044b\u043f\u0443\u0441\u043a\u043d\u0438\u043a (\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442)","\u0412\u044b\u043f\u0443\u0441\u043a\u043d\u0438\u043a (\u0431\u0430\u043a\u0430\u043b\u0430\u0432\u0440)","\u0412\u044b\u043f\u0443\u0441\u043a\u043d\u0438\u043a (\u043c\u0430\u0433\u0438\u0441\u0442\u0440)","\u0410\u0441\u043f\u0438\u0440\u0430\u043d\u0442","\u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043d\u0430\u0443\u043a","\u0414\u043e\u043a\u0442\u043e\u0440 \u043d\u0430\u0443\u043a"],"edtype":["\u0414\u043d\u0435\u0432\u043d\u0430\u044f","\u0412\u0435\u0447\u0435\u0440\u043d\u044f\u044f","\u0417\u0430\u043e\u0447\u043d\u0430\u044f"]},"labels":{"sex":"\u041f\u043e\u043b","bdate":"\u0414\u0435\u043d\u044c \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f","publicEmail":"\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u0439 Email","mobile":"\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d","phone":"\u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d","icq":"ICQ","www":"\u041f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442","ncity":"\u0420\u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u043e\u0434","fstatus":"\u0421\u0435\u043c\u0435\u0439\u043d\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435","politics":"\u041f\u043e\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0437\u043b\u044f\u0434\u044b","religion":"\u0420\u0435\u043b\u0438\u0433\u0438\u043e\u0437\u043d\u044b\u0435 \u0432\u0437\u043b\u044f\u0434\u044b","activity":"\u0414\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c","interests":"\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u044b","music":"\u041b\u044e\u0431\u0438\u043c\u0430\u044f \u043c\u0443\u0437\u044b\u043a\u0430","films":"\u041b\u044e\u0431\u0438\u043c\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b","tvshows":"\u041b\u044e\u0431\u0438\u043c\u044b\u0435 \u0442\u0435\u043b\u0435\u0448\u043e\u0443","books":"\u041b\u044e\u0431\u0438\u043c\u044b\u0435 \u043a\u043d\u0438\u0433\u0438","games":"\u041b\u044e\u0431\u0438\u043c\u044b\u0435 \u0438\u0433\u0440\u044b","quotes":"\u041b\u044e\u0431\u0438\u043c\u044b\u0435 \u0446\u0438\u0442\u0430\u0442\u044b","about":"\u041e \u0441\u0435\u0431\u0435"}}; }