var $getInstance=function(class_object){var index=$getInstanceIndex(class_object);if(index==-1){index=$insertInstance(class_object,new class_object());}
return top.instances.objects[index];}
var $getInstanceIndex=function(class_object){if(!top.instances){$clearInstances();}
return top.instances.classes.indexOf(class_object);}
var $insertInstance=function(class_object,object){top.instances.classes.push(class_object);var index=top.instances.objects.push(null)-1;top.instances.objects[index]=object;return index;}
var $setInstance=function(class_object,object){var index=$getInstanceIndex(class_object);if(index==-1){index=$insertInstance(class_object,object);}
return top.instances.objects[index]=object;}
var $clearInstances=function(){top.instances={classes:[],objects:[]};}
var $clearInstance=function(class_object){var index=$getInstanceIndex(class_object);delete top.instances.classes[index];delete top.instances.objects[index];}
function dump(o,show_values){var s=[];for(i in o){s.push(i+(show_values?" = "+o[i]:""));}
return s.sort().join(show_values?"\n":", ");}
var URL=new Class({initialize:function(prefix,force_sync,log_response){this.prefix=prefix||"";this.force_sync=force_sync||false;this.log_response=log_response||false;this.responses=[];},checkPrefix:function(){this.prefix=$getInstance($Config).getKey("url_prefix","project")||"";},prepareJSON:function(data){var request=new Request.JSON(data);request.options.url=this.prefix+request.options.url;request.options.async=this.force_sync?false:request.options.async;return request;},prepare:function(request,key){var self=this;request.options.url=this.prefix+request.options.url;request.options.async=this.force_sync?false:request.options.async;if(this.log_response){this.responses[key]=null;request.addEvent("onComplete",function(response){self.responses[key]=response;});}
return request;},ModResource:{onDeleteOrderResource:function(data){data.url="/ajax/delete-order-resource/"+data.data.id;return $URL.prepareJSON(data);}},ModUser:{onGetNewMessages:function(data){data.url="/ajax/messager/get-new";return $URL.prepareJSON(data);},onSaveResume:function(data){data.url="/ajax/save-resume";return $URL.prepareJSON(data);},onSignup:function(data){data.url="/ajax/signup";return $URL.prepareJSON(data);},onSaveUser:function(data){data.url="/ajax/saveuser";return $URL.prepareJSON(data);},onAjaxLogin:function(data){data.url="/ajax/login";return $URL.prepareJSON(data);},onAjaxLoginAndRemember:function(data){data.url="/ajax/login-remember";return $URL.prepareJSON(data);},onAjaxLoginAndRememberForWork:function(data){data.url="/ajax/work-login";return $URL.prepareJSON(data);},onForgotPassword:function(data){data.url="/ajax/forgot";return $URL.prepareJSON(data);}},ModTransaction:{onSendYandexRegistration:function(data){data.url="/ajax/yandex-payment-registration/";return $URL.prepareJSON(data);},onSendCardPayment:function(data){data.url="/ajax/payment-by-card/";return $URL.prepareJSON(data);},onSubmitSuccessHandmakePayment:function(data){data.url="/ajax/admin/accept-handmake-payment/";return $URL.prepareJSON(data);},onSubmitRefuseHandmakePayment:function(data){data.url="/ajax/admin/refuse-handmake-payment/";return $URL.prepareJSON(data);},onSendTerminalRegistration:function(data){data.url="/ajax/terminal-payment-registration/";return $URL.prepareJSON(data);}},ModArticle:{onGetBanner:function(data){data.url="/ajax/banner/";return $URL.prepareJSON(data);}},ModOrder:{on2Step:function(data){data.url="/order/step1";return $URL.prepareJSON(data);},onChangeCountry:function(data){data.url="/ajax/city-load";return $URL.prepareJSON(data);},onCreateOrder:function(data){data.url="/ajax/create-order";return $URL.prepareJSON(data);},onEditOrderCustomer:function(data){data.url="/zakazchik/edit-order/customer";return $URL.prepareJSON(data);},onSubmitZayavka:function(data){data.url="/ajax/zayavka";return $URL.prepareJSON(data);},onCheckDuplicateOrder:function(data){data.url="/ajax/check-user-order/";return $URL.prepareJSON(data);}},ModWork:{onAddWorkSubmit:function(data){data.url="/addwork-submit";return $URL.prepareJSON(data);}},ModBasket:{onAddItem:function(data){data.url="/ajax/add-basket-item";return $URL.prepareJSON(data);},onBuyWorkWithLogin:function(data){data.url="/login-buy-work/";return $URL.prepareJSON(data);},onBuyWorkWithSignup:function(data){data.url="/signup-buy-work/";return $URL.prepareJSON(data);}},ModPublic:{onUnivercitySuggest:function(data){data.url="/ajax/univercity-suggest";return $URL.prepareJSON(data);},onSubjectSuggest:function(data){data.url="/ajax/subject-suggest";return $URL.prepareJSON(data);},onLoadCitites:function(data){data.url="/ajax/get-city/";return $URL.prepareJSON(data);}},ModChat:{onAddMessage:function(data){data.url="/ajax/chat/message/add";return $URL.prepareJSON(data);},onAddMessageCustomer:function(data){data.url="/ajax/chat/message/customer/add";return $URL.prepareJSON(data);},onRefresh:function(data){data.url="/ajax/chat/message/refresh";return $URL.prepareJSON(data);},onSubmitCustomerChatMessage:function(data){data.url="/ajax/chat/customer/message/";return $URL.prepareJSON(data);}},ModVote:{onSetVote:function(data,order_id){data.url="/ajax/set-vote/"+order_id;return $URL.prepareJSON(data);}},ModAdminSchet:{onAcceptTerminalTransaction:function(data){data.url="/admin/schet/terminal/submit/";return $URL.prepareJSON(data);},onRefuseTerminalTransaction:function(data){data.url="/admin/schet/terminal/refuse/";return $URL.prepareJSON(data);}},ajaxRequest:function(url,data){data.url=url;return $URL.prepareJSON(data);}});var $URL=new URL();var $Locale={ModAdmin:{WITHDRAWMONEY:function(summ){return"Вы действитель хотите списать сумму "+summ+" руб.?"},MSG_SAVE_CONTENT_PAGE:function(){return"Вы уверены что хотите сохранить изменения?";},MSG_SAVE_AND_CLOSE_CONTENT_PAGE:function(){return"Вы уверены что хотите сохранить изменения и выйти?";},MSG_GENERATE_NEW_PASSWORD:function(){return"Вы уверены, что хотите сгененировать новый пароль для этого пользователя и выслать ему сообщение об этом?";},MSG_CLOSE:function(){return"Вы уверены что хотите выйти со страницы?";},MSG_ATTESTAT_EMPTY_DATE:function(){return"Дата присвоения аттестата не может быть пустой";},MSG_ATTESTAT_EMPTY_TEXT:function(){return"Текст аттестата не может быть пустой";},MSG_REMOVE_ATTESTAT:function(){return"Вы действительно хотите обнулить аттестат?";},MSG_DELETE_COMPLETE_WORK:function(){return"Вы действительно хотите удалить отмеченные работы?";}},ModBasket:{LOGIN_EMAIL_NOT_EMPTY:function(){return"Адрес электронной почты не может быть пустым.";},LOGIN_INVALID_EMAIL:function(){return"Адрес электронной почты указан не верно.";},LOGIN_PASSWORD_NOT_EMPTY:function(){return"Пароль не может быть пустым.";},ERROR_USER_NOT_FOUND:function(){return"Пользователь не найден проверьте правильность введенных данных.";},ERROR_WORK_NOT_FOUND:function(){return"Запрашиваемая работа не найдена.";},ERROR_ACL_DENY:function(){return"Вы являетесь автором этой работы.";},ERROR_DUPLICATE_WORK:function(){return"Работа уже у Вас в корзине.";},UNDEFINED_ERROR:function(){return"Произошла ошибка, попробуйте позже.";},ERROR_NAME_NOT_EMPTY:function(){return"Имя не может быть пустым";},ERROR_PASSWORD_NOT_EMPTY:function(min_length){min_length=6;return"Пароль не может быть короче "+min_length+" символов.";},ERROR_PASSWORD_NOT_MATCH:function(){return"Пароли не совпадают.";},ERROR_YOU_NEED_ACCEPT:function(){return"Вы должны принять условия покупки.";},ERROR_DUPLICATE_USER:function(){return"Пользователь с таким электронным адресом уже зарегестрирован в системе";}},ModAdminSchet:{ACCEPT_SUCCESS:function(summ){return"Перевод одобрен на счет зачислено "+summ+" руб.";},SUMM_CANT_BE_EMPTY:function(){return"Укажите сумму";},SUMM_IS_NUMBER:function(){return"Сумма - число";},TRANSACTION_NOT_FOUND:function(id){return"Транзакция №"+id+" не найдена.";},USER_NOT_FOUND:function(){return"Пользователь не найден.";},CAUSE_CANT_BE_EMPTY:function(){return"Необходимо указать причину отказа.";},REFUSE_SUCCESS:function(){return"Отклонена";}},ModAuthor:{MSG_CONFIRM_ORDER:function(){return"Вы уверены, что сможете выполнить эту работу?";},MSG_CONFIRM_DECLINE:function(){return"Вы уверены, что хотите отказаться от выполнения этого заказа?";}},ModResource:{FILE_MISSED:function(){return"Файл не был загружен";},FILE_INVALID_FORMAT:function(){return"Загрузка файлов ограничена. Допускаются следующие форматы: TXT, DOC, DOCX, XLS, XLX, MPP, PDF, RAR, ZIP, PSD, CDR, AI.";},FILE_MAX_SIZE:function(){return"Не допустимый размер файла.";},UNDEFINED_ERROR:function(){return"Ошибка загрузки файла.";},COMMENT_FORBIDDEN_TEXT:function(){return"Не допустимо использование в коментариях контактной информации";},SUPPORT_EXCEPTION:function(){return"Зарегистирована ошибка работы объекта. Мы уже знаем о ней и исправим в ближайшее время.";}},ModChat:{MSG_TEXT_NOT_EMPTY:function(){return"Сообщение не может быть пустым!";},MSG_OBJECT_NOT_FOUND:function(){return"Произошла ошибка работы чата. Мы уже знаем о ней и исправим в ближайшее время.";},MSG_CONTACT_EXCEPTION:function(){return"Обмен контактной информацией запрещен. При повторных попытках передачи/запроса контактов ваш аккаунт будет заблокирован. Используйте этот чат для общения с заказчиком. По спорным вопросам обращайтесь в службу поддержки сервиса.";},TITLE_CUSTOMER:function(){return'Сообщение автору';},TITLE_AUTHOR:function(){return'Сообщение заказчику';}},ModOrder:{PHONE_CODE_TITLE:function(){return"код";},PHONE_NUMBER_TITLE:function(){return"номер";},CONFIRM_DELETE:function(){return"Вы уверены, что хотите удалить эту работу? После удаления все данные о заказе будут потеряны.";},CONFIRM_DELETE_AUTHOR:function(){return"Вы уверены, что хотите удалить эту работу?";},AUTHOR_RESPONSE_MESSAGE_EMPTY:function(){return"Поле отзыв не может быть пустым.";},ON_DUPLICATE_ORDER:function(){return"Такой заказ вами уже создан. Вы можете отредактировать созданный ранее заказ в личном кабинете.";}},ModWork:{CONFIRM_DELETE_CUSTOMER:function(){return"Вы уверены, что хотите удалить эту работу?";},MSG_DELETE_WORK:function(){return"Вы действительно хотите удалить эту работу из системы?";}},ModAdminArbitrage:{REJECT_APPEAL:function(){return"Отклонить заявку на отмену заказа?";},COMMENT_ERROR:function(){return"Необходимо прокомментировать ваше решение.";},APPLY_REJECT_APPEAL:function(){return"Принять решение о частичном выполнении?";}},ModTransaction:{onAlertNumberError:function(money_name,length){return"Номер карты "+money_name+" не может быть пустым";},onAlertCodeError:function(){return"Код активации карты Webmoney не может быть пустым.";},onAlertSecurityCodeError:function(){return"Код проверки карты Яндекс.Деньги не может быть пустым.";},YANDEX_PASSWORD_ERROR:function(){return"Пароль карты Яндекс.Деньги не может быть пустым.";},CARD_TYPE_ERROR:function(){return"Тип карты указан не верно";},NOMINAL_ERROR:function(){return"Не верное значение номинала карты";},MONEY_SUMM_ADDED:function(summ){return"Введено "+summ+" рублей";},PAYMENT_ALREADY_ACCEPT:function(id){return"Заявка на ввод №"+id+" уже обработана.";},REFUSE:function(){return"Отклонена";},TRANSACTION_NOT_FOUND:function(){return"Транзакция не найдена";},USER_NOT_FOUND:function(){return"Пользователь не найден";},DATA_ERROR:function(){return"Проверьте правильность заполнения формы.";},CASH_SUMM_CANT_BE_EMPTY:function(){return"Поле \"Сумма на счет Напишем.ру\" не может быть пустым.";},CASH_SUMM_IS_NUMBER:function(){return"Поле \"Сумма на счет Напишем.ру\" — число.";},PAYMENT_DATE_CANT_BE_EMPTY:function(){return"Укажите дату платежа.";},PAYMENT_SUMM_CANT_BE_EMPTY:function(){return"Поле \"Сумма оплаты по чеку:\" не может быть пустым.";},PAYMENT_SUMM_IS_NUMBER:function(){return"Поле \"Сумма оплаты по чеку:\" — число.";},NUMBER_CANT_BE_EMPTY:function(){return"Поле \"Номер чека:\" не может быть пустым.";},CHEQUE_NUMBER:function(num){return"№"+num;}}};var $setValue=function(el,value){switch(el.getTag()){case'select':if(value&&['string','integer','number'].indexOf(typeof(value))!=-1){el.setProperty("selected","selected");var v=$getValue(el);el.set("value",value);if(v!=value){el.fireEvent("change");}}else{el.set("value",value);}
break;case'input':if(['hidden','text','password'].indexOf(el.type)!=-1){el.set("value",value);}
if(['checkbox','radio'].indexOf(el.type)!=-1){var v=$getValue(el);el.set("checked",value==true);el.setProperty("defaultChecked",value==true);if(v!=value){el.fireEvent("change");}}
break;case'textarea':el.set("value",value);break;case'div':el.set("html",value);break;}}
var $getValue=function(el){var result=null;switch(el.getTag()){case'select':result=el.get("value");break;case'input':if(['hidden','text','password','file'].indexOf(el.type)!=-1){result=el.get("value");}
if(['checkbox','radio'].indexOf(el.type)!=-1){result=el.get("checked")?1:0;}
break;case'textarea':result=el.get("value");break;case'div':case'b':result=el.get("html");break;}
return result;}
var $equalsLogic=function(object,object2){for(var i in object){if(typeof(object2[i])=="undefined"){return false;}
var type=(typeof(object[i])).toUpperCase();if(type=="OBJECT"||type=="ARRAY"){if($equals(object[i],object2[i])==false){return false;}}else{if(object[i]!==object2[i]){return false;}}}
return true;}
var $equals=function(object,object2){if($equalsLogic(object,object2)==false){return false;}
return $equalsLogic(object2,object);};var $findObjectById=function(list,object_id){var object=null;list.each(function(obj){if(obj.id==object_id){object=obj;return;}});return object;}
var $findObjectsByIds=function(list,object_ids){list=list instanceof Array?list:new Array();object_ids=object_ids instanceof Array?object_ids:new Array();var objects=new Array();list.each(function(obj){if(object_ids.contains(obj.id)){objects.push(obj);}});return objects;}
Element.implement({show:function(){this.setStyle("display","");},hide:function(){this.setStyle("display","none");},toogle:function(){this.getStyle("display")=="none"?this.show():this.hide();},dump:function(){var structure='<pre>'+dump(this,1)+'</pre>';var newWindow=window.open('','Element Debug','height=600,width=600,scrollbars=yes');newWindow.document.write(structure);},fancyShow:function(){this.fade('in')},fancyHide:function(){this.fade('out');}});$getUrl=function(params){return"/"+params.join("/");}
$MONTHES=["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];var $prepareDate=function(date){return date.getDate()+" "+$MONTHES[date.getMonth()]+" "+date.getFullYear();};$HELP={OrderFormStep2:{BudgetField:function(){return"Общий бюджет работы ";}}};var $getTextByValue=function(value,object){var o=$getObjectByValue(value,object);if(o!=false){return o.text;}
return o;}
var $getObjectByValue=function(value,o){var result=false;object.each(function(item){if(item.value==value){result=item;}});return result;}
$E={ExDbUnique:"ExDbUnique",ExValidateFails:"ExValidateFails",ExAclDeny:"ExAclDeny",ExObjectNotFound:"ExObjectNotFound",ExUserNotFound:"ExUserNotFound",ExWorkNotFound:"ExWorkNotFound",ExInStoplist:"ExInStoplist",ExPayment:"ExPayment"};$TIMEOUT={SIGNUP_REDIRECT:5000,CONFIRMSIGNUP_REDIRECT:1000};$ROLES={CUSTOMER:1,AUTHOR:2};$CURRENCIES=[{value:1,text:"руб"}];$ERROR_CODES={CODES:[{name:"CRuleNotEmpty",code:100},{name:"CRuleEmail",code:110}],getRule:function(code){var rule=null;this.CODES.each(function(error){if(error.code==code){rule=error.name;}});return rule;}};