var errormessages=new Array('','поле должно быть заполнено','необходимо указать число','необходимо указать целое число','цена в формате 1234567 или 1.234.567','год должен быть целым числом не менее 1850 и не более текущего года','номер дома в виде 123 или 123А (буквы русские) или 12/3', 'неправильный формат e-mail','номер телефона должен быть вида 8(1234)123456 или +71234567890','Ф.И.О. должно быть в виде Иванов Иван Иванович или Иванов И.И.','адрес сайта должен быть в виде http://www.site.ru или просто site.ru','жилая площадь должна быть не больше общей площади','площадь кухни должна быть не больше общей площади','этаж не должен быть больше этажности здания','слишком маленькая цена для данной категории объекта');

function show_leftnav_block(a) {
	blockk = $(a);
	var ret=-1;
	if(blockk) {
		if(blockk.hasClassName('drop')){ret=0;}
		else{ret=1;} 
		blockk.toggleClassName('drop');
		blockk.toggleClassName('dropped');
	}
	return ret;	
}

function showblock4(button,block) {
	$(button).toggleClassName('show');
	$(block).toggle();
}

function hideblock2(a) {
	$(a).hide();
}

function showblock2(a) {
	$(a).show();
}

function swapblock(a,b){
	$(a).show();
	$(b).hide();
}

function addvariant(n){
		$('chg'+n+'_obj').show();
		$('a'+n).hide();
	}
	
var object_to_delete_id = 0;
var crit_to_delete_id = 0;
function check_link(obj1,new_search,op_type) {
	var search=false;
	var id_area=$F("id_area");
	var id_city=$F("id_city");
	var id_aldermanry=$F("id_aldermanry");
	if(!id_city){id_city=-1;}
	if(!id_aldermanry){id_aldermanry=-1;} 
	if (!op_type){
		if($('noncomm').visible()){
			op_type=$('block1').down('p:not(.notsel)').id.substr(1);	
		}else{
			op_type=$('block4').down('p:not(.notsel)').id.substr(1)-6;
		} 
		if(op_type==1 || op_type==3 || op_type==6){ search=true;}
		if(op_type==1 || op_type==2){op_type=1;}
		else{
			if(op_type==3 || op_type==4){op_type=2;}
			else{if(op_type==5 || op_type==6){op_type=3;}}
		}		
	}else{search=true;}
	
// buy
		if (search){
			if(id_area<1){ messageBox(1);
			}else{
				if(!new_search){new_search=0;}
				load_buy_form(obj1,new_search,op_type);
			}	
		}else{
	//sell
			var ald=$('id_aldermanry').length;
			if(id_area<1 || id_city<1){messageBox(2);}
			if(ald>2 && id_aldermanry<1){messageBox(2);}
			else{
				if(id_city==6 && id_aldermanry<1){messageBox(11);}
				else{load_sell_form(obj1,op_type);}
			}
		}		
}

function change_select2(a) {
	if  (a == "org") {
		hideblock2('reg2');
		showblock2('reg1');
	}
	if (a == "phis") {
		hideblock2('reg1');
		showblock2('reg2');
	}
}

function change_select3(a) {
	if  (a == "urgency") {
		window.location="/cabinet/sales/?urgent=1";
	}
	if (a == "all") {
		window.location="/cabinet/sales/";
	}
}
function errclick(num,msg){
	if(msg){
		return function(){
			messageBox(0,'',1,msg);
		}	
	}else{
		return function(){
			messageBox(num,'',1);
		}
	}	
}
function setErrorSign(el,errtype,errormess){
	var errinfo; 
	errormess = errormess || errormessages[errtype];
	if(el){
		el=$(el);
		el.title=errormessages[errtype];
		if(el.next){
			errinfo=el.next('img.err-info',0);
			if (errinfo){
				errinfo.show();
				errinfo.title=errormess;
			}else{
				errinfo=el.insert({after:'<img src="/images/pics/error_q.gif" class="err-info" title="'+errormess+'">'} ).next('img.err-info',0);
			}
			el.addClassName('wrong');
			errinfo.onclick=errclick(errtype,errormess); 	
		}	
	}	
}
function hideErrorInfo(el){
	var errinfo;
	if(el){
		el=$(el);
		if(el.next){errinfo=el.next('img.err-info',0);}
		if (errinfo){
			errinfo.hide();
		}
	}
}
function isValidHouseNum (num)
{ return (/^[0-9]+((\/[0-9]+)|([А-Я](\/[0-9]+){0,1}))?$/i).test(num);}
function isValidEmail (email)
{ return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);}
function isValidPhone(phone)
{ return (/^(8|\+7)?\s*((\(\d{3,6}\))|(\d{3,6}))\s*(\d{2,3})\s*(-)?\s*(\d{2})\s*(-)?\s*(\d{2})\s*$/).test(phone);}
function isValidFIO(fio)
{ return (/^(([А-Я][а-я]+\s+[А-Я][.а-я]+\s*([А-Я][.а-я]+)?)|)$/).test(fio);}
function isValidUrl(url)
{ return (/^(((http:\/\/)?(www.)?[a-z0-9\.-]+(\.[a-z]{2,3})(\/)?)|)$/i).test(url);}
function check_form(frm_id,wnd){
	
	//return true;
	
	var frm = $(frm_id);
	var error = false;
	var errorcount = 0;
	var firsterror = null;
	var current_date = new Date();
	var str = new String;
	var elm,errinfo;
	
		if(frm){
			for (var i=0;i<frm.length;i++)
 			 {
 			 	errortype=0;
 			 	elm=frm.elements[i];
 			 	hideErrorInfo(elm);
 			 	if (elm.getAttribute("ignore")!='1'){
 			        var etype=elm.type;
			        var nulval=0;
			        if(elm.getAttribute("unsel")){nulval=elm.getAttribute("unsel");}
	 			 	if ((etype=='text') || (etype=='password') || (etype=='select-one') ||(etype=='textarea')){
	 			 		var v = $F($(elm));		
		 				 if((elm.getAttribute("req")=='1') && (v == nulval)){
							   error = true;
							   errortype=1;
						 }
		 				 if(elm.getAttribute("frm")=='n'){
							v = String(v).replace(',','.');		
							v = String(v).replace(/^(0)*/,'');				 
						    if(isNaN(Number(v)) || Number(v)<0){
							   error = true; errortype=2;
							}else{
								elm.value = v;
							}   
						 }	
		 				 if(elm.getAttribute("frm")=='N'){
						   v = String(v).replace(/^(0)*/,'');	
						   if (isNaN(Number(v)) || Number(v)<0 || (Math.floor(v)!=v)){
							   error = true; errortype=3;
							}else{
							   elm.value = v;
							}   
						 }		
		 				 if(elm.getAttribute("frm")=='p'){
						   v = String(v).replace(/^(0)*/,'');	
						   v = String(v).replace(/[\s,.]/g,'');
						   var cnt =0;
						   if (isNaN(Number(v)) || Number(v)<0 || (Math.floor(v)!=v)){
							   error = true; errortype=4;
							}else{
							   var v1 = '';
							   for (var r=v.length-1; r >=0;r--){
							   		cnt++;
									v1 = v.charAt(r) + v1;
									if (cnt == 3 && r>0){
									  cnt=0;
									  v1 = '.'+v1;
									}
							   }
							   elm.value = v1;
							}   
						 }	
						 					 
		 				 if((elm.getAttribute("frm")=='y') && (isNaN(Number(v)) || v < 1850 || v > current_date.getFullYear() || (Math.floor(v)!=v))){
						 	if(v!=''){
							   error = true; errortype=5; 
							   }
						 }	
		 				 if(elm.getAttribute("frm")=='h'){
						    var   str = (String(v).replace(/ |^([0])*/g,'')).toUpperCase();
						    if(!str || isValidHouseNum(str)) elm.value = str;
							else{ error=true; errortype=6;} 
						 }	
						 if(elm.getAttribute("frm")=='e'){
						 	error=!isValidEmail(v);	errortype=7;
						 }	
						 if(elm.getAttribute("frm")=='t'){
						 	if(!error) {error=!isValidPhone(v); errortype=8;};	
						 }	
						 if(elm.getAttribute("frm")=='f'){
						 	if(v!=''){error =  !isValidFIO(v); errortype=9;}	
						 }	
						 if(elm.getAttribute("frm")=='u'){
						 	error=!isValidUrl(v); errortype=10;	
						 }						 				 				  					 			 	
						 if (error){  
							   errorcount++;
							   if (errorcount == 1){firsterror = i;}
							   error = false;
							   if(errortype){
							   		setErrorSign(elm,errortype);
							   	}	
						 }	else {
							   $(elm).removeClassName('wrong');
						 }	 
	 			 }
	 		   } 
 			 }  
			if (errorcount == 0){
				var wrongElementId = '';
				var min_price=0;
				switch(frm_id){
					case 'sell_flat_form':
						var sq_full=$('sq_full');
						var sq_living=$('sq_living');
						var sq_kitchen=$('sq_kitchen');
						var floor=$('f_floor');
						var floorcnt=$('f_floors_count');
						if ((Number(sq_living.value) > Number(sq_full.value)) || (Number(sq_living.value) < 5)) {
							errorcount++;
							setErrorSign(sq_living,11);
							if(!wrongElementId){wrongElementId='sq_living';}
						}	
						if ((Number(sq_kitchen.value) >= Number(sq_full.value))) {
							errorcount++;
							setErrorSign(sq_kitchen,12);
							if(!wrongElementId){wrongElementId='sq_kitchen';}
						}	
						if(Number($F(floor))>Number($F(floorcnt))){
							errorcount++;
							setErrorSign(floor,13);
							floor.scrollTo();
						}	
						min_price=100000;											
						break;
					case 'sell_room_form':
						var floor=$('f_floor');
						var floorcnt=$('f_floors_count');					
						if(Number($F(floor))>Number($F(floorcnt))){
							errorcount++;
							setErrorSign(floor,13);
							floor.scrollTo();
						}	
						min_price=50000;				
						break;
					case 'sell_land_form':
							min_price=5000;
						break;	
					case 'rent_flat_form':
							var floor=$('f_floor');
							var floorcnt=$('f_floors_count');					
							if(Number($F(floor))>Number($F(floorcnt))){
								errorcount++;
								setErrorSign(floor,13);
								floor.scrollTo();
							}					
							min_price=1000;
						break;	
					case 'rent_room_form':
							var floor=$('f_floor');
							var floorcnt=$('f_floors_count');					
							if(Number($F(floor))>Number($F(floorcnt))){
								errorcount++;
								setErrorSign(floor,13);
								floor.scrollTo();
							}					
							min_price=500;
						break;	
					case 'rent_house_form':
							min_price=1000;
						break;
					case 'rent_garage_form':
							min_price=500;
						break;	
					case 'rent_garden_form':
							min_price=500;
						break;
					case 'sell_officeroom_form':
							if($F('form_deal_type')==2){min_price=50;}
						break;
					case 'sell_officebuilding_form':
							if($F('form_deal_type')==2){min_price=50;}
						break;	
					case 'sell_salesroom_form':
							if($F('form_deal_type')==2){min_price=50;}
						break;
					case 'sell_salesbuilding_form':
							if($F('form_deal_type')==2){min_price=50;}
						break;	
					case 'sell_kiosk_form':
							if($F('form_deal_type')==2){min_price=50;}
						break;																																																						
					default:
						min_price=5000;
						if($('form_deal_type')){
							if($F('form_deal_type')==2){min_price=50;}
						}	
			}
			var price=$('price');
			if(price){
				var price_value=Number(String(price.value).replace(/\./g,''));
				if (price_value < min_price) {
					errorcount++;
					setErrorSign(price,14);
					if(!wrongElementId){wrongElementId='price';}
				}	
			}						
		}
	} 
	if (errorcount > 0){
		if(firsterror){
	  		frm.elements[firsterror].focus();
	  		var oo=$(frm.elements[firsterror]).up('.partbody');
	  		if(oo){showpart(oo.id.substr(2));}
	  		$(frm.elements[firsterror]).scrollTo();
	  	}
	  	if(wrongElementId){
			$(wrongElementId).focus();	
			var oo=$(wrongElementId).up('.partbody');
	  		if(oo){showpart(oo.id.substr(2));}
	  		$(wrongElementId).scrollTo();
		}
	  	return false;
	}else{
		return true;
	}
}

function formatprice(x){
	   v = new String(x.value);
	   v=v.replace(/^(0)*/,'');	
	   v=v.replace(/\./g,'');
	   var cnt =0;
	   if (isNaN(Number(v)) || Number(v)<0 || (Math.floor(v)!=v)){
		   error = true;
		}else{	   
			   var v1 = '';
			   var cnt=0;
			   for (var r=v.length-1; r >=0;r--){
			   		cnt++;
					v1 = v.charAt(r) + v1;
					if (cnt == 3 && r>0){
					  cnt=0;
					  v1 = '.'+v1;
					}
			   }
			   x.value = v1;
	   }
}
function hide_wait(){
	$('wait').style.visibility="hidden";
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function show_wait(){
	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
	    //Non-IE
	    myWidth = window.innerWidth;
	    myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
	    //IE 6+ in 'standards compliant mode'
	    myWidth = document.documentElement.clientWidth;
	    myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
	    myWidth = document.body.clientWidth;
	    myHeight = document.body.clientHeight;
	}
	sc = getScrollXY();
	xc=Math.round((myWidth/2)-(54/2))+sc[0];
	yc=Math.round((myHeight/2)-(54/2))+sc[1];
	wdiv = $('wait');	
	wdiv.style.left = xc + "px";
	wdiv.style.top = yc + "px";
	wdiv.style.visibility="visible";
}

function delete_saved_objects(typ){
	var id_object = $F('del_object_id');
	if($('del_crit_id')) var id_crit = $F('del_crit_id');
	
	if(typ=='fav'){
		var url = "/del_from_fav.php";
		var pars = "id_object=" + id_object;
	} else if (typ=='distrib'){
		var url = "/del_distribution.php";
		var pars = "id_object=" + id_object +"&id_crit=" + id_crit;		
	} else {		
		var url = "/del_saved_objects.php";
		if (!id_object) id_object =0;
		if (!id_crit) id_crit =0;
		var fal = $('from_all_lists') ? $('from_all_lists').checked : 0;
		if (fal) id_crit =0; // если стоит признак "удалить изо всех списков"
		var pars = "id_object=" + id_object + "&id_crit=" + id_crit;
	}	
	var myAjax = new Ajax.Request(url, {
										method: "post",
										asynchronous: true,
										parameters: pars,
										onComplete: on_object_delete
									   }
								 );
	
}

function change_period(obj){
	var idx=obj.options[obj.selectedIndex].value;
	var lst = $('v33');
	if (lst){
		lst.innerHTML='';
		for(var i=0; i<OpArr[idx].length; i++){
			var o=document.createElement('option');
			o.text=OpArr[idx][i][1];
			o.value=OpArr[idx][i][0];
			lst.options.add(o);	
		}
	}
	
}

function change_period2(obj){
	var idx=obj.options[obj.selectedIndex].value;
	var lst1 = $('minv33');
	var lst2 = $('maxv33');
	if (lst1 && lst2){
		lst1.innerHTML=lst2.innerHTML='';
		for(var i=0; i<OpArr1[idx].length; i++){
			var o1=document.createElement('option');
			var o2=document.createElement('option');
			o1.text=o2.text=OpArr1[idx][i][1];
			o1.value=o2.value=OpArr1[idx][i][0];
			lst1.options.add(o1);	
			lst2.options.add(o2);
		}
	}
	
}
	
function menuselect(n,p){
	var o=$('step3');
	if(o){
		o.show();
	}		
	var blockL,blockR,m;
	if(n<7){
		blockL=$('block1');
		blockR=$('block3');
		m=n;
	}else{
		blockL=$('block4');
		blockR=$('block2');
		m=n-6;
	}
	blockR.className='';
	blockL.select('p').invoke('addClassName','notsel');
	if(n>6){
		blockL.select('p').invoke('addClassName','notsel');
		blockR.select('p').invoke('addClassName','notsel');
	}
	blockR.addClassName('bg'+m);
	if(n>6){
		$('m'+n).removeClassName('notsel');
		if(p==2 && n==9){n=8;}
		if(p==3 && n==8){n=7;}
		if(p==3 && n==10){n=8;}
		$('mm'+n).removeClassName('notsel');
	}else{
		$('m'+n).removeClassName('notsel');	
	}
	if(n==3 || n==4){
		$('m35','m36').invoke('hide');
	}else{
		$('m35','m36').invoke('show');	
	}
	$('buy_sell_data').hide();
}

function toggle_enabled(id_on,id_off){
	$(id_on).select('input').invoke('enable');
	$(id_off).select('input').invoke('disable');
	$(id_on).removeClassName('disabled');
	$(id_off).addClassName('disabled');
}

function reg_user(){
	var area=$F('id_area');
	var city=$F('id_city');
	var typ=$F('client_type');
	if(typ=='org'){
		var dv1=$('reg1');
		var dv2=$('reg2');
	}else{
		var dv1=$('reg2');
		var dv2=$('reg1');
	} 
	dv1.getElementsBySelector('input').invoke('writeAttribute','ignore','0');
	dv2.getElementsBySelector('input').invoke('writeAttribute','ignore','1');	
	if(check_form('reg_form')) $('reg_form').submit();
}
function user_update(){
	var area=$F('id_area');
	var city=$F('id_city');
	if(area>0 && city>0){
		if(check_form('reg_form')) $('reg_form').submit();
	}else{
		messageBox(6);
		if(area < 1) $('id_area').focus();
		else $('id_city').focus();
	}	
}

function checkClick(event){
	var id='';
	if($('area_menu').visible()) id='area_menu';
	else if($('city_menu').visible()) id='city_menu';
	if(id){
		var cx=Event.pointerX(event);
		var cy=Event.pointerY(event);
		var x1=$(id).cumulativeOffset().left;
		var y1=$(id).cumulativeOffset().top;
		var x2=$(id).getWidth()+x1;
		var y2=$(id).getHeight()+y1;
		if(cx<x1 || cx >x2 || cy<y1 || cy>y2) {new Effect.Fade(id,{delay:0,duration:0.2});};
	}	
}


function nextMonth(){
	var d=new Date();
	if((d.getMonth()+d.getFullYear()*12)-(cMonth+cYear*12)>2){
		cMonth+=1;
		if(cMonth>11){
			cMonth=0;
			cYear+=1;
		}
		drawCal();	
	}	
}
function prevMonth(){
	if((cMonth+cYear*12)>24102){
		cMonth-=1;
		if(cMonth<0){
			cMonth=cMonth+12;
			cYear-=1;
		}
		drawCal();	
	}	
}
function drawCal(){
var m,y,shift;
var span="";
var d=new Date();
var mm=d.getMonth();
var yy=d.getFullYear();	
var rightmonth=2; var leftmonth=-2;
	for(shift=leftmonth; shift<=rightmonth; shift++){
		m=cMonth+shift;
		y=cYear;
		if(m<0) {m=12+m; y--;}
		if(m>11) {m-=12; y++;}
		ys=String(y).substr(2); 
		ms=String(m+1);
		var past=false;
		if((y < yy) || (m <= mm && y <= yy)) past=true;
		
		if(ms.length<2) ms='0'+ms;
		if(m==currentMonth && y==currentYear) span+='<span class="drag curmonth">';
		else span+='<span class="drag">';
		if(past){
			span+='<a href="'+newslink+'archive/'+y+'/'+ms;
			span+=paramstr;
			span+='">';
		}
		span+=Monthes[m]+'`'+ys+'';
		if(past)span+='</a>';
		span +='</span>';
		if(shift<2) span +='<span class="bullet"> • </span>';
	}
	$('monthline').innerHTML=span;	
}

function toggle_menu(id,spanid){
    if(id=='city_menu') $('area_menu').hide();
    else $('city_menu').hide();
	if($(id).visible()) {new Effect.Fade(id,{delay:0,duration:0.2});}
	else {
		new Effect.Appear(id,{delay:0,duration:0.3});
		}	
}
//---- results ------
function return_to_results(){
	$('nav_form').action="/result/";	
	$('nav_form').submit();
}	
function mail_to_seller(o_id){
	$('nav_form').action="/cabinet/";	
	if($('mail_id_object')) $('mail_id_object').value=o_id;
	$('nav_form').submit();
}

function unregistred(){
	messageBox(7);
}
function firstpage(o){
	var SR = $("show_rows"); 
	var pg=$("page");
	if (SR && pg && o){
		pg.value=1;
		SR.value=$F(o);
	}	
	$('nav_form').submit();                  
}
function changePage(o){
	o=$('nav_form').select('input');
	$('nav_form').down('[name="page"]').value=1
	var url='';
	for(var i=0;i<o.length;i++){
		if(o[i].name=='params'){
			url+=o[i].value;
		}else{
			url+='&'+o[i].name+'='+o[i].value;
		}		
	}
	if(url){
		document.location=url;	
	} 
}

function showrows(rows){
	$('nav_form').down('[name="show_rows"]').value=rows;                  
	changePage();
}

function neworderby(order){
	$('nav_form').down('[name="order_by"]').value=order;
	changePage();
}
function show_detail(o_id,pos){
	$('detail_id').value=o_id;
	$('pos_in_result_set').value=pos;
	$('iform_detail').submit();
}
function messageBox(msg,pars,err,text,size){
	var height=200;
	var width=400;
	if(msg==13 || msg==16) width=500;
	var messheight = new Array(120,120,60,60,60,120,100,120,80,80,100,130,480,60,100,260,100);
	pars=pars || '';
	if(pars) pars='&'+pars;
	if (msg>0 && msg<=messheight.length) height=messheight[msg-1];
	if(err){width=400; height=80; pars+='&showerror=1'}; 
	if(text){pars+='&text='+text;}
	if(size){
		if(size.height){height=size.height;}
		if(size.width){width=size.width;}
	}	
    Shadowbox.open({
        title:      '',
        type:       'iframe',
        player:     'iframe',
        content:    '/messbox.php?id='+msg+pars,
        width:		width,
        height:     height
    },{animate:false,overlayOpacity:0.4,displayNav: false});	
}


function filter_description(){
	var o=$('f_description');
	if(o){
		var myAjax = new Ajax.Request('/filtertext.php', {
											method: "post",
											asynchronous: false,
											parameters: 'desc='+o.value,
											onComplete: description_filtered
										   }
									 );		
	}
}
function description_filtered(originalRequest){
	var o=$('f_description');
	if(o){	
		o.value=originalRequest.responseText;
		$('sb-body-inner').select('.f_desc').invoke('update',originalRequest.responseText);
	}	
}
function check_duplicate(){ 
	var url = "/check_duplicate.php";
	var pars='';
	var o,v,a_id, c_id,al_id;
	var pc=$('duplicate_warning');
	var a=$('id_area');
	var c=$('id_city');
	var ot=$('id_object_type');
	var al=$('id_aldermanry');
	if(a && c && al && ot){
		a_id=$F(a); c_id=$F(c); al_id=$F(al); ot_id=$F(ot);
	}
	if(a_id && c_id && al_id && ot){
		pars='id_object_type='+ot_id+'&id_area='+a_id+'&id_city='+c_id+'&id_aldermanry='+al_id;
		for(var i=0; i<cant_duplicated.length;i+=2){
			o=$(cant_duplicated[i+1]);
			if (o){
				v=$F(cant_duplicated[i+1]);
				if(!v){
					pars='';
					break;
				} 
				pars+='&check['+cant_duplicated[i]+']='+v;
			}	
		}
	}	
	if(pars){
		var myAjax = new Ajax.Request(url, {
											method: "post",
											asynchronous: false,
											parameters: pars,
											onComplete: inform_duplicate
										   }
									 );
	} else pc.hide();								 
}
function inform_duplicate(originalRequest){
	var pc=$('duplicate_warning');
	if(pc){
		if(originalRequest.responseText!=0){
			var data=originalRequest.responseText.split(",");
			var s="";
			for(var i=0; i<data.length; i++){
				s+='<a href="javascript:void(window.open(\'/detail/?id='+data[i]+'&empty=1\',\'aaa\',\'width=600,height=470,left=200,top=100,copyhistory=no,directories=no,menubar=no,resizable=yes,status=no,tollbar=no,scrollbars=no\'))">'+(i+1)+'. объект #'+data[i]+'</a><br>';
			}
			pc.innerHTML='Обратите внимание, что в базе данных имеются объекты с очень похожими параметрами, возможно это дубликаты.<br>'+s;
			pc.show();
		}else{pc.hide();}
	}	
}
function getpreview(form,dup){
	/*if(dup){dup=1;}else{dup=2;}
	test_form(form,1,dup);*/
	if(check_form(form)){
		preview(form,dup);
	}	
	
}
function preview(form,dup){
	if(dup>0) check_duplicate();
	var url = "/preview.php";
	var f=$(form);
	var field,txt,txt2,v,l,k,col,row,fid;
	var objtype=$F('id_object_type'), rowincol=20;
	if(objtype==7){rowincol=13;}
	if(objtype>9){rowincol=30;}
	col=row=1;
	if (f){ 
		$('sb-body-inner').style.backgroundColor='#5282BA';
		txt="";
		f.select('label').each(function(s, index) {
			fid='';
			l=s.innerHTML;
			if(s.hasClassName('inlineLabel')){
				downspan=s.down('span');
				if(downspan) l=downspan.innerHTML;
			} 
			v='';
			if(l=='hr') l='<hr>';
  			if(s.htmlFor){field=$(s.htmlFor);}
			else{field=null;}    
  			if(field && field.type!='file'){
	  			if(field){
	  				if(field.id=='f_description'){
	  					fid=' class="f_desc"';
	  				}
		  			if(field.type=='select-one'){
						v=field.options[field.selectedIndex].text;
					}else if(field.type=='checkbox') {
						v = (field.checked ? 'да' : 'нет');
						if(l.substring(l.length-1)!=':'){l=l+':'};
					}else if(field.type=='radio') {	
						l = (field.checked ? l : '');
						v = '';
					}else{
						v=$F(field);
					}
		  		}	
				k=(l||v);
	  			if(k){
	  				if(row>rowincol){
	  					row=0;
	  					col++;
	  					txt+='</div><div class="col">';
	  				}
	  				txt=txt+(l+' <span'+fid+'>'+v+'</span><br>');
	  				row++;
				}	
			}	  	  		
		});
		if(txt){
			txt='<div class="col">'+txt+"</div>";
			var b = $('preview_data');
			if(b){
				b.innerHTML=txt; 
			    Shadowbox.open({content:'#form_preview',player:'inline',width:330*col+20, height:500,animate:false,overlayOpacity:0.4,displayNav: false});
			}			
		}
		filter_description();
	}
}
	
function changeUrl(url){
	location.href=url;
}	

function alb_pg(pg){
	$('a_tabs').childElements().invoke('removeClassName','current');
	$('a_pages').childElements().invoke('removeClassName','current');
	if(pg==0){
		$('tab_aldermanry','alb_aldermanry').invoke('addClassName','current');
	}else if(pg==1){
		$('tab_street','alb_street').invoke('addClassName','current');
		}else if(pg==2){
			$('tab_house','alb_house').invoke('addClassName','current');
			$('alb_house_num').activate();
		}
}

function showalbum(withsave){
	var save=show_leftnav_block('album');
	if(withsave){
		if(save==0 || save==1){
			saveoptions({h_a:save})
		}
	}	
}
function saveoptions(opt){
	var url = "/saveoptions.php";
	var pars;
	for (var x in opt)	pars+=('&opt['+x+']='+opt[x]);
	if(pars) pars=pars.replace(/&/,'?');
	var myAjax = new Ajax.Request(url, {
										method: "post",
										asynchronous: true,
										parameters: pars,
										onComplete: on_options_saved
									   }
								 );		
}
function on_options_saved(){}
function over(o){
	$(o).addClassName("over");
}
function out(o){
	$(o).removeClassName("over");
}

function showpart(n){
	if(n){
		$('buy_sell_data').select('.partitem').invoke('removeClassName','current');
		$('buy_sell_data').select('#ptm'+n,'#pbm'+n).invoke('addClassName','current');
		var o=$('pb'+n);
		if(o){
			$('buy_sell_data').select('.partbody').invoke('hide');
			o.show();
		}
	}
}

function check_description(){
	var o = $('f_description');
	var cnt='нет';
	if(o){
		var c=o.value.length;
		if(c>2000){
			c=2000;
			o.value=o.value.substr(0,2000);
		}
		var o2=$('description_limit');
		if(o2){
			o2.innerHTML=c+'/2000';
		}
		if(c>0){cnt='есть';}
		$('buy_sell_data').select('.desc_cnt').invoke('update',cnt); 
	}
}
function count_fields(n,se){
	if(n){
		var cntall=0, cnt=0, percent=0, cl, nl;
		$('pb'+n).select('select','.ctrlHolder:not(.invisible) input:not([type="checkbox"]):not([type="radio"])').each(
			function(s) {
				if(s.getAttribute('nocnt')!="1"){
					nl=s.getAttribute('unsel') || 0;
					cntall++;
					if($F(s)!=nl){cnt++;}
					if(se==1) s.observe('change',function(){count_fields(n);});
				}	
			}
		)
		if(cntall>0){percent=Math.floor((cnt/cntall)*100);}
		$('buy_sell_data').select('.pb'+n+'cnt').invoke('update',percent+'%');
		if(percent<100){
			cl='tr_none';
			if(n==1){cl='tr_warn';}
		}
		else{cl='tr_ok';}
		$('ptm'+n).select('b').invoke('writeAttribute','className',cl);
		$('pbm'+n).select('b').invoke('writeAttribute','className',cl);
	}
}
function count_all_fields(se){se=se || 1;for(var n=1;n<4;n++){count_fields(n,se);}}
function addfotoinput(o){
	if(o.value){
		var v=$('pb3').select('.ctrlHolder:not(.invisible) .file[title="фото"]'), empty=0;
		for(var r=0; r<v.length; r++){if(!v[r].value){empty++}}
		if(empty<=1){
			var a=$('pb3').select('.ctrlHolder.invisible');
			if(a.length>0){
				a[0].removeClassName('invisible').down('input').observe('change',function(){count_fields(3)});
				count_fields(3);
			}
		}
	}	
}
function form_reset(){
	$('buy_sell_data').down('form').reset();
	count_all_fields(2);
}
function complaint_preview(){
	var to=$('id_reason'), t='';
	if($F(to)==-1){	t=$F('descr'); }
	else{
		t=to.options[to.selectedIndex].text;
	}
	$('reason').innerHTML=t;
	swapblock('pb2','pb1');
}
function reasonChange(){
	if($F('id_reason')==-1){$('descrblock').show();}
	else{$('descrblock').hide();}
}
function showallphoto(){
	var o=$('objfotos'),b,sfx;
	if(o){
		o.select('a').each(function(s) {
				b=s.href;
				db=s.getAttribute('db');
				if(db){sfx='_200.jpg'}else{sfx='_tn.jpg'}
				s.down('img').src=b.substr(0,b.length-4)+sfx;
				s.removeClassName('invisible');
			}
		);
		var o2=$('allphoto'); if(o2){o2.hide();}
	}
}
function showCustomStreet(o){
	if(o){
		var o1=$('customstreet'), l1=$('street_label');
		if(o1 && l1){
			if($F($(o))==0){
				o1.removeClassName('invisible');
				l1.htmlFor='f_customstreet';
			}else{
				o1.addClassName('invisible');
				l1.htmlFor='id_street';	
			}
		}	
	}	
}
function show_phone(id_object,id_client){
	var url = "/phone_click.php";
	var pars;
	if(id_object){pars= "id_object=" + id_object;}
	else{pars= "id_client=" + id_client;}
	var myAjax = new Ajax.Request(url, {
										method: "post",
										asynchronous: true,
										parameters: pars,
										onComplete: on_phone_get
									   }
								 );		
}
function on_phone_get(originalRequest){
	var data = originalRequest.responseText.split(',');
	if(data[0] && data[0]!='error'){
		var o = $('phonenum'+data[1]);
		if(o){
			o.innerHTML=data[0];
		}
	}	
}
function showhiddenctrl(a,b){
	var o=$(a);
	if(o){
		var v=o.select('.invisible'), cnt=v.length;
		if(cnt){
			v[0].removeClassName('invisible');
		}
		if(cnt==1){
			var o2=$(b);
			if(o2){o2.hide();}
		}
	}
}
function setFormData(formId,h){
	var o=$(formId);
	if(o){
		o.select('input','select','textarea').each(function(s) {
			var sn=s.name.replace(/[\[\]]/g,"$");
			var v=h.get(sn);
			//alert(s.name+','+v+'   ');
			if(v){
				if((s.type=="radio") || (s.type=="checkbox")){
					if (s.value==v){s.checked=true;}
				} else {s.value = v;}						
			}
		});
	}	
}
function rentoptchange(id){
	var c1=0, c2=0;
	if(id){
		var i=$(id), v=i.checked;
		if(i.hasClassName('grp')){
			i.up().select('input').each(function(s, index) {
				if(s!=i){s.checked=v;}
			})	
		}
	}	
	var lastgrp,cnt1=0,cnt2=0;
	var a=$('rentoptions').select('input:not(#rentopgroupall)');
	var al=a.length;
	a.each(function(s, index) {
		c1++;
		if(!s.hasClassName('grp')){
			if(!s.checked){cnt1++;}
			else{cnt2++;}
		}		
		if(s.hasClassName('grp') || index==(al-1)){
			if(lastgrp){
				if(cnt1>0){
					lastgrp.checked=0;
				}else{
					lastgrp.checked=1;
					c2++;
				}
				if(cnt2>0){
					lastgrp.next().addClassName('bold');
				}else{
					lastgrp.next().removeClassName('bold');	
				}				
			}
			lastgrp=s; cnt1=0; cnt2=0; 
		}
		if(s.checked){c2++;}
		if(s.hasClassName('egrp')){
			if(s.checked){
				s.next().addClassName('bold');
			}else{
				s.next().removeClassName('bold');	
			}			
		}
	}); 
	if(c1<=c2){
		$('rentopgroupall').checked=1;		
	}else{
		$('rentopgroupall').checked=0;	
	}	
}
function rentini(){
	rentoptchange();
	$('rentoptions').select('input').each(function(s, index) {
		s.observe('change',function(){rentoptchange(s.id)});
	})
}
function step2(n){
	var o=$('step3');
	if(o){
		o.show();
		if(n==1){swapblock('noncomm','comm'); $('tc').addClassName('trans'); $('tnc').removeClassName('trans');}
		else{swapblock('comm','noncomm');$('tnc').addClassName('trans'); $('tc').removeClassName('trans');}
	}	
}

function test_form(id_form,prev,dup){
	var f=$(id_form);
	if(f){
		var old_action=f.action;
		f.action='/testform.php';
		f.request({
	  			onComplete: test_result,
	  			parameters: {form_id:id_form,prev:prev,dup:dup}
		});
	  	f.action=old_action;	
	}		  	
}

function test_result(originalRequest){ 
	var errorlist=originalRequest.responseText.split('*#*');
	var id_form=errorlist[1];
	var ret=false;
	if(id_form){
		$(id_form).select('img.err-info').invoke('hide');
		$(id_form).select('input','textarea', 'select').invoke('removeClassName','wrong');
	}
	if(errorlist[0]=='ok'){
		ret=true;
		var prev=errorlist[2]; 
		if(prev>0){
			var dup=(prev>1?1:0);
			preview(id_form,dup);
		}
	}else{
		var errors=errorlist[2].split('@$@');
		for(var i=0;i<errors.length;i++){
			error=errors[i].split('%%');
			var elm=$(id_form).down('[name="'+error[0]+'"]');
			if(elm){
				setErrorSign(elm,0,error[1]);
			}
		}
	}
	return ret;
}
function check_n_post(id_form){
	var o=$(id_form);
	if(o){
		if(check_form(o)){o.submit();}
	}
}
function get_building(){
	var a=$F('id_area');
	var c=$F('id_city');
	if(a>0 && c>0){
		changeUrl('/building/?a='+a+'&c='+c);		
	}
}
/*--------------------------------------------------------------------------------------*/
function albumChange(originalRequest){
	var arr=originalRequest.responseText.split('@%@');
	if(arr[0]=='ok'){
		var album=$('album');
		album.innerHTML=arr[1];
		var script=album.down('script');
		if(script){
		    var script_tag = document.createElement('script');
		    script_tag.type = "text/javascript";
		    album.appendChild(script_tag);
			script_tag.src=script.src;
			
			/*
			album.insert({
			    bottom: new Element('script', {
			        type: 'text/javascript',
			        src: script.src
			    })
			});
			*/
		}
		
	}
}
/*--------------------------------------------------------------------------------------*/

function change_menu(area_changed){
	var c=$F('id_city');
	var o=$('leftnav_quick');
	var album=$('album');
	var a=$F('id_area');
	if(album){
		/*
		var url='/inc/album.php';
		var pars='c='+c+'&ajax=1';
		var myAjax = new Ajax.Request(url, {
											method: "post",
											asynchronous: false,
											parameters: pars,
											onComplete: albumChange
										   }
									 );
		*/							 			
	}
	if(o){
		if(area_changed || c<=0){
			o.hide();
		}else{
			var old=$F('quikarea');
			if(old==a+'_'+c){
				o.show();
			}else{
				o.hide();
				loadQuickData(a,c);
				/*loadAlbumData(a,c);*/
			}
		}
	}
	loadMenuData('rightbanners',a,c);
	loadMenuData('usefullinks',a,c);
	loadMenuData('specialoffers',a,c);
	loadMenuData('newoffers',a,c);	
}
function loadQuickData(a,c){
	if(a>0 && c>0){
		var url = "/inc/get_quick_data.php";
		var pars;
		pars= "id_area=" + a + '&id_city='+c;
		var myAjax = new Ajax.Request(url, {
											method: "post",
											asynchronous: true,
											parameters: pars,
											onComplete: onGetQuickData
										   }
									 );			
	}	
}
function onGetQuickData(originalRequest){
	var arr0,o,arr=originalRequest.responseText.split('*#*');
	var old=$('quikarea');
	if(arr[0]=='ok'){ 
		for(var i=3; i<arr.length; i++){ 
			arr0=arr[i].split(','); 
			o=$('quick'+arr0[0]+'_'+arr0[1]);
			if(o){ 
				o.innerHTML=arr0[2];
			}
		}
		if(old){old.value=arr[1]+'_'+arr[2];}
		var o1=$('leftnav_quick');
		if(o1){o1.show();}		 
	}
}
function loadAlbumData(a,c){
	if(a>0 && c>0){
		var url = "/return_photo.php";
		var pars;
		pars= "id_area=" + a + '&id_city='+c;
		var myAjax = new Ajax.Request(url, {
											method: "post",
											asynchronous: true,
											parameters: pars,
											onComplete: set_photo
										   }
									 );			
	}	
}

function loadMenuData(fnc,a,c){
	var url = "/inc/get_menu_data.php"; 
	var pars;
	a= a || 0;
	c = c || 0;
	pars= "fnc="+fnc+"&id_area=" + a + '&id_city='+c;
	var myAjax = new Ajax.Request(url, {
										method: "post",
										asynchronous: true,
										parameters: pars,
										onComplete: onGetMenuData
									   }
								 );			
}
function onGetMenuData(originalRequest){
	var arr0,o,arr=originalRequest.responseText.split('*#*');
	var o=$(arr[1]);
	if(arr[0]=='ok' && o){
		o.update(arr[2]);
		var o2=o.up('.menu3');
		if(o2){
			if(!arr[2] && arr[1]!='right_bunners'){o2.hide();}
			else{
				o2.show();
			}
		}
	}	
}
function showPassForm(){
	var l=$('showpasslink');
	var o=$('identify');
	var p=$('passdiv');
	if(l && o && p){
		p.innerHTML='<b>Новый пароль:</b> &nbsp;<input type="password" name="password1" id="ipassword1" value=""><br /><b>Подтвердить пароль:</b><input type="password" name="password2" id="ipassword2">';
		l.hide();
		o.show();
		
	}
}

function setupLinks(a,c,googleBanner){ 
	a= a || 0;
	c= c || 0;
	loadMenuData('rightbanners',a,c);
	loadMenuData('usefullinks',a,c);	
}
function map_initialize(id,mt,d){
	var o=$('geomap');
	if(o){
		if(d){d='&d=1';}else{d='';}
		o.innerHTML='<iframe src="/map/'+id+'/?nores=1&mt='+mt+d+'" frameborder="0" hspace="0" vspace="0" style="width:100%; height:100%;"></iframe>';
		o.show();
	}
}
function changemaptype(id,n,d){
	var o=$('mt'+n);
	if(d){d=true;}else{d=false;}
	if(o && o.hasClassName('dis')){
		$('mtg','mty').invoke('toggleClassName','dis');
		map_initialize(id,n,d);
	}
}
function setLngLat(id,lng,lat,o){
	var url = "/map/"+id+"/"; 
	var pars;
	if(o){o='&o=1';}else{o='';}
	pars= "lat="+lat+"&lng=" + lng+o;
	var myAjax = new Ajax.Request(url, {
										method: "post",
										asynchronous: true,
										parameters: pars
									   }
								 );		
}
