function Id( id ) {
	return document.getElementById( id );
}

var w3cDOM = (typeof document.getElementById != "undefined" && typeof document.createElement != "undefined") ? true : false;

// Fake window.onLoad.
var initJS = function() {};

/* remove by Cheshirsky Code
function listenEvent (target, type, listener) {
    if( target==window && type=='load' ) {
    	var tmp = initJS;
    	initJS = function() {tmp(); listener();};
    } else if (typeof target.addEventListener != "undefined") {
        target.addEventListener (type, listener, false);
    } else if (typeof target.attachEvent != "undefined") {
        target.attachEvent ("on" + type, listener);
    }
}

function unlistenEvent (target, type, listener) {
    if (typeof target.removeEventListener != "undefined") {
        target.removeEventListener (type, listener, false);
    } else if (typeof target.detachEvent != "undefined") {
        target.detachEvent ("on" + type, listener);
    }
}
*/

window.reEmail = /^([\w\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/i;

function setCookie(cookieName, cookieValue, nDays, sPath) {
    var today = new Date();
    var expire = new Date();
    if (nDays == null || nDays == 0) nDays = 1;
    if (sPath == null) sPath = '/';
    expire.setTime(today.getTime() + 3600000 * 24 * nDays);
    document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + expire.toGMTString() + ';path=' + sPath;
}

function bookmark (URI, title) {
    if (typeof window.external != "undefined" && navigator.userAgent.indexOf("MSIE") != -1) {
		window.external.AddFavorite (URI, title);
    } else if (typeof window.opera != "undefined") {
        alert ("Press [Ctrl] + [T] to bookmark this page.");
    } else {
        alert ("Press [Ctrl] + [D] to bookmark this page.");
    }
}

function homePage( uri ) {
	if( window.external ) {
		document.body.style.behavior = "url(#default#homepage)";
    	document.body.setHomePage(uri);
 	} else {
		alert("Your browser does not support setting the home page automatically.");
	}
}

function showHideFullBlock(){
	if(document.getElementById('smallBlock').style.display=='block'){
		document.getElementById('smallBlock').style.display='none';
	}else{
		document.getElementById('smallBlock').style.display='block';
	}
	if(document.getElementById('fullBlock').style.display=='block'){
		document.getElementById('fullBlock').style.display='none';
	}else{
		document.getElementById('fullBlock').style.display='block';
	}
}

function toggle(el, display) {
    if (typeof(el) == 'string') el = $(el);
    el.style.display = (el.style.display == 'none') ? '' : 'none';
}

function filterInteger(event) {
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    return ((keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
}

function filterText_6(event){
	var value;
	try {
		value = event.target.value;
	} catch ( e ) {
		value = event.srcElement.value;
	}
    var pos = value.length;
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    if (keyCode == 8) return true;
    if(pos<6) return true;
    else return false;
}

function filterFloat4_2(event){
    var value;
	try {
		value = event.target.value;
	} catch ( e ) {
		value = event.srcElement.value;
	}
    var pos = value.length;
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    if (keyCode == 8) return true;
    if( pos < 1 ) {
		return ((keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
	}

	if( pos < 4 && value.indexOf( "," ) == -1 ) {
		return ((keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58) || (keyCode == 44));
	}

    if( pos == 4 && value.indexOf( "," ) == -1 ) {
		return (keyCode == 44);
	}
	
	if( value.indexOf( "," ) != -1 && pos < value.indexOf( "," ) + 3 ) {
		return ((keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
	}

	return false;
    if(pos>4 && pos<7) return ((keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
    else return false;
}

function filterInteger_2(event){
    var value;
	try {
		value = event.target.value;
	} catch ( e ) {
		value = event.srcElement.value;
	}
    var pos = value.length;
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    if (keyCode == 8) return true;
    if(pos==0) return ((keyCode == 0) ||(keyCode == 8) || (keyCode == 9) || (keyCode > 48 && keyCode < 58));
    if(pos<2) return ((keyCode == 0) ||(keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
    else return false;
}

function filterInteger_4(event){
    var value;
	try {
		value = event.target.value;
	} catch ( e ) {
		value = event.srcElement.value;
	}
    var pos = value.length;
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    if (keyCode == 8) return true;
    if(pos<4) return ((keyCode == 0) ||(keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
    else return false;
}

function filterInteger_1_9(event){
    var value;
	try {
		value = event.target.value;
	} catch ( e ) {
		value = event.srcElement.value;
	}
	var pos = value.length;
	var keyCode = (event.charCode) ? event.charCode : event.keyCode;
	return pos == 0 && ( keyCode > 48 && keyCode < 58 ) || keyCode == 8 || keyCode == 9;
}

function filterPhone(event) {
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    return ((keyCode == 40) || (keyCode == 41) || (keyCode == 43) || (keyCode == 45) || (keyCode == 46) || (keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode == 37) || (keyCode == 39) || (keyCode > 47 && keyCode < 58));
}

function filterIcq(event) {
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    return ((keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
}

function validateIcq(event) {
	var value;
	try {
		value = event.target.value;
	} catch ( e ) {
		value = event.srcElement.value;
	}
	if (!/^\d{5,13}$/.test(value) && value !== '') {
		alert('Вы ввели невозможный номер ICQ');
		event.target.value = '';
	}
}

function restorePassword(email, success, error) {
	jQuery.post(
		"/plugins/ajax/restore_password.php",
		{email: email.value},
		function( json, status ) {
			jQuery( '#messageRestore' ).html( (json.success) ? success : error );
            if(json.success){
                var element = document.getElementById('restore_password_block');
                element.style.visibility = 'hidden';
                var element1 = document.getElementById('restore_password_panel');
                element1.style.visibility = 'hidden';
            }else{
                document.getElementById('authEmail').value = '';
            }
		},
		"json"
	);        

}

function doLogin(message) {
	jQuery.post(
		"/plugins/ajax/login.php",
		{
			login: jQuery( "#authEmail" ).val(),
			password: jQuery( "#authPassword" ).val()
		},
		function( json, status ) {
			if ( json.success ) {
				document.location = '/userarea/list/';
			} else {
				jQuery( '#messageLogin' ).html( '<font color = #ff0000 size=+2>' + message +'</font>' );
			}
		},
		"json"
	);
}

function doLoginPartner(message) {
	jQuery.post(
		"/plugins/ajax/loginPS.php",
		{
			login: jQuery( "#authEmail" ).val(),
			password: jQuery( "#authPassword" ).val()
		},
		function( json, status ) {
			if ( json.success ) {
				document.location = 'http://'+cookie_domain.substring(1)+'/psellerarea/list/';
			} else {
				alert(message);
			}
		},
		"json"
	);
}

function searchByKeywords(form, uri) {
    var oKeywords = Id( "search-keywords" );
    var oRegion = Id( "search-region" );
    var oCategory = Id( "search-category" );

    var keywords = oKeywords.value.replace(/(%+)/, '');
    keywords = keywords.replace(/(\/)/, ' ');

    uri = (oCategory && oCategory.checked) ? uri : '';
    uri = '/' + (uri == '/' ? '' : uri) + 'data/tpl-search/region:' + ((oRegion && oRegion.checked) ? oRegion.value : 1) + '/' + ((oCategory && oCategory.checked) ? ('category:' + oCategory.value + '/') : '') + 'keywords:' + encodeURIComponent(keywords) + '/';

    document.location = uri;
}

function getEnums(parent, element, selected, first) {
	jQuery.post(
		"/plugins/ajax/enums.php",
		{name: parent},
		function( data, status ) {
			var select = jQuery( "#" + element );
			select.html("");
			var items = new Array();

			if( first ) {
				items.push( "<option value=\"\"></option>" );
			}

			for ( i in data.items ) {
				items.push(
					"<option " + ( selected && selected == data.items[i].id ? "selected=\"selected\" " : "" ) +
					"value=\"" + data.items[i].id + "\"" + ">" + data.items[i].data + "</option>" );
			}

			select.append( items.join( "" ) );
		}, "json"
	);
}

function select_region(){
	jQuery.post(
		"/plugins/ajax/set_region.php",
		{region: jQuery( '#region' ).val()},
		function( json, status ) {
			// go to "Все пакеты"
            document.location = '/psellers/list/data/package:a181a603769c1f98ad927e7367c7aa51/?region=' + jQuery( '#region' ).val();
		},
		"json"
	);
}

function isNotMax(e){
	e = e || window.event;
	//console.log(e.srcElement);
	var target = e.target || e.srcElement;

	var code=e.keyCode?e.keyCode:(e.which?e.which:e.charCode)
	switch (code){
		case 13:
		case 8:
		case 9:
		case 46:
		case 37:
		case 38:
		case 39:
		case 40:
		return true;
	}
	  var element = document.getElementById("value_char");
	element.innerHTML = target.getAttribute('maxlength') - target.value.length;
	return target.value.length < target.getAttribute('maxlength');
}

function isNotMaxInsert(obj_id, lenght){
   	obj = document.getElementById(obj_id);
	if(obj.value.length > lenght)
		return false;
	else
		return true;

}



function filterVolume(event) {
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    if(event.currentTarget){
    	targetElem=event.currentTarget;
    }else{
    	targetElem=event.srcElement;
    }
    if(targetElem.value.length==1){
        if (keyCode == 46) {//автоматическая замена точки на запятую --- работает только для объема двигателя
            if (document.getElementById('add-volume')) {
                var ph = document.getElementById('add-volume').value.substr(0, 1) + ',';
                document.getElementById('add-volume').value = ph;
            }
            if (document.getElementById('filter-volume')) {
                var ph = document.getElementById('filter-volume').value.substr(0, 1) + ',';
                document.getElementById('filter-volume').value = ph;
            }
            return false;
        }
    	return (keyCode == 44 || keyCode==8 || keyCode==46);
    } else if (targetElem.value.length < 3) {
    	return ( (keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
    } else {
    	return ( (keyCode == 0) || (keyCode == 8) || (keyCode == 9));
    }
}

function filterYear(event) {
	 var keyCode = (event.charCode) ? event.charCode : event.keyCode;
	    if(event.currentTarget){
	    	targetElem=event.currentTarget;
	    }else{
	    	targetElem=event.srcElement;
	    }
	    if(targetElem.value.length < 4){
	    	return ( (keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode > 47 && keyCode < 58));
	    } else {
	    	return ( (keyCode == 0) || (keyCode == 8) || (keyCode == 9));
	    }
}

function alterPhoneOnChange(){
	Id('alterContactPhone1').disabled=false;
	Id('alterContactPhone2').disabled=false;
	Id('alterContactPhone3').disabled=false;
	Id('alterContactPhone4').disabled=false;
	Id('alterContactMobile1').disabled=false;
	Id('alterContactMobile2').disabled=false;
	Id('alterContactMobile3').disabled=false;
	Id('alterContactMobile4').disabled=false;
	Id('alterContactMobile5').disabled=false;

}
function alterPhoneNoOnChange(){
	Id('alterContactPhone1').disabled=true;
	Id('alterContactPhone2').disabled=true;
	Id('alterContactPhone3').disabled=true;
	Id('alterContactPhone4').disabled=true;
	Id('alterContactMobile1').disabled=true;
	Id('alterContactMobile2').disabled=true;
	Id('alterContactMobile3').disabled=true;
	Id('alterContactMobile4').disabled=true;
	Id('alterContactMobile5').disabled=true;

}

/** removae by Cheshirsky Code
function regionFilter( select ) {
	( function( $, select ){
		if( select.value == "" ) {
			if( select.className != "subreg" ) {
				$( "#region_filter_lbl,#region_filter_fld" ).hide();
			}
		} else {
			if( select.className != "subreg" ) $.getJSON(
				"/plugins/ajax/regions.php",
				{ parent: select.value },
				function( json ) {
					var options = "";
					json = json.items;

					for (var i = 0, n = json.length; i < n; i ++) {
						options += '<option value="' + json[i].id +'">' + json[i].title + '</option>';
					}

					$( "#region_filter_fld>select" ).html( "<option value=''></option>" ).append( options );
				}
			);

			$( "#filter-region" ).val( select.value );
			$( "#region_filter_lbl,#region_filter_fld" ).show();
		}
	} )( jQuery, select );
}
*/

function getFiltersString(){
	params='?';
	el = Id('filter-region');
    if (el) {
        params +='region' + '=' + ((el.tagName == 'INPUT' && el.type == 'checkbox')
            ? ((el.checked) ? 1 : 0) : ((el.value != '' && el.value != ' ') ? encodeURIComponent(el.value) : '')) + '&';
    }
	fields_other = new Array('type', 'price-from', 'price-to', 'currency', 'source', 'foto', 'year-from', 'year-to');
	for (var i = 0, n = fields_other.length; i < n; i ++) {
		el = Id('filter-'+fields_other[i]);
        if (el) {
        	//alert(el.name);
            if (fields_other[i]!='foto'){
                params += fields_other[i] + '=' + ((el.tagName == 'INPUT' && el.type == 'checkbox')
                    ? ((el.checked) ? 1 : 0) : ((el.value != '' && el.value != ' ') ? encodeURIComponent(el.value) : '')) + '&';
            }
            else{
                params += 'photo' + '=' + ((el.tagName == 'INPUT' && el.type == 'checkbox')
                    ? ((el.checked) ? 1 : 0) : ((el.value != '' && el.value != ' ') ? encodeURIComponent(el.value) : '')) + '&';
            }
            }
    }
    if(typeof fields != "undefined"){
		for (var i = 0, n = fields.length; i < n; i ++) {
			el = Id('filter-'+fields[i]);
	        if (el) {
	        	//alert(el.name);
                if (fields[i]!='foto'){
                    params += fields[i] + '=' + ((el.tagName == 'INPUT' && el.type == 'checkbox')
                        ? ((el.checked) ? 1 : 0) : ((el.value != '' && el.value != ' ') ? encodeURIComponent(el.value) : '')) + '&';
                }
                else{
                    params += 'photo' + '=' + ((el.tagName == 'INPUT' && el.type == 'checkbox')
                        ? ((el.checked) ? 1 : 0) : ((el.value != '' && el.value != ' ') ? encodeURIComponent(el.value) : '')) + '&';
                }

	        }
	    }
    }
	return params;
} 

function limitprice( price, limit){
	if ( price > limit ) {
		alert("Цена слишком большая");
		price="";
	}
	return price;
}

function loadVideoContent() {
	var allowSites = new Array('youtube.com','rutube.ru','video.yandex.ru');

	videoContentAreaValue = Id('add-video_content').value.replace(/[\n\r]+/gi,'');
	if(videoContentAreaValue=='') {
		Id('videoContentBlock').innerHTML='Вставьте HTML&ndash; код ролика.';
		return;
	}

	//var tmp = videoContentAreaValue.match(/<object[^>]*>(.*?)<\/object>/ig);
	//if(tmp.length>1) videoContentAreaValue = tmp[0];
	tmp = videoContentAreaValue.match(/<object[^>]*>(.*?)<\/object>/ig);
	if(tmp) {
		videoContentAreaValue = tmp[0];

		siteAllow=false;
		for (i=0; i<allowSites.length && !siteAllow; i++){ 
			//alert(videoContentAreaValue.indexOf(allowSites[i]));
			if (videoContentAreaValue.indexOf(allowSites[i])>-1) siteAllow=true;
		}
		if (!siteAllow) {
			Id('videoContentBlock').innerHTML='Ролик должен быть размещен только на следующих сервисах: '+allowSites.join(', ');
			return;
		}

		var w = videoContentAreaValue.match(/width=["']*\d+["']*/g);
		var h = videoContentAreaValue.match(/height=["']*\d+["']*/g);
		w = w[0].match(/\d+/)[0];
		h = h[0].match(/\d+/)[0];

		videoContentAreaValue = videoContentAreaValue.replace(/(width=["']*\d+["']*)/ig, 'width="400"').replace(/(height=["']*\d+["']*)/ig, 'height="'+Math.round(400*h/w)+'"');
		// rutube
		videoContentAreaValue = videoContentAreaValue.replace(/name="wmode" value="(window|opaque)"/ig, 'name="wmode" value="transparent"').replace(/wmode="(window|opaque)"/ig, 'wmode="transparent"');
		// other add
		if(!videoContentAreaValue.match(/wmode/ig)) {
			videoContentAreaValue = videoContentAreaValue.replace(/\>\<param/i, '><param name="wmode" value="transparent"></param><param').replace(/\<EMBED/i, '<embed wmode="transparent"');
		}

		Id('id_video').value = videoContentAreaValue;
		Id('add-video_content').value = videoContentAreaValue;
		Id('videoContentBlock').innerHTML=((window.ActiveXObject)?"<!-- -->":"")+videoContentAreaValue;
		return true;
	}

	Id('videoContentBlock').innerHTML='<span style="color:red;">Вы ввели некорректный HTML&ndash; код.</span>';
    Id('add-video_content').value = '';
}

function deleteVideoContent(){
	if (document.getElementById('edit-video_content') !== null)
	    document.getElementById('edit-video_content').value='';
    if (document.getElementById('add-video_content') !== null)
        document.getElementById('add-video_content').value='';
	Id('videoContentBlock').innerHTML='';
	Id('id_video').value = '';
}
var hintTimeOut=false;

function showHint(id){		
	hintTimeOut=true;
	document.getElementById('hintBlock'+id).style.display="block";
	hideHintTimeOut(id);
}

function hideHintTimeOut(id){
	setTimeout('hideHintT('+id+')',3000);
}

function hideHintT(id){
	if (hintTimeOut) {
		document.getElementById('hintBlock'+id).style.display="none";			
	}
	hintTimeOut=false;
}

function hideHint(id){		
	document.getElementById('hintBlock'+id).style.display="none";
	hintTimeOut=false;		
}

function streetAutocomplete() {
	jQuery( function() {
//		jQuery( "#add-street,#filter-street,#edit-street" ).autocomplete(streets);
		jQuery( regionShow.preffix + "street" ).autocomplete(streets);
	} );
}

function mapByHouseAutocomplete() {
	jQuery( function() {
		// только подача
		if( regionShow.preffix != "#add-" && regionShow.preffix != "#edit-" )  {
			return false;
		}

		var lpref = regionShow.preffix.replace( "#" , "" );
		jQuery( regionShow.preffix + "house_number" ).css( {width: "48px"} ).parent().css( {width: "50px", "float": "left"} ).parent().append(
			'<label id="' + lpref + 'mapby_enabled_label" for="' + lpref + 'mapby_enabled" class="chk-b" style="margin-left: 70px;"><input type="checkbox" value="1" id="' + lpref + 'mapby_enabled" name="' + lpref + 'mapby_enabled"/><strong>отображать на карте</strong></label>'
		);
		jQuery( regionShow.preffix + "house_number" ).autocomplete(
			"/plugins/ajax/mapby/mapby.php",
			{extraParams: {
				region: function() {
					return jQuery( regionShow.preffix + "region" ).val();
				},
				street_name: function() {
					return jQuery( regionShow.preffix + "street" ).val();
				},
				op: "buildings"
			}}
		);

		if( typeof ad_edit_mapby_enabled != "undefined" ) {
            var r = regionShow.getRegion();
            var ids_minsk = new Array(2, 3, 4, 184, 301, 690, 835, 954, 1065, 1210, 1308 );
            if( in_array( r, ids_minsk ) ) {
                jQuery( regionShow.preffix + "mapby_enabled" ).attr( "checked", "checked" );
            }

            regionShow.initmapdisabled();
		}

		return true;
	} );
}

var regionShow = {
	ids_minsk: [ 2, 3, 4, 184, 301, 690, 835, 954, 1065, 1210, 1308 ],
	ids_regional_centers: [ 2, 3, 4, 184, 301, 432, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 835, 954, 1065, 1210, 1308, 1472 ],
	ids_minsk_area: [ 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 1470, 1472 ],
	activeWatch: [],
	preffix: "#add-",
	observer: function() {
		var r = regionShow.getRegion();
		if( r != 0 ) for( key in regionShow.activeWatch ) {
			if( typeof regionShow.activeWatch[ key ] != "object" ) {
				continue;
			}

			var param  = regionShow.activeWatch[ key ].uid;

			if( in_array( r, regionShow.activeWatch[ key ].regions ) ) {
				regionShow.show( param, true );
			} else {
                if(param=='#edit-mapby_enabled'){
                    jQuery( regionShow.preffix + "mapby_enabled" ).attr( "checked", "" );
                    jQuery( regionShow.preffix + "street" ).val( "" );
                    jQuery( regionShow.preffix + "house_number" ).val( "" );
                }
				regionShow.show( param, false );
			}
		}

		return arguments.callee;
	},

	show: function( uid, vmode ) {
		var query;

		if( typeof uid == "string" ) {
			query = uid;
		} else {
			query = uid.join( "," );
		}

		if( vmode ) {
			jQuery( query ).attr( 'disabled', '' );
		} else {
			jQuery( query ).attr( 'disabled', 'disabled' ).val( "" );
		}
	},

	init: function() {
		if( regionShow.activeWatch.length == 1 ) {
			jQuery( function() {
				jQuery( regionShow.preffix + "region" ).observer( "value", regionShow.observer() );
			} );
		}

		if( regionShow.preffix == "#filter-" && jQuery( "#filter-region" ).val() == "" ) {
			try {
				var region = regionShow.getRegion();
				regionShow.checkRegion( regionShow.activeWatch[ regionShow.activeWatch.length - 1 ], region );
			} catch( e ) { }
		}
	},

	getRegion: function() {
		if( regionShow.preffix == "#filter-" && jQuery( "#filter-region" ).val() == "" ) {
			return parseInt( document.cookie.match( /region=[0-9]+/gm ).toString().split( "=" ).pop() );
		} else {
			return parseInt( jQuery( regionShow.preffix + "region" ).val() );
		}
	},

	initStreet: function() {
		regionShow.activeWatch.push({
			regions: regionShow.ids_regional_centers,
			uid: regionShow.preffix + 'street'
		});
		regionShow.init();
		// убрать автокомплит из не минска
		jQuery( function() {
//			if( regionShow.preffix != "#add-" )  {
//				return false;
//			}
			
			jQuery( regionShow.preffix + "region" ).observer( "value", (function() {
				var r = regionShow.getRegion();
				if( !in_array( r, regionShow.ids_minsk ) ) {
					jQuery( "#add-street,#filter-street,#edit-street").unautocomplete();
				} else {
					jQuery( "#add-street,#filter-street,#edit-street").autocomplete(streets);
				}
				return arguments.callee;
			})() );

			return true;
		} );
	},

	inithouse_number: function() {
		regionShow.activeWatch.push({
			regions: regionShow.ids_regional_centers,
			uid: regionShow.preffix + 'house_number'
		});
		regionShow.init();

		// убрать автокомплит из не минска
		jQuery( function() {

			jQuery( regionShow.preffix + "region" ).observer( "value", (function() {
				var r = regionShow.getRegion();
				if( !in_array( r, regionShow.ids_minsk ) ) {
					jQuery( "#add-street,#filter-street,#edit-street" ).unautocomplete();
				} else {
					jQuery( "#add-street,#filter-street,#edit-street").autocomplete(streets);
				}
				return arguments.callee;
			})() );
		} );
	},

	initmetro: function() {
		regionShow.activeWatch.push({
			regions: regionShow.ids_minsk,
			uid: [ regionShow.preffix + 'metro', "#metro_viewer", regionShow.preffix + "metro-id" ]
		});
		regionShow.init();
	},

	initdirection: function() {
		regionShow.activeWatch.push({
			regions: regionShow.ids_minsk_area,
			uid: [ regionShow.preffix + 'direction', "#direction_viewer", regionShow.preffix + "direction-id" ]
		});
		regionShow.init();
	},

	initdistance: function() {
		regionShow.activeWatch.push({
			regions: regionShow.ids_minsk_area,
			uid: [ regionShow.preffix + 'distance', regionShow.preffix + 'distance-from', regionShow.preffix + 'distance-to' ]
		});
		regionShow.init();
	},
    initmapdisabled: function() {
		regionShow.activeWatch.push({
			regions: regionShow.ids_minsk,
			uid: [ regionShow.preffix + 'mapby_enabled' ]
		});
		regionShow.observer();
	},

	checkRegion: function( element, region ) {
		if( !in_array( region, element.regions ) ) {
			jQuery( function() {
				regionShow.show( element.uid, false );
			} );
		}
	}
};

function in_array( needle, haystack ) {
	for( key in haystack ) {
		if( typeof haystack[ key ] == "number" || typeof haystack[ key ] == "string" ) {
			if( needle == haystack[ key ] ) return true;
		}
	}
	return false;
}

// move from show.js
function showhide(theId, divID) {
	var el = document.getElementById(divID+ '-' + theId);
	var ellink = document.getElementById(divID+ '-'  + theId + '-i');

	if (el.style.display=="none") {
		el.style.display="";
		ellink.className="minus";
	}

	else {
		el.style.display="none";
		ellink.className="";
   }

	return false;
}

/*
 * Фильтр множественного выбора
 *
 **/

var multiSelectController = {};

multiSelectController.showPopup = function( fieldname ) {
	var popup = $( "#filter_" + fieldname + "_popup" );
	popup.show();
	return false;
}

multiSelectController.clear = function( fieldname ) {
	$("#"+ fieldname + "_viewer,#filter-"+ fieldname ).val( "" );
	$( "#filter_"+ fieldname + "_popup input:checked" ).attr( 'checked', false );
	return false;
}

multiSelectController.hide = function( fieldname ) {
	jQuery( "#filter_" + fieldname + "_popup" ).hide();
	return false;
}

multiSelectController.init = function( fieldname ) {
	$( function() {
		var _fieldname = fieldname;
		$( "#filter_" + fieldname + "_popup input" ).click( function() {

			var checked = [];
			$( "#filter_" + _fieldname + "_popup input:checked" ).each( function() {
				checked.push( $(this).val() );
			} );

			$( "#filter-"  + fieldname ).val( checked.join( "," ) );
			$( "#" + fieldname + "_viewer" ).val( 
				checked.length == 0 ? "" : "Выбрано:" + checked.length
			);
		} );

		var checked = $( "#filter-"  + fieldname ).val().replace( /\.+/g, "," ).split( "," );
		var counter = 0;

		$( "input", $( "#filter_" + fieldname + "_popup" ) ).each( function() {
			if( in_array( $(this).val(), checked ) ) {
				$(this).attr( "checked", true );
				counter++;
			} else {
				$(this).attr( "checked", false );
			}
		} );

		$( "#" + fieldname + "_viewer" ).val( 
			counter == 0 ? "" : "Выбрано:" + counter 
		);

	} );
}

function showHideBlock(name_of_block){
    var name_of_hide_block = document.getElementById('name_of_hide_block').value;
	if(document.getElementById(name_of_block+'small').style.display=='block'){
        if (name_of_hide_block!=''){
            document.getElementById(name_of_hide_block+'full').style.display='none';
            document.getElementById(name_of_hide_block+'small').style.display='block';
        }
		document.getElementById(name_of_block+'small').style.display='none';
        document.getElementById('name_of_hide_block').value=name_of_block;
	}else{
		document.getElementById(name_of_block+'small').style.display='block';
	}


	if(document.getElementById(name_of_block+'full').style.display=='block'){
		document.getElementById(name_of_block+'full').style.display='none';
	}else{
		document.getElementById(name_of_block+'full').style.display='block';
	}
}

function load_calendar(doc_id, dat/*, im_load*/) {
        jQuery.post(
            '/data/tpl-ajax-calendar/',
            {
                id: doc_id,
                date: dat
            },
            function( json, status ) {;
                if (json.success == 1){
                    //if (im_load == 1) jQuery('#pdf_image').html('<img alt="" src="' + json.image + '"/>');
                    if (json.pdf_file != null) jQuery('#pdf_file').html('<a href="' + json.pdf_file + '">скачать файл</a>');
                    else jQuery('#pdf_file').html('');
                    jQuery('#mycalendar').html(json.output);
                } else {
                    //
                }
            },
            "json"
        );
}

function change_date(doc_id, dat, new_mon, new_year) {
        if (dat == '') {
            var cur = new Date();
            dat = cur.getDate() + '.' + cur.getMonth() + '.' + cur.getFullYear();
        }
        var new_dat = dat;
        var first = dat.indexOf('.');
        if (first != -1) {
            var second = dat.indexOf('.', first + 1);
            if (second != -1) {
                mon = new_mon;
                year = new_year;
                if (new_mon.length == 1) new_mon = '0' + new_mon;
                new_dat = dat.substr(0,first + 1) + new_mon + '.' + new_year;//dat.substr(second, dat.length - 1);
                jQuery('#calendar_year').val(new_year);
            }
        }
        load_calendar(doc_id, new_dat, 0);
}

function prev_month(doc_id, dat, new_mon ,new_year) {
    while (new_mon <= 0) {
        new_mon = 12 - Math.abs(new_mon);
        new_year--;
    }
    jQuery('#calendar_month option:nth-child(' + new_mon + ')').attr('selected', 'selected');
    change_date(doc_id, dat, new_mon, new_year);
}

function next_month(doc_id, dat, new_mon ,new_year) {
    while (new_mon > 12) {
        new_mon = Math.abs(new_mon) - 12;
        new_year++;
    }
    jQuery('#calendar_month option:nth-child(' + new_mon + ')').attr('selected', 'selected');
    change_date(doc_id, dat, new_mon, new_year);
}

function change_year(doc_id, dat, new_mon, new_year, old_year) {
    var y = new_year.toString();
    var y_i = parseInt(y);
    if (y.length != 4 || y_i != new_year || new_year == old_year) return;
    change_date(doc_id, dat, new_mon, new_year);
}


/*  */

