// Страница
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')) {
		$('objectRight').setStyle('width', ($('content').offsetWidth-340)+'px');
	}
	//$('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();
           }
       }
       doResize = true;
}

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.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 Json.Remote("/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';
          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;
    var showSizer = holder_id ? (holder_id.indexOf('objectMapTinyHolder') > -1 ? 0 : 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';
	}
};

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 = new qmPage();