mirror of
https://gitverse.ru/kpa39l/yaru.nixg.ru.git
synced 2026-09-29 09:55:06 +00:00
1 line
37 KiB
JavaScript
1 line
37 KiB
JavaScript
y5.require(["Classes","Events"],function(){var a=function(){};a.prototype.register=function(){var d,c,b;for(b=0;b<arguments.length;b++){d=arguments[b];c=d[3]||this.control;this[d[0]]=y5.cssQuery(d[1],c)[0]}};a.prototype.show=function(){var c,b;for(b=0;b<arguments.length;b++){c=arguments[b];if(y5.Types.string(c)){c=this[c]}y5.Classes.remove(c,"i-hidden")}};a.prototype.hide=function(){var c,b;for(b=0;b<arguments.length;b++){c=arguments[b];if(y5.Types.string(c)){c=this[c]}y5.Classes.add(c,"i-hidden")}};a.prototype.on=function(d,c,b){y5.Events.observe(d,c,b,true,this);return this};Friends.BasicControl=a;y5.loaded("{Friends}.BasicControl")});y5.require(["{Friends}.BasicControl"],function(){var a=function(c){var b=function(){if(arguments.length>0){return this.init.apply(this,arguments)}};if(c){b.prototype=new c()}return b};Friends.CommonConstructor=a;y5.loaded("{Friends}.CommonConstructor")});y5.require(["Events","{Friends}.CommonConstructor"],function(){var a=Friends.CommonConstructor(Friends.BasicControl);a.prototype.init=function(c,d){this.control=c;this.params=d;this.input=y5.cssQuery("input[placeholder]",c)[0];if(!this.input){return}this.init=true;this.input.refInputPlaceholder=this;this.placeholder=this.input.getAttribute("placeholder");this.clearinput=true;var b=this.input.getAttribute("clearinput");if(b&&b=="no"){this.clearinput=false}if(this.placeholder&&this.input.value==""){this.disable(this.placeholder)}this.on("keyup",this.inputOut,this.input);this.on("focus",this.inputEnter,this.input);this.on("blur",this.inputOut,this.input);return this};a.prototype.inputEnter=function(b){if(this.isEmpty()){this.clearInput()}};a.prototype.inputOut=function(b){if(this.isEmpty()){var c=(b.type=="keyup"&&this.input.value!=this.placeholder)?"":this.placeholder;this.disable(c)}else{this.enable(this.input.value)}};a.prototype.isEmpty=function(){var b=(this.input.value==""||this.input.value==this.placeholder);return b};a.prototype.isTaint=function(){return !this.isEmpty()};a.prototype.clearInput=function(b){if(this.clearinput){this.input.value=""}var c=this.clearinput?"":this.input.value;this.disable(c)};a.prototype.disable=function(b){if(b!=this.input.value){this.input.value=b}y5.Classes.add(this.input,"b-input-empty")};a.prototype.enable=function(b){if(b!=this.input.value){this.input.value=b}y5.Classes.remove(this.input,"b-input-empty")};Friends.InputPlaceholder=a;y5.loaded("{Friends}.InputPlaceholder")});Friends.FriendControl=function(a){this.control=a;this.search=0;this.result=0;this.list=0;this.details=0;this.submit=0;this.textInitial="";this.searchSubmit=0;this.init()};Friends.FriendControl.prototype={clearSearchField:function(a){if(a.target.value==this.textInitial){a.target.value=""}y5.Classes.remove(a.target,"text-initial")},initialSearchField:function(a){if(y5.Strings.isEmpty(a.target.value)){y5.Classes.add(a.target,"text-initial");a.target.value=this.textInitial}},onCheckboxClick:function(b){b.stopPropagation();var a=y5.Dom.getDescendantOrSelf(b.target,"input","*");this.disableControl(a,(a.checked==""))},disableControl:function(g,f){var d=y5.Dom.getFollowing(y5.Dom.getAncestorOrSelf(g,"label","*"),"span","*")[0];y5.Classes.assign(d,"disabled",f);var c=y5.Dom.getDescendants(d,"input","*"),e,b;for(e=0,b=c.length;e<b;e++){c[e].disabled=f}},showUserInfo:function(){var c=this.list.selectedIndex;var d=this.list[c].value;var b=this.list[c].innerHTML;if(!d){return}this.setStatusMessage('Идёт загрузка карточки пользователя<br /><img src="'+g_globals.img_base+'bar.gif" alt=""/>');var a=this;g_sources.getSource(d,function(e){a.getUserResponseOK(e,{parent:a})},this.getUserResponseError,{parent:this},true)},getUserResponseOK:function(a,b){y5.Classes.remove(b.parent.details,"details-empty");b.parent.details.innerHTML=a.info||""},getUserResponseError:function(a,b){},onSearch:function(){this.setStatusMessage('Идёт загрузка пользователей<br /><img src="'+g_globals.img_base+'bar.gif" alt=""/>');var b=["textarea","select","button"];var d="input";var c=this.placeholders.filter(function(e){if(e.isEmpty()){d+='[name!="'+e.input.name+'"]'}return(!e.isEmpty()&&!y5.Strings.isVoid(e.input.value))})==0;b.push(d);if(c){this.setStatusMessage("Задан пустой поисковый запрос.");return false}var a=friendsURL("ajax/search_users",y5.FormCollector.collectTags(this.control,b));(function(e,f){jQuery.ajax({url:a,dataType:"json",success:function(g){e.searchResponseOK(g,f)},error:function(g){e.searchResponseError(g,f)}})})(this,{parent:this});return false},searchResponseOK:function(a,b){var c=b.parent;c.listParentNode.innerHTML=a.html;c.list=c.listParentNode.firstChild;if(c.list.length===0){c.setStatusMessage("никого не найдено");return}new y5.AEventListener("change",c.showUserInfo,c.list,true,c);c.list.selectedIndex=-1;c.setStatusMessage("← выберите человека")},searchResponseError:function(a){},setStatusMessage:function(a){y5.Classes.add(this.details,"details-empty");this.details.innerHTML=a},init:function(){var g=(y5.cssQuery('input[name="type"][type="hidden"]')[0]||{value:"unknown"}).value;y5.cssQuery(".b-write-friend-search input",this.control).forEach(function(a){y5.Events.observe("keypress",function(h){if(h.keyCode==13){h.preventDefault();h.stopPropagation();this.onSearch()}},a,true,this)},this);this.placeholders=y5.cssQuery(".Friends-later-InputPlaceholder",this.control).map(function(a){return new Friends.InputPlaceholder(a)});this.search=y5.Dom.getDescendant(this.control,"div","b-write-friend-search");this.searchSubmit=y5.Dom.getDescendant(this.search,"input","submit");y5.Events.observe("click",this.onSearch,this.searchSubmit,true,this);this.textInput=y5.Dom.getDescendant(this.search,"input","text");this.textInitial=this.textInput.value;new y5.AEventListener("focus",this.clearSearchField,this.textInput,true,this);new y5.AEventListener("blur",this.initialSearchField,this.textInput,true,this);var c=y5.Dom.getDescendants(this.search,"p","*"),d,b;for(d=0,b=c.length;d<b;d++){var f=y5.Dom.getDescendants(c[d],"label","*");if(f.length>0){y5.Events.observe("click",this.onCheckboxClick,f[0],true,this);this.disableControl(f[0],true)}}this.result=y5.Dom.getDescendant(this.control,"table","b-write-users-list");this.list=y5.Dom.getDescendants(y5.Dom.getDescendant(this.result,"td","list"),"select","*")[0];this.listParentNode=this.list.parentNode;this.details=y5.Dom.getDescendant(this.result,"td","details");var e=y5.Dom.getDescendant(this.control.parentNode,"div","b-write-submit");if(["congratulation","text"].indexOf(g)>-1){e=false}}};y5.require(["Strings","Dom","Classes","Events","Ajax","AjaxJS","FormCollector","{Friends}.InputPlaceholder"],function(){y5.loaded("{Friends}.FriendControl")});Friends.YauserSearch=function(a,b){if(arguments.length>0){this.init.apply(this,arguments)}};Friends.YauserSearch.prototype={init:function(a,b){this.control=a;this.control.YauserSearchControl=this;this.params=b;this.searchError_b=y5.Dom.getDescendants(this.control,"b","b-note-attention")[0];this.search_input=y5.Dom.getDescendant(this.control,"input","text");this.usersList_table=y5.Dom.getDescendant(this.control,"table","b-write-users-list");this.search_btn=y5.Dom.getDescendants(this.control,"input","submit")[0];this.myFriends_link=y5.Dom.getDescendant(this.control,"a","my-friends");this.friendControl=new Friends.FriendControl(this.control);this.search_btn.disabled=false;this.INVALID_SEARCH_TEXT="Логин или имя пользователя должны быть заданы";this.ajaxMethod_search="ajax/search_users_by_name_not_me";if(this.params){this.ajaxMethod_get="ajax/"+this.params.ajaxMethod_get}this.setEvents()},setEvents:function(){var a=this;$(this.control).find(".my-friends").die("click.yausersearch").live("click.yausersearch",function(g){a.hideErrorMessages();a.resetSearchResults();g.preventDefault();a.friendControl.setStatusMessage('Идёт загрузка пользователей<br /><img src="'+g_globals.img_base+'bar.gif" alt=""/>');y5.Events.notify("y5:usersAreFound",a.friendControl,true);if(a.friendsHTML){a.onFriendsSearch(a.friendsHTML);return}var b=a;function f(e,h){b.onFriendsSearch(e.html);b.friendsHTML=e.html}function d(e){a.friendControl.setStatusMessage("ошибка "+e)}var c=friendsURL(a.ajaxMethod_get);jQuery.ajax({url:c,dataType:"json",success:f,error:d})});y5.ShortCut.down([{key:y5.ShortCut.ENTER}],function(b){return new y5.Event("click",this.search_btn,true)},this.search_input,{checkTarget:false,context:this})},onFriendsSearch:function(a){this.fillUsers_select(a);if(this.users_select.options.length===0){this.friendControl.setStatusMessage("никого не найдено");return}this.users_select.selectedIndex=0;this.friendControl.setStatusMessage("← выберите человека");this.friendControl.list=this.users_select;this.friendControl.showUserInfo();y5.Events.notify("y5:userIsSelected",this.friendControl,true);new y5.AEventListener("change",function(){this.friendControl.list=this.users_select;this.friendControl.showUserInfo();y5.Events.notify("y5:userIsSelected",this.friendControl,true)},this.users_select,true,this)},fillUsers_select:function(a){this.users_select=y5.Dom.getDescendant(this.control,"td","list").getElementsByTagName("select")[0];var b=this.users_select.parentNode;a=a.replace(/'/g,"\x27");b.innerHTML=a;this.users_select=b.firstChild},onSearch:function(){this.resetSearchResults();if(!this.isYauserLogin()){this.showErrorMessage(this.searchError_b,this.INVALID_SEARCH_TEXT);return false}y5.Events.notify("y5:usersAreFound",this.friendControl,true);return true},isYauserLogin:function(){return !y5.Strings.isVoid(this.search_input.value)},showErrorMessage:function(a,b){if(b){a.innerHTML=b}y5.Classes.remove(a,"i-hidden")},hideErrorMessages:function(a){y5.Classes.add(this.searchError_b,"i-hidden");y5.Events.notify("y5:hideErrorMessages",this.friendControl,true)},resetSearchResults:function(){this.hideErrorMessages();y5.Events.notify("y5:resetSearchResults",this.friendControl,true)},initUsers_select:function(){this.users_select=y5.Dom.getDescendant(this.control,"td","list").getElementsByTagName("select")[0];new y5.AEventListener("change",function(){y5.Events.notify("y5:userIsSelected",this.friendControl,true)},this.users_select,true,this)}};y5.require(["Dom","Events","ShortCuts","{Friends}.FriendControl"],function(){y5.loaded("{Friends}.YauserSearch");Friends.FriendControl.prototype.searchResponseOKOld=Friends.FriendControl.prototype.searchResponseOK;Friends.FriendControl.prototype.searchResponseOK=function(a,b){var c=b.parent;c.searchResponseOKOld(a,b);if(c.list.length){c.list.selectedIndex=0;c.showUserInfo();c.control.YauserSearchControl.initUsers_select();y5.Events.notify("y5:userIsSelected",c.control.YauserSearchControl.friendControl,true)}};Friends.FriendControl.prototype.searchResponseError=function(a){var b=a.parent;b.setStatusMessage("ошбика "+a)};Friends.FriendControl.prototype.onSearch=function(){if(!this.control.YauserSearchControl.onSearch()){return false}var c=this;this.setStatusMessage('Идёт загрузка пользователей<br /><img src="'+g_globals.img_base+'bar.gif" alt=""/>');var a=getByTagName("input",this.submit.form);var b=friendsURL(this.control.YauserSearchControl.ajaxMethod_search,y5.FormCollector.collectTags(this.control));jQuery.ajax({url:b,dataType:"json",success:function(d){c.searchResponseOK(d,{parent:c})},error:function(d){c.searchResponseError(d,{parent:c})}});return false}});y5.require(["{Friends}.YauserSearch","{Friends}.CommonConstructor"],function(){var a=Friends.CommonConstructor(Friends.YauserSearch);a.prototype.init=function(){Friends.YauserSearch.prototype.init.apply(this,arguments);this.insertError_b=y5.Dom.getDescendants(this.control,"b","b-note-attention")[1];this.yauser_span=y5.Dom.getDescendant(this.control,"b","b-user");this.yauserPreview_div=y5.Dom.getDescendant(this.control,"div","b-friend-name-preview");this.toChange_link=y5.Dom.getDescendant(this.control,"a","to-change");this.yauserName_input=y5.cssQuery('input[name="yauser-name"]',this.control)[0];this.dialogBtns=y5.Dom.getDescendant(this.control,"div","y5-w-buttons");this.ajaxMethod_search="ajax/search_users_by_name";this.ajaxMethod_get="ajax/get_friends";y5.Events.observe("y5:userIsSelected",this.showPreviewBlock,this.friendControl,true,this);y5.Events.observe("y5:usersAreFound",this.showSearchResult,this.friendControl,true,this);y5.Events.observe("y5:resetSearchResults",this.resetSearchResults,this.friendControl,true,this);y5.Events.observe("y5:hideErrorMessages",function(){y5.Classes.add(this.insertError_b,"i-hidden")},this.friendControl,true,this);y5.Events.observe("click",function(b){this.hideErrorMessages();this.yauserName_input.value=this.yauserName;y5.Classes.add(this.yauserPreview_div,"b-friend-name-preview-edit");this.yauserName_input.focus();this.yauserName_input.select();b.preventDefault()},this.toChange_link,true,this);if(!this.has_been_inited){y5.Events.observe("y5:show",function(b){if(typeof b.caller==="object"){this.caller=b.caller;this.caller_params=b.caller_params||{};this.title=this.caller_params.title||"Вставить ссылку на страницу пользователя Я.ру";this.showWidget()}},a,true,this);y5.Events.observe("y5:make",function(c){this.dialog=c;this.control=c.window;var b=this.dialog.element;this.init(this.control);y5.ShortCut.down([{key:y5.ShortCut.ENTER}],function(d){y5.Events.notify("click",this.dialog.button_ok)},this.yauserName_input,{checkTarget:false,context:this});y5.Events.notify("y5:yauser_make",this.caller,true,{caller:this});this.initDialogEvents()},this.getWidgetInitElement(),true,this);this.has_been_inited=true}y5.loaded("{Friends}.YauserSearchInPostInstance")};a.prototype.showSearchResult=function(){y5.Classes.remove(this.usersList_table,"i-hidden")};a.prototype.resetSearchResults=function(){this.yauserLogin="";this.yauserName="";this.yauser_span.innerHTML="";y5.Classes.add(this.usersList_table,"i-hidden");y5.Classes.add(this.yauserPreview_div,"i-hidden");if(this.dialogBtns){y5.Classes.add(this.dialogBtns,"i-hidden")}};a.prototype.showPreviewBlock=function(){y5.Classes.add(this.insertError_b,"i-hidden");if(!this.caller_params.dont_preview){y5.Classes.remove(this.yauserPreview_div,"i-hidden");y5.Classes.remove(this.yauserPreview_div,"b-friend-name-preview-edit")}var c=this.users_select;$(".b-friend-name-preview").yhide();if(c.options&&c.options.length){var b=c.options[this.users_select.selectedIndex];this.yauserLogin=b.id;var d=b.onclick();this.yauserName=d.title;this.data=d;this.data.id=b.value;this.setYauserName();$(".b-friend-name-preview").yshow();y5.Classes.remove(this.dialogBtns,"i-hidden")}};a.prototype.setYauserName=function(){this.yauser_span.innerHTML=this.createYauserLink(this.yauserLogin,this.yauserName)};a.prototype.createYauserLink=function(b,d){var e=d.substring(0,1);var c=d.substring(1);return'<a class="b-user__link" href="'+friendsFullURL(b)+'" target="_blank"><b class="b-user__first-letter">'+ya.xmlEscape(e)+"</b>"+ya.xmlEscape(c)+"</a>"};a.prototype.defineYauserName=function(){if(!y5.Strings.isVoid(this.yauserName_input.value)){this.yauserName=this.yauserName_input.value;this.setYauserName()}};a.prototype.getWidgetInitElement=function(){var b=this.dialog?this.dialog.element:this.control;return b};a.prototype.showWidget=function(){var b={title:this.title},d=this.caller_params;if("valign" in d){b.valign=d.valign}if("halign" in d){b.halign=d.halign}var c=y5.Widget.make(this.getWidgetInitElement(),"Widget.Dialog.Standard",b)};a.prototype.showErrorMessage=function(b,c){if(c){b.innerHTML=c}y5.Classes.remove(b,"i-hidden")};a.prototype.initDialogEvents=function(){var b=this.dialog.element;y5.Events.observe("y5:ok",this.onDialogOK,b,true,this);y5.Events.observe("y5:esc",this.onDialogEsc,b,true,this);y5.Events.observe("y5:cancel",this.onDialogCancel,b,true,this);this.initDialogEvents=function(){}};a.prototype.onDialogOK=function(){this.hideErrorMessages();this.defineYauserName();if(this.yauserName.length){y5.Events.notify("y5:yauser_defined",this.caller,true,{login:this.yauserLogin,name:this.yauserName,inflects:this.data.inflects,id:this.data.id})}else{this.showErrorMessage(this.insertError_b,"Не задано имя пользователя");return false}return true};a.prototype.onDialogEsc=function(){y5.Events.notify("y5:yauser_src",this.caller,true,{caller:this});return true};a.prototype.onDialogCancel=function(){y5.Events.notify("y5:yauser_cancel",this.caller,true,{caller:this});return true};Friends.YauserSearchInPost=a;y5.loaded("{Friends}.YauserSearchInPost")});Friends.ChangeUserpicControl=function(a){if(arguments.length>0){var b=new Friends.ChangeUserpicControl();b.init.apply(this,arguments);return b}};Friends.ChangeUserpicControl.prototype.init=function(a){var b=this;this.control=a;this.current=null;this.pointer=null;this.selected_span=0;this.form=y5.Dom.getAncestorOrSelf(this.control,"form");this.submit=y5.cssQuery('input[type="submit"]',this.form)[0];y5.Events.observe("y5:choose_userpic",this.chooseUserpic,this,true,this);Friends.ChangeUserpicControl.lastCreatedInstance=this};Friends.ChangeUserpicControl.prototype.chooseUserpic=function(a){if(this.pointer!=null){this.pointer.modeUnchoosed()}this.pointer=a.userpic};y5.loaded("{Friends}.ChangeUserpicControl");y5.require(["Events","{Friends}.ChangeUserpicControl","{Friends}.CommonConstructor"],function(){Friends.UserpicDeletable=function(){if(arguments.length>0){var a=new Friends.UserpicDeletable();a.createFromTag.apply(a,arguments);return a}};Friends.UserpicDeletable.prototype.createFromTag=function(b,c){this.control=b;this.control_label=y5.Dom.getDescendant(this.control,"label");this.params=c;this.userpic=y5.cssQuery("a.b-userpic img",this.control)[0];this.createDrawButton();this.server=new y5.Request.XML("ajax/userpic_do_delete.xml",{method:"POST",callbackContext:this});this.server.onload=this.deleteUserpicHandler;this.server.onerror=this.deleteUserpicHandlerError;y5.Events.observe("click",function(){this.modeChoosed()},this.userpic,true,this);var a=y5.Classes.test(this.control_label,"active");if(a){this.modeChoosed()}else{this.modeUnchoosed()}};Friends.UserpicDeletable.prototype.modeChoosed=function(){if(this.is_choosed){return}y5.Events.notify("y5:choose_userpic",Friends.ChangeUserpicControl.lastCreatedInstance,true,{userpic:this});this.is_choosed=true;y5.Classes.add(this.control_label,"active");y5.Classes.add(this.delete_button,"i-hidden");var a=y5.cssQuery('input[name="userpic"]',this.control_label)[0];a.checked=true};Friends.UserpicDeletable.prototype.modeUnchoosed=function(){this.is_choosed=false;y5.Classes.remove(this.control_label,"active");y5.Classes.remove(this.delete_button,"i-hidden");var a=y5.cssQuery('input[name="userpic"]',this.control_label)[0]};Friends.UserpicDeletable.prototype.createDrawButton=function(){this.delete_button=y5.Elements.create('<i class="delete-userpic i-hidden"> </i>');y5.Classes.add(this.userpic.parentNode,"delete-userpic-holder");this.userpic.parentNode.appendChild(this.delete_button);y5.Events.observe("click",this.clickDeleteButton,this.delete_button,true,this)};Friends.UserpicDeletable.prototype.clickDeleteButton=function(a){a.stopPropagation();a.preventDefault();this.deleteUserpic()};Friends.UserpicDeletable.prototype.deleteUserpic=function(){y5.Classes.add(this.userpic,"faded");this.server.send({name:this.params.userpic,host_id:this.params.host_id})};Friends.UserpicDeletable.prototype.deleteUserpicHandler=function(a){var b=y5.JSON.decode(a.responseText);if(b.status==="Success"){y5.Dom.removeNode(this.control)}else{this.deleteUserpicHandlerError()}};Friends.UserpicDeletable.prototype.deleteUserpicHandlerError=function(){y5.Classes.remove(this.userpic,"faded")};y5.loaded("{Friends}.UserpicDeletable")});window.g_sizePicture=function(){return"normal"};Friends.ClassPictureLoader=function(){};Friends.ClassPictureLoader.prototype={className:"pictureloader-",getElement:function(a){return y5.Dom.getDescendant(this.element,"*",this.className+a)},default_enctype:"",initBase:function(a,b){this.__listeners=[];this.element=a;this.file=this.getElement("file");this.form=this.file.form;this.filename=this.getElement("filename");this.filename.value=y5.Utils.generateId();this.label=this.getElement("label")||document.createElement("label");this.__listeners.push(y5.Events.observe("y5:"+y5.Utils.getUniqueId(this.form),this.change,this.form,true,this));this.__listeners.push(y5.Events.observe("y5:load",this.clearFile,this.element,true,this));this.__listeners.push(y5.Events.observe("y5:error",this.error,this.element,true,this));this.__listeners.push(y5.Events.observe("y5:readyforsend",this.sendPicture,this.element,true,this));this.__listeners.push(y5.Events.observe("y5:send",this.showPicture,this.element,true,this));this.__listeners.push(y5.Events.observe("y5:disableByRename",this.disableByRename,this.form,true,this));y5.Events.create("submit",this.enableByRename,this.form,true,this);return this.form},createFromTag:function(a,b){this.initBase(a,b)},sendPictureBase:function(){this.getElement("filename").value=y5.Utils.generateId()},change:function(){this.sendPicture(this.form);if(!this.delListener){var a=this.getElement("delete");if(a){this.delListener=new y5.AEventListener("click",this.deleteImage,a,false,this)}}if(this.delListener){this.delListener.add()}},error:function(){this.deleteImage(this.filename,this.label);y5.Classes.remove(this.label,"active");y5.Classes.remove(this.label,"load");y5.Classes.add(this.label,"error");this.clearFile();if(this.delListener){this.delListener.remove()}},deleteImage:function(){this.filename.value="";y5.Classes.remove(this.label,"load");y5.Classes.remove(this.label,"error");y5.Classes.remove(this.label,"active");y5.Classes.add(this.label,"new");try{Friends.ChangeUserpicControl.Constructor.prototype.instance.activateCurrent()}catch(a){}if(this.delListener){this.delListener.remove()}},clearFile:function(){this.filename.value="";var a=this.file.parentNode;a.innerHTML=a.innerHTML;this.file=a.firstChild},sendForm:function(action){var _this=this;y5.Events.notify("y5:disableByRename",_this.form,true,_this.element);_this.enableByRename();_this.setFormEnctype();function response(result,trace){if(!result||!y5.Strings.trim(result)){y5.Events.notify("y5:error",_this.element,true,null);return}result=eval("("+result+")");if(!result.name){y5.Events.notify("y5:error",_this.element,true,null);return}y5.Events.notify("y5:send",_this.element,true,result);_this.restoreFormEnctype()}function error(result,trace){y5.Events.notify("y5:error",_this.element,true,null);_this.restoreFormEnctype()}if($("input[name='sk']").length){var ticketInput=$('<input type="hidden" name="ticket" value="'+$("input[name='sk']")[0].value+'"></input>'),utInput=$('<input type="hidden" name="ut" value="2"></input>');$(this.form).append(ticketInput,utInput)}ya.controls.pictureUpload(action,this.form,{},function(_this){return function(){_this.sendFormHandler.apply(_this,arguments)}}(this),error)},sendFormHandler:function(a,b){if(!a||!a.name){y5.Events.notify("y5:error",this.element,true,null);return}y5.Events.notify("y5:send",this.element,true,a);this.restoreFormEnctype();$("input[name='ticket']",this.form).remove();$("input[name='ut']",this.form).remove()},disableByRename:function(b){if(b==this.element){return}var a=y5.Dom.getDescendants(this.element,"input","*");a.forEach(function(c){if(c.name.indexOf("_disabledByRename")===-1){c.name=c.name+"_disabledByRename"}})},enableByRename:function(){var a=y5.Dom.getDescendants(this.element,"input","*");a.forEach(function(b){if(b.name.indexOf("_disabledByRename")!==-1){b.name=b.name.replace("_disabledByRename","")}})},restoreFormEnctype:function(){if(!y5.is_ie){this.form.enctype=this.default_enctype}},setFormEnctype:function(){this.default_enctype=this.form.enctype;this.form.enctype="multipart/form-data"},dectruct:function(){var b,a;for(b=0,a=this.__listeners.length;b<a;b++){this.__listeners[b].remove()}}};y5.loaded("{Friends}.classes.ClassPictureLoader");y5.require(["Events","Strings","Dom","Classes","{Friends}.classes.ClassPictureLoader","{Friends}.UserpicDeletable"],function(){Friends.PictureLoaderAvatar=function(a,c){if(arguments.length>0){var b=new Friends.PictureLoaderAvatar();b.init.apply(b,arguments);return b}};Friends.PictureLoaderAvatar.prototype=new Friends.ClassPictureLoader();Friends.PictureLoaderAvatar.prototype.showPicture=function(a){var g=this;var b=a.name;var e=g_globals.userpic_base+g_source.id+"/"+b+"-"+this.size;var d=this.image;d.onerror=function(h){d.onerror=null;y5.Events.notify("y5:error",g.element,true,null)};y5.Classes.remove(this.label,"load");y5.Classes.remove(this.label,"error");d.src=e;this.response=a;y5.Events.notify("y5:load",this.element,true,b);if(!this.params.simpleForm){var f=this.element.cloneNode(true);var c=new Friends.UserpicDeletable(f,{userpic:b,host_id:this.params.host_id});y5.Dom.insertBefore(c.control,this.element);y5.cssQuery('input[type="file"]',c.control).forEach(function(h){y5.Dom.removeNode(h)});y5.cssQuery('input[name="userpic"]',c.control).forEach(function(h){h.value=b});this.deleteImage();c.modeChoosed()}};Friends.PictureLoaderAvatar.prototype.saveUserpic=function(a){};Friends.PictureLoaderAvatar.prototype.saveUserpicHandler=function(c){var b=c.responseText;var a=y5.JSON.decode(b);if(a.name===false){y5.Events.notify("y5:error",this.element,true,null);return false}};Friends.PictureLoaderAvatar.prototype.saveUserpicErrorHandler=function(){y5.Events.notify("y5:error",this.element,true,null)};Friends.PictureLoaderAvatar.prototype.init=function(a,b){this.initBase(a,b);this.image=this.getElement("image");y5.Events.observe("click",function(){y5.Events.notify("y5:userpic_clicked",this,true)},this.image,true,this);this.size=b.size||"normal";this.params=b};Friends.PictureLoaderAvatar.prototype.urlModify=function(){return g_globals.upics_simple_upload};Friends.PictureLoaderAvatar.prototype.sendPicture=function(){this.sendPictureBase();y5.Classes.swap(this.label,"new","load");y5.Classes.remove(this.label,"error");this.sendForm(this.urlModify())};y5.loaded("{Friends}.PictureLoaderAvatar")});y5.require(["Events","Strings","Dom","Classes","{Friends}.PictureLoaderAvatar"],function(){Friends.OptionsBGImageLoader=Friends.PictureLoaderAvatar;Friends.OptionsBGImageLoader.prototype=Friends.PictureLoaderAvatar.prototype;Friends.OptionsBGImageLoader.prototype.showPicture=function(a){var b=g_globals.pictures_base+g_source.login+"/"+a.name;y5.Events.notify("y5:OptionsBGImageLoaded",this.element,true,b);y5.Events.notify("y5:load",this.element,true,b)};Friends.OptionsBGImageLoader.prototype.urlModify=function(){return g_globals.pictures_modify};y5.loaded("{Friends}.OptionsBGImageLoader")});Friends.OptionsBGImageUser=new function(){this.createFromTag=function(a,b){new Friends.OptionsBGImageUser.Constructor(a,b)}};Friends.OptionsBGImageUser.Constructor=function(a,b){this.element=a;this.input=y5.cssQuery("input[type=hidden]",a)[0];this.radio=y5.cssQuery("input[type=radio]",a)[0];this.i=y5.cssQuery("i",a)[0];this.label=y5.cssQuery("label",a)[1];this.init()};Friends.OptionsBGImageUser.Constructor.prototype=new function(){this.init=function(){var b=this;function a(c){b.click(c)}y5.Events.create("click",a,this.radio,true);y5.Events.observe("y5:show",this.show,this.element,true,this);y5.Events.observe("y5:clear",this.clear,this.element,true,this)};this.click=function(a){y5.Classes.add(this.label,"active");y5.Events.notify("y5:OptionsBGImageUser",this.element,true,this.input.value)};this.clear=function(){y5.Classes.remove(this.label,"active")};this.show=function(a){this.i.style.backgroundImage=a.replace(/src/,"middle");this.radio.checked=true;y5.Classes.remove(this.element,"i-hidden");this.input.value=a;this.click()}};y5.require(["Dom","Events","cssQuery","Classes"],function(){y5.loaded("{Friends}.OptionsBGImageUser")});Friends.OptionsBGImageNone=new function(){this.createFromTag=function(a,b){new Friends.OptionsBGImageNone.Constructor(a,b)}};Friends.OptionsBGImageNone.Constructor=function(a,b){this.element=a;this.input=y5.cssQuery("input",a)[0];this.init()};Friends.OptionsBGImageNone.Constructor.prototype=new function(){this.init=function(){var b=this;function a(c){b.click(c)}y5.Events.create("click",a,this.input,true)};this.click=function(a){if(this.input.checked){y5.Events.notify("y5:OptionsBGImageNone",this.element,true,"none")}}};y5.require(["Dom","Events","cssQuery"],function(){y5.loaded("{Friends}.OptionsBGImageNone")});Friends.OptionsBGImagePreset=new function(){this.createFromTag=function(a,b){new Friends.OptionsBGImagePreset.Constructor(a,b)}};Friends.OptionsBGImagePreset.Constructor=function(a,b){this.element=a;this.active=this.getActive();this.init()};Friends.OptionsBGImagePreset.Constructor.prototype=new function(){this.init=function(){var b=this;function a(c){b.click(c)}y5.Events.create("click",a,this.element,true);y5.Events.observe("y5:clear",this.clear,this.element,true,this)};this.getActive=function(){var a=y5.cssQuery("label.active",this.element);return a&&a.length?a[0]:null};this.click=function(h){var g=h.target;if(!y5.Dom.testTagName(g,"i")){return}var c=(g.nodeName=="label")?g:g.parentNode;this.setActive(c);var b=y5.cssQuery("input[type=radio]",g.parentNode.parentNode)[0];y5.Events.notify("y5:OptionsBGImagePreset",this.element,true,b.value);b.checked=true;var f=y5.cssQuery("input[type=hidden]",g.parentNode.parentNode)[0];var a=this.getColors(f),d;for(d in a){y5.Events.notify("y5:colorPikkerSetColor",External,true,{name:d,value:a[d]})}};this.getColors=function(a){return a.onclick()};this.clear=function(){this.setActive(null)};this.setActive=function(a){if(this.active==a){return}if(this.active){y5.Classes.remove(this.active,"active")}if(a){y5.Classes.add(a,"active")}this.active=a}};y5.require(["Dom","cssQuery","Events","Classes"],function(){y5.loaded("{Friends}.OptionsBGImagePreset")});y5.require(["{External}.ColorPikker.ColorPikker"],function(){Friends.ClassColorPicker=function(){};Friends.ClassColorPicker.prototype=new Colorpikker();Friends.ClassColorPicker.prototype.customImg="http://img.yandex.net/i/zero.gif";Friends.ClassColorPicker.prototype.collection={};Friends.ClassColorPicker.prototype.createFromTag=function(a,b){this.defaultSingleWindow=false;this.input=this.generateID(y5.Dom.getDescendant(a,"input","ColorPikker-Input"));this.preview=this.generateID(y5.Dom.getDescendant(a,"*","ColorPikker-Preview"));this.init({input:this.input.id,preview:this.preview.id});y5.Events.observe("y5:changeColor",this.changeColor,this,true,this);this.collection[this.input.name]=this;y5.Events.observe("y5:colorPikkerSetColor",this.setColor,External,true,this);return};Friends.ClassColorPicker.prototype.setColor=function(a){var b=this.collection[a.name];if(b){b.setModel(a.value)}};Friends.ClassColorPicker.prototype.generateID=function(a){if(!a.id){a.id=y5.Utils.generateId("ColorPikker_")}return a};Friends.ClassColorPicker.prototype.changeColor=function(a){y5.Events.notify("y5:colorPikkerChangeColor",y5,true,{name:this.input.name||"",color:a})};y5.loaded("{Friends}.classes.ClassColorPicker")});Friends.OptionsMainPage=new function(){this.createFromTag=function(a,b){new Friends.OptionsMainPage.Constructor(a,b)}};Friends.OptionsMainPage.Constructor=function(a,b){this.element=a;this.params=b;this.init()};Friends.OptionsMainPage.Constructor.prototype=new function(){this.init=function(){var b=this;function a(c){b.change(c)}y5.Events.observe("y5:OptionsSwitcherChange"+this.params.name,a,Friends,true)};this.change=function(b){var a,c;if(y5.Strings.startsWith(b.name,"show-")){a=y5.cssQuery("."+b.name,this.element)[0];c=!(b.value=="no"&&b.checked)}else{a=this.element;c=(b.value==this.params.value&&b.checked)}if(a){y5.Classes.assign(a,"i-hidden",!c)}}};y5.require(["Events","Classes","Strings"],function(){y5.loaded("{Friends}.OptionsMainPage")});Friends.OptionsStyle=new function(){this.createFromTag=function(a,b){new Friends.OptionsStyle.Constructor(a,b)}};Friends.OptionsStyle.Constructor=function(a,b){this.element=a;this.params=b;this.init()};Friends.OptionsStyle.Constructor.prototype=new function(){this.init=function(){this.elements=new Friends.OptionsStyle.Elements(this.element);var d=this,c=d.elements.elements;function b(f){if(c[f.name]){d.changeStyle(c[f.name],f.color)}}y5.Events.observe("y5:colorPikkerChangeColor",b,y5,true);function a(f){if(c[f.name]){d.changeStyle(c[f.name],f.className)}}y5.Events.observe("y5:ChangeBGImage",a,Friends,true)};this.changeStyle=function(g,f){var d,a;for(d=0,a=g.length;d<a;d++){var c=g[d][0],e=g[d][1],b,h;if(!c){continue}if(c.constructor==Array){for(b=0,h=c.length;b<h;b++){this.setStyle(c[b],e,f)}}else{this.setStyle(c,e,f)}}};this.setStyle=function(a,b,c){if(b=="className"){y5.Classes.remove(a,/bg\-image\-[\-\w]*/);y5.Classes.add(a,c);return}if(a.style[b]!=c){a.style[b]=c}}};Friends.OptionsStyle.Elements=function(a){this.elements={"main-color":[[y5.cssQuery("div.b-page-head",a),"backgroundColor"]],"background-color":[[[a],"backgroundColor"],[y5.cssQuery("div.holster",a),"backgroundColor"],[y5.cssQuery(".b-profile-menu .active b",a),"borderColor"]],"header-color":[[y5.cssQuery(".b-page-head-blog",a),"color"]],"subheader-color":[[y5.cssQuery(".holster > *",a),"color"]],"header-image":[[y5.cssQuery("div.b-page-head",a),"className"]],"header-user-image":[[y5.cssQuery("div.b-page-head",a),"backgroundImage"]]}};y5.require(["Events","Dom","Arrays","cssQuery","Classes"],function(){y5.loaded("{Friends}.OptionsStyle")});Friends.OptionsBGImage=new function(){this.createFromTag=function(a,b){new Friends.OptionsBGImage.Constructor(a,b)}};Friends.OptionsBGImage.Constructor=function(a,b){this.element=a;this.init()};Friends.OptionsBGImage.Constructor.prototype=new function(){this.init=function(){this.initPreset();this.initNone();this.initUser();this.initLoader()};this.initPreset=function(){this.preset=y5.cssQuery(".Friends-c-OptionsBGImagePreset",this.element)[0];y5.Components.createComponents([this.preset]);y5.Events.observe("y5:OptionsBGImagePreset",this.getPreset,this.preset,true,this)};this.initNone=function(){this.none=y5.cssQuery(".Friends-c-OptionsBGImageNone",this.element)[0];y5.Components.createComponents([this.none]);y5.Events.observe("y5:OptionsBGImageNone",this.getNone,this.none,true,this)};this.initUser=function(){this.user=y5.cssQuery(".Friends-c-OptionsBGImageUser",this.element)[0];y5.Components.createComponents([this.user]);y5.Events.observe("y5:OptionsBGImageUser",this.getUser,this.user,true,this)};this.initLoader=function(){this.loader=y5.cssQuery(".Friends-c-OptionsBGImageLoader",this.element)[0];y5.Components.createComponents([this.loader]);y5.Events.observe("y5:OptionsBGImageLoaded",this.getLoaded,this.loader,true,this)};this.getPreset=function(a){this.clearUser();this.clearView();y5.Events.notify("y5:ChangeBGImage",Friends,true,{name:"header-image",className:a})};this.getNone=function(a){this.clearPreset();this.clearUser();this.clearView()};this.getLoaded=function(a){a="url("+a+")";y5.Events.notify("y5:show",this.user,true,a)};this.getUser=function(a){this.clearPreset();this.clearView();y5.Events.notify("y5:ChangeBGImage",Friends,true,{name:"header-user-image",className:a})};this.clearPreset=function(){y5.Events.notify("y5:clear",this.preset,true,null)};this.clearUser=function(){y5.Events.notify("y5:clear",this.user,true,null)};this.clearView=function(){y5.Events.notify("y5:ChangeBGImage",Friends,true,{name:"header-user-image",className:"none"});y5.Events.notify("y5:ChangeBGImage",Friends,true,{name:"header-image",className:"none"})}};y5.require(["Events","cssQuery"],function(){y5.loaded("{Friends}.OptionsBGImage")});(function(ya,$){var freeIframesStack=[],doTheJob=function(data){data.$form.attr("target",data.id);data.$iFrame.bind("load",data,function(e){var response="",data=e.data;try{response=eval("("+window.frames[data.id].document.body.innerHTML+")")}catch(error){data.error(error);return}finally{data.$params.remove();data.$form.attr("action",data.action).attr("enctype",data.enctype).attr("method",data.method).attr("target",data.target);$.each(data.handlers,function(i,handler){data.$form.bind("submit",handler.handler)});data.$iFrame.unbind("load");freeIframesStack.push(data.id)}data.callback(response)});data.$form.submit()};ya.namespace("controls");ya.controls.pictureUpload=function(url,form,parameters,callbackOK,callbackNOK){var upID,$form=$(form),$iFrame,str="",key,action=$form.attr("action"),enctype=$form.attr("enctype"),target=$form.attr("target"),method=$form.attr("method"),$params,submitHandlers=[],events=$form.data("events");str='<div class="temp_params i-hidden">';for(key in parameters){if(parameters.hasOwnProperty(key)){str+='<input name="'+key+'" value="'+parameters[key]+'"/>'}}str+="</div>";$params=$(str);$form.append($params).attr("action",url).attr("enctype","multipart/form-data").attr("method","post");if(events&&events.submit){$.each(events.submit,function(){submitHandlers.push(this)})}$form.unbind("submit");upID=freeIframesStack.pop();if(!upID){upID="uploader"+String(Math.random()).substr(2,12);$iFrame=$('<iframe name="'+upID+'" class="i-hidden"></iframe>');$("body").append($iFrame)}else{$iFrame=$('iframe[name="'+upID+'"]')}window.setTimeout(function(){doTheJob({$form:$form,$params:$params,$iFrame:$iFrame,id:upID,action:action,enctype:enctype,method:method,target:target,callback:callbackOK||function(){},error:callbackNOK||function(){},handlers:submitHandlers})},200)}})(ya,jQuery); |