var messages={};messages.fields={"id":"id","title":"Название","url":"URL","descr":"Описание","hidden":"Скрыть","showToFriends":"Видна &quot;друзьям&quot;","unSeen":"Не просмотрено","showOnMain":"Выводить на &quot;стартовой&quot;","mark":"Оценка","addDate":"добавлено","lblEdit":"редактировать","lblDelete":"удалить","lblHidden":"скрытая","lblForFriends":"видна друзьям","lblUnSeen":"не просмотрено","lblOnMain":"на стартовой","saved":"сохранено","times":"раз","added":"добавлено","tags":"Тэги","save":"Сохранить","cancel":"Отмена","edit":"редактировать","delete":"удалить","tagsComment":"разделяйте запятыми","release":"обнулить","showTags":"показать тэги"};messages.login={"login":"логин","password":"пароль","rememberMe":"запомнить меня","submit":"войти","forgotPassword":"забыли пароль","formLegend":"Введите свой логин и пароль"};messages.loginErrors={"email should be valid":"укажите валидный email","illegal_login":"неправильный логин","illegal_password":"неправильный пароль"};messages.validationErrors={'unable to extends period for some links':"Невозможно продлить размещение для некоторых закладок",'email should be valid':'Введен некорректный email',"illegal description":"некорректное описание","can't save not unique link":"у Вас уже есть такая закладка","can not send messages to yourself":"Нельзя отправить письмо самому себе","illegal_tags":"Присутствует недопустимое имя тега","illegal acceptor":"Ошибка в написании адресата","illegal title":"неподходящее название","illegal url":"некорректный url","invalid description":"неподходящее описание","too much tags":"слишком много тэгов","illegal tag name":"недопустимое имя тэга","link already exist":"закладка с таким адресом уже существует","empty_tags_string":"задана пустая строка с тегами","tag already exists":"тэг с таким именем уже существует","illegal name":"неподходящее имя","empty tags":"не введено тэгов","empty_name":"неверное или пустое имя","name_taken":"такое имя уже существует",'not enough money to paid link':'у Вас недостаточно денег, чтобы оплатить размещение закладок','Saving hidden bookmarks in any group is not alowed':'Закрытые закладки не могут сохраняться в группах','url of premium link cant be modified':'URL платной закладки не может быть изменен','you have joined this group already':'Вы уже вступили в эту группу','the group does not exist':'Этой группы не существует','you can delete links only from your own groups':'Вы можете удалять закладки только из собственной группы','illegal tags count':'Слишком много тегов'};messages.forbiddenTags=["p","без категории"];messages.addCommentForm={"title":"Заголовок","body":"Сообщение","details":"Подробнее","upload":"Загрузить","uploadComment":"С помощью этого поля возможно загрузить картинку: gif, jpeg (до 300 Кб)","mailNotification":"получать по e-mail уведомления о новых комментариях в этой ветке","send":"отправить"};messages.addCommentFormErrors={'email should be valid':'Введен некорректный email',"empty description":"описание не может быть пустым","empty title":"название не может быть пустым","illegal title":"некорректное название","illegal description":"некорректное описание"};messages.toggleSidePanel={"close":"скрыть правую панель","open":"показать правую панель"};messages.spam={"spam_warning_send":"Ваше сообщение отправлено! Спасибо!","illegal description":"Введите текст"};messages.informerErrors={"illegal count of links":"Неверное количество ссылок","illegal tag name":"Укажите имя тега","illegal user name":"Некорректный логин пользователя","user is not register":"Пользователь с таким логином не зарегистрирован на Memori.ru"};var endings={};endings.tags=['тэг','тэга','тэгов'];endings.letters=['сообщение','сообщения','сообщений'];if(Memori==undefined)var Memori={}
Memori.ItemDiv=function(div){var _self=this;var _div=div;var _selectionController;var _editController;var _copyController;var _removeController;var _sendToFriendSingleController;var _isSelected=false;var _container;this.setContainer=function(container){_container=container;}
this.setSelectionController=function(selection){_selectionController=selection;_selectionController.setItemDiv(_self);}
this.setEditController=function(controller){_editController=controller;_editController.setItemDiv(_self);}
this.setCopyController=function(controller){_copyController=controller;_copyController.setItemDiv(_self);}
this.setRemoveController=function(controller){_removeController=controller;_removeController.setItemDiv(_self);}
this.setSendToFriendSingleController=function(controller){_sendToFriendSingleController=controller;_sendToFriendSingleController.setItemDiv(_self);}
this.disableControls=function(){_selectionController.disable();}
this.enableControls=function(){_selectionController.enable();}
this.select=function(){_isSelected=true;_container.notifySelection();_selectionController.select();}
this.deselect=function(){_isSelected=false;_container.notifySelection();_selectionController.deselect();}
this.remove=function(){_container.removeItemDiv(_self);_container.notifySelection();_div.remove();}
this.isSelected=function(){return _isSelected;}
this.renderViewMode=function(viemSample){_selectionController.renderViewMode(viemSample);}
this.renderEditMode=function(){_editController.renderEditMode();}
this.renderCopyMode=function(){_copyController.renderCopyMode();}
this.renderRemoveFromGroupMode=function(){_removeController.renderRemoveFromGroupMode();}
this.renderInit=function(){_sendToFriendSingleController.openSendDialog();}
this.getId=function(){return _selectionController.getId();}
this.getData=function(){return _selectionController.getData();}
this.setData=function(data){_selectionController.setData(data);}
this.getDiv=function(){return _div;}}
Memori.SelectionBookmark=function(div){var _self=this;var _div=div;var _bookmark;var _itemDiv;var _deleteController;var _hiddenController;var _showToFriendsController;var _unSeenController;var _showOnMainController;var _helper=new Memori.Helper();this.setItemDiv=function(itemDiv){_itemDiv=itemDiv;_self.enable();}
var _delete=function(){$.post("/linkdeleteajax/","id="+_bookmark.id,_deleteCallback,"json");}
var _deleteCallback=function(response){if(response.success){$('#showmy-'+_bookmark.id).remove();_itemDiv.remove();}}
var _showToFriendsCallback=function(response){if(response.success){_div.find("span.showToFriends").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();_bookmark.showToFriends=0;}}
var _unSeenCallback=function(response){if(response.success){_div.find("span.unSeen").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();_bookmark.unSeen=0;}}
var _showOnMainCallback=function(response){if(response.success){_div.find("span.showOnMain").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();_bookmark.showOnMain=0;}}
var _hideCallback=function(response){if(response.success){_div.find("span.closed").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();_bookmark.hidden=0;}}
var _changeAtributes=function(atrType){switch(atrType){case'showToFriends':$.post("/linksgroupajax/","command=removeshowtofriends&ids="+_bookmark.id,_showToFriendsCallback,"json");break;case'unSeen':$.post("/linksgroupajax/","command=seen&ids="+_bookmark.id,_unSeenCallback,"json");break;case'showOnMain':$.post("/linksgroupajax/","command=removefrommain&ids="+_bookmark.id,_showOnMainCallback,"json");break;case'hide':$.post("/linksgroupajax/","command=open&ids="+_bookmark.id,_hideCallback,"json");break;}}
this.select=function(){if(_div.find("span > input[type=checkbox]").length>0){_div.addClass("backgroundYellow");_div.find("span > input[type=checkbox]").attr("checked",true);$("#bookmarkControlsTop").removeClass('hide');}}
this.deselect=function(){if(_div.find("span > input[type=checkbox]").length>0){_div.removeClass("backgroundYellow");_div.find("span > input[type=checkbox]").attr("checked",false);}}
this.disable=function(){_div.find("span > input[type=checkbox]").attr("disabled",true);_div.find("a.control").addClass("disabledControl");_div.find("a[@name='edit[]']").unbind("click",_itemDiv.renderEditMode);_div.find("a[@name='copy[]']").unbind("click",_itemDiv.renderCopyMode);_div.find("a[@name='removeFromGroup[]']").unbind("click",_itemDiv.renderRemoveFromGroupMode);_div.find("a[@name='send[]']").unbind("click",_itemDiv.renderInit);_div.find("a[@name='showmy[]']").unbind("click",_showMy);_deleteController.disable();_hiddenController.disable();_showToFriendsController.disable();_unSeenController.disable();_showOnMainController.disable();}
this.enable=function(){_div.find("span > input[type=checkbox]").attr("disabled",false);_div.find("span > input[type=checkbox]").bind("click",_selectEvent);_div.find("a.control").removeClass("disabledControl");_div.find("a[@name='edit[]']").bind("click",_itemDiv.renderEditMode);_div.find("a[@name='copy[]']").bind("click",_itemDiv.renderCopyMode);_div.find("a[@name='removeFromGroup[]']").bind("click",_itemDiv.renderRemoveFromGroupMode);_div.find("a[@name='send[]']").bind("click",_itemDiv.renderInit);_div.find("a[@name='showPropeties[]']").bind("click",_showPropeties);_div.find("a[@name='showmy[]']").bind("click",_showMy);_div.find("a[@name='closePropeties[]']").bind("click",_closePropeties);_div.find("a[@name='closemy[]']").bind("click",_closeMy);_deleteController.enable();_hiddenController.enable();_showToFriendsController.enable();_unSeenController.enable();_showOnMainController.enable();}
this.getId=function(){return _bookmark.id;}
this.getData=function(){if(!_bookmark.title)_fullInitBookmark();return _bookmark;}
this.setData=function(bookmark){_bookmark=bookmark;}
var _baseInitBookmark=function(){_bookmark={};if(_div.find("input[type=hidden]").length){_bookmark.id=_div.find("input[type=hidden]").attr("id").replace("hid-","");}}
var _fullInitBookmark=function(){_bookmark={};_bookmark.id=_div.find("input[type=hidden]").attr("id").replace("hid-","");_bookmark.userId=0;_bookmark.title=_div.find("a[@name='title[]']").text();var aLink=_div.find('a.big');_bookmark.fullUrl=aLink.attr('href')?aLink.attr('href'):'';_bookmark.url=aLink.attr('url');_bookmark.description=_div.find("p.txt").length?_div.find("p.txt").text():"";_bookmark.hidden=_div.find("span.closed").length?1:0;_bookmark.showToFriends=_div.find("span.showToFriends").length?1:0;_bookmark.unSeen=_div.find("span.unSeen").length?1:0;_bookmark.showOnMain=_div.find("span.showOnMain").length?1:0;var addDates=_div.find("span.addDate").text().match(/([0-9]{4}\-[0-9]{2}\-[0-9]{2})/);_bookmark.addDate=(addDates)?addDates[1]:null;_bookmark.mark=_div.find("img[src$='redstar.gif']").length;_bookmark.savedCount=_div.find("span[@name='saveCount']").length?_div.find("span[@name='saveCount']").text().match(/([0-9]+)/)[1]:1;_bookmark.image=_div.find("img.linkimage").attr("src");_bookmark.isMySame=_div.find("input[type=checkbox]").length?0:1;_bookmark.hdescr=_div.find("p.hdescr").length?_div.find("p.hdescr").text():"";_bookmark.saveCountClass=_div.find("span[@name='saveCount']").attr('class')?_div.find("span[@name='saveCount']").attr('class'):'';_bookmark.owner='<a href="'+_div.find("a[@name='owner[]']").attr('href')+'" name="owner[]">'+_div.find("a[@name='owner[]']").text()+'</a>';_bookmark.tags=[];_div.find("a.bundle").each(function(idx,elem){elem=$(elem);_bookmark.tags.push({'name':elem.text(),'id':elem.attr("id").replace('tag-',''),'userName':elem.attr("href").match(/\/([^\/]+)\//)[1]});});}
this.renderViewMode=function(viemSample){_renderViewMode(viemSample);_setDeleteController();_setHiddenController();_setShowToFriendsController();_setUnSeenController();_setShowOnMainController();}
var _showPropeties=function(event){$("#graphLink-"+_bookmark.id).addClass('hide');$("#linkPropeties-"+_bookmark.id).removeClass('hide');}
var _closePropeties=function(event){$("#graphLink-"+_bookmark.id).removeClass('hide');$("#linkPropeties-"+_bookmark.id).addClass('hide');}
var _showMy=function(event){showElement=$("#hiddenMy-"+_bookmark.id);showElementClass=showElement.attr("class")?showElement.attr("class"):'';if(showElementClass.indexOf('hide')>-1){showElement.removeClass("hide");$(event.target).html("скрыть мой вариант");}else{showElement.addClass("hide");$(event.target).html("показать мой вариант");}}
var _closeMy=function(event){_div.addClass("hide");$("#showmy-"+_bookmark.id).html("показать мой вариант");}
var _selectEvent=function(event){if($(event.target).attr("checked")){_itemDiv.select();}else{_itemDiv.deselect();}}
var _renderViewMode=function(viemSample){_bookmark.fullUrl=_bookmark.fullUrl?_bookmark.fullUrl:'';_div.html($("#"+viemSample).html());_div.find("input[type=checkbox]").attr("id","cbx-"+_bookmark.id);_div.find("input[type=hidden]").attr("id","hid-"+_bookmark.id);_div.find("#linkPropeties-sample").attr("id","linkPropeties-"+_bookmark.id);_div.find("#graphLink-sample").attr("id","graphLink-"+_bookmark.id);_div.find("a.big").text(_bookmark.title);_div.find("a.big").attr("href",_bookmark.fullUrl);_div.find("a.grey2").text(_bookmark.url);_div.find("a.grey2").attr("href",_bookmark.url);_div.find("a[@name='savedCopy[]']").text('сохранённая копия');_div.find("a[@name='savedCopy[]']").attr('href','http://web.archive.org/web/*/'+_bookmark.url);if(_bookmark.isMySame){_div.find("input[type=checkbox]").remove();}
if(_bookmark.description){_div.find("p.txt").text(_bookmark.description);}else{_div.find("p.txt").remove();}
if(_bookmark.hdescr){_div.find("p.hdescr").text(_bookmark.hdescr);}else{_div.find("p.hdescr").remove();}
if(_bookmark.mark){for(var i=5;i>0;i--){if(i<=_bookmark.mark){_div.find("p:last > span.vline:first").after('<img width="10" height="10" alt="" src="/images/redstar.gif"/>');}else{_div.find("p:last > span.vline:first").after('<img width="10" height="10" alt="" src="/images/greystar.gif"/>');}}}
_div.find("img.linkimage").attr("src",_bookmark.image);$.each(_bookmark.tags,function(idx,tag){_div.find("p:last").prepend('<a class="bundle" href="/'+tag.userName+'/'+encodeURIComponent(tag.name)+'/" id="tag-'+tag.id+'"><span>'+_helper.htmlspecialchars(tag.name)+'</span></a>')});_div.find("span.addDate").html(_div.find("span.addDate").text()+_bookmark.owner+' '+_bookmark.addDate);if(_bookmark.savedCount>1){_div.find("span.save_2").html(_div.find("span.save_2").text()+"<a href='/linksavehistory/"+_bookmark.id+"'>"+_bookmark.savedCount+" "+_getSemanticCount(_bookmark.savedCount)+"</a>");}else{_div.find("span.save_2").remove();}
_div.find('span.save_2').attr('class',_bookmark.saveCountClass);if(!_bookmark.hidden)_div.find("span.closed").remove();if(!_bookmark.showToFriends)_div.find("span.showToFriends").remove();if(!_bookmark.unSeen)_div.find("span.unSeen").remove();if(!_bookmark.showOnMain)_div.find("span.showOnMain").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();}
var _getSemanticCount=function(count){if(count==0||(count>=11&&count<=21))return'раз';var last=count[count.length-1];if(last>=2&&last<=4){return'раза';}else{return'раз';}}
var _setDeleteController=function(){_deleteController=new Memori.DeleteItemController(_div.find("p.link > span.hide"),_div.find("a[@name='delete[]']"),_delete);}
var _setHiddenController=function(){_hiddenController=new Memori.DeleteItemController(_div.find("span[@name='hideHide[]']"),_div.find("span.closed"),_changeAtributes,'hide');}
var _setShowToFriendsController=function(){_showToFriendsController=new Memori.DeleteItemController(_div.find("span[@name='showToFriendsHide[]']"),_div.find("span.showToFriends"),_changeAtributes,'showToFriends');}
var _setUnSeenController=function(){_unSeenController=new Memori.DeleteItemController(_div.find("span[@name='unSeenHide[]']"),_div.find("span.unSeen"),_changeAtributes,'unSeen');}
var _setShowOnMainController=function(){_showOnMainController=new Memori.DeleteItemController(_div.find("span[@name='showOnMainHide[]']"),_div.find("span.showOnMain"),_changeAtributes,'showOnMain');}
_baseInitBookmark();_setDeleteController();_setHiddenController();_setShowToFriendsController();_setUnSeenController();_setShowOnMainController();}
Memori.EditControllerStub=function(){this.setItemDiv=function(){}
this.renderEditMode=function(){}}
Memori.EditBookmarkController=function(container,validator){var _self=this;var _container=container;var _bookmarkDiv;var _div;var _validator=validator;this.setItemDiv=function(bookmarkDiv){_bookmarkDiv=bookmarkDiv;_div=_bookmarkDiv.getDiv();}
this.renderEditMode=function(){_editEvent();}
var _editEvent=function(){_container.deactivateSelections();$("#sampleSubmit").attr("value","Сохранить");new Memori.EditBookmarkAction(_div,_updateBookmark,_resetEvent,_validator,_bookmarkDiv.getData(),'/linkeditajax/');}
var _resetEvent=function(){_bookmarkDiv.renderViewMode("bookmarkViewSample");_container.activateSelections();}
var _updateBookmark=function(data){_updateBookmarksCount(data.link);_bookmarkDiv.setData(data.link);_resetEvent();if(_isPersonalLinks()&&data.link.groupsCount>0){_bookmarkDiv.remove();}}
var _isPersonalLinks=function(){var el=$('input[@name="personalLinks"]');return el.val()==1;}
var _updateBookmarksCount=function(updatedBookmark){if(_bookmarkDiv.getData().hidden==updatedBookmark.hidden)return;if(updatedBookmark.hidden){_container.increaseHiddenBookmarkCount();}else{_container.decreaseHiddenBookmarkCount();}}}
Memori.CopyBookmarkController=function(container,validator){var _self=this;var _container=container;var _bookmarkDiv;var _div;var _validator=validator;this.setItemDiv=function(bookmarkDiv){_bookmarkDiv=bookmarkDiv;_div=_bookmarkDiv.getDiv();}
this.renderCopyMode=function(){_copyEvent();}
var _copyEvent=function(){$("#sampleSubmit").attr("value","Копировать");bookMarkParams=_bookmarkDiv.getData();bookMarkParams.unSeen=$("input[@name='paramUnSeen']").attr('value');bookMarkParams.showToFriends=$("input[@name='paramShowToFriends']").attr('value');bookMarkParams.hidden=$("input[@name='paramHidden']").attr('value');new Memori.EditBookmarkAction(_div,_updateBookmark,_resetEvent,_validator,bookMarkParams,'/linkcopyajax/');_container.deactivateSelections();}
var _resetEvent=function(){_bookmarkDiv.renderViewMode("bookmarkCopySample");_container.activateSelections();}
var _updateBookmark=function(data){_updateBookmarksCount(data.link);_bookmarkDiv.setData(data.link);_bookmarkDiv.renderViewMode("bookmarkViewSample");_container.activateSelections();}
var _updateBookmarkAfterCopy=function(data){_updateBookmarksCount(data.link);_resetEvent();}
var _updateBookmarksCount=function(updatedBookmark){if(_bookmarkDiv.getData().hidden==updatedBookmark.hidden)return;if(updatedBookmark.hidden){_container.increaseHiddenBookmarkCount();}else{_container.decreaseHiddenBookmarkCount();}}}
Memori.RemoveFromGroupBookmarkController=function(container,validator){var _self=this;var _container=container;var _bookmarkDiv;var _div;var _validator=validator;this.setItemDiv=function(bookmarkDiv){_bookmarkDiv=bookmarkDiv;_div=_bookmarkDiv.getDiv();}
this.renderRemoveFromGroupMode=function(){_removeFromGroupEvent();}
var _removeFromGroupEvent=function(){var data={'command':'removeFromGroup','data':$('#moderateGroupId').val(),'ids':_bookmarkDiv.getId()}
$.post('/linksgroupajax/',data,_callback,'json');}
var _callback=function(data){if(data.success==1){_bookmarkDiv.remove();}else{alert('Вы не можете удалить эту закладку из группы!');}}}
Memori.EditBookmarkAction=function(div,submitCallback,resetCallback,validator,bookmark,requestUrl){var _div=div;var _submitCallback=submitCallback;var _resetCallback=resetCallback;var _validator=validator;var _bookmark=bookmark;var _errorTranslator=new Memori.ErrorTranslator(messages.validationErrors);var _titles=new Array('Ужасно','Плохо','Нормально','Хорошо','Отлично');var _submitEvent=function(){_div.find("p.error").remove();var nb=_fillBookmark();var errors=[];_validator.validate(errors,nb);if(errors.length>0){_drawErrors(errors);return;}
nb.tags=nb.tags.join(",");_disableFormControls();$.post(requestUrl,nb,_callback,"json");}
var _callback=function(response){if(response.success){response.link.isMySame=_bookmark.isMySame;response.link.saveCountClass=_bookmark.saveCountClass;response.link.fullUrl=_bookmark.fullUrl;response.link.owner=_bookmark.owner;_submitCallback(response);return;}
_enableFormControls();_drawErrors(response.formErrors);}
var _drawErrors=function(errors){$.each(Memori.uniqueArray(errors),function(idx,error){_div.find("table").before('<p class="error">'+_errorTranslator.translate(error)+'</p>');})}
var _disableFormControls=function(){_div.find("input[type=submit]").attr("disabled",true);_div.find("input[type=reset]").attr("disabled",true);}
var _enableFormControls=function(){_div.find("input[type=submit]").attr("disabled",false);_div.find("input[type=reset]").attr("disabled",false);}
var _bindFormEvents=function(){_div.find("input[type=reset]").bind("click",_resetCallback);_div.find("input[type=submit]").bind("click",_submitEvent);_bindMarkMouseOverOutEvents();_div.find("img[src$='bigstar_empty.gif']").bind("click",_pick);_div.find("img[src$='bigstar_picked.gif']").bind("click",_pick);_div.find("td.mark a").bind("click",_release);_div.find("a[@name=showHdescr]").bind("click",_showHideHdesc);_div.find("input[name=hidden]").bind('change',_showHideShowToFriends);new Memori.SuggestedTags(_div.find("textarea[@name=tags]"),_div.find("div.alignr > a"),_div.find("div.popblock"),_bookmark,"bookmark");}
var _bindMarkMouseOverOutEvents=function(){_div.find("img[src$='bigstar_empty.gif']").bind("mouseover",_mouseOver);_div.find("img[src$='bigstar_picked.gif']").bind("mouseover",_mouseOver);_div.find("img[src$='bigstar_empty.gif']").bind("mouseout",_mouseOutEmpty);_div.find("img[src$='bigstar_picked.gif']").bind("mouseout",_mouseOutPicked);}
var _unbindMarkMouseOverOutEvents=function(){_div.find("img[src$='bigstar_empty.gif']").unbind("mouseover",_mouseOver);_div.find("img[src$='bigstar_picked.gif']").unbind("mouseover",_mouseOver);_div.find("img[src$='bigstar_empty.gif']").unbind("mouseout",_mouseOutEmpty);_div.find("img[src$='bigstar_picked.gif']").unbind("mouseout",_mouseOutPicked);}
var _mouseOver=function(event){event.target.src="/images/bigstar_hl.gif";$(event.target).prevAll('[@src="/images/bigstar_empty.gif"]').attr("src","/images/bigstar_hl.gif");}
var _mouseOutEmpty=function(event){event.target.src="/images/bigstar_empty.gif";_div.find('img[@src="/images/bigstar_hl.gif"]').attr("src","/images/bigstar_empty.gif");}
var _mouseOutPicked=function(event){event.target.src="/images/bigstar_picked.gif";}
var _release=function(){_div.find("img").remove();for(var i=0;i<5;i++){img=$('<img title="'+_titles[i]+'">').attr("src","/images/bigstar_empty.gif").bind("click",_pick);_div.find("td.mark br").before(img);}
_bindMarkMouseOverOutEvents();}
var _pick=function(event){$(event.target).attr("src","/images/bigstar_picked.gif");$(event.target).siblings().attr("src","/images/bigstar_empty.gif").unbind("mouseout",_mouseOutPicked).unbind("mouseout",_mouseOutPicked);$(event.target).prevAll().attr("src","/images/bigstar_picked.gif");_unbindMarkMouseOverOutEvents();_bindMarkMouseOverOutEvents();}
var _showHideHdesc=function(){if(_div.find('tr[@name=hideDescr]').hasClass('hide')){_div.find("a[@name=showHdescr]").text('удалить скрытое описание');}else{_div.find("a[@name=showHdescr]").text('добавить скрытое описание');_div.find("textarea[@name=hdescr]").attr('value','');}
_div.find('tr[@name=hideDescr]').toggleClass('hide');}
var _showHideShowToFriends=function(event){if($(event.target).attr('checked')){_div.find('tr[@name=showToFriendsTr]').removeClass('hide');}else{_div.find('tr[@name=showToFriendsTr]').addClass('hide');_div.find('input[@name="showToFriends"]').attr('checked','');}}
var _fillBookmark=function(){var nb={};nb.id=_bookmark.id;nb.userId=_bookmark.userId;nb.url=_div.find("input[name=url]").attr("value");nb.title=_div.find("input[name=title]").attr("value");nb.description=_div.find("textarea[name=description]").attr("value")?_div.find("textarea[name=description]").attr("value"):"";nb.hidden=_div.find("input[name=hidden]").attr("checked")?1:0;nb.hdescr=_div.find("textarea[name=hdescr]").attr("value")?_div.find("textarea[name=hdescr]").attr("value"):"";nb.showToFriends=_div.find("input[name=showToFriends]").attr("checked")?1:0;nb.unSeen=_div.find("input[name=unSeen]").attr("checked")?1:0;nb.showOnMain=_div.find("input[name=showOnMain]").attr("checked")?1:0;nb.mark=_div.find("img[src='/images/bigstar_picked.gif']").length;if(_div.find("textarea[name=tags]").attr("value")&&_div.find("textarea[name=tags]").attr("value").length){nb.tags=_div.find("textarea[name=tags]").attr("value").split(",");}else{nb.tags=[];}
groups=[];$('#linkEditGroupSelect>option:selected').each(function(){groups.push(this.value);});nb.groups=groups.join(',');return nb;}
var _initEditTable=function(){_div.find("input[name=url]").attr("value",_bookmark.url);_div.find("input[name=title]").attr("value",_bookmark.title);_div.find("textarea[name=description]").attr("value",_bookmark.description);_div.find("textarea[name=hdescr]").attr("value",_bookmark.hdescr);_div.find("input[name=hidden]").attr("checked",_bookmark.hidden);_div.find("input[name=showToFriends]").attr("checked",_bookmark.showToFriends);_div.find("input[name=unSeen]").attr("checked",_bookmark.unSeen);_div.find("input[name=showOnMain]").attr("checked",_bookmark.showOnMain);if(!_bookmark.hdescr){_div.find('tr[@name=hideDescr]').addClass('hide');_div.find("a[@name=showHdescr]").text('добавить скрытое описание');}else{_div.find('tr[@name=hideDescr]').removeClass('hide');_div.find("a[@name=showHdescr]").text('удалить скрытое описание');}
if(_bookmark.hidden||_bookmark.showToFriends){_div.find('tr[@name=showToFriendsTr]').removeClass('hide');}else{_div.find('tr[@name=showToFriendsTr]').addClass('hide');}
var tags="";$.each(_bookmark.tags,function(idx,tag){tags+=tag.name+", ";})
tags=tags.substring(0,tags.length-2)
_div.find("textarea[name=tags]").attr("value",tags);for(var i=0;i<5;i++){img=i<_bookmark.mark?$('<img title="'+_titles[i]+'">').attr("src","/images/bigstar_picked.gif"):$('<img title="'+_titles[i]+'">').attr("src","/images/bigstar_empty.gif");_div.find("td.mark br").before(img);}
$.post('/linkgroupinformer/',"lid="+_bookmark.id,_buildGroupsSelelect,"json");}
var _buildGroupsSelelect=function(response){$('#linkEditGroupSelect').empty();for(i in response){value=response[i];var option=$("<option></option>");option.attr("value",value.gid);option.text(value.name);if(value.inGroup==1){option.attr('selected','true');}
$('#linkEditGroupSelect').append(option);};}
_div.html($("#editTableSample").html());_initEditTable();_bindFormEvents();_div.find("input[type=checkbox]").attr("disabled",false);}
Memori.Container=function(){var _self=this;var _controls;var _items=[];var _countDiv;this.setControls=function(controls){controls.setContainer(_self);_controls=controls;}
this.setCountDiv=function(div){_countDiv=div;}
this.addItemDiv=function(div){div.setContainer(_self);_items.push(div);}
this.removeItemDiv=function(div){_items=$.grep(_items,function(item){return item.getId()!=div.getId();});}
this.selectAll=function(){for(var i=0;i<_items.length;i++){_items[i].select();}}
this.deselectAll=function(){for(var i=0;i<_items.length;i++){_items[i].deselect();}}
this.disableControls=function(){for(var i=0;i<_items.length;i++){_items[i].disableControls();}}
this.deactivateSelections=function(){_self.deselectAll();_self.disableControls();_controls.disableSelectAll();}
this.activateSelections=function(){_self.enableControls();_controls.enableSelectAll();}
this.enableControls=function(){for(var i=0;i<_items.length;i++){_items[i].enableControls();}}
this.notifySelection=function(){var count=0;if(_items.length>0){for(var i=0;i<_items.length;i++){if(_items[i].isSelected())count++;}
if(!count){_controls.disableControls();}else{_controls.enableControls();}
if(count==_items.length){_controls.checkSelectAll();}else if(count>0){_controls.uncheckSelectAll();}}else{_controls.disableControls();}}
this.applyControlCommand=function(command,data){$.each(_items,function(idx,elem){_applyControlCommandSingle(elem,command,data);});}
this.getSelectedIds=function(){var result=[];for(var i=0;i<_items.length;i++){if(_items[i].isSelected()){result.push(_items[i].getId());}}
return result;}
this.getItemsCount=function(){return _items.length;}
this.increaseHiddenBookmarkCount=function(){_countDiv.increaseHiddenBookmarkCount();}
this.decreaseHiddenBookmarkCount=function(){_countDiv.decreaseHiddenBookmarkCount();}
var _applyControlCommandSingle=function(bookmarkDiv,command,data){if(!bookmarkDiv.isSelected())return;if("copy"==command.getType()){var curId=bookmarkDiv.getData().id;var result=command.action(bookmarkDiv.getData(),data[curId]);}else{var result=command.action(bookmarkDiv.getData());}
if(!result)return;if("delete"==command.getType()){bookmarkDiv.remove();}else if("copy"==command.getType()){bookmarkDiv.deselect();bookmarkDiv.renderViewMode("bookmarkViewSample");}else{bookmarkDiv.renderViewMode("bookmarkViewSample");bookmarkDiv.select();}}}
Memori.CountDiv=function(){var _hiddenCountElement=$("div.bookmarksCount > strong:last");var _openCountElement=$("div.bookmarksCount > strong:odd");this.increaseHiddenBookmarkCount=function(){_hiddenCountElement.html(parseInt(_hiddenCountElement.html())+1);_openCountElement.html(parseInt(_openCountElement.html())-1);}
this.decreaseHiddenBookmarkCount=function(){_hiddenCountElement.html(parseInt(_hiddenCountElement.html())-1);_openCountElement.html(parseInt(_openCountElement.html())+1);}}
Memori.CountDivStub=function(){this.increaseHiddenBookmarkCount=function(){};this.decreaseHiddenBookmarkCount=function(){};}
Memori.TagValidator=function(forbiddenTags,errorTranslator){var _forbiddenTags=forbiddenTags;var _errorTranslator=errorTranslator;this.validate=function(errors,tag){if(!tag||""==tag||tag.length>40){errors.push(_errorTranslator.translate("illegal tag name"));return;}
for(var i=0;i<_forbiddenTags.length;i++){if(tag==_forbiddenTags[i]){errors.push(_errorTranslator.translate("illegal tag name"));return;}}}}
Memori.BundleValidator=function(tagValidator,errorTranslator){var _tagValidator=tagValidator;var _errorTranslator=errorTranslator;this.validate=function(errors,bundle){if(!bundle){errors.push(_errorTranslator.translate("empty bundle"));return;}
if(!bundle.name||bundle.name.length>250)errors.push(_errorTranslator.translate("illegal name"));if(!bundle.tags||!bundle.tags.length){errors.push(_errorTranslator.translate("empty tags"));return;}
for(var i=0;i<bundle.tags.length;i++){_tagValidator.validate(errors,bundle.tags[i]);}}}
Memori.BookmarkValidator=function(tagValidator,errorTranslator){var _tagValidator=tagValidator;var _errorTranslator=errorTranslator;this.validate=function(errors,bookmark){if(!bookmark){errors.push(_errorTranslator.translate("empty bookmark"));return;}
if(!bookmark.title||bookmark.title.length>250)errors.push(_errorTranslator.translate("illegal title"));if(!bookmark.url||!bookmark.url.match(/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/))errors.push(_errorTranslator.translate("illegal url"));if(bookmark.descr&&bookmark.descr.length>250)errors.push(_errorTranslator.translate("illegal description"));if(!bookmark.tags){errors.push(_errorTranslator.translate("invalid tags"));return;}
if(bookmark.tags.length>10){errors.push(_errorTranslator.translate("too much tags"));}else{for(var i=0;i<bookmark.tags.length;i++){_tagValidator.validate(errors,bookmark.tags[i]);}}}}
Memori.ControlsStub=function(){this.setContainer=function(container){}
this.enableControls=function(){}
this.disableControls=function(){}
this.enableSelectAll=function(){}
this.disableSelectAll=function(){}
this.registerElementAction=function(elementAction){}}
Memori.Controls=function(div,selectAll,requestUrl){var _container;var _self=this;var _elements=[];var _div=div;var _cbxSelectAll=selectAll;var _requestUrl=requestUrl;var _errorTranslator=new Memori.ErrorTranslator(messages.validationErrors);this.setContainer=function(container){_container=container;}
this.enableControls=function(){for(var i=0;i<_elements.length;i++){_elements[i].enable();}}
this.disableControls=function(){for(var i=0;i<_elements.length;i++){_elements[i].disable();}
_cbxSelectAll.attr("checked",false);}
this.enableSelectAll=function(){_cbxSelectAll.attr("disabled",false);}
this.disableSelectAll=function(){_cbxSelectAll.attr("disabled",true);}
this.checkSelectAll=function(){_cbxSelectAll.attr("checked","checked");}
this.uncheckSelectAll=function(){_cbxSelectAll.attr("checked","");}
this.registerElementAction=function(elementAction){elementAction.getElement().bind("click",function(event){_genericEvent(elementAction);});_elements.push(elementAction);}
this.hideTop=function(){$("#bookmarkControlsTop").addClass('hide');}
this.showTop=function(){$("#bookmarkControlsTop").removeClass('hide');}
var _bindEvents=function(){_cbxSelectAll.bind("click",_selectEvent);$("#operationUnderLinks").bind("click",_showTopEvent);}
var _showTopEvent=function(){var par=$("#bookmarkControlsTop").attr('class');if(par.indexOf('hide')>0){_self.showTop();}else{_self.hideTop();}}
var _selectEvent=function(event){if($(event.target).attr("checked")){_cbxSelectAll.attr("checked","checked");_container.selectAll();_self.showTop();}else{_cbxSelectAll.attr("checked","");_container.deselectAll();}}
var _genericEvent=function(elementAction){if(!elementAction.validate())return;_sendRequest(elementAction);_container.disableControls();_self.disableControls();_self.disableSelectAll();}
var _sendRequest=function(elementAction){var reqParams="ids="+_container.getSelectedIds().join(",")+"&"+elementAction.requestCommand();$.get(_requestUrl,reqParams,function(data){_callback(data,elementAction)},"json");$('div#waitMsg').show();}
var _callback=function(responseData,elementAction){$('div#waitMsg').hide();if(navigator.userAgent.indexOf("MSIE")!=-1){window.location.reload();return true;}
if(responseData.success){var countActiveItems=_container.getSelectedIds().length;elementAction.setResponse(responseData);_container.applyControlCommand(elementAction,responseData.data);if(_requestUrl=='/tagsgroupajax/'&&elementAction.requestCommand()=='command=delete'){var endingEditor=new Memori.StringEnding(endings.tags);var resCount=String(eval($('#tagsCount').text()-countActiveItems));$('#tagsCount').html(resCount+'');$('#tagsCountEnding').html(endingEditor.getEnding(resCount));}
_container.deselectAll();_container.enableControls();_self.disableControls();_self.enableSelectAll();}else{var errorArray=[];$.each(Memori.uniqueArray(responseData.formErrors),function(idx,error){errorArray.push(_errorTranslator.translate(error));});alert(errorArray.join('\n'));_self.enableControls();_container.enableControls();_self.enableSelectAll();}}
_bindEvents();}
Memori.uniqueArray=function(array){var unique=[];var _isNew=function(arr,idx,value){for(var j=0;j<idx;j++){if(arr[j]==value)return false;}
return true;}
if(!array)return[];for(var i=0;i<array.length;i++){if(!_isNew(array,i,array[i]))continue;unique.push(array[i]);}
return unique;}
Memori.isEqual=function(obj1,obj2){if(obj1==obj2)return true;if(typeof obj1!=typeof obj2)return false;if(typeof obj1!="object")return(obj1==obj2);if(obj1.length!=obj2.length)return false;for(var item in obj1){if(!Memori.isEqual(obj1[item],obj2[item]))return false;}
return true;}
Memori.AbstractAction=function(){var _response;this.validate=function(){return true;}
this.enable=function(){this.getElement().attr("disabled",false);}
this.disable=function(){this.getElement().attr("disabled",true);}
this.getResponse=function(){return _response;}
this.setResponse=function(response){_response=response;}
this.getType=function(){return"edit";}}
Memori.HideAction=function(){this.requestCommand=function(){return"command=hide";}
this.getElement=function(){return $("input[@name='btnHide[]']");}
this.action=function(bookmark){if(bookmark.hidden)return false;bookmark.hidden=1;return true;}}
Memori.HideAction.prototype=new Memori.AbstractAction();Memori.DeleteAction=function(){this.requestCommand=function(){return"command=delete";}
this.getElement=function(){return $("input[@name='btnDelete[]']");}
this.action=function(bookmark){return true;}
this.getType=function(){return"delete";}}
Memori.DeleteAction.prototype=new Memori.AbstractAction();Memori.OnMainAction=function(){this.requestCommand=function(){return"command=onmain";}
this.getElement=function(){return $("input[@name='btnOnMain[]']");}
this.action=function(bookmark){if(bookmark.showOnMain)return false;bookmark.showOnMain=1;return true;}}
Memori.OnMainAction.prototype=new Memori.AbstractAction();Memori.UnSeenAction=function(){this.requestCommand=function(){return"command=unseen";}
this.getElement=function(){return $("input[@name='btnUnSeen[]']");}
this.action=function(bookmark){if(bookmark.unSeen)return false;bookmark.unSeen=1;return true;}}
Memori.UnSeenAction.prototype=new Memori.AbstractAction();Memori.OpenAction=function(){this.requestCommand=function(){return"command=open";}
this.getElement=function(){return $("input[@name='btnOpen[]']");}
this.action=function(bookmark){if(!bookmark.hidden)return false;bookmark.hidden=0;return true;}}
Memori.OpenAction.prototype=new Memori.AbstractAction();Memori.CopyAction=function(){this.requestCommand=function(){return"command=copy";}
this.getElement=function(){return $("input[@name='btnCopy[]']");}
this.action=function(bookmark,data){if(!bookmark.id||!data)return false;bookmark.id=data;return true;}
this.getType=function(){return"copy";}};Memori.CopyAction.prototype=new Memori.AbstractAction();Memori.ModerateApproveAction=function(){this.requestCommand=function(){return"command=moderateApprove&data="+$('#moderateGroupId').val();}
this.getElement=function(){return $("input[@name='btnModerateApprove[]']");}
this.action=function(bookmark,data){location.reload();return false;}
this.getType=function(){return"moderateApprove";}};Memori.ModerateApproveAction.prototype=new Memori.AbstractAction();Memori.ModerateDeclineAction=function(){this.requestCommand=function(){return"command=moderateDecline&data="+$('#moderateGroupId').val();}
this.getElement=function(){return $("input[@name='btnModerateDecline[]']");}
this.action=function(bookmark,data){location.reload();return false;}
this.getType=function(){return"moderateDecline";}};Memori.ModerateDeclineAction.prototype=new Memori.AbstractAction();Memori.RemoveFromGroupAction=function(){this.requestCommand=function(){return"command=removeFromGroup&data="+$('#moderateGroupId').val();}
this.getElement=function(){return $("input[@name='btnRemoveFromGroup[]']");}
this.action=function(bookmark,data){location.reload();return false;}
this.getType=function(){return"removeFromGroup";}};Memori.RemoveFromGroupAction.prototype=new Memori.AbstractAction();Memori.AddTagAction=function(tagValidator,msg,divAddTag,btnAddTag,btnOpenDiv){var _self=this;var _btnOpenDiv=btnOpenDiv;var _divAddTag=divAddTag;var _btnAddTag=btnAddTag;var _validator=tagValidator;var _validationMessages=msg;var _currentValue;_btnOpenDiv.bind("click",function(){_divAddTag.toggleClass("hide");});_divAddTag.find('form').bind('submit',function(){return false;});this.requestCommand=function(){return"command=addtag&data="+_divAddTag.find("input:text").val();}
this.getElement=function(){return _btnAddTag;}
this.action=function(bookmark){var tags=_prepareTags();for(var j=0;j<tags.length;j++){var tag=tags[j];if(_isNewTag(bookmark.tags,tag))bookmark.tags.push(tag);}
return true;}
this.validate=function(){var errors=[];_currentValue=_divAddTag.find("input:text").val();try{var tags=_currentValue.split(",");for(var i=0;i<tags.length;i++){_validator.validate(errors,tags[i]);}}catch(e){errors.push("Задана пустая строка с тэгами");}
if(errors.length){alert(errors[0]);return false;}
return true;}
this.enable=function(){_btnOpenDiv.attr("disabled",false);_self.getElement().attr("disabled",false);}
this.disable=function(){_btnOpenDiv.attr("disabled",true);this.getElement().attr("disabled",true);if(!_divAddTag.hasClass("hidden"))_divAddTag.addClass("hidden");_divAddTag.find("input:text").attr("value","");}
var _prepareTags=function(){var tags=_self.getResponse().data;for(var idx in tags){tags.push(tags[idx]);}
return tags;}
var _isNewTag=function(currentTags,tag){for(var i=0;i<currentTags.length;i++){if(Memori.isEqual(tag.name,currentTags[i].name))return false;}
return true;}}
Memori.AddTagAction.prototype=new Memori.AbstractAction();Memori.SendToFriendAction=function(sendController,commandButton,sendButton){var _sendController=sendController;var _commandButton=commandButton;var _sendButton=sendButton;_commandButton.bind('click',_commandButtonClick);this.requestCommand=function(){return"command=sendToFriend&"+_sendController.getData();}
this.enable=function(){_commandButton.attr('disabled',false);}
this.disable=function(){_commandButton.attr('disabled',true);}
this.getElement=function(){return _sendButton;}
this._showDiv=function(){_divSend.show();}
this.setResponse=function(data){_sendController.hide();return true;}
this.action=function(data){return true;}
function _commandButtonClick(){if(_sendController.isClosed()){_sendController.show();}else{_sendController.hide();}}}
Memori.SendToFriendAction.prototype=new Memori.AbstractAction();Memori.ToPaidAction=function(){this.requestCommand=function(){return"command=toPaid";}
this.getElement=function(){return $("input[@name='btnToPaid[]']");}
this.action=function(bookmark){document.location.href='/paid/';}
this.getType=function(){return"toPaid";}}
Memori.ToPaidAction.prototype=new Memori.AbstractAction();Memori.renderTemplate=function(tpl,data){return new EJS({url:tpl}).render(data);}
Memori.sortAndView=function(){var _urlReplaceArg=function(url,arg,value){url=url.replace(/\?/,'?&');var m=url.match(eval('/(&'+arg.replace(/([\.\\\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,'\\$1')+'=)[^&]*/'));if(m!==null)
{var v=(value===null)?'':m[1]+escape(value);url=url.replace(m[0],v);}
else if(value!==null)
{var div=(url.indexOf('?')!=-1)?'&':'?';url+=div+arg+'='+escape(value);}
return url.replace(/\?&/,'?').replace(/\?$/,'');}
$.cookie("sort",$("#sort").attr("value"),{expires:30});$.cookie("view",$("#viewFormat").attr("value"),{expires:30});var url=document.location.href+"";url=_urlReplaceArg(url,'sort',$('#sort').val());url=_urlReplaceArg(url,'view',$('#viewFormat').val());window.location.href=url;}
Memori.SelectionTagController=function(div){var _self=this;var _div=div;var _tag;var _itemDiv;var _deleteController;var _endingEditor=new Memori.StringEnding(endings.tags);this.setItemDiv=function(itemDiv){_itemDiv=itemDiv;_self.enable();}
this.select=function(){_div.addClass("backgroundYellow");_div.find("input[type=checkbox]").attr("checked",true);}
this.deselect=function(){_div.removeClass("backgroundYellow");_div.find("input[type=checkbox]").attr("checked",false);}
this.disable=function(){_div.find("input[type=checkbox]").attr("disabled",true);_div.find("a.control").addClass("disabledControl");_div.find("a.control:first").unbind("click",_itemDiv.renderEditMode);_deleteController.disable();}
this.enable=function(){_div.find("input[type=checkbox]").attr("disabled",false);_div.find("input[type=checkbox]").bind("click",_selectEvent);_div.find("a.control").removeClass("disabledControl");_div.find("a.control:first").bind("click",_itemDiv.renderEditMode);_deleteController.enable();}
this.getId=function(){return _tag.id;}
this.getData=function(){return _tag;}
this.setData=function(tag){_tag=tag;}
this.renderViewMode=function(){_div.html($("#tagViewSample").html());_div.find("input[type=hidden]").attr("id","hid-"+"_tag.id");_div.find("a.big").text(_tag.name);_div.find("a.big").attr("href","/"+_tag.userName+"/"+_tag.name+"/");_div.find("span.big").text("("+_tag.linksCount+")");_setDeleteController();}
var _delete=function(){$.post("/tagdeleteajax/","id="+_tag.id,_deleteCallback,"json");}
var _deleteCallback=function(response){if(response.success){_itemDiv.remove();var resCount=String(eval($('#tagsCount').text()-1));$('#tagsCount').html(resCount+'');$('#tagsCountEnding').html(_endingEditor.getEnding(resCount));}}
var _fullInitBookmark=function(){var regexpResult=/\/(.+)\/(.+)\//.exec(_div.find("a.big").attr("href"));_tag={};_tag.id=_div.find('a.big').attr('id').replace('tag-','');_tag.userName=regexpResult[1];_tag.name=_div.find("a.big").text();_tag.linksCount=_div.find("span.big").text().replace("(","").replace(")","");}
var _selectEvent=function(event){if($(event.target).attr("checked")){_itemDiv.select();}else{_itemDiv.deselect();}}
var _setDeleteController=function(){_deleteController=new Memori.DeleteItemController(_div.find("span.nogap > span:last"),_div.find("a.control:last"),_delete);}
_fullInitBookmark();_setDeleteController();}
Memori.StringEnding=function(endingVariants){var _endingVariants=endingVariants;this.getEnding=function(number){if(number.match(/[1,3-9]?1$/)){return _endingVariants[0];}else if(eval(number)<12&&eval(number)>13&&number.match(/[2-4]$/)){return _endingVariants[1];}else{return _endingVariants[2];}}}
Memori.EditTagController=function(container,validator,requestUrl){var _self=this;var _container=container;var _itemDiv;var _div;var _validator=validator;var _requestUrl=requestUrl;var _errorTranslator=new Memori.ErrorTranslator(messages.validationErrors);this.setItemDiv=function(itemDiv){_itemDiv=itemDiv;_div=_itemDiv.getDiv();}
this.renderEditMode=function(){_renderEditMode();_bindFormEvents();_div.find("input[type=text]").focus();_container.deactivateSelections();}
var _renderEditMode=function(){_div.html($("#tagEditSample").html());_div.find("input[name=name]").attr("value",_itemDiv.getData().name);}
var _resetEvent=function(){_itemDiv.renderViewMode();_container.activateSelections();}
var _updateTag=function(data){_itemDiv.setData(data.tag);_resetEvent();}
var _disableFormControls=function(){_div.find("input[type=submit]").attr("disabled",true);_div.find("input[type=reset]").attr("disabled",true);}
var _enableFormControls=function(){_div.find("input[type=submit]").attr("disabled",false);_div.find("input[type=reset]").attr("disabled",false);}
var _drawErrors=function(errors){$.each(Memori.uniqueArray(errors),function(idx,error){_div.find("input[name=name]").before('<p class="error">'+_errorTranslator.translate(error)+'</p>');})}
var _bindFormEvents=function(){_div.children("input[type=reset]").bind("click",_resetEvent);_div.children("input[type=submit]").bind("click",_submitEvent);}
var _submitEvent=function(){_div.find("p.error").remove();var nt=_fillTag();var errors=[];_validator.validate(errors,nt.name);if(errors.length>0){_drawErrors(errors);return;}
_disableFormControls();$.post(_requestUrl,nt,_callback,"json");}
var _fillTag=function(){var nt={};nt.id=_itemDiv.getData().id;nt.userId=_itemDiv.getData().userId;nt.name=_div.find("input[name=name]").attr("value");return nt;}
var _callback=function(response){if(response.success){response.tag.linksCount=_itemDiv.getData().linksCount;_updateTag(response);return;}
_enableFormControls();_drawErrors(response.formErrors);}}
Memori.openAltEditWindow=function(container,mode,id,topParentId,fields,actionUrl,errPath,errorTranslate,data){var _init=function(container,mode,id,topParentId,fields,actionUrl,errPath,data){$("#frmCommentAdd").remove();container.after(new EJS({url:"/js/tpl/alteditor.js"}).render({"mode":mode,"field":fields,"actionUrl":actionUrl,"postId":id,"errPath":errPath}));}
_init(container,mode,id,topParentId,fields,actionUrl,errPath,data);tinyMCE.init({language:"ru",theme:"advanced",mode:"exact",elements:"commentBody,commentDetails"});}
Memori.openEditWindow=function(container,mode,id,topParentId,fields,actionUrl,errPath,errorTranslate,data){var _errorTranslate=errorTranslate;var _form;var _textArea;var _titleInput;var _init=function(container,mode,id,topParentId,fields,actionUrl,errPath,data){$("#frmCommentAdd").remove();container.after(new EJS({url:"/js/tpl/commenteditor.js"}).render({"mode":mode,"field":fields,"actionUrl":actionUrl,"postId":id,"errPath":errPath}));if($("#supportSubjectSelect").length){var selectLine='<tr><th>Выберите тему сообщения:</th><td>'+$("#supportSubjectSelect").html()+'</td></tr>';$("table.newmess > tbody > tr:eq(0)").before(selectLine);}
_form=$("#frmCommentAdd");_textArea=_form.find("textarea");_titleInput=$("#commentTitle");_titleInput.attr("value",data.title);_textArea.attr("value",data.description);_titleInput.focus();_form.bind("submit",_sumbitAction);}
var _registerButton=function(img,func){_form.find('img[src$="'+img+'"]').bind("click",func);}
var _insertTag=function(tag){_insertIntoSelection(function(text){return"["+tag+"]"+text+"[/"+tag+"]";});}
var _insertSingleTag=function(tag){_insertIntoSelection(function(text){return"["+tag+"]"+text;});}
var _insertSmiley=function(smiley){_insertIntoSelection(function(text){return smiley;});}
var _insertHyperLink=function(){var url=prompt('enter link','http://');if(!url)return;_insertIntoSelection(function(text){if(!text)text=url;return"[URL HREF='"+url+"']"+text+"[/URL]";});}
var _insertIntoSelection=function(modifier){if(document.getSelection){_textArea=document.getElementById("commentBody");var rangeStart=_textArea.selectionStart;var rangeEnd=_textArea.selectionEnd;var selectedText=_textArea.value.substring(rangeStart,rangeEnd);var tempStr1=_textArea.value.substring(0,rangeStart);var tempStr2=_textArea.value.substring(rangeEnd,_textArea.value.length);var txt=_textArea.value.substring(rangeStart,rangeEnd);_textArea.value=(tempStr1+modifier(txt)+tempStr2);_textArea=$(_textArea);}else if(document.selection){_textArea.focus();var rng=document.selection.createRange();rng.text=modifier(rng.text);}else{_textArea.attr("value","asdf");}}
var _sumbitAction=function(event){_form.find("p.error").remove();if(!_form.find("textarea[name=description]").attr("value")){_form.find("table").before("<p class='error'>"+_errorTranslate["empty description"]+"</p>");return false;}
_form.find("input[type=submit]").attr("disabled",true);return true;}
_init(container,mode,id,topParentId,fields,actionUrl,errPath,data);_registerButton("bold.gif",function(){_insertTag("B");});_registerButton("underline.gif",function(){_insertTag("U");});_registerButton("italic.gif",function(){_insertTag("I");});_registerButton("center.gif",function(){_insertTag("CENTER");});_registerButton("left.gif",function(){_insertTag("LEFT");});_registerButton("right.gif",function(){_insertTag("RIGHT");});_registerButton("list.gif",function(){_insertSingleTag("LI");});_registerButton("url.gif",_insertHyperLink);_registerButton("1.gif",function(){_insertSmiley(":-)");});_registerButton("2.gif",function(){_insertSmiley(";-)");});_registerButton("3.gif",function(){_insertSmiley(":-D");});_registerButton("4.gif",function(){_insertSmiley("8-)");});_registerButton("5.gif",function(){_insertSmiley(":-(");});_registerButton("6.gif",function(){_insertSmiley(":-/");});_registerButton("7.gif",function(){_insertSmiley("=-O");});}
Memori.ReserveTagController=function(div,tagValidator){var _div=div;var _tagValidator=tagValidator;var _errorTranslator=new Memori.ErrorTranslator(messages.validationErrors);var _helper=new Memori.Helper();var _delete=function(event){var id=$(event.target).parent().attr("id").replace("tag-","");$.post("/tagdeleteajax/","id="+id,_deleteCallback,"json");}
var _deleteCallback=function(response){if(!response.success){return;}
_div.find("div[id='tag-"+response.tag.id+"']").remove();}
var _addTag=function(){_div.find("p.error").remove();_div.find("input[type=button]").unbind("click",_addTag);errors=[];_tagValidator.validate(errors,_div.find("input[name=name]").attr("value"));if(errors.length){_drawErrors(errors);_div.find("input[type=button]").bind("click",_addTag);return;}
$.post("/tagaddajax/","name="+encodeURIComponent(_div.find("input[name=name]").val()),_addTagResponse,"json");}
var _addTagResponse=function(response){if(!response.success){_drawErrors(response.formErrors);_div.find("input[type=button]").bind("click",_addTag);return;}
var tag=response.tag;var html=$("#tagReserveSample").html().replace("id-sample","tag-"+tag.id).replace("name",_helper.htmlspecialchars(tag.name));_div.find("div.newtags").prepend(html);_div.find("input[name=name]").attr("value","");_bindDeleteEvents();_div.find("input[type=button]").bind("click",_addTag);}
var _bindDeleteEvents=function(){_div.find("div.newtags a.control").bind("click",_delete);}
var _drawErrors=function(errors){$.each(Memori.uniqueArray(errors),function(idx,error){_div.find("div.newtags").before('<p class="error">'+_errorTranslator.translate(error)+'</p>');});}
_div.find("input[type=button]").bind("click",_addTag);_bindDeleteEvents();_div.find("a.grey").bind("click",function(){_div.find("#reserveTagDescription").toggleClass("hide");});_div.find("a.cross").bind("click",function(){_div.find("#reserveTagDescription").toggleClass("hide");});}
Memori.SelectionBundleController=function(div){var _self=this;var _div=div;var _tag;var _itemDiv;var _deleteController;var _bundle;var _helper=new Memori.Helper();this.setItemDiv=function(itemDiv){_itemDiv=itemDiv;_self.enable();}
this.select=function(){}
this.deselect=function(){}
this.disable=function(){_div.find("a.control").addClass("disabledControl");_div.find("a.control:first").unbind("click",_itemDiv.renderEditMode);_deleteController.disable();}
this.enable=function(){_div.find("a.control").removeClass("disabledControl");_div.find("a.control:first").bind("click",_itemDiv.renderEditMode);_deleteController.enable();}
this.getId=function(){return _bundle.id;}
this.getData=function(){if(!_bundle.name)_fullInitBundle();return _bundle;}
this.setData=function(bundle){_bundle=bundle;}
this.renderViewMode=function(){_div.html($("#bundleViewSample").html());_div.find("strong.big").text(_bundle.name);$.each(_bundle.tags,function(idx,tag){_div.find("p:last").prepend('<a class="bundle" href="/'+tag.userName+'/'+encodeURIComponent(tag.name)+'/" id="tag-'+tag.id+'"><span>'+_helper.htmlspecialchars(tag.name)+'</span></a>')});_setDeleteController();}
var _delete=function(){$.post("/bundledeleteajax/","id="+_bundle.id,_deleteCallback,"json");}
var _deleteCallback=function(response){if(response.success){_itemDiv.remove();}}
var _fullInitBundle=function(){_bundle={};_bundle.id=_div.find("p:first").attr("id").replace("bundle-","");_bundle.name=_div.find("p:first > strong.big").text();_bundle.tags=[];_div.find("p:last a.bundle").each(function(idx,elem){elem=$(elem);_bundle.tags.push({'name':elem.text(),'id':elem.attr("id").replace('tag-',''),'userName':elem.attr("href").match(/\/(.+)\/(.+)\/$/)[1]});});}
var _selectEvent=function(event){if($(event.target).attr("checked")){_itemDiv.select();}else{_itemDiv.deselect();}}
var _setDeleteController=function(){_deleteController=new Memori.DeleteItemController(_div.find("p:first > span:last"),_div.find("a.control:last"),_delete);}
_fullInitBundle();_setDeleteController();}
Memori.EditBundleController=function(container,validator,requestUrl){var _self=this;var _container=container;var _itemDiv;var _div;var _validator=validator;var _requestUrl=requestUrl;this.setItemDiv=function(itemDiv){_itemDiv=itemDiv;_div=_itemDiv.getDiv();}
this.renderEditMode=function(){_renderEditMode();_bindFormEvents();_div.find("input[type=text]").focus();_container.deactivateSelections();}
var _renderEditMode=function(){_div.html($("#bundleEditSample").html());_div.find("input[name=name]").attr("value",_itemDiv.getData().name);var tags="";$.each(_itemDiv.getData().tags,function(idx,tag){tags+=tag.name+", ";});tags=tags.substring(0,tags.length-2);_div.find("textarea").attr("value",tags);}
var _resetEvent=function(){_itemDiv.renderViewMode();_container.activateSelections();}
var _updateBundle=function(data){_itemDiv.setData(data.bundle);_resetEvent();}
var _disableFormControls=function(){_div.find("input[type=submit]").attr("disabled",true);_div.find("input[type=reset]").attr("disabled",true);}
var _enableFormControls=function(){_div.find("input[type=submit]").attr("disabled",false);_div.find("input[type=reset]").attr("disabled",false);}
var _drawErrors=function(errors){$.each(Memori.uniqueArray(errors),function(idx,error){_div.find("table").before('<p class="error">'+error+'</p>');})}
var _bindFormEvents=function(){_div.find("input[type=reset]").bind("click",_resetEvent);_div.find("input[type=submit]").bind("click",_submitEvent);new Memori.SuggestedTags(_div.find("textarea[@name=tags]"),_div.find("td.save > a.fr"),_div.find("div.popblock"),_itemDiv.getData(),"bundle");}
var _submitEvent=function(){_div.find("p.error").remove();var nb=_fillBundle();var errors=[];_validator.validate(errors,nb);if(errors.length>0){_drawErrors(errors);return;}
_disableFormControls();nb.tags=nb.tags.join(",");$.post(_requestUrl,nb,_callback,"json");}
var _fillBundle=function(){var nb={};nb.id=_itemDiv.getData().id;nb.userId=_itemDiv.getData().userId;nb.name=_div.find("input[name=name]").val();nb.tags=_div.find("textarea[name=tags]").attr("value")?_div.find("textarea[name=tags]").attr("value").split(","):[];return nb;}
var _callback=function(response){if(response.success){_updateBundle(response);return;}
_enableFormControls();_drawErrors(response.formErrors);}}
Memori.BundleAddController=function(div,linkOpen,validator,requestUrl,container){var _self=this;var _div=div;var _validator=validator;var _requestUrl=requestUrl;var _linkOpen=linkOpen;var _container=container;var _errorTranslator=new Memori.ErrorTranslator(messages.validationErrors);var _helper=new Memori.Helper();var _openForm=function(){_linkOpen.addClass("hide");_div.html($("#bundleEditSample").html());_bindFormEvents();}
var _bindFormEvents=function(){_div.find("input[type=reset]").bind("click",_resetEvent);_div.find("input[type=submit]").bind("click",_submitEvent);new Memori.SuggestedTags(_div.find("textarea[@name=tags]"),_div.find("td.save > a.fr"),_div.find("div.popblock"),{"id":0,"tags":[]},"bundle");}
var _resetEvent=function(){_linkOpen.removeClass("hide");_div.html("");}
var _submitEvent=function(){_div.find("p.error").remove();var nb=_fillBundle();var errors=[];_validator.validate(errors,nb);if(errors.length>0){_drawErrors(errors);return;}
_disableFormControls();nb.tags=nb.tags.join(",");$.post(_requestUrl,nb,_callback,"json");}
var _disableFormControls=function(){_div.find("input[type=submit]").attr("disabled",true);_div.find("input[type=reset]").attr("disabled",true);}
var _enableFormControls=function(){_div.find("input[type=submit]").attr("disabled",false);_div.find("input[type=reset]").attr("disabled",false);}
var _callback=function(response){if(response.success){$("div.listbundles > p").remove();if(!$("div.listbundles ul").length){$("div.listbundles").append("<ul></ul>");}
$("div.listbundles ul").prepend("<li></li>");var li=$("div.listbundles li:first");li.html($("#bundleViewSample").html());li.find("p:first").attr("id",("bundle-"+response.bundle.id));li.find("strong.big").text(response.bundle.name);$.each(response.bundle.tags,function(idx,tag){li.find("p:last").prepend('<a class="bundle" href="/'+tag.userName+'/'+encodeURIComponent(tag.name)+'/" id="tag-'+tag.id+'"><span>'+_helper.htmlspecialchars(tag.name)+'</span></a>');});var bundleDiv=new Memori.ItemDiv(li);bundleDiv.setSelectionController(new Memori.SelectionBundleController(li));bundleDiv.setEditController(new Memori.EditBundleController(_container,_validator,"/bundleeditajax/"));_container.addItemDiv(bundleDiv);_resetEvent();return;}
_enableFormControls();_drawErrors(response.formErrors);}
var _drawErrors=function(errors){$.each(Memori.uniqueArray(errors),function(idx,error){_div.find("table").before('<p class="error">'+_errorTranslator.translate(error)+'</p>');})}
var _fillBundle=function(){var nb={};nb.id=0;nb.userId=0;nb.name=_div.find("input[name=name]").attr("value")?_div.find("input[name=name]").attr("value"):"";nb.tags=_div.find("textarea[name=tags]").attr("value")?_div.find("textarea[name=tags]").attr("value").split(","):[];return nb;}
_linkOpen.bind("click",_openForm);}
Memori.SuggestedTags=function(textArea,openLink,popBlock,object,type){var _openLink=openLink;var _textArea=textArea;var _popBlock=popBlock;var _object=object;var _type=type;var _suggestedTags;var _closeLink;var _tagsArray=new Array();var _helper=new Memori.Helper();var _openSuggestedTagsBlock=function(){_openLink.addClass("hide");if(!_suggestedTags){_getSuggestedTags();}
_popBlock.find("a:first").bind("click",_closeSuggestedTagsBlock);_popBlock.removeClass("hide");_textArea.bind('keydown',_synchronizeTagsList);}
var _getSuggestedTags=function(){if(_type=='bundle'){$.getJSON("/suggestedtagsforbundlesajax/"+_object.id,_getSuggestedTagsResponse);}else{$.getJSON("/suggestedtagsajax/",_getSuggestedTagsResponse);}}
var _getSuggestedTagsResponse=function(response){var innerDiv=_popBlock.find("div.yourtags");_suggestedTags=response.tags;var coun=false;$.each(_suggestedTags,function(index,element){if(coun!==false){innerDiv.append(', ');}else{coun=true;}
if(_type=='bundle'){element.bundlesCount==1?dopClass='seltag':dopClass='';}else{dopClass='';}
if(_isTagExist(element.name)){innerDiv.append('<a class="actvtag control '+dopClass+'">'+_helper.htmlspecialchars(element.name)+'</a>');}else{innerDiv.append('<a class="control '+dopClass+'">'+_helper.htmlspecialchars(element.name)+'</a>');}});innerDiv.children("a").bind("click",_addOrRemoveTag);_synchronizeTagsList();}
var _closeSuggestedTagsBlock=function(){_openLink.removeClass("hide");_popBlock.addClass("hide");}
var _isTagExist=function(name){for(var i=0;i<_object.tags.length;i++){if(_object.tags[i].name==name){return true;}}
return false;}
var _addOrRemoveTag=function(event){var link=$(event.target);var tagName=link.text();var tmpArray=new Array();if(link.hasClass("actvtag")){_setTagsArray();for(var k in _tagsArray){_tagsArray[k]=trim(_tagsArray[k]);if(_tagsArray[k]!=tagName&&_tagsArray[k]!='')tmpArray.push(_tagsArray[k]);}
var newValue=tmpArray.join(', ');_textArea.attr("value",newValue);}else{_textArea.attr("value")?_textArea.attr("value",_textArea.attr("value")+", "+tagName):_textArea.attr("value",tagName);}
link.toggleClass("actvtag");}
function _synchronizeTagsList(){setTimeout(_synchronizeTagsListWithTextarea,10);}
var _synchronizeTagsListWithTextarea=function(){var innerDiv=_popBlock.find("div.yourtags");_setTagsArray();tagsString=','+_tagsArray.join(',')+',';for(var k=0;k<_suggestedTags.length;k++){if(tagsString.indexOf(','+_suggestedTags[k].name+',')>-1){innerDiv.children("a[@text='"+_suggestedTags[k].name+"']").addClass("actvtag");}else{innerDiv.children("a[@text='"+_suggestedTags[k].name+"']").removeClass("actvtag");}}}
var trim=function(text){return text.replace(/^\s+|\s+$/g,"");}
var _setTagsArray=function(){_tagsArray.length=0;tempTagsArray=_textArea.val().split(',');for(var k in tempTagsArray){temp=trim(tempTagsArray[k]);if(temp!=''){_tagsArray.push(temp);}}}
_openLink.bind("click",_openSuggestedTagsBlock);}
Memori.ErrorTranslator=function(messages){var _messages=messages;var _self=this;this.translate=function(error){if(_messages[error]){return _messages[error];}else{return error;}}
this.translateArray=function(errors){var translated=[]
for(var i=0;i<errors.length;i++){translated.push(_self.translate(errors[i]));}
return translated;}}
Memori.DeleteItemController=function(element,openLink,deleteCallback,atrType){var _element=element;var _openLink=openLink;var _deleteCallback=deleteCallback;var _self=this;this.openDeleteDialog=function(){_element.removeClass("hide");_openLink.addClass("hide");}
this.closeDeleteDialog=function(){_element.addClass("hide");_openLink.removeClass("hide");}
this.disable=function(){_openLink.unbind("click",_delete);_self.closeDeleteDialog();}
this.enable=function(){_openLink.bind("click",_delete);}
var _delete=function(){_deleteCallback(atrType);_self.disable();}}
Memori.SendToFriendSingleController=function(container){var _self=this;var _container=container;var _bookmarkDiv;var _div;var _element;var _tempForm;this.setItemDiv=function(bookmarkDiv){_bookmarkDiv=bookmarkDiv;_div=_bookmarkDiv.getDiv();}
this.openSendDialog=function(){$('#tmpSendForm').remove();_element=_div.find("a[@name='send[]']");var _el=_element.offset();_tempForm=$('#divSendLinkToFriends').clone().insertAfter($('#divSendLinkToFriends'));_tempForm.attr('id','tmpSendForm');_tempForm.css('position','absolute');_tempForm.css('top',_el.top);_tempForm.css('left',_el.left-110);_tempForm.find("#sendTo").attr('value','');_tempForm.find('#imgSendToFriendsClose').bind('click',_resetEvent);_tempForm.find('#btnSendToFriendsClose').bind('click',_resetEvent);_tempForm.find('#btnSendToFriendsData').bind('click',_submit);_tempForm.removeClass('hide');_tempForm.show();}
this.disable=function(){_element.unbind("click",_self.openSendDialog);_self.closeSendDialog();}
this.enable=function(){_element.bind("click",_self.openSendDialog);}
function _getData(){return'address='+encodeURIComponent(_tempForm.find("input[@type=text]").val())+'&comment='+encodeURIComponent(_tempForm.find("textarea").val());}
var _resetEvent=function(){_tempForm.remove();}
function _submit(){_tempForm.find('div.error').remove();$.post("/linksgroupajax/","command=sendToFriend&ids="+_bookmarkDiv.getData().id+'&'+_getData(),_sendCallback,"json");}
var _sendCallback=function(response){if(response.success){_resetEvent();}else{_tempForm.find('#adr_err2').before('<div class=error>Ошибка в написании адресата</div>');}}}
Memori.StartController=function(element){var _element=element;var _deleteSpan=_element.find("div > p.del > span");var _openLink=_element.find("div > p.del > a:first");var _id=_element.find("div").attr("id").replace("bookmark-","");var _delete=function(){$.post("/linkdeletefromstartajax/","id="+_id,_deleteCallback,"json");}
var _deleteCallback=function(response){if(response.success){_element.remove();}}
var _deleteController=new Memori.DeleteItemController(_deleteSpan,_openLink,_delete);_deleteController.enable();}
Memori.SendToFriendDiv=function(elementDiv,elementHideButton,elementCancelButton,elementSendButton){var _elementDiv=elementDiv;var _elementHideButton=elementHideButton;var _elementCancelButton=elementCancelButton;var _elementSendButton=elementSendButton;var _isClosed;function _show(){_elementDiv.show();_elementDiv.find('input:text').attr('value','');_elementDiv.find('textarea').attr('value','');_isClosed=false;}
function _hide(){_elementDiv.hide();_isClosed=true;}
function _init(){_elementHideButton.bind('click',_hide);_elementCancelButton.bind('click',_hide);_hide();_isClosed=true;}
function _getData(){return'address='+encodeURIComponent(_elementDiv.find("#sendTo").val())+'&comment='+encodeURIComponent(_elementDiv.find("#sendComment").val());}
_init();return{show:function(){_show();},hide:function(){_hide();},isClosed:function(){return _isClosed;},getSenderElement:function(){return _elementSendButton;},getData:function(){return _getData();}}}
Memori.SelectionBookmarkWithUserInfo=function(div){var _self=this;var _div=div;var _bookmark;var _itemDiv;var _deleteController;var _hiddenController;var _showToFriendsController;var _unSeenController;var _showOnMainController;this.setItemDiv=function(itemDiv){_itemDiv=itemDiv;_self.enable();}
var _delete=function(){$.post("/linkdeleteajax/","id="+_bookmark.id,_deleteCallback,"json");}
var _deleteCallback=function(response){if(response.success){_itemDiv.remove();}}
var _showToFriendsCallback=function(response){if(response.success){_div.find("span.showToFriends").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();_bookmark.showToFriends=0;}}
var _unSeenCallback=function(response){if(response.success){_div.find("span.unSeen").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();_bookmark.unSeen=0;}}
var _showOnMainCallback=function(response){if(response.success){_div.find("span.showOnMain").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();_bookmark.showOnMain=0;}}
var _hideCallback=function(response){if(response.success){_div.find("span.closed").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();_bookmark.hidden=0;}}
var _changeAtributes=function(atrType){switch(atrType){case'showToFriends':$.post("/linksgroupajax/","command=removeshowtofriends&ids="+_bookmark.id,_showToFriendsCallback,"json");break;case'unSeen':$.post("/linksgroupajax/","command=seen&ids="+_bookmark.id,_unSeenCallback,"json");break;case'showOnMain':$.post("/linksgroupajax/","command=removefrommain&ids="+_bookmark.id,_showOnMainCallback,"json");break;case'hide':$.post("/linksgroupajax/","command=open&ids="+_bookmark.id,_hideCallback,"json");break;}}
this.select=function(){}
this.deselect=function(){}
this.disable=function(){_div.find("span > input[type=checkbox]").attr("disabled",true);_div.find("a.control").addClass("disabledControl");_div.find("a[@name='edit[]']").unbind("click",_itemDiv.renderEditMode);_div.find("a[@name='copy[]']").unbind("click",_itemDiv.renderCopyMode);_div.find("a[@name='send[]']").unbind("click",_itemDiv.renderInit);_deleteController.disable();_hiddenController.disable();_showToFriendsController.disable();_unSeenController.disable();_showOnMainController.disable();}
this.enable=function(){_div.find("span > input[type=checkbox]").attr("disabled",false);_div.find("span > input[type=checkbox]").bind("click",_selectEvent);_div.find("a.control").removeClass("disabledControl");_div.find("a[@name='edit[]']").bind("click",_itemDiv.renderEditMode);_div.find("a[@name='copy[]']").bind("click",_itemDiv.renderCopyMode);_div.find("a[@name='send[]']").bind("click",_itemDiv.renderInit);_deleteController.enable();_hiddenController.enable();_showToFriendsController.enable();_unSeenController.enable();_showOnMainController.enable();}
this.getId=function(){return _bookmark.id;}
this.getData=function(){if(!_bookmark.title)_fullInitBookmark();return _bookmark;}
this.setData=function(bookmark){_bookmark=bookmark;}
var _baseInitBookmark=function(){_bookmark={};if(_div.find("input[type=hidden]").length){_bookmark.id=_div.find("input[type=hidden]").attr("id").replace("hid-","");}}
var _fullInitBookmark=function(){_bookmark={};_bookmark.id=_div.find("input[type=hidden]").attr("id").replace("hid-","");_bookmark.userId=0;_bookmark.title=_div.find("a[@name='title[]']").text();var aLink=_div.find('a.big');_bookmark.fullUrl=aLink.attr('href')?aLink.attr('href'):'';_bookmark.url=aLink.attr('url');_bookmark.description=_div.find("p.txt").length?_div.find("p.txt").text():"";_bookmark.hidden=_div.find("span.closed").length?1:0;_bookmark.showToFriends=_div.find("span.showToFriends").length?1:0;_bookmark.unSeen=_div.find("span.unSeen").length?1:0;_bookmark.showOnMain=_div.find("span.showOnMain").length?1:0;var addDates=_div.find("span.addDate").text().match(/([0-9]{4}\-[0-9]{2}\-[0-9]{2})/);_bookmark.addDate=(addDates)?addDates[1]:null;_bookmark.mark=_div.find("img[src$='redstar.gif']").length;_bookmark.hdescr=_div.find("p.hdescr").length?_div.find("p.hdescr").text():"";_bookmark.tags=[];_div.find("a.bundle").each(function(idx,elem){elem=$(elem);_bookmark.tags.push({'name':elem.text(),'id':elem.attr("id").replace('bundle-',''),'userName':elem.attr("href").match(/\/([^\/]+)\//)[1]});});}
this.renderViewMode=function(viemSample){_renderViewMode(viemSample);_setDeleteController();_setHiddenController();_setShowToFriendsController();_setUnSeenController();_setShowOnMainController();}
var _selectEvent=function(event){if($(event.target).attr("checked")){_itemDiv.select();}else{_itemDiv.deselect();}}
var _renderViewMode=function(viemSample){_div.html($("#"+viemSample).html());_div.find("input[type=checkbox]").attr("id","cbx-"+_bookmark.id);_div.find("input[type=hidden]").attr("id","hid-"+_bookmark.id);_div.find("#linkPropeties-sample").attr("id","linkPropeties-"+_bookmark.id);_div.find("#graphLink-sample").attr("id","graphLink-"+_bookmark.id);_div.find("a.big").text(_bookmark.title);_div.find("a.big").attr("href",_bookmark.fullUrl);if(_bookmark.description){_div.find("p.txt").text(_bookmark.description);}else{_div.find("p.txt").remove();}
if(_bookmark.hdescr){_div.find("p.hdescr").text(_bookmark.hdescr);}else{_div.find("p.hdescr").remove();}
if(_bookmark.mark){for(var i=5;i>0;i--){if(i<=_bookmark.mark){_div.find("p:last > span.vline:first").after('<img width="10" height="10" alt="" src="/images/redstar.gif"/>');}else{_div.find("p:last > span.vline:first").after('<img width="10" height="10" alt="" src="/images/greystar.gif"/>');}}}
$.each(_bookmark.tags,function(idx,tag){_div.find("p:last").prepend('<a class="bundle" href="/'+tag.userName+'/'+escape(tag.name)+'/" id=/"tag-'+tag.id+'/"><span>'+tag.name+'</span></a>')});_div.find("span.addDate").text(_div.find("span.addDate").text()+_bookmark.addDate);if(!_bookmark.hidden)_div.find("span.closed").remove();if(!_bookmark.showToFriends)_div.find("span.showToFriends").remove();if(!_bookmark.unSeen)_div.find("span.unSeen").remove();if(!_bookmark.showOnMain)_div.find("span.showOnMain").remove();_div.find("span.vline + span.hide + span.vline").remove();_div.find("span.vline + span.vline").remove();}
var _setDeleteController=function(){_deleteController=new Memori.DeleteItemController(_div.find("p.link > span.hide"),_div.find("a[@name='delete[]']"),_delete);}
var _setHiddenController=function(){_hiddenController=new Memori.DeleteItemController(_div.find("span[@name='hideHide[]']"),_div.find("span.closed"),_changeAtributes,'hide');}
var _setShowToFriendsController=function(){_showToFriendsController=new Memori.DeleteItemController(_div.find("span[@name='showToFriendsHide[]']"),_div.find("span.showToFriends"),_changeAtributes,'showToFriends');}
var _setUnSeenController=function(){_unSeenController=new Memori.DeleteItemController(_div.find("span[@name='unSeenHide[]']"),_div.find("span.unSeen"),_changeAtributes,'unSeen');}
var _setShowOnMainController=function(){_showOnMainController=new Memori.DeleteItemController(_div.find("span[@name='showOnMainHide[]']"),_div.find("span.showOnMain"),_changeAtributes,'showOnMain');}
_baseInitBookmark();_setDeleteController();_setHiddenController();_setShowToFriendsController();_setUnSeenController();_setShowOnMainController();}
Memori.SelectionPaidLinkController=function(div){var _self=this;var _div=div;var _itemDiv;var _link={};this.getId=function(){return _link.id;}
this.setItemDiv=function(itemDiv){_itemDiv=itemDiv;_self.enable();}
this.select=function(){_div.addClass("backgroundYellow");_div.find("input[type=checkbox]").attr("checked",true);}
this.deselect=function(){_div.removeClass("backgroundYellow");_div.find("input[type=checkbox]").attr("checked",false);}
this.disable=function(){_div.find("input[type=checkbox]").attr("disabled",true);}
this.enable=function(){_div.find("input[type=checkbox]").attr("disabled",false);_div.find("input[type=checkbox]").bind("click",_selectEvent);}
this.getData=function(){return _link;}
this.renderViewMode=function(){}
var _initLink=function(){_link.id=div.find('input[@name="lid"]').val();}
var _selectEvent=function(event){if($(event.target).attr("checked")){_itemDiv.select();}else{_itemDiv.deselect();}}
_initLink();}
Memori.PaidSendAction=function(){this.requestCommand=function(){return"command=paidToModerator";}
this.getElement=function(){return $("input[@name='btnSendToModerator']");}
this.action=function(bookmark){self.location.reload();return true;}
this.getType=function(){return"toModerator";}}
Memori.PaidSendAction.prototype=new Memori.AbstractAction();Memori.PaidSendSubscribeAction=function(){this.requestCommand=function(){return"command=paidToModeratorSubscribe";}
this.getElement=function(){return $("input[@name='btnSendToModeratorSubscribe']");}
this.action=function(bookmark){self.location.reload();return true;}
this.getType=function(){return"toModerator";}}
Memori.PaidSendSubscribeAction.prototype=new Memori.AbstractAction();Memori.PaidDeleteAction=function(){this.requestCommand=function(){return"command=deleteFromWorkList";}
this.getElement=function(){return $("input[@name='btnDelete']");}
this.action=function(bookmark){self.location.reload();return true;}
this.getType=function(){return"deleteFromWorkList";}}
Memori.PaidDeleteAction.prototype=new Memori.AbstractAction();Memori.PaidToWorkAction=function(){this.requestCommand=function(){return"command=fromPaidToWork";}
this.getElement=function(){return $("input[@name='btnToWork']");}
this.action=function(bookmark){self.location.reload();return true;}
this.getType=function(){return"fromPaidToWork";}}
Memori.PaidToWorkAction.prototype=new Memori.AbstractAction();Memori.PaidExtensionAction=function(){this.requestCommand=function(){return"command=paidExtension&period="+$('#paidExtend > option:selected').val();}
this.getElement=function(){return $("input[@name='btnExtension']");}
this.action=function(bookmark){self.location.reload();return true;}
this.getType=function(){return"paidExtension";}}
Memori.PaidExtensionAction.prototype=new Memori.AbstractAction();Memori.Helper=function(){this.htmlspecialchars=function(html){html=html.replace(/&/g,"&amp;");html=html.replace(/</g,"&lt;");html=html.replace(/>/g,"&gt;");html=html.replace(/"/g,"&quot;");return html;}}
$(document).ready(function(){$.get('/bottomblock/','',function(data){if(data){block=$(data).hide();$('div:first').before(block);block.slideToggle("slow");block.find('#closeAnons').bind('click',function(){block.slideToggle("slow");$.cookie($(this).attr('name'),-1,{expires:365,path:"/"});});}});if($('span.newMessageInformer, span.newLinksInformer').length){var elem=$('span.newMessageInformer, span.newLinksInformer');setInterval(function(){elem.toggleClass('visibility');},800);}
$('#searchform').attr('action','/'+$('input[@name=searchwhere]:checked').val()+'/');$('input[@name=searchwhere]').bind('click',function(){$('#searchform').attr('action','/'+$('input[@name=searchwhere]:checked').val()+'/');});$('#searchform_qip').attr('action','/'+$('.qb_active input').val()+'/');$('.search li a').bind('click',function(){$('.qb_active').removeClass('qb_active');$(this).parents('li').addClass('qb_active');var searchwhere=$('.qb_active input').val();$('#searchform_qip').attr('action','/'+searchwhere+'/');$('input[@name=searchwhere]').val(searchwhere);});});if(Memori==undefined)var Memori={}
Memori.GotoShortTag=function(){var _searchField=$('#search');var _gotoButton=$('.buttongoto');var _st2=$('#st2');var _st1=$('#st1');var _curUser=$('#curUser');var _path;function _showTags(){if(_searchField.val()&&_curUser.val()){_path='/'+_curUser.val()+'/'+encodeURIComponent(_searchField.val());window.location=_path;}}
_gotoButton.bind('click',_showTags);}
Memori.SearchForm=function(form){var _form=form;var _btn=_form.find('#findBtn');var _searchType=$('input:hidden[@name=type]');var _initForm=function(){_btn.click(_doSearch);_form.find('#showExtended').click(_showExtended);_form.find('input:radio').bind('change',_changeType);}
var _doSearch=function(){elem=_form.find('input:radio:checked');if(elem.length){_form.attr('action','/'+elem.val()+'/').submit();}}
var _changeType=function(event){var elem=$(event.target);var dopS=elem.attr('searchType')?elem.attr('searchType'):'';_searchType.attr('value',dopS);}
var _showExtended=function(){_form.find('#exLabelSpan').toggle();}
_initForm();}
$(document).ready(function(){new Memori.SearchForm($('#searchform'));new Memori.GotoShortTag();var phrazeToChange=$('#newSearch');if(phrazeToChange.length){phrazeToChange.click(function(){$('#search').attr('value',phrazeToChange.attr('set')!=undefined?phrazeToChange.attr('set'):phrazeToChange.text()).focus();});}})
Memori.ToggleSideMenu=function(translator){var _translator=translator;var _link=$("div.togglepanel > div > a");var _mainDiv=$("div.main");var _toggleDiv=$("div.togglepanel > div");var _sideDiv=$("div.side");var _isClosed=false;var _click=function(){$("div.mainside").toggleClass("hide");$("div.main").toggleClass("indx");_isClosed=!_isClosed;if(_isClosed){_toggleDiv.removeClass("toggleborder");_link.text(_translator.translate("open"));$.cookie("showPanel","yes");}else{_toggleDiv.addClass("toggleborder");_link.text(_translator.translate("close"));$.cookie("showPanel","no");}}
var _mouseOut=function(){if(_isClosed){return;}
_sideDiv.removeClass("sideborder");_toggleDiv.removeClass("toggleborder");}
var _mouseOver=function(){if(_isClosed){return;}
_sideDiv.addClass("sideborder");_toggleDiv.addClass("toggleborder");}
_link.bind("click",_click);_link.bind("mouseover",_mouseOver);_link.bind("mouseout",_mouseOut);if($.cookie("showPanel")&&$.cookie("showPanel")!="no"){_click();}}
$(document).ready(function(){new Memori.ToggleSideMenu(new Memori.ErrorTranslator(messages.toggleSidePanel));});var AnonsController=function(){this.registerAnonsCloseEvent=function(){$("#closeAnons").bind("click",_closeAnons);}
var _closeAnons=function(){$("#anons").addClass("hide");$.cookie($("#closeAnons").attr('name'),-1,{expires:356,path:'/'});}}
$(document).ready(function(){$("#closeAnons").attr("href","javascript:void(0);");var ac=new AnonsController();ac.registerAnonsCloseEvent();});$(document).ready(function(){$('a[paid]').click(function(){var linkData={linkId:$(this).attr('paid')};$.post('/paidCounter/',linkData,function(res){return},'json');var wnd=window.open('','_blank');wnd.location=$(this).attr('href');return false;})});function changebg(what){what.style.backgroundColor="#fed6e2";}
function returnbg(what){what.style.backgroundColor="transparent";}
