
jQuery.validator.addMethod('chk_lat',function(value,element){return this.optional(element)||!/[^a-z0-9_-]/i.test(value);},"Только латинские буквы, цифры, дефис и '_'");jQuery.validator.addMethod('chk_russian',function(value,element){return this.optional(element)||!/[^абвгдеёжзийклмнопрстуфхцчшщьыъэюя,\s\.\-]+/i.test(value);},'Только кириллица');jQuery.validator.addMethod('chk_empty',function(value,element){return this.optional(element)||(value!='&nbsp;');},'Пожалуйста заполните');function user_ready(){$('#i_search').autocomplete({source:function(request,response){$.ajax({url:'/ajax/?mode=search',dataType:"json",data:{q:request.term,type_search:$('input[name=type_search]:checked').val()},error:function(){},success:function(data){response($.map(data,function(c){return{label:c.item,value:c.item};}));}});},minLength:2});var tmp=$('#complete_func');if(tmp.length&&tmp.text()){eval(tmp.text());}}
$.blockUI.defaults.message='<div style="margin:2em;"><img src="/img/loader.gif" width="16" height="16"/> Подождите...</div>';$.blockUI.defaults.css={width:'250px',margin:'-50px 0 0 -125px',top:'50%',left:'50%',textAlign:'center',color:'#000',backgroundColor:'#fff',border:'1px solid #aaa'};$.blockUI.defaults.overlayCSS={backgroundColor:'#999',opacity:'0.5'};function is_numeric(v){return!isNaN(v);}
function is_null(v){return(v===null);}
function evalCompleteFunction(data){var tmp=$('#complete_func',data);if(tmp.length&&tmp.text()){eval(tmp.text());}}
function get_webroot(){return $('#webroot').html();}
function is_auth(){return($('#authed').length>0)?true:false;}
function is_admin(){return($('#is_admin').length>0)?true:false;}
function ajax_func(par){var defaults={need_block:true};$.extend(defaults,par);var param={};param.url=par.url;if($.isFunction(par.callback)){param.complete=par.callback;}else{var settings={need_unblock:true,need_callback:true};$.extend(settings,par.callback);param.complete=function(res,status){var data=res.responseText;if(status=="success"||status=="notmodified"){$('#'+settings.id).html(data);}
if(settings.need_unblock){$.unblockUI();}
if(settings.need_callback&&data){evalCompleteFunction(data);}}}
if(defaults.need_block){$.blockUI();}
$.ajax(param);}
function getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else if(document.documentElement&&document.documentElement.scrollHeight>document.documentElement.offsetHeight){xScroll=document.documentElement.scrollWidth;yScroll=document.documentElement.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}
return[pageWidth,pageHeight,windowWidth,windowHeight];}
function url_ajax(url){url+='';if(url){var i=url.indexOf('?');if(i>0){i=url.indexOf('xml=1');if(i==-1){url=url+'&xml=1';}}else{url=url+'?xml=1';}}
return url;}
function fill_div(url,where,need_chk_data){var data;if(need_chk_data==undefined){$need_chk_data=false;}
if(need_chk_data){data=$(':checked','#'+where);}
$.ajax({url:url,data:data,success:function(_data){$('#'+where).html(_data);},type:'GET'});}
function fill_chk_labels(type){var checked=$(':checked','#t_labels_'+type);var li=$('li','#ul_flt_'+type);var val,name;checked.each(function(index){val=$(this).val();name=$(this).parent().find('label').html();if($(li[index]).length){$(li[index]).addClass('filterChecked').find('input').val(val).attr('id','chk_'+type+'_'+val).attr('checked','checked');$(li[index]).find('label').attr('for','chk_'+type+'_'+val).html(name);}else{var tmp=$('<li class="filterChecked"></li>').appendTo('#ul_flt_'+type);$('<input type="checkbox" checked="checked"></input>').val(val).attr('onClick','chkFilterClick(this,"'+type+'")').attr('class','sun_chk_'+type).attr('name','chk_'+type+'[]').attr('id','chk_'+type+'_'+val).appendTo(tmp);$('<label for="chk_'+type+'_'+val+'"></label>').html(name).appendTo(tmp);}});var i;if(checked.length<li.length){for(i=checked.length;i<li.length;i++){if(i>9){$(li[i]).remove();}else{$(li[i]).removeClass('filterChecked').find('input').removeAttr('checked');}}}
if(checked.length){$('#chk_'+type+'_default').removeAttr('checked');}else{$('#chk_'+type+'_default').attr('checked','checked');}
$('#modal_window').remove();}
function sele_filter_address_changed(id_country){$.blockUI();var url=get_webroot()+'/json/get_regions/?id_country='+id_country;$('#id_region').removeOption(/./).addOption('','-- Фильтр по региону/области --').ajaxAddOption(url,{},false,function(){$('#id_region').show();$.unblockUI();});}
function apply_filter_address(){$.blockUI();var data={};data.chk_address=new Array();if($(':checked','#d_content').length){data.chk_address=new Array();$(':checked','#d_content').each(function(){data.chk_address.push($(this).val());});}
var id_country=$('#id_country').val();var id_region=$('#id_region').val();data.id_country=id_country;if(id_region){data.id_region=id_region;}
var url=get_webroot()+'/ajax/mode,get_labels/?type=address';$.ajax({url:url,data:data,type:'GET',complete:function(res,status){if(status=="success"||status=="notmodified"){var data=res.responseText;if(data){$('#div_labels_address').replaceWith(data);$('#d_modal_win').css({'top':Math.floor(($(window).height()-$('#d_modal_win').height())/2)});$('#modalBg').css({height:$(window).height()});}}
$.unblockUI();}});}
function fill_main(url,data){if(url==undefined){url=get_webroot()+'/';}
url=url_ajax(url);var param={url:url,complete:fill_main_done};if(typeof(data)!='undefined'){param.data=data;param.type='POST';}
$.blockUI();param.complete=fill_main_done;$.ajax(param);}
function fill_main_done(res,status){$.unblockUI();if(status=="success"||status=="notmodified"){var data=res.responseText;if(data){if(/Redirect: (.*)/i.exec(data)){var url=RegExp.$1;document.location=url;}else{$('#main_content').html(data);evalCompleteFunction(data);}}}}
function Open(url,name,width,height){var wPopup;if(height){wPopup=window.open(url,name,'width='+width+',height='+height+',status=no,toolbar=no,menubar=no,resizable=yes,scrollbars=yes');}else{wPopup=window.open(url,name,'width='+width+',status=no,toolbar=no,menubar=no,resizable=yes,scrollbars=yes');}
if(wPopup){wPopup.focus();}}
function Open1(url,name,width,height){var wPopup;if(height){wPopup=window.open(url,name,'width='+width+',height='+height+',status=no,toolbar=no,menubar=yes,resizable=yes,scrollbars=yes');}else{wPopup=window.open(url,name,'width='+width+',status=no,toolbar=no,menubar=yes,resizable=yes,scrollbars=yes');}
wPopup.focus();}
function g(url){if(opener){if(opener.closed)
window.open(url,"");else
opener.location.href=url;self.close();return false;}
return true;}
function default_complete(param){}
function filter_apply(){$('#form_work_filter').submit();}
function validateLoginForm(mode,id){var options={beforeSubmit:function(){$.blockUI();return true;},complete:function(res,status){$.unblockUI();if(status=="success"||status=="notmodified"){var data=res.responseText;var url='/';if(/Redirect: (.*)/i.exec(data)){url=RegExp.$1;}
document.location=url;}}};var param={submitHandler:function(form){$(form).ajaxSubmit(options);},focusCleanup:true};if(mode=='normal'){param.rules={login:'required',password:'required'};param.errorClass='sunbeads_err';param.errorElement='ins';param.focusCleanup=true;param.focusInvalid=false;param.onkeyup=false;}
$('#'+id).validate(param);}
function getKey(node){if(node.attr('id')){return node.attr('id').replace(/\w+_/,'');}else{return undefined;}};function get_filter_data(){var data=new Object();$('tr','#filter_table tbody').each(function(i){$('select',$(this)).each(function(j){data[this.name]=this.value;});$('input',$(this)).each(function(j){data[this.name]=this.value;});});return data;}
function captcha_reload(){tmp=new Date();ajax_func({url:get_webroot()+'/captcha/html/?'+tmp.getTime(),need_block:false,callback:function(res,status){if(status=="success"||status=="notmodified"){$('#captchaimage').html(res.responseText);}}});}
function show_big_image(par){var g_code=0;var width=0;var height=0;if(/i_(\d+)_(\d+)_(\d+)/.exec(par)){g_code=parseInt(RegExp.$1);width=parseInt(RegExp.$2);height=parseInt(RegExp.$3);Open(get_webroot()+'/show_goody,'+g_code+'/','image_big_'+g_code,width+50,height+50);}}
function change_filter(val){var str=location.href;var newstr;var re=/\?status=(.*)/;var repl="\?status="+val;if(val==0){newstr=str.replace(re,"");}else{if(re.test(str)){newstr=str.replace(re,repl);}else{newstr=str+"?status="+val;}}
location.href=newstr;}
function complete_modal(res,status){if(status=="success"||status=="notmodified"){if(!res.responseXML){alert(res.responseText);return;}
var xmldoc=res.responseXML;if(xmldoc){var error=$(xmldoc).find('error');if(error.length){$.unblockUI();alert(error.text());return;}
var result=xmldoc.getElementsByTagName('result').item(0);if(result){var node_id=result.getAttribute('node_id');var ajax_url=result.getAttribute('ajax_url');var complete_func=result.getAttribute('complete_func');var flag_open=result.getAttribute('keep_open');if(node_id=='nothing'){if(!flag_open&&$('#target'))$('#target').dialog('close').dialog('destroy').remove();$.unblockUI();}else{ajax_func({url:ajax_url,need_block:false,callback:function(res1,status1){$.unblockUI();var data=res1.responseText;if(status1=="success"||status1=="notmodified"){$('#'+node_id).replaceWith(data);if(complete_func){eval(complete_func);}else{default_complete({where:node_id,need_rand_image:false});}}
if(!flag_open&&$('#target'))$('#target').dialog('close').dialog('destroy').remove();}});}}}else{$.unblockUI();}}else{$.unblockUI();}}
function get_ww(){var frameWidth=800;if(self.innerWidth)
frameWidth=self.innerWidth;else if(document.documentElement&&document.documentElement.clientWidth)
frameWidth=document.documentElement.clientWidth;else if(document.body)
frameWidth=document.body.clientWidth;return frameWidth;}
function get_wh(){var frameHeight=600;if(self.innerHeight)
frameHeight=self.innerHeight;else if(document.documentElement&&document.documentElement.clientHeight)
frameHeight=document.documentElement.clientHeight;else if(document.body)
frameHeight=document.body.clientHeight;return frameHeight;}
function chkFilterDefaultClk(obj,type){if(obj.checked){$(obj).siblings('label').addClass('default_chk');$(':checkbox.sun_chk_'+type).each(function(){$(this).removeAttr('checked');this.parentNode.className='';});}else{$(obj).siblings('label').removeClass('default_chk');}}
function chkFilterClick(obj,type){if(obj.checked){$('#chk_'+type+'_default').removeAttr('checked').siblings('label').removeClass('default_chk');obj.parentNode.className='filterChecked';}else{obj.parentNode.className='';var tmp=$(':checked','#ul_flt_'+type).length;if(tmp==0){$('#chk_'+type+'_default').attr('checked',true).siblings('label').addClass('default_chk');}}}
function reg_chkTypeClick(obj){if(obj.id=='utype1'){obj.parentNode.className=obj.checked?'radio1':'radio2';$('#s_type_legend').text('Мастер может выставлять работы на продажу.');$('#id_region').addClass('required');$('#id_city').addClass('required');$('#tr_labels_work').show();$('#tr_login').show();}else{obj.parentNode.className=obj.checked?'radio2':'radio1';$('#s_type_legend').text('Покупатель может приобретать работы мастеров.');$('#id_region').removeClass('required');$('#id_city').removeClass('required');$('#tr_labels_work').hide();$('#tr_login').hide();}}
function open_filter_dialog(param){var settings={type:'material',mode:'checkbox',title:'SUNBEADS.RU',button:'Выбрать',button_func:'function(){}',mode_type:'catalog',need_non_zero:1,need_filter:1,};$.extend(settings,param);switch(settings.type){case'address':settings.title='Список городов';break;case'material':settings.title='Метки. Материалы';break;case'keyword':settings.title='Ключевые слова';break;case'work':settings.title='Виды творчества';break;}
var data={};var category_id='';var masterclass_id='';var articles_id='';if(settings.mode=='checkbox'){data=$(':checked','#ul_flt_'+settings.type);settings.button_func='fill_chk_labels("'+settings.type+'")';category_id=$('#i_category_id').val();masterclass_id=$('#i_masterclass_id').val();articles_id=$('#i_articles_id').val();}else if(settings.mode=='input'){var a_tmp=[];$('.i_'+settings.type,'#td_labels_'+settings.type).each(function(){a_tmp.push(this.value);});data[settings.type]=a_tmp;if(settings.mode_type=='catalog'&&settings.need_filter){category_id=$('select.category_select:last').val();}else if(settings.mode_type=='masterclass'&&settings.need_filter){masterclass_id=$('#masterclass_id').val();}else if(settings.mode_type=='articles'&&settings.need_filter){articles_id=$('#articles_id').val();}
settings.button_func='fill_input_labels("'+settings.type+'")';}
var url=get_webroot()+'/ajax/mode,get_labels/?type='+settings.type+'&filter_mode='+settings.mode+'&need_non_zero='+settings.need_non_zero;if(category_id){url+='&category_id='+category_id;}
if(masterclass_id){url+='&masterclass_id='+masterclass_id;}
if(articles_id){url+='&articles_id='+articles_id;}
url+='&mode_type='+settings.mode_type;$.blockUI();$.ajax({url:url,data:data,type:'GET',complete:function(res,status){$.unblockUI();if(status=="success"||status=="notmodified"){var _data=res.responseText;if(_data){$.tmpl($('#template_modal_window'),{title:settings.title,button:settings.button,button_func:settings.button_func,type:settings.type}).appendTo('body').show();$('#content_window').replaceWith(_data);$('#d_modal_win').css({'top':Math.floor(($(window).height()-$('#d_modal_win').height())/2)});$('#modalBg').css({height:$(window).height()});}}}});}
function fill_input_labels(type){var value;var tmp;var checked=$(':checked:lt(10)','#t_labels_'+type);var inputs=$('.i_'+type,'#td_labels_'+type);checked.each(function(index){value=$(this).parent().find('label').text();tmp=inputs.eq(index);if(tmp.length){tmp.val(value);}else{addDivInputField(type,value);}});$('#modal_window').remove();}
function click_buy_button(g_id){var redirect=Base64.encode(String(document.location));var url=get_webroot()+'/gallery/?mode=buy&work_id='+g_id+'&redirect='+redirect;document.location=url;}
function history_toggle(mode){var $a_more=$('#a_history_more');if(mode=='show'){$('#d_works_history').show();$a_more.hide();}else if(mode=='hide'){$('#d_works_history').hide();$a_more.show();}}
function onChangeSearchType(obj,id){obj.parentNode.parentNode.parentNode.className='searchTypes show'+id;}
function fillUserMenuXML(xmldoc){if(xmldoc){var $tmp=$('messages',xmldoc);if($tmp.length){var $span=$('#s_msg_count');if(!$span.length){$span=$('<span></span>').prop('id','s_msg_count');$("a:contains('Сообщения')",'#div_user_menu').after($span);}
var $q=$tmp.eq(0);var unreaded=parseInt($q.attr('unreaded'));var total=parseInt($q.attr('total'));var html='';if(unreaded){html='&nbsp;<img src="/img/icon-mail.png"/>&nbsp;<span>'+unreaded+'</span>';}else{$('#a_user_profile').removeClass('author_msg').addClass('author').prop('href','/user/works/');}
html+='&nbsp;('+total+')';$span.html(html);}
var $tmp2=$('replies',xmldoc);if($tmp2.length){var $span2=$('#s_reply_count');if(!$span2.length){$span2=$('<span></span>').prop('id','s_reply_count');$("a:contains('Отзывы')",'#div_user_menu').after($span2);}
var $q2=$tmp2.eq(0);var unreaded2=parseInt($q2.attr('unreaded'));var total2=parseInt($q2.attr('total'));var html2='';if(unreaded2){html2='&nbsp;<img src="/img/icon-star.png"/>&nbsp;<span>'+unreaded2+'</span>';}
html2+='&nbsp;('+total2+')';$span2.html(html2);}}}
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(input){var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=Base64._utf8_encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}
output=output+
this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2)+
this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4);}
return output;},decode:function(input){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=this._keyStr.indexOf(input.charAt(i++));enc2=this._keyStr.indexOf(input.charAt(i++));enc3=this._keyStr.indexOf(input.charAt(i++));enc4=this._keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=Base64._utf8_decode(output);return output;},_utf8_encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;}}
$.getOrCreateDialog=function(id){$box=$('#'+id);if(!$box.length){$box=$('<div id="'+id+'"><p></p></div>').hide().appendTo('body');}
return $box;};function alert(message,options){var defaults={modal:true,resizable:false,buttons:{Ok:function(){$(this).dialog('close');}},show:'fade',hide:'fade',minHeight:50,dialogClass:'modal-shadow'};$alert=$.getOrCreateDialog('alert');$("p",$alert).html(message);$alert.dialog($.extend({},defaults,options));}
