// Страница
function qmPage() {
  this.images = new Array();
  if(navigator.userAgent.toLowerCase().indexOf('msie 6')) {
	  window.onerror=null;
  }
}

qmPage.prototype.onload = function(first) {
	//var height = document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
	var height = $('content').offsetHeight; 
	var heightLeft = $('menu').offsetHeight;
	var heightRight = $('rightpanel').offsetHeight;
	var heightNew = false;
	if(height < heightLeft) {
		heightNew = heightLeft;
	}
	if(height < heightRight && heightRight > heightLeft) {
		heightNew = heightRight;
	}
	if(heightNew) {
		$('content').setStyle('height', heightNew + 'px');
	}
	
	if($('objectRight')) {
		var objectLeftWidth = $('objectLeft').getSize().x;
		//console.log(objectLeftWidth);
		$('objectRight').setStyle('width', ($('content').offsetWidth-objectLeftWidth-70)+'px');
		$('objectRight').setStyle('margin-left', '0px');
	}
	//$('bodypart').setStyle('top', (height-350)+'px');
	//$('bodypart').setStyle('display', 'block');
	   if(holder = document.getElementById('map')) {
		   var min = (document.documentElement.clientHeight - 177); // 158
		   var holder;
		   if(min < 650) {
			   min = 650;
		   }
		   if(min > document.body.clientHeight - 170) {
			   min = document.body.clientHeight - 170;
		   }
	   	   holder.style.height = min + 'px';
		   if(document.getElementById('map_listing')) {
			   document.getElementById('map_listing').style.height = (min) + 'px';
		   }
		   if(!mapShowed) {
			   mapShowed = true;
			   qmMapShow();
		   }
	   }
	   if(document.getElementById('mapCustomer')) {
		   if(!mapShowed) {
			   mapShowed = true;
			   qmMapShow();
		   }
	   }
	   if($('pageText')) {
		   $('pageText').setStyle('position', 'absolute').setStyle('top', $('botPosition').offsetTop + 'px');
		   $('botpart').setStyle('margin-top', ($('pageText').clientHeight + 10) + 'px');
	   }
	   doResize = true;
	   if(first) {
		   setTimeout('qmPage.updateDistances()', 2000);
		   var addthis_config = {
				   ui_language: "ru"
			}
			var jsNode = document.createElement('script');
			jsNode.type = 'text/javascript';
			jsNode.src = 'http://s7.addthis.com/js/250/addthis_widget.js#username=dmakeev';
			$('exchange').appendChild(jsNode);
	   }
}

qmPage.prototype.showHide = function(who, what) {
	var holder = document.getElementById(who);
		if(holder == null) {
			return false;
		}
		if(typeof what == 'undefined') {
			what = (holder.style.display == 'block' ? false : true);
		}
		holder.style.display = (what ? 'block' : 'none');
		return false;
}

qmPage.prototype.putFoundCount = function(all, showed) {
	if(!document.getElementById('mapinfo')) {
		return false;
	}
	document.getElementById('mapinfo').style.display = 'block';
	document.getElementById('map_objects_showed').innerHTML = showed-0; 
	document.getElementById('map_objects_all').innerHTML = all-0;
	if(all == showed) {
		document.getElementById('map_objects_all_show').style.display = 'none';
	}
	else {
		document.getElementById('map_objects_all_show').style.display = 'inline';
	}
}

qmPage.prototype.fillPaging = function(pages, current) {
	if(pages > 1) {
		var str = 'страница: ';
		var skipped = false;
		for(i=1; i<pages+1; i++) {
			if( (i>2) && ((i<current-1) || (i>current+1)) && (i<pages-2)) {
				if(!skipped) {
					str += ' &#8230; &#183; ';
					skipped = true;
				}
				continue;
			}
			skipped = false;
			if( i == current ) {
				str += '<span class="selected">' + i + '</span>';
			}
			else {
				str += '<span class="alterlink" onclick="qmMap.changePage('+i+')">' + i + '</span>';
			}
	/*
			if(i < (pages)) {
				str += ' &#183; ';
			}
	*/
		}
		document.getElementById('map_paging').style.display = 'block';
		document.getElementById('map_paging').innerHTML = str;
	}
	else {
		document.getElementById('map_paging').style.display = 'none';
		document.getElementById('map_paging').innerHTML = '';
	}
}

qmPage.prototype.setAncor = function(param, value) {
	// Если такой параметр уже есть...
	if((document.location.hash.indexOf('&'+param+'=') > -1) || (document.location.hash.indexOf('#'+param+'=') > -1)) {
		var re = new RegExp(param+'=[a-zA-Z0-9\-_\.]+');
		var found = document.location.hash.match(re);
		document.location.hash = document.location.hash.replace(found[0], param+'='+value);
	}
	else {
		if(document.location.hash.length > 0) {
			document.location.hash += '&';
		}
		document.location.hash += param+'='+value;
	}
}

qmPage.prototype.getAncor = function(param) {
	if((document.location.hash.indexOf('&'+param+'=') > -1) || (document.location.hash.indexOf('#'+param+'=') > -1)) {
		var re = new RegExp(param+'=([a-zA-Z0-9\-_\.]+)');
		var found = document.location.hash.match(re);
		if(found) {
			return found[1];
		}
		return false;
	}
}

qmPage.prototype.loaderShow = function() {
	document.getElementById('map_loader').style.display = 'block';
	document.getElementById('map_paging').style.display = 'none';
}

qmPage.prototype.loaderHide = function() {
	document.getElementById('map_loader').style.display = 'none';
	document.getElementById('map_paging').style.display = 'block';
}


qmPage.prototype.fillList = function(data, holder) {
	if(typeof(holder) == 'undefined') {
		var div = document.createElement('div');
		div.id = 'map_listing_element_'+data.id;
		div.className = 'map_listing_element';
	
		if(data.photo) {
			var img = document.createElement('img');
			img.src = data.photo.replace('/upload/', '/upload/resize/width/140/');
			img.title = data.photo_name;
			img.onclick = function() {
				qmMap.showInfo('', data.id);
				return false;
			}
			div.appendChild(img);
		}
		if(data.price) {
			txt = document.createElement('span');
			txt.innerHTML = 'Цена: ';
			div.appendChild(txt);

			txt = document.createElement('span');
			txt.innerHTML = data.price;
			txt.className = 'green'; 
			div.appendChild(txt);

			var br = document.createElement('br');
			div.appendChild(br);
		}
		
		var lnk = document.createElement('span');
		lnk.className = 'alterlink';
		lnk.innerHTML = data.name;
		lnk.onclick = function() {
			qmMap.showInfo('', data.id);
			return false;
		}
		div.appendChild(lnk);
		var br2 = document.createElement('br');
		div.appendChild(br2);
		if(data.comment) {
			var dsc = document.createTextNode(data.comment);
			div.appendChild(dsc);
		}
		var br4 = document.createElement('br');
		div.appendChild(br4);
		var lnk = document.createElement('a');
		lnk.href = '/object/' + data.id + '/'; 
		lnk.innerHTML = 'подробнее';
		div.appendChild(lnk);

		document.getElementById('map_listing').appendChild(div);
	}
	else {
		var div = document.createElement('div');
		div.id = 'map_listing_element_'+data.id;
		div.className = 'map_listing_element';
	
		var div_l = document.createElement('div');
		div_l.className = 'map_listing_element_left';
		if(data.photo) {
			var img = document.createElement('img');
			img.src = data.photo.replace('/upload/', '/upload/resize/width/80/');
			img.title = data.photo_name;
			var aimg = document.createElement('a');
			aimg.href = '/object/' + data.id + '/';
			aimg.appendChild(img);
			div_l.appendChild(aimg);
		}
		if(data.price) {
			txt = document.createElement('span');
			txt.innerHTML = data.price;
			txt.className = 'green';
			div_l.appendChild(txt);
		}
		if(data.company_logo || data.company_name) {
			var br = document.createElement('br');
			div_l.appendChild(br);
			if(data.company_logo) {
				var logo = document.createElement('img');
				logo.src = data.company_logo.replace('/upload/', '/upload/resize/max/80/');
				logo.title = data.company_name;
			}
			else {
				var logo = document.createTextNode(data.company_name);
			}
			var alogo = document.createElement('a');
			alogo.href = '/company/' + data.company_id + '/';
			alogo.appendChild(logo);
			div_l.appendChild(alogo);
		}
		div.appendChild(div_l);
		
		var div_r = document.createElement('div');
		div_r.className = 'map_listing_element_right';

		var lnk = document.createElement('a');
		lnk.href = '/object/' + data.id + '/';
		lnk.innerHTML = data.name;
		div_r.appendChild(lnk);

		var br2 = document.createElement('br');
		div_r.appendChild(br2);

		if(data.comment) {
			var dsc = document.createTextNode(data.comment);
			var sma = document.createElement('span');
			sma.appendChild(dsc);
			div_r.appendChild(sma);
		}

		var br4 = document.createElement('br');
		div_r.appendChild(br4);

		var lnk = document.createElement('a');
		lnk.href = '/object/' + data.id + '/';
		lnk.innerHTML = 'подробнее';
		div_r.appendChild(lnk);

		div.appendChild(div_r);

		return div;
	}
/*
	var div = document.createElement('div');
	div.id = 'map_listing_element_'+data.id;
	div.className = 'map_listing_element';

	var div_l = document.createElement('div');
	div_l.className = 'map_listing_element_left';
	if(data.photo) {
		var img = document.createElement('img');
		img.src = data.photo.replace('/upload/', '/upload/resize/width/80/');
		img.title = data.photo_name;
		img.alt = data.photo_name;
		if(typeof(holder) == 'undefined') {
			img.onclick = function() {
				qmMap.showInfo('', data.id);
				return false;
			}
			div_l.appendChild(img);
		}
		else {
			var aimg = document.createElement('a');
			aimg.href = '/object/' + data.id + '/';
			aimg.appendChild(img);
			div_l.appendChild(aimg);
		}
	}
	if(data.price) {
		txt = document.createElement('span');
		txt.innerHTML = data.price;
		txt.className = 'green';
		div_l.appendChild(txt);
	}
	div.appendChild(div_l);
	
	var div_r = document.createElement('div');
	div_r.className = 'map_listing_element_right';
/*
	var lnk = document.createElement('a');
	lnk.href = '/object/' + data.id + '/';
	lnk.innerHTML = data.name;
* /
	if(typeof(holder) == 'undefined') {	
		var lnk = document.createElement('span');
		lnk.className = 'alterlink';
		lnk.innerHTML = data.name;
		lnk.onclick = function() {
			qmMap.showInfo('', data.id);
			return false;
		}
	}
	else {
		var lnk = document.createElement('a');
		lnk.href = '/object/' + data.id + '/';
		lnk.innerHTML = data.name;
	}
	
	div_r.appendChild(lnk);
	var br2 = document.createElement('br');
	div_r.appendChild(br2);
	if(data.comment) {
		var dsc = document.createTextNode(data.comment);
		var sma = document.createElement('span');
		sma.appendChild(dsc);
		div_r.appendChild(sma);
	}
	var br4 = document.createElement('br');
	div_r.appendChild(br4);
	var lnk = document.createElement('a');
	lnk.href = '/object/' + data.id + '/';
	lnk.innerHTML = 'подробнее';
	div_r.appendChild(lnk);
	if(typeof holder  == 'undefined' || 1) {
/*
		var br3 = document.createElement('br');
		div_l.appendChild(br3);
		var more = document.createElement('a');
		more.href = '/object/' + data.id + '/';
		more.innerHTML = 'подробнее';
		div_l.appendChild(more);
* /
		if(typeof(holder) == 'undefined') {
			var br2 = document.createElement('br');
			div_l.appendChild(br2);

			var onMap = document.createElement('span');
			onMap.className = 'alterlink';
			onMap.style.lineHeight = '220%';
			onMap.innerHTML = 'на карте';
			onMap.onclick = function() {
				qmMap.showInfo('', data.id);
				return false;
			}
			div_l.appendChild(onMap);
		}
	}
	div.appendChild(div_r);
	if(typeof(holder) == 'undefined') {
		document.getElementById('map_listing').appendChild(div);
	}
	else {
		return div;
	}
*/
}

qmPage.prototype.clearList = function() {
	document.getElementById('map_listing').innerHTML = '';
}

qmPage.prototype.markFlat = function (who) {
	var divs = document.getElementById('map_listing').getElementsByTagName('div');
	for(i=0,j=divs.length; i<j; i++) {
		divs[i].className = divs[i].className.replace(' selected', '');
		if(divs[i].id == 'map_listing_element_'+who) {
			document.getElementById('map_listing').scrollTop = divs[i].offsetTop-document.getElementById('map_listing').offsetTop;
			divs[i].className += ' selected';
		}
	}
}

qmPage.prototype.searchAdvShow = function(what) {
	if(typeof what == 'undefined') {
	   what = (document.getElementById('searchAdvancedForm').style.display == 'none' ? true : false);
	}
	document.getElementById('searchAdvancedForm').style.display = (what == true ? 'block' : 'none');
	document.getElementById('searchForm').style.display = (what == true ? 'none' : 'block');
//	document.getElementById('searchAdvShowLink').innerHTML = (what == true ? 'краткий поиск' : 'расширенный поиск');
	if(what == true) {
		this.searchAdvChRegion(document.getElementById('searchAdvancedFormRegion').value);
	}
}

qmPage.prototype.searchAdvChRegion = function(what) {
	var holder = document.getElementById('searchAdvancedForm');
		if(holder == null) {
			holder = document.getElementById('searchClassicForm');
		}
		if(holder == null) {
			return false;
		}
		var divs = holder.getElementsByTagName('div');
		for(i=0,j=divs.length; i<j; i++) {
		if(divs[i].id == 'searchAdvancedFormArea_'+what) {
			divs[i].style.display = 'inline';
		}
		else if(divs[i].id.indexOf('searchAdvancedFormArea_') > -1) {
			divs[i].style.display = 'none';
		}
	}
		document.getElementById('searchAdvancedFormAreaTab').style.display = (what > 0 ? 'block' : 'none');
	//		document.getElementById('searchAdvancedFormAreaDiv1').style.display = (what > 0 ? 'block' : 'none');
	//		document.getElementById('searchAdvancedFormAreaDiv2').style.display = (what > 0 ? 'block' : 'none');
}

qmPage.prototype.searchAdvChWhat = function(what) {
	if(what == 'flat') {
		$('searchAdvRooms').setStyle('display', 'table-row');
	} else {
		$('searchAdvRooms').setStyle('display', 'none');
	}
}

qmPage.prototype.searchAdvSelectAll = function(holder) {
		if(typeof holder == 'undefined') return false;
	
	var els = holder.getElementsByTagName('input');
	for(i=0,j=els.length; i<j; i++) {
		if((els[i].id.indexOf('safRegion_') > -1) || (els[i].id.indexOf('safRooms_') > -1)) {
			els[i].checked = true;
		}
	}
}

qmPage.prototype.searchAdvSelectNone = function(holder) {
	if(typeof holder == 'undefined') return false;
	
	var els = holder.getElementsByTagName('input');
	for(i=0,j=els.length; i<j; i++) {
		if((els[i].id.indexOf('safRegion_') > -1) || (els[i].id.indexOf('safRooms_') > -1)) {
			els[i].checked = false;
		}
	}
}

qmPage.prototype.regImagine = function(what) {
		document.getElementById('rfLine1').style.display = (what ? 'none' : 'block');
}

qmPage.prototype.persChPage = function(who) {
	document.getElementById('persMenu').style.display = (typeof who != 'undefined' ? 'none' : 'block');
	document.getElementById('persNav').style.display  = (typeof who == 'undefined' ? 'none' : 'block');
		
	document.getElementById('persTopPers').className = (who == 'persTopPers' ? 'selected' : 'alterlink');
	if(document.getElementById('persTopCorp')) {
		document.getElementById('persTopCorp').className = (who == 'persTopCorp' ? 'selected' : 'alterlink');
	}
	if(document.getElementById('persTopObj')) {
		document.getElementById('persTopObj').className  = (who == 'persTopObj'  ? 'selected' : 'alterlink');
	}
	if(document.getElementById('persTopDev')) {
		document.getElementById('persTopDev').className  = (who == 'persTopDev'  ? 'selected' : 'alterlink');
	}
	if(document.getElementById('persTopMak')) {
		document.getElementById('persTopMak').className  = (who == 'persTopDev'  ? 'selected' : 'alterlink');
	}

	document.getElementById('persFormPers').className = (who == 'persTopPers' ? 'selected' : '');
	if(document.getElementById('persFormCorp')) {
		document.getElementById('persFormCorp').className = (who == 'persTopCorp' ? 'selected' : '');
	}
	if(document.getElementById('persTopObj')) {
		document.getElementById('persFormObj').className  = (who == 'persTopObj'  ? 'selected' : '');
	}
	if(document.getElementById('persTopDev')) {
		document.getElementById('persFormDev').className  = (who == 'persTopDev'  ? 'selected' : '');
	}
	if(document.getElementById('persTopMak')) {
		document.getElementById('persFormMak').className  = (who == 'persTopDev'  ? 'selected' : '');
	}
	if(document.getElementById('persTopNoMap')) {
		document.getElementById('persFormNoMap').className  = (who == 'persTopNoMap'  ? 'selected' : '');
	}
	if(document.getElementById('persTopNoRegion')) {
		document.getElementById('persFormNoRegion').className  = (who == 'persTopNoRegion'  ? 'selected' : '');
	}
	if(document.getElementById('persTopCodeList')) {
		document.getElementById('persFormCodeList').className  = (who == 'persTopCodeList'  ? 'selected' : '');
	}

		if(who == 'persTopPers') {
			document.location.hash = 'person'; 
		}
		else if(who == 'persTopCorp') {
			document.location.hash = 'company'; 
		}
	else if(who == 'persTopObj') {
		document.location.hash = 'objects'; 
	}
	else if(who == 'persTopDev') {
		document.location.hash = 'develop'; 
	}
	else if(who == 'persTopMak') {
		document.location.hash = 'makler'; 
	}
	else if(who == 'persTopNoMap') {
		document.location.hash = 'nomap'; 
	}
	else if(who == 'persTopNoRegion') {
		document.location.hash = 'noregion'; 
	}
	else if(who == 'persTopCodeList') {
		document.location.hash = 'codelist'; 
	}
}

qmPage.prototype.editType = function() {
	var part = document.getElementById('editPartId').value;
	if(part == 'sell') {
		var type = document.getElementById('editTypeIdSell').value;
	}
	else if(part == 'rent') {
		var type = document.getElementById('editTypeIdRent').value;
	}
	document.getElementById('editTabRooms').style.display = 'block';
	document.getElementById('editTabOwner').style.display = 'block';
	document.getElementById('editTabArea').style.display = 'block';
	document.getElementById('editTabAreaGrass').style.display = 'block';
	document.getElementById('editTabFloor').style.display = 'block';
	document.getElementById('editTabHousetype').style.display = 'block';
	document.getElementById('editTabFurniture').style.display = 'block';
	document.getElementById('editTabWasher').style.display = 'block';
	document.getElementById('editTabPhone').style.display = 'block';
	document.getElementById('editTabInternet').style.display = 'block';
	document.getElementById('editTabProvision').style.display = 'block';
	document.getElementById('editTabAppart').style.display = 'block';
   
	// Квартира
	if(type == 1) {
		document.getElementById('editTabAreaGrass').style.display = 'none';
		document.getElementById('editTabFurniture').style.display = 'none';
		document.getElementById('editTabWasher').style.display = 'none';
	}
	// Дом, вилла, усадьба, замок
	else if(type == 3 || type == 5 || type == 8 || type == 9) {
		document.getElementById('editTabRooms').style.display = 'none';
		document.getElementById('editTabOwner').style.display = 'none';
		document.getElementById('editTabFloor').style.display = 'none';
		document.getElementById('editTabFurniture').style.display = 'none';
		document.getElementById('editTabWasher').style.display = 'none';
		document.getElementById('editTabPhone').style.display = 'none';
		document.getElementById('editTabInternet').style.display = 'none';
	}
	// Участок
	else if(type == 7) {
		document.getElementById('editTabRooms').style.display = 'none';
		document.getElementById('editTabOwner').style.display = 'none';
		document.getElementById('editTabArea').style.display = 'none';
		document.getElementById('editTabFloor').style.display = 'none';
		document.getElementById('editTabHousetype').style.display = 'none';
		document.getElementById('editTabFurniture').style.display = 'none';
		document.getElementById('editTabWasher').style.display = 'none';
		document.getElementById('editTabPhone').style.display = 'none';
		document.getElementById('editTabInternet').style.display = 'none';
	}
	// Коммерческая недвижимость
	else if(type == 6) {
		document.getElementById('editTabRooms').style.display = 'none';
		document.getElementById('editTabOwner').style.display = 'none';
		document.getElementById('editTabArea').style.display = 'none';
		document.getElementById('editTabAreaGrass').style.display = 'none';
		document.getElementById('editTabFloor').style.display = 'none';
		document.getElementById('editTabHousetype').style.display = 'none';
		document.getElementById('editTabFurniture').style.display = 'none';
		document.getElementById('editTabWasher').style.display = 'none';
		document.getElementById('editTabPhone').style.display = 'none';
		document.getElementById('editTabInternet').style.display = 'none';
	}
	
	if(part == 'sell') {
		document.getElementById('editTabPhone').style.display = 'none';
		document.getElementById('editTabInternet').style.display = 'none';
		document.getElementById('editTypeIdSell').style.display = 'block';
		document.getElementById('editTypeIdRent').style.display = 'none';
		document.getElementById('editTabProvision').style.display = 'none';
		document.getElementById('editTabAppart').style.display = 'none';
		document.getElementById('editTypeIdSell').disabled = false;
		document.getElementById('editTypeIdRent').disabled =  true;
	}
	else if(part == 'rent') {
		document.getElementById('editTabOwner').style.display = 'none';
		document.getElementById('editTabHousetype').style.display = 'none';
		document.getElementById('editTypeIdSell').style.display = 'none';
		document.getElementById('editTypeIdRent').style.display = 'block';
		document.getElementById('editTypeIdSell').disabled =  true;
		document.getElementById('editTypeIdRent').disabled = false;
	}
}

qmPage.prototype.editMap = function(slim) {
	if(!slim) {
		document.getElementById('editMap').style.display = 'block';
	}
	if(slim) {
		document.getElementById('editPositionRegion').className = 'error';
		document.getElementById('editPositionRegion').innerHTML = 'не указано';
		document.getElementById('editPositionMap').className = 'error';
		document.getElementById('editPositionMap').innerHTML = 'не указано';
	}
	var address = document.getElementById('editAddressValue').value;
	if(address.length < 3 && slim) {
		return false;
	}
	if(document.getElementById('mapAddress').value.length < 1) {
		document.getElementById('mapAddress').value = address;
	}
	if(typeof gm != 'undefined') {
	if(document.getElementById('editAddressX').value > 0 || !slim) {
		gm.showAddress('', 0);
	}
	else {
		gm.showAddress('', 1);
	}
	}
	if(document.getElementById('mapRegion').value == 0) {
		this.editMapQuery();
	}
	else {
		this.fillRegion();
//		qmPage.editRegion(document.getElementById('mapRegion').value);
	}
	//addressParts
}

qmPage.prototype.hideMap = function(who) {
	document.getElementById('editMap').style.display = 'none';
}

qmPage.prototype.editMapQuery = function(address) {
	if(typeof address == 'undefined') {
		address = document.getElementById('mapAddress').value;
	}
	if(address.length < 1) {
		return false;
	}
	address = trim(address.replace('-', ', ').replace('+', ', ').replace(/\s+/, ' '));
	if(address.length < 2) {
		return false;
	}
	var jSonRequest = new Request({url: "/ajax.php?addressParts="+address, method: 'GET', encoding: 'UTF-8', onComplete: function(parts){
		var fool = false;
		if(parts[0].text[0]) {
			document.getElementById('mapRegion').value = parts[0].text[0];
		}
		if(parts[0].text[1]) {
			if(document.getElementById('mapOkres_'+parts[0].text[0])) {
				document.getElementById('mapOkres_'+parts[0].text[0]).value = parts[0].text[1];
			}
		}
		if(parts[0].text[2]) {
			if(document.getElementById('mapCity_'+parts[0].text[1])) {
				document.getElementById('mapCity_'+parts[0].text[1]).value = parts[0].text[2];
			}
		}
		if(parts[0].text[3]) {
			if(document.getElementById('mapDistrict_'+parts[0].text[2])) {
				document.getElementById('mapDistrict_'+parts[0].text[2]).value = parts[0].text[3];
			}
		}
		if(parts[0].text[4]) {
			if(document.getElementById('mapSubdistrict_'+ parts[0].text[3])) {
				document.getElementById('mapSubdistrict_'+ parts[0].text[3]).value = parts[0].text[4];
			}
		}
		qmPage.fillRegion();
	}}).send();
}


qmPage.prototype.fillRegion = function() {
		var fool = false;
		var holder;
		var region_id;
		var okres_id;
		var city_id;
		var district_id;
		// Регион
		if( region_id = document.getElementById('mapRegion').value) {
			qmPage.editRegion(region_id);
		}
		// Район
		if(holder = document.getElementById('mapDistrict_'+city_id)) {
			if(district_id = holder.value) {
				qmPage.editDistrict(district_id);
				fool = true;
			}
			else {
				qmPage.editDistrict(0);
			}
	
			// Город
			if(holder = document.getElementById('mapCity_'+okres_id)) {
				if(city_id = holder.value) {
					qmPage.editCity(okres_id);
					fool = true;
				}
				else {
					qmPage.editCity(0);
				}
				
		
				// Окрес
				if(holder = document.getElementById('mapOkres_'+ region_id)) {
					if(okres_id = holder.value) {
						qmPage.editOkres(okres_id);
						fool = true;
					}
					else {
						qmPage.editOkres(0);
					}
				}
			}
		}
		if(fool) {
			document.getElementById('editPositionRegion').className = 'green';
			document.getElementById('editPositionRegion').innerHTML = 'указано';
		}
		else {
			document.getElementById('editPositionRegion').className = 'gray';
			document.getElementById('editPositionRegion').innerHTML = 'частично';
		}
}

qmPage.prototype.editRegion = function(what) {
	var holder = document.getElementById('mapOkres_none');
	var sels = holder.parentNode.getElementsByTagName('select');
	var found = false;
	for(ii=0; ii<sels.length; ii++) {
		  if(sels[ii].id == 'mapOkres_'+what && what > 1) {
			sels[ii].style.display = 'block';
			sels[ii].disabled = false;
			this.editOkres(sels[ii].value);
			found = true;
		}
		else {
			sels[ii].style.display = 'none';
			sels[ii].disabled = true;
		} 
  }
  document.getElementById('editAddressOkres').style.display = (found ? 'block' : 'none');
  if(what == 1) {
	  this.editOkres(38);
  }
  else if(!found && what) {
	  this.editOkres(0);
  }
}

qmPage.prototype.editOkres = function(what) {
	var holder = document.getElementById('mapCity_none');
	var sels = holder.parentNode.getElementsByTagName('select');
	var found = false;
	for(jj=0; jj<sels.length; jj++) {
	  if(sels[jj].id == 'mapCity_'+what && what != 38) {
		  sels[jj].disabled = false;
		  sels[jj].style.display = 'block';
		  this.editCity(sels[jj].value);
		  found = true;
	  }
	  else {
		  sels[jj].disabled = true;
		  sels[jj].style.display = 'none';
	  }
	}
	document.getElementById('editAddressCity').style.display = (found ? 'block' : 'none');
  if(what == 38) {
	  this.editCity(5);
  }
  else if(!found && what) {
	  this.editCity(0);
  }
}

qmPage.prototype.editCity = function(what) {
  var holder = document.getElementById('mapDistrict_none');
	var sels = holder.parentNode.getElementsByTagName('select');
	var found = false;
	for(kk=0; kk<sels.length; kk++) {
	  if(sels[kk].id == 'mapDistrict_'+what) {
		  sels[kk].disabled = false;
		  sels[kk].style.display = 'block';
		  //alert(what + ' ' + kk + ' ' + sels[kk].value);
		  this.editDistrict(sels[kk].value);
		  found = true;
	  }
	  else {
		  sels[kk].disabled = true;
		  sels[kk].style.display = 'none';
	  }
	}
  document.getElementById('editAddressDistrict').style.display = (found ? 'block' : 'none');
	  if(!found && what) {
		  this.editDistrict(0);
	  }
}

qmPage.prototype.editDistrict = function(what) {
  var holder = document.getElementById('mapSubDistrict_none');
	var sels = holder.parentNode.getElementsByTagName('select');
	var found = false;
	for(ll=0; ll<sels.length; ll++) {
	  if(sels[ll].id == 'mapSubdistrict_'+what) {
		  sels[ll].disabled = false;
		  sels[ll].style.display = 'block';
		  found = true;
	  }
	  else {
		  sels[ll].disabled = true;
		  sels[ll].style.display = 'none';
	  }
	}
  document.getElementById('editAddressSubDistrict').style.display = (found ? 'block' : 'none');
}

qmPage.prototype.editPhoto = function() {
	document.getElementById('editPhoto').style.display = 'block';
}

qmPage.prototype.hidePhoto = function() {
	document.getElementById('editPhoto').style.display = 'none';
}

qmPage.prototype.searchFocus = function(who) {
	if(who.value == 'Найти...') who.value = '';
}

qmPage.prototype.searchBlur = function(who) {
	if(who.value == '') who.value = 'Найти...';
}

qmPage.prototype.photoChange = function(big, photo, resize) {
	//var nocache = new String(new Date().getTime()).substr(8,5);
	var holder = document.getElementById(big);
	var divHeight = 115;
	holder.onload = function() {
		holder.style.display = 'block';
		if(resize == 1) {
			holder.style.marginLeft = Math.round((550-holder.clientWidth)/2) + 'px';
			holder.parentNode.style.height = (holder.clientHeight + divHeight) + 'px';
		}
		else {
			holder.parentNode.style.height = (holder.clientHeight + divHeight) + 'px';
		}
	}
	holder.src = photo;//+'?nc='+nocache;
	//holder.style.display = 'none';
/*
	if (document.location.hash.indexOf('test') > -1) {
	  alert(holder.id.replace('objectPhotoBig_', ''));
	  if(holder) {
		  this.photoSliderResizeDo('objectPhotoSliderHuge_'+id);
	  }
	}
*/
}


qmPage.prototype.photoSliderResize = function(id) {
	var holder = document.getElementById('objectPhotoSlider_'+id);
	if(holder) {
		this.photoSliderResizeDo('objectPhotoSlider_'+id);
	}
	var holder = document.getElementById('objectPhotoSliderHuge_'+id);
	if(holder) {
		this.photoSliderResizeDo('objectPhotoSlider_'+id);
	}
}

qmPage.prototype.photoSliderResizeDo = function(id) {
	var offs = 0;
	var j = -1;
	var i;
	var margn = 0;
	var holder = document.getElementById(id);
	if(holder) {
		var els = holder.getElementsByTagName('img');
		for(i=0; i<els.length; i++) {
			if(els[i].offsetLeft + els[i].offsetWidth > offs) {
				offs = els[i].offsetLeft + els[i].offsetWidth;
			}
			j++;
		}
		if (offs > 0) {//
			if(navigator.appName.indexOf('Microsoft') > -1) {
				j = 0;
			}
			holder.style.width = (offs - (4 * j)) + "px";
		}
	}
}

qmPage.prototype.subscribeTest = function() {
	var error = false;
	var input = document.getElementById('safEmail');
	if(input && trim(input.value) != '') {
		document.getElementById('safEmailError').style.display = 'none';
		input.className = '';
	}
	else {
		document.getElementById('safEmailError').style.display = 'block';
		document.getElementById('safEmailError').innerHTML = 'Не указан e-mail';
		input.className = 'error_box';
		error = true;
	}

	var input = document.getElementById('safName');
	if(input && trim(input.value) != '') {
		document.getElementById('safNameError').style.display = 'none';
		input.className = '';
	}
	else {
		document.getElementById('safNameError').style.display = 'block';
		document.getElementById('safNameError').innerHTML = 'Не указано имя';
		input.className = 'error_box';
		error = true;
		input.focus();
	}
	return !error;
}

qmPage.prototype.objectMap = function(address, x, y, scale, holder_id) {
	var holder = holder_id ? holder_id : 'objectMapHolder';
	//if(!showSizer) showSizer = 0;
	if(holder_id.indexOf('objectMapTinyHolder') > -1 || holder_id.indexOf('objectMapHolder') > -1) {
		var showSizer = 0;
	} else {
		var showSizer = holder_id ? 1 : 0;
	}
	if(!document.getElementById(holder)) {
		return false;
	}
	qmPage.prepareIcons();
	dmMapScale = scale;
	if(typeof address != 'undefined' && address != '') {
		g = new GClientGeocoder();
		g.getLatLng(
		  address,
		  function(point, scale) {
			  document.location.hash = '1';
			  if(point == null) {
				  if(document.getElementById('objectMapSmall')) {
					  document.getElementById('objectMapSmall').style.display = 'none';
				  }
				  if(document.getElementById('objectMap')) {
					  document.getElementById('objectMap').style.display = 'none';
				  }
			  }
			  scale = (typeof scale == 'undefined' ?  dmMapScale : scale);
			  if(scale<1 || scale>19) {
				  scale =  dmMapScale;
			  }
			  var marker = new GMarker(point);//, {icon: qmPage.icons[0]}
			  var map = new GMap2(document.getElementById(holder));
			  if(showSizer) {
				  map.addControl(new GOverviewMapControl());
				  map.addControl(new GLargeMapControl());
				  map.addControl(new GMapTypeControl());
			  }
			  map.enableScrollWheelZoom();
			  map.clearOverlays();
			  map.setCenter(point, scale);
			  map.addOverlay(marker);
			  map.checkResize();
		  });
	}
	else {
		var point = new GLatLng(y, x);
		var marker = new GMarker(point); 
		var map = new GMap2(document.getElementById(holder));
		map.enableScrollWheelZoom();
		if(showSizer) {
			map.addControl(new GOverviewMapControl());
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
		}
		map.clearOverlays();
		map.setCenter(point, scale);
		map.addOverlay(marker);
		map.checkResize();
	}
}

qmPage.prototype.objectPanorama = function(address, x, y) {
	var point = new GLatLng(y, x);
	panoramaOptions = {latlng:point};
	var myPano = new GStreetviewPanorama($('objectPanoramaHolder'), panoramaOptions);
	GEvent.addListener(myPano, "error", function() {
		$('objectPanoramaHolder').style.display = 'none';
	});
}

qmPage.prototype.prepareIcons = function() {
	if(typeof this.icons == 'undefined') {
		this.icons = new Array();
	}
	if(typeof this.icons[0] == 'undefined' && 0) {
			this.icons[0] = new GIcon();
			this.icons[0].image  = 'http://gorod.cz/images/map_icon.png';
			this.icons[0].shadow = 'http://gorod.cz/images/map_icon_shadow.png';
			this.icons[0].iconSize = new GSize(28, 24);
			this.icons[0].shadowSize = new GSize(25, 12);
			this.icons[0].iconAnchor = new GPoint(25, 20);
			this.icons[0].infoWindowAnchor = new GPoint(5, 1);
	}
//	alert(this.icons); 

}

qmPage.prototype.objectMapBig = function(address, x, y, scale){
	document.getElementById('objectMapBig').style.width = (document.documentElement.clientWidth - 420) + 'px';
	document.getElementById('objectMapBig').style.height = (document.documentElement.clientHeight - 20) + 'px';
	document.getElementById('objectMapBigHolder').style.height = (document.documentElement.clientHeight - 60) + 'px';
	document.getElementById('objectMapBig').style.display = 'block';
	this.objectMap(address, x, y, scale, 'objectMapBigHolder');
//	document.location.hash = 'dmAncorMap';
//	dmMapBigShow();
}


qmPage.prototype.currencyPopupShow = function(e, isLeft){
	var x = 0, y = 0;
	if (!isLeft) isLeft = 0;
	if (!e) e = window.event;

	if (e.pageX || e.pageY)   {
		x = e.pageX;
		y = e.pageY;
	}
	else if (e.clientX || e.clientY) {
		x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
		y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
	}
	$('popupCurrency').style.left = (isLeft ? (x-270) : x) + 'px';
	$('popupCurrency').style.top  = (y + 20) + 'px';
	$('popupCurrency').style.display = 'block';
}

qmPage.prototype.currencyPopupChange = function(val){
	$('qmCurrencyChanger').value = val;
	if(typeof $('qmCurrencyChanger').parentNode.submit == 'undefined') {
		$('qmCurrencyChanger').parentNode.parentNode.submit();
	} else {
		$('qmCurrencyChanger').parentNode.submit();
	}
}

qmPage.prototype.switchObjectForms = function(form){
	$('callbackForm').style.display = (form == 'callbackForm' ? 'block' : 'none');
	$('tabCallbackComment').style.display = (form == 'callbackForm' ? 'block' : 'none');
	$('callbackLink').className = (form == 'callbackForm' ? 'alterlink' : '');
	
	$('requestForm').style.display = (form == 'requestForm' ? 'block' : 'none');
	$('tabRequestComment').style.display = (form == 'requestForm' ? 'block' : 'none');
	$('requestLink').className = (form == 'requestForm' ? 'alterlink' : '');
}

qmPage.prototype.preload = function(path){
	var img = new Image();
	img.src = path;
	this.images.push(img);
}

qmPage.prototype.categorySubSwitch = function(direction) {
	$$('li.CategorySub').setStyle('display', (direction ? 'list-item' : 'none'));
	$('categorySubSwitcher').setStyle('display', (direction ? 'none' : 'inline'))
	$('categorySubSwitcherOff').setStyle('display', (direction ? 'inline' : 'none'))
}

qmPage.prototype.categorySiblingSwitch = function(direction) {
	$$('li.CategorySibling').setStyle('display', (direction ? 'list-item' : 'none'));
	$('categorySiblingSwitcher').setStyle('display', (direction ? 'none' : 'inline'))
	$('categorySiblingSwitcherOff').setStyle('display', (direction ? 'inline' : 'none'))
}

qmPage.prototype.changeConsultingPrice = function(type) {
	if(type == 'methodSkype') {
		$('consultingPrice').innerHTML = '2000 крон / 3000 рублей / $100';
	} else {
		$('consultingPrice').innerHTML = '2500 крон / 3900 рублей / $130';
	}
};

qmPage.prototype.updateDistances = function(type) {
	var fileref=document.createElement('iframe')
	fileref.setAttribute('src', '/ways.php')
	fileref.style.width = '1px';
	fileref.style.height = '1px';
	fileref.style.border = 'none';
	$('botpart').appendChild(fileref);
}

qmPage.prototype.switchMapSearchRegions = function(region) {
	if(!region) {
		region = $('searchRegion').value;
	}
	$('searchDistrictsPraha').setStyle('display', (region == 1 ? 'block' : 'none'));
}

function trim (str) {
  str = str.replace(/^\s+/, '');
  for (var i = str.length - 1; i >= 0; i--) {
	if (/\S/.test(str.charAt(i))) {
	  str = str.substring(0, i + 1);
	  break;
	}
  }
  return str;
}

qmPage.prototype.overlayClick = function() {
  $('topswitcherOverlay').setStyle('display', 'none');
  if($('popupMenuSell')) {
    $('popupMenuSell').setStyle('display', 'none');
  }
  if($('popupMenuRent')) {
    $('popupMenuRent').setStyle('display', 'none');
  }
  if($('favoriteAdded')) {
    $('favoriteAdded').setStyle('display', 'none');
  }
  if($('popupMenuNew')) {
  	$('popupMenuNew').setStyle('display', 'none');
  }
}

qmPage.prototype.switchTab = function(what) {
  if(what == 'buy') {
    $('popupMenuSell').setStyle('display', 'block');
    $('topswitcherOverlay').setStyle('display', 'block');
  } else if(what == 'rent') {
    $('popupMenuRent').setStyle('display', 'block');
    $('topswitcherOverlay').setStyle('display', 'block');
  }
  
}

qmPage.prototype.favoritesRemove = function(id) {
	var jSonRequest = new Request({url: "/ajax.php?favoritesRemiove="+id, method: 'GET', encoding: 'UTF-8', onComplete: function(parts){
		document.location.href = document.location.href;
	}}).send();
}

qmPage.prototype.favoritesAdd = function(holder, id) {
	var jSonRequest = new Request({url: "/ajax.php?favoritesAdd="+id, method: 'GET', encoding: 'UTF-8', onComplete: function(parts){
		$(holder).setStyle('font-weight', 'bold').set('html', 'в избранном').set('href', '/favorites/');
	}}).send();
	$('topswitcherOverlay').setStyle('display', 'block');
	$('favoriteAdded').setStyle('display', 'block');
	$('favoriteAdded').setStyle('top', ($(holder).getPosition().y - 120) + 'px');
}

qmPage.prototype.favoritesClose = function() {
	$('favoriteAdded').setStyle('display', 'none');
	$('topswitcherOverlay').setStyle('display', 'none');
}

qmPage.prototype.mailerFill = function() {
	var str = new String;
	if($('checkActive').checked) {
		str += $('listActive').value;
	}
	if($('checkArchive').checked) {
		str += $('listArchive').value;
	}
	if($('checkSubscribers').checked) {
		str += $('listSubscribers').value;
	}
	if($('checkManual').checked) {
		str += $('listManual').value;
	}
	str = str.replace(/,\s*$/, '');
	$('emails').value = str;
	$('emailsCount').innerHTML = str.split(',').length;
}

qmPage = new qmPage();

var doResize = false;
window.addEvent('domready', function() {
	var mapShowed = false;
	qmPage.onload(1);
	doResize=true;
});
window.addEvent('load', function() {
	if(doResize) {
		doResize = false;
		qmPage.onload();
	}
});
window.addEvent('resize', function() {
	if(doResize) {
		doResize = false;
		qmPage.onload();
	}
});
