/*
 * elf.js
 * 
 * @author: Alexander Myadzel <aem@teletype.ru>
 * @modified: n/a
 *
 */

function getEvent(oEvent)
{
	return oEvent || window.event || null;
}

function getEventKeyCode(oEvent)
{
	return oEvent.keyCode || oEvent.which || null;	
}

function getEventTarget(oEvent)
{
	return oEvent.relatedTarget || oEvent.toElement || oEvent.fromElement || null;
}

function stopEvent(oEvent)
{
	var oElement = getEventElement(oEvent);

	oEvent.returnValue = false;
	if (oEvent.preventDefault) {
		oEvent.preventDefault();
	}
	
	oEvent.cancelBubble = true;
	if (oEvent.stopPropagation) {
		oEvent.stopPropagation();
	}
}

function addEvent(oElement, sEvent, sCallback, bCapture)
{
	if (oElement.attachEvent) {
		oElement.detachEvent('on' + sEvent, sCallback); //for IE memory leak
		oElement.attachEvent('on' + sEvent, sCallback);
	} else if (oElement.addEventListener) {
		oElement.addEventListener(sEvent, sCallback, bCapture);
	} else {
		oElement['on' + sEvent] = sCallback;
	}
	return oElement;
}

function removeEvent(oElement, sEvent, sCallback, bCapture)
{
	if (oElement.detachEvent) {
		oElement.detachEvent('on' + sEvent, sCallback);
	} else if (oElement.removeEventListener) {
		oElement.removeEventListener(sEvent, sCallback, bCapture);
	} else {
		oElement['on' + sEvent] = null;
	}
	return oElement;
}

function getEventElement(oEvent)
{
	var oElement = oEvent.srcElement || oEvent.target;
	
	if (oElement.nodeType == 3) {
		oElement = oEvent.oElement.parentNode;
	}
	
	return oElement;
}

function unescapeHTML(sValue)
{
	return (sValue + '').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&quot;/g, '"').replace(/&apos;/g, '\'').replace(/&amp;/g, '&');
}

function constrain(mInit, mMin, mMax)
{
    if (mInit < mMin) {
        mInit = mMin;
    } else if (mInit > mMax) {
        mInit = mMax;
	}
	
    return mInit;
} 

function getElementById(sId)
{
	var oElement = document.getElementById(sId);
	return (oElement && oElement.id === sId) ? oElement : null;
}

function $$(sId)
{
	return getElementById(sId);
}

function getInt(mValue)
{
	var mValue = parseFloat((mValue + '').replace(/[,]+/g, '.').replace(/[^-\d\.]+/g, ''));
	return isNaN(mValue) ? 0 : mValue;
}


function getOffset(oElement)
{
	var iTop = 0;
	var iLeft = 0;

	while (oElement.tagName != 'HTML' && oElement.tagName != 'BODY')
	{
		iTop += oElement.offsetTop;
		iLeft += oElement.offsetLeft;
			
		oElement = oElement.offsetParent;
	}
	
	iTop += oElement.offsetTop;
	iLeft += oElement.offsetLeft;
	
	return {
		'top': iTop, 
		'left': iLeft
	}
}

function getDocumentWidth()
{
	var iDocWidth = 0;
	var oBody = document.getElementsByTagName('body')[0];
	
	if (oBody.scrollWidth > oBody.offsetWidth) {
		iDocWidth = oBody.scrollWidth;	
	} else {
		iDocWidth = oBody.offsetWidth;
	}

	return iDocWidth;
}

function getNextIndex(iPlanIndex, iLength)
{
	if (iPlanIndex >= iLength) {
		iPlanIndex = 0;
	} else if (iPlanIndex < 0) {
		iPlanIndex = iLength - 1;
	}
	return iPlanIndex;
}


var oBody = {};
var oMeasurer = {};

var iMeasurerOffsetHeight = 0;
var iBodyOffsetHeight = 0;
var iBodyOffsetWidth = 0;

function checkChangingProportions()
{
	if (oBody.offsetHeight != iBodyOffsetHeight || oBody.offsetWidth != iBodyOffsetWidth || iMeasurerOffsetHeight != oMeasurer.offsetHeight) {
		setProportions();
	}
}

function setProportions()
{
	if (!arguments.callee.done) {
		oBody = document.getElementsByTagName('body')[0];
		oMeasurer = document.getElementById('measurer');	
	}
	arguments.callee.done = 1;
	
	iBodyOffsetHeight = oBody.offsetHeight;
	iBodyOffsetWidth = oBody.offsetWidth;
	iMeasurerOffsetHeight = oMeasurer.offsetHeight;
}

function trackOffset()
{
	if (!arguments.callee.done) {
		setInterval(checkChangingProportions, 100);
	} 
	arguments.callee.done = 1;
}

function fixIEOnePixelFloatBug()
{
	if (document.all) {
		var oElementToFix = 
		document.compatMode == 'BackCompat' ? document.body : document.documentElement;
		setInterval(
			function()
			{
				oElementToFix.style.overflowX = 
				(oElementToFix.clientWidth > 980 && (oElementToFix.scrollWidth - oElementToFix.clientWidth) == 1) ? 'hidden' : 'auto';
			}, 
			10
		);
	}
}

function init()
{
	trackOffset();
	fixIEOnePixelFloatBug();
	addEvent(document.getElementById('type'),'change',hideDiv);
}


function hideDiv(){
var value_s = document.getElementById('type').value;
  if ( value_s == "СТО/АТХ") {
	document.getElementById('sto').style.display = 'block';
	document.getElementById('opt').style.display = 'none';
	document.getElementById('sale').style.display = 'none';
  } else if ( value_s == 'Оптовая торговля') {
	document.getElementById('sto').style.display = 'none';
	document.getElementById('opt').style.display = 'block';
	document.getElementById('sale').style.display = 'none';
  } else if ( value_s == 'Розничная торговля') {
	document.getElementById('sto').style.display = 'none';
	document.getElementById('opt').style.display = 'none';
	document.getElementById('sale').style.display = 'block';
  } 
}

addEvent(window, 'load', init);
