function newXMLHttpRequest() {
	var xmlreq = false;
	if (window.XMLHttpRequest) {
		xmlreq = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			try {
				xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e1) {
				try {
					xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e2) {
			}
		}
	}
	return xmlreq;
}

function updatePriceValue(type, object, price) {
	var url = "get-object.php?type=" + type + "&object=" + object + "&price=" + price;
	xmlHttp = newXMLHttpRequest();
	xmlHttp.open("GET", url, true);
	xmlHttp.onreadystatechange = function() {
		if (xmlHttp.readyState==4) {
			if (xmlHttp.status==200) {
				var jsonObjectString = xmlHttp.responseText;
				if (jsonObjectString==1) {
					visibleElem = document.getElementById("price" + object);
					headerPrice = visibleElem.parentNode;
					headerPrice.style.border = "solid #090 1px";
				} else {
					alert('Ошибка, данные не были переданы на сервер!');
				}
			}
		}

	};
	xmlHttp.send(null);
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ' ' + '$2');
	}
	return x1 + x2;
}

function changePrice(priceId) {

	visibleElem = document.getElementById("price" + priceId);
	headerPrice = visibleElem.parentNode;
	hiddenElem = visibleElem.nextSibling;
	defaultPrice = hiddenElem.nextSibling;

	if (hiddenElem.value!="[priceHidden]") {;

		visibleElem.style.display = "none";
		hiddenElem.style.display = "block";
		headerPrice.style.border = "solid red 1px";

		hiddenElem.onfocus = "";
		hiddenElem.onfocus = function() {
			hiddenElem.select();
		};

		hiddenElem.onblur = "";
		hiddenElem.onblur = function() {
			hiddenElem.style.display = "none";
			visibleElem.style.display = "block";
		};
		
		hiddenElem.onkeypress = "";
		hiddenElem.onkeypress = function(event) {
			event = event || window.event;
			charCode = event.charCode | event.keyCode; 
			switch(charCode) {

				case 13:

					price = this.value.replace(new RegExp(',','g'), '.');

					if (price=='' || price=='не указана' || price=='договорная' || (parseFloat(price)==price && price>=0)) {

						fixedStr = '';
						visibleStr = '';
						
						if (parseFloat(price)==price && price>=0) {
							fixedStr = (new Number(price)).toFixed(2).toString();
							visibleStr = addCommas(fixedStr);
							visibleStr = visibleStr.replace('.', ',');
						} else {
							if (price=='') price='не указана';
							fixedStr = price;
							visibleStr = price;
						}
						
						defaultPrice.value = fixedStr;
						visibleElem.innerHTML = visibleStr;
						
						writeValue = -3;
						
						switch(price) {
							case "не указана":
								writeValue = -2;
								break;
							case "договорная":
								writeValue = -1;
								break;
							default:
								writeValue = fixedStr;
								break;
						}
						
						objectTypeObj = defaultPrice.nextSibling;
						objectType = objectTypeObj.value;
						updatePriceValue(objectType, priceId, writeValue);
						this.blur();
						
					} else {
						alert("Введите неотрицательное число, слово \"договорная\" либо оставьте поле пустым!");
						hiddenElem.value = defaultPrice.value;
						headerPrice.style.border = "dotted gray 1px";
						this.blur();
					}
					break;

				case 27:

					hiddenElem.value = defaultPrice.value;
					headerPrice.style.border = "dotted gray 1px";
					this.blur();
					break;

				case 108:
				case 1076:

					event.preventDefault = event.preventDefault || function(){this.returnValue = false;};
				    event.stopPropagation = event.stopPropagaton || function(){this.cancelBubble = true;};
					event.stopPropagation();
					event.preventDefault();
					this.value = "договорная";
					break;
					
			}
		};

		hiddenElem.focus();
	}

	return false;
	
}

function showNews() {

	var viewportHeightMax = 673;
	var viewportHeight = 768;

	if (window.innerHeight!=undefined) {
		viewportHeight = window.innerHeight;
	} else {
		if (document.documentElement.clientHeight!=undefined) {
			viewportHeight = document.documentElement.clientHeight;
		} else {
			if (document.getElementsByTagName('body')[0].clientHeight!=undefined) {
				viewportHeight = document.getElementsByTagName('body')[0].clientHeight;
			}
		};
	};

	var centerBlock = document.getElementById("centerBlock");
	var newsElement = document.getElementById("newsBlock");
	var overlayBlock = document.getElementById("overlay");
	var topBannerObj = document.getElementById("topBannerObj");
	var topBannerEmbed = document.getElementById("topBannerEmbed");
	if (topBannerObj!=null) topBannerObj.style.display = "none";
	if (topBannerEmbed!=null) topBannerEmbed.style.display = "none";
	centerBlock.style.display = "none";
	newsElement.style.display = "block";
	overlayBlock.style.display = "block";

	if (viewportHeight>viewportHeightMax) {
		var htmlElement = document.getElementsByTagName("html")[0];
		var bodyElement = document.getElementById("mainpage");
		htmlElement.style.overflow = "hidden";
		bodyElement.style.overflow = "hidden";
	}
}

function hideNews() {
	var bodyElement = document.getElementById("mainpage");
	var htmlElement = document.getElementsByTagName("html")[0];
	var overlayBlock = document.getElementById("overlay");
	var newsElement = document.getElementById("newsBlock");
	var centerBlock = document.getElementById("centerBlock");
	var topBannerObj = document.getElementById("topBannerObj");
	var topBannerEmbed = document.getElementById("topBannerEmbed");
	bodyElement.style.overflow = "auto";
	htmlElement.style.overflow = "auto";
	overlayBlock.style.display = "none";
	newsElement.style.display = "none";
	centerBlock.style.display = "inline";
	if (topBannerObj!=null) topBannerObj.style.display = "inline";
	if (topBannerEmbed!=null) topBannerEmbed.style.display = "inline";
}

function rollover(itemId, selectedItemId) {
	if (itemId!=selectedItemId) {
		var tableItem = document.getElementById("topMenuTableItem" + itemId);
		var tableItemStyle = tableItem.className;
		if (tableItemStyle.indexOf("Selected", 0)!=-1) {
			tableItem.className = tableItemStyle.substring(0, tableItemStyle.indexOf("Selected", 0));
		} else {
			tableItem.className = tableItemStyle + "Selected";
		}
	}
}

function rolloverOn(itemId, selectedItemId) {
	rollover(itemId, selectedItemId);
}
function rolloverOff(itemId, selectedItemId) {
	rollover(itemId, selectedItemId);
}

