y5Url=(function(){var c={UNDEF:"undefined"};c.Types={UNDEF:1<<0,UNDEFINED:1<<0,OBJECT:1<<1,FUNCTION:1<<2,NUMBER:1<<3,STRING:1<<4,BOOLEAN:1<<5,DATE:1<<10,REGEXP:1<<11,ARRAY:1<<12,NULL:1<<13,EVENT:1<<14,NODE:1<<15,TYPES:{"undefined":1<<0,"object":1<<1,"function":1<<2,"number":1<<3,"string":1<<4,"boolean":1<<5},type:function(l){var i=this.TYPES[typeof l];
if(l===null){return this.NULL;}if(i==this.OBJECT){if(l.nodeName||this.document(l)){return this.NODE;}}if(i==this.OBJECT||i==this.FUNCTION){switch(l.constructor){case Array:return this.ARRAY;case RegExp:return this.REGEXP;case Date:return this.DATE;}}if(this.event(l)){return this.EVENT;}return i;},test:function(l,i){return !!(this.type(l)&i);
},def:function(i){return typeof i!=r;},undef:function(i){return typeof i==r;},object:function(i){return typeof i=="object";},func:function(i){return typeof i=="function";},nativeFunc:function(i){return this.func(i)&&isNativeFunc.test(i.toString());},number:function(i){return typeof i=="number";},string:function(i){return typeof i=="string";
},bool:function(i){return typeof i=="boolean";},nul:function(i){return i===null;},array:function(i){return i instanceof Array;},regexp:function(i){return i instanceof RegExp;},date:function(i){return i instanceof Date;},event:function(i){return i&&typeof i.type!=r&&typeof(i.stopPropagation||i.cancelBubble)!=r;
},element:function(i){return checkDomNode(i,Node.ELEMENT_NODE);},attribute:function(i){return checkDomNode(i,Node.ATTRIBUTE_NODE);},text:function(i){return checkDomNode(i,Node.TEXT_NODE);},document:function(i){return(i&&typeof i.documentElement!=r)||false;},comment:function(i){return checkDomNode(i,Node.COMMENT_NODE);
},node:function(i){return(i&&typeof i.nodeType!=r);}};var r=c.UNDEF,v=c.Types,s=/^((((\w+):)\/\/)?(([\w\-\.]+\.\w+|localhost)(\:(\d+))?))?(\/?[^\?#]*)?(\?([^#]*))?(#(.*))?$/,y=/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/,m="E9F6F3EAE5EDE3F8F9E7F5FAF4FBE2E0EFF0EEEBE4E6FDFFF7F1ECE8F2FCE1FEB8C9D6D3CAC5CDC3D8D9C7D5DAD4DBC2C0CFD0CECBC4C6DDDFD7D1CCC8D2DCC1DEA8".match(/../g),x="%D0%B9%D1%86%D1%83%D0%BA%D0%B5%D0%BD%D0%B3%D1%88%D1%89%D0%B7%D1%85%D1%8A%D1%84%D1%8B%D0%B2%D0%B0%D0%BF%D1%80%D0%BE%D0%BB%D0%B4%D0%B6%D1%8D%D1%8F%D1%87%D1%81%D0%BC%D0%B8%D1%82%D1%8C%D0%B1%D1%8E%D1%91%D0%99%D0%A6%D0%A3%D0%9A%D0%95%D0%9D%D0%93%D0%A8%D0%A9%D0%97%D0%A5%D0%AA%D0%A4%D0%AB%D0%92%D0%90%D0%9F%D0%A0%D0%9E%D0%9B%D0%94%D0%96%D0%AD%D0%AF%D0%A7%D0%A1%D0%9C%D0%98%D0%A2%D0%AC%D0%91%D0%AE%D0%81".match(/.{6}/g),q={},f=encodeURIComponent,n=[".xml",".html",".xhtml",".jpg",".gif",".png",".css",".js",".xsl",".php",".py",".pl"],w=0,t=m.length,e=/%3B|%2C|%2F|%3F|%3A|%40|%26|%3D|%2B|%24/gi;
for(;w<t;w++){q[m[w]]=x[w];}function b(i,l){return q[l]||i;}function a(i){return i.replace(/%([A-Fa-f0-9]{2})/g,b);}function p(i){var A=i.replace(/\+/g,"%20");try{var z=decodeURIComponent(A);if(z==undefined){throw"malformed URI sequence";}return z;}catch(l){try{return decodeURIComponent(a(A));}catch(l){return unescape(A);
}}}function o(i){try{var z=decodeURI(i);if(z==undefined){throw"malformed URI sequence";}return z;}catch(l){try{return decodeURI(a(i));}catch(l){return unescape(i);}}}function g(i,l,z){if(v.undef(i[l])){i[l]=[];}if(v.array(z)){i[l]=i[l].concat(z);}else{i[l].push(z);}}function d(B,C){var E=B[C],A=E.length,z=new Array(A),l=f(C),D=0;
for(;D<A;D++){z[D]=l+"="+f(E[D]);}return z;}function j(G){var D={},E=G.replace(/\+/g,"%20").split("&"),F,A,C,B=0,z=E.length;for(;B<z;B++){F=E[B].split("=");A=F.shift();if(A){C=F.length>1?F.join("="):(F[0]||"");g(D,p(A),p(C));}}return D;}c.URL=function(i){i=v.def(i)?i.toString():window.location.href;var l=i.match(s);
if(!l){return;}this.Host=l[6]||"";this.Path=l[9]||"";if(l[6]){var z=l[6].substring(l[6].lastIndexOf("."));var A=$.inArray(z,n);if(A!=-1){this.Path=l[6];this.Host="";}}this.Href=l[0];this.Proto=l[4]||"";this.Port=l[8]||0;this.Path=o(this.Path);this.Query=j(l[11]||"");this.Hash=p(l[13]||"");};c.URL.prototype={go:function(){window.location.href=this.toString();
},toString:function(){var l="";if(this.Proto||this.Host){if(this.Host){l+=(this.Proto||"http")+"://"+this.Host;if(this.Port){l+=":"+this.Port;}}}if(this.Path){if(this.Host&&this.Path.indexOf("/")!=0){l+="/";}e.lastIndex=0;var z,D=0,E=[];while(z=e.exec(this.Path)){if(e.lastIndex>D){if(z[0]){E.push(this.Path.slice(D,z.index));
E.push(z[0]);D=z.index+z[0].length;}}}if(D!==this.Path.length){E.push(this.Path.slice(D));}E[0]=encodeURI(E[0]);var C=[];for(var A=0;A<E.length;A++){C[A]=(A%2)?E[A]:encodeURI(E[A]);}l+=C.join("");}var B=this.query();if(B){l+="?"+B;}if(this.Hash){l+="#"+f(this.Hash);}return l;},clone:function(){return new c.URL(this.toString());
},proto:function(){},host:function(){},port:function(){},path:function(){},hash:function(){},query:function(z){if(v.def(z)){this.clearQuery();if(v.string(z)){this.Query=j(z);}else{this.replaceParams(z);}return this;}var i=[];for(var l in this.Query){i=i.concat(d(this.Query,l));}return i.join("&");},queryKeys:function(){var i=[];
for(var l in this.Query){i.push(l);}return i.sort();},addParam:function(i,l){g(this.Query,i,l);return this;},addParams:function(l){for(var i in l){g(this.Query,i,l[i]);}return this;},removeParams:function(B){for(var A=0,z=B.length;A<z;A++){delete this.Query[B[A]];}return this;},replaceParams:function(z){var l=[];
for(var i in z){l.push(i);}this.removeParams(l);this.addParams(z);return this;},clearQuery:function(){this.Query={};return this;},getParam:function(i){var l=this.Query[i];return l?l[0]:null;},getParams:function(i){return this.Query[i]||[];}};var h=c.URL,u=h.prototype;var k={proto:"Proto",host:"Host",port:"Port",path:"Path",hash:"Hash"};
for(w in k){u[w]=(function(i){return function(l){if(v.def(l)){this[i]=l;return this;}return this[i];};})(k[w]);}u.get=u.toString;c.Url=function(i){return new h(i);};h.isValid=function(i){return y.test(i);};return c.Url;})();Widget=function(b,a){this._(b,a);};document.Widget=Widget;Widget.prototype={_:function(h,g){this._prefs={};var e=this;var a=function(){e.loadFromSrc({isBinding:true});};var f=g.src?g.src:false;var d=g.wauth?g.wauth:false;var c=g.type?g.type:"raw";this.params=g;this.type=c;this.id=h;this.classId=h.replace(/-[0-9]+$/i,"");
this.instanceId=h.replace(/^(.*)-([0-9]+)$/i,"$2");this.htmlId=h;this.src=f;this.onLoad=this.onload=false;if(d!=""){this.setValue("wauth",d);}Widget.Framework.register(this);if(c!="iframe-inside"){new Widget.Wrapper(this);}if(g.prefs){for(var b=0;b<g.prefs.length;b++){if(g.prefs[b]!==false){this.setValue(g.prefs[b][0],g.prefs[b][1]);
}}}if(g.css&&(c!=="iframe")){this.css(g.css);}if(g.js&&(c!=="iframe")){this.library(g.js,a);}else{a();}},showPreloader:function(a){var b=this;function c(){b.$().html(Widget.Framework.params.preloader);}if(a){c();}else{window.setTimeout(function(){if(b._inlineLoading||b._inlinePending){c();}},100);}},loadFromSrc:function(a){if(!a){a={noPreloader:false,isBinding:false};
}if((this.type=="inline")||(this.type=="iframe")||(this.type=="json")){if(!a.noPreloader&&Widget.Framework._domloaded){this.showPreloader("now");}this[this.type+"From"](this.src);}if(!a.isBinding&&this.type=="raw"){this.inlineFrom(Widget.Framework.params.rawBodyUrl+this.getWidgetId()+"?wauth="+this.getAuth()+"&u="+Math.random());
}},iframeFrom:function(c){c=this._addParams(c,arguments);var b=this;var a=Widget.Framework.params.iframeHeight;if(parseInt(this.params.height,10)>0){a=parseInt(this.params.height,10)+"px";}$(document).ready(function(){b.$().html("");if($.browser.msie){var d=$('<iframe style="border:none" allowTransparency="true" frameborder="0"></iframe>').attr({id:b.wrapper.$$("iframe"),src:c}).css({width:"100%",height:a,position:"absolute",visibility:"hidden",margin:0,padding:0}).bind("load",function(){d.unbind("load",arguments.callee).css({position:"",visibility:""});
}).appendTo(b.$());}else{var d=$('<iframe style="border:none" allowTransparency="true" frameborder="0"></iframe>').attr({id:b.wrapper.$$("iframe"),src:c}).css({width:"100%",height:a,margin:0,padding:0}).appendTo(b.$());}});},jsonFrom:function(b){b=this._addParams(b,arguments);var a=this;$.getScript(Widget.Framework.params.jsonUrl,{url:b,wauth:this.getAuth()});
},inlineFrom:function(b){b=this._addParams(b,arguments);var a=this;Widget.Framework.inlineLoading(+1);this._inlineLoading=true;$.get(b,function(c){a._inlineFromHtml(c);});},_inlineFromJson:function(a){if(a.success){Widget.Framework.inlineLoading(+1);return this._inlineFromHtml(a.result);}else{alert("Could not retrieve widget body in a JSON way:\n"+a.result);
}},_inlineLoading:false,_inlinePending:"",_inlineFromHtml:function(html){if(!Widget.Framework._domloaded){this._inlineLoading=false;this._inlinePending=html;return;}Widget.Framework.inlineLoading(-1);var styleRe=/(<style[^>]*>((\s|\S)+?)<\/style>)/img;var scriptRe=/<script[^>]*>((.|\n)+?)<\/script>/img;
var match;var widget=this;if($.browser.msie){this.$().html(html.replace(Widget.Framework.params.idTemplate,this.id));}else{this.$().html(html.replace(scriptRe,"").replace(Widget.Framework.params.idTemplate,this.id));}while((match=styleRe.exec(html))!=null){var newSS=document.createElement("link");newSS.rel="stylesheet";
newSS.href="data:text/css,"+escape(match[2]);document.getElementsByTagName("head")[0].appendChild(newSS);}while((match=scriptRe.exec(html))!=null){eval(match[1]);}this._inlineLoading=false;this._inlinePending=false;if(Widget.Framework._domloaded){this.finalize();}},_addParams:function(h,d){this._prefs["."]=location.protocol+"//"+location.host+"|"+document.domain;
var f=[d,["[empty]",this._prefs]];var c=y5Url(location.href);var g={};for(var a=0;a<f.length;a++){for(var e=1;e<f[a].length;e++){if(f[a][e] instanceof Array){for(var b=0;b<f[a][e].length;b++){if(c.getParam(f[a][e][b])!==null){g[f[a][e][b]]=c.getParam(f[a][e][b]);}}}else{for(var b in f[a][e]){if(typeof(f[a][e][b])!="function"&&typeof(f[a][e][b])!="object"){g[b]=f[a][e][b];
}}}}}return y5Url(h).addParams(g).toString();},onload:function(){},resetAuth:function(){this._splitterAuth=false;},getAuth:function(){return this.getValue("wauth");},_splittedAuth:false,splitAuth:function(){if(!this._splittedAuth){this._splittedAuth=Widget.Framework.splitAuth(this.getAuth());}return this._splittedAuth;
},getWidgetId:function(){return this.splitAuth()["id"];},getOwner:function(){return this.splitAuth()["owner"];},getViewer:function(){return this.splitAuth()["viewer"];},setValue:function(a,b){this._prefs[a]=b;if(a=="wauth"){Widget.Framework.registerWauth(this);}},getValue:function(a){return this._prefs[a]?this._prefs[a]:undef();
},saveValues:function(c){if(c==undef()){c=this._prefs;}for(var b in c){if(typeof(c[b])!="function"&&typeof(c[b])!="object"){this.setValue(b,c[b]);}}var a=y5Url("");a.query(c);var e=a.query();var d=y5Url((Widget.Framework.params.fullproxyDomain||"")+Widget.Framework.params.formUrl);d.query({widget:this.getWidgetId(),wauth:this.getAuth(),s:e});
$.getScript(d.toString());},dropValues:function(){var a=y5Url((Widget.Framework.params.fullproxyDomain||"")+Widget.Framework.params.formUrl);var b=this;$.get(a,{widget:this.getWidgetId(),wauth:this.getAuth(),s:"DROP"},function(c){Widget.Framework.replace(this,c);});},setTitle:function(a){if(this.wrapper){this.wrapper.setTitle(a);
}else{Widget.Framework.xframe(this,"Widget::setTitle",a);}},setIFrameHeight:function(a){if(this.wrapper){this.wrapper.setIFrameHeight(a);}else{Widget.Framework.xframe(this,"Widget::setIFrameHeight",a);}},_calculateCss:function(c,a){var b=c.css(a);var d=b.replace(/(\.[0-9]+)?px$/,"");if(a=="height"&&(b=="auto"||parseInt(b,10)==0)){return document.body.scrollHeight;
}if(b!=d){return parseInt(b,10);}else{return 0;}},_sumCss:function(d,c){var a=0;for(var b=0;b<c.length;b++){a+=this._calculateCss(d,c[b]);}return a;},adjustIFrameHeight:function(){var a=this;this._adjustIFrameHeightTimeout=window.setTimeout(function(){a._adjustIFrameHeight();},100);},_adjustIFrameHeightTimeout:false,_adjustIFrameHeight:function(){var a=$("body");
a.css("overflow","hidden");return this.setIFrameHeight(this._sumCss(a,["marginTop","marginBottom","height"]));},library:function(b,c){var a=this;this._libraryLoading=true;Widget.Framework.library(b,function(){a._libraryLoading=false;if(c){c();}else{a.finalize();}});},css:function(a){return Widget.Framework.css(a);
},finalize:function(){if(this.onload){this.onload();}if(this.onLoad){this.onLoad();}},$:function(a){return $("#"+this.$$(a));},$$:function(a){return Widget.Framework.params.idPrefix+this.id+((a==undef())?"":a);},end:true};Widget.Wrapper=function(a){this._(a);};Widget.Wrapper.prototype={_:function(a){this.widget=a;this.widget.wrapper=this;},$:function(a){return $("#"+this.$$(a));},$$:function(a){return Widget.Framework.params.wrapperPrefix+(a==undef()?"wrapper":a)+Widget.Framework.params.wrapperPostfix+this.widget.id;},setTitle:function(a){this.$("title").html((""+a).replace(/</g,"&lt;"));
},setIFrameHeight:function(a){if((""+a).match("^[0-9]+$")){a=a+"px";}this.$("iframe").css("height",a);},showEditForm:function(a){return Widget.Framework.showEditForm(this.widget.id,a);}};var undef=function(a){return a;};Widget.Framework={params:false,_id:{},_wauth:{},_no:{},_widgets:[],get:function(a){return Widget.Framework._id[a];},getByWauth:function(a){return Widget.Framework._wauth[a];},updateNo:function(b,a){if(this._no[b]==undef()){this._no[b]=0;}if(this._no[b]<=a){this._no[b]=a+1;
}return this._no[b];},register:function(a){this.registerWauth(a);this._id[a.id]=a;this.updateNo(a.classId,a.instanceId);this._widgets[this._widgets.length]=a;},registerWauth:function(b){var a=b.getValue("wauth");if(a!=""){this._wauth[a]=b;}b.resetAuth();},all:function(){return this._widgets;},bindIframe:function(){var b=y5Url(location.href).getParam("wauth");
if(b){this.inIframe=true;var a=this.splitAuth(b);var c=this.bind(a.id,{type:"iframe-inside",wauth:b});this.setValuesFromUrl(c);return c;}else{this.inIframe=false;return false;}},setValuesFromUrl:function(d){var a=y5Url(location.href);var c=a.queryKeys();for(var b=0;b<c.length;b++){if(c[b]=="."){var e=a.getParam(c[b]).split("|");
this.params.fullproxyDomain=e[0];this.params.fullproxyUrl=e[0]+this.params.proxyUrl;this.params.proxyDomain=e[1];}else{d.setValue(c[b],a.getParam(c[b]));}}},_inlineLoadingCount:0,inlineLoading:function(a){this._inlineLoadingCount+=a;this.onInlineLoadingChange(this._inlineLoadingCount,a);},onInlineLoadingChange:function(a,b){},bind:function(b,a){return new Widget(b,a);
},init:function(a){if(this.params===false){this.params=a;}else{for(x in this.params){if(a[x]!==undef()){this.params[x]=a[x];}}}},_insertData:function(data,element,callback,is_replace){var html=data;var scriptRe=/<script[^>]*>((\s|\S)+?)<\/script>/img;var styleRe=/(<style[^>]*>((\s|\S)+?)<\/style>)/img;
var match;while((match=styleRe.exec(html))!=null){var s=document.createElement("style");document.getElementsByTagName("head")[0].appendChild(s);if(s.styleSheet){s.styleSheet.cssText=match[2];}else{s.appendChild(document.createTextNode(match[2]));}}var el=document.createElement("div");el.innerHTML=html;
if(is_replace){$(element).replaceWith(el.getElementsByTagName("div")[0]);}else{element.appendChild(el.getElementsByTagName("div")[0]);}while((match=scriptRe.exec(html))!=null){eval(match[1]);}if(callback){callback(widget);}},replace:function(a,b){this._insertData(b,a.wrapper.$(),false,"is_replace");},add:function(a,b,e,d){var c=this.updateNo(a,0);
this.updateNo(a,c);d=d||{};$.get(this.params.addUrl,{wauth:this.params.wauth,wid:a+"-"+c,fixed:d.fixed?"1":""},function(f){Widget.Framework._insertData(f,b,e);});},splitAuth:function(a){var b=a.split(".");if(b.length>4){return{id:b[3],owner:b[6],viewer:b[5]};}else{return{id:b[0],owner:b[1],viewer:b[2]};
}},scripts:{},library:function(e,f){var a=this.prepareLibrary(e);var b=0;var d=this;var c=function(){if(b>=a.length){if(f!=undef()){f();}return;}var g=a[b];b++;if(d.scripts[g]==undef()&&g!=false){d.scripts[g]="loaded";$.getScript(g,c);}else{c();}};c();},prepareLibrary:function(b,a){var d=[];if(b instanceof Array){for(var c=0;
c<b.length;c++){if(b[c] instanceof Array){d=d.concat(this.prepareLibrary(b[c][0],b[c][1]));}else{d=d.concat(this.prepareLibrary(b[c]));}}}else{if(b!=false){d=b;}}return d;},_css:{},css:function(a){if(a instanceof Array){this.loadCss(a);}else{if(a.any instanceof Array){this.loadCss(a.any);}if($.browser.msie&&(a.msie instanceof Array)){this.loadCss(a.msie);
}if(!$.browser.msie&&(a.non_msie instanceof Array)){this.loadCss(a.non_msie);}}},loadCss:function(c){for(var a=0;a<c.length;a++){if(!this._css[c[a]]){this._css[c[a]]=true;var b=document.createElement("link");b.rel="stylesheet";b.href=c[a];document.getElementsByTagName("head")[0].appendChild(b);}}},_domloaded:false,domLoaded:function(){if(this._domloaded){return false;
}this._domloaded=true;for(var b=0;b<this._widgets.length;b++){var a=this._widgets[b];if(a._inlineLoading){a.showPreloader();}else{if(a._inlinePending){a._inlineFromHtml(a._inlinePending);}else{a.finalize();}}}},xframe:function(e,b,d){var a=y5Url();a.clearQuery();a.addParams({"wauth":e.getAuth(),"name":b,"value":d});
a.hash(a.query());a.clearQuery();if(this._xframe){document.body.removeChild(this._xframe);}var c=document.createElement("iframe");c.style.visibility="hidden";c.style.position="absolute";c.style.top=c.style.left=c.style.width=c.style.height=0;this._xframe=document.body.insertBefore(c,document.body.firstChild);
this.xframeSrc(this._xframe,this.params.fullproxyUrl+"#"+this.params.proxyDomain+"&"+a.hash());},xframeGet:function(d){if(this.inIframe){return;}var b=new y5Url();b.query(d.replace(/^#/,""));var a=this.getByWauth(b.getParam("wauth"));var c=b.getParam("value");if(a){switch(b.getParam("name")){case"Widget::setTitle":a.setTitle(c);
break;case"Widget::setIFrameHeight":a.setIFrameHeight(c);break;}}},xframeSrc:function(b,c){var a;if($.browser.msie){a=b.cloneNode(true);a.style.position="absolute";a.style.visibility="hidden";a.id="";$(a).bind("load",function(){$(a).unbind("load",arguments.callee);a.style.position="";a.style.visibility="";
});a.src=c;document.body.appendChild(a);}else{b.src=c;}},showEditForm:function(a,c){var b=this.get(a);$.get(this.params.formUrl,{widget:b.getWidgetId(),wauth:b.getAuth()},function(d){c(d);});},end:true};Widget.Framework.init({jsonUrl:"",addUrl:"/adddata/",rawBodyUrl:"/inline/",formUrl:"/form.html",proxyUrl:"/xframeproxy.html",wauth:false,idTemplate:/WIDGETID/g,idPrefix:"wd-",wrapperPrefix:"wd-",wrapperPostfix:"-",iframeHeight:"auto",preloader:'<div style="position:relative;margin:5px;color:#666"><img style="margin: 0 5px 0 0; float:left;" src="http://lego.static.yandex.net/2.0/common/block/b-spin/_size/b-spin_16.gif"/>Данные загружаются<br clear="all" /></div>'});
Widget.GetInstance=function(a){return Widget.Framework.get(a);};Widget.GetInstanceByWauth=function(a){return Widget.Framework.getByWauth(a);};Widget.Init=function(a){return Widget.Framework.init(a);};Widget.Bind=function(b,a){return Widget.Framework.bind(b,a);};$(document).ready(function(){Widget.Framework.domLoaded();
});var widget=Widget.Framework.bindIframe();if(!widget){window.WidgetMessaging=function(a){Widget.Framework.xframeGet(a);};}
