get = function (id) {return document.getElementById(id) || false};

window.onload = function ()
{
	//PriceForm(interval, line, min, max, min_value, max_value, min_field, max_field, price_min, price_max, block, alter, step)
	form1 = new PriceForm('interval_land', 'line_land', 'min_land', 'max_land', 'minvalue_land', 'maxvalue_land', 'minfield_land', 'maxfield_land', 0, 2950, 'form_land', 'formnoscript_land',  50);
	form1.prepare();

	form1.eMin.onmousedown = function (e) {form1.drag(e)};
	form1.eMax.onmousedown = function (e) {form1.drag(e)};
	
	form2 = new PriceForm('interval_commercial', 'line_commercial', 'min_commercial', 'max_commercial', 'minvalue_commercial', 'maxvalue_commercial', 'minfield_commercial', 'maxfield_commercial', 0, 2950, 'form_commercial', 'formnoscript_commercial',  50);
	form2.prepare();

	form2.eMin.onmousedown = function (e) {form2.drag(e)};
	form2.eMax.onmousedown = function (e) {form2.drag(e)};
	
	form3 = new PriceForm('interval_residential', 'line_residential', 'min_residential', 'max_residential', 'minvalue_residential', 'maxvalue_residential', 'minfield_residential', 'maxfield_residential', 0, 2950, 'form_residential', 'formnoscript_residential',  50);
	form3.prepare();

	form3.eMin.onmousedown = function (e) {form3.drag(e)};
	form3.eMax.onmousedown = function (e) {form3.drag(e)};
	
	document.onmousemove = handleMouseMove;
	document.onmouseup = handleMouseUp;
	window.onresize = function () {form1.resize();form2.resize();form3.resize(); resize();};
	
	perPage(get('countPerPage_land'), get('countPerPageJS_land'), '_land');
	perPage(get('countPerPage_residential'), get('countPerPageJS_residential'), '_residential');
	perPage(get('countPerPage_commercial'), get('countPerPageJS_commercial'), '_commercial');

	
	document.onclick = hideAll;
	var i = 0;
	while (get('link' + window.elems[i]) && get('select' + window.elems[i]))
	{
		var link = get('link' + window.elems[i]);
		var select = get('select' + window.elems[i]);
		
		var list = document.createElement('DIV');
		list.className = 'options';
		list.style.display = 'none';
		list.id = 'list' + window.elems[i];
		document.body.appendChild(list);
		list.onclick = blockEvent;
		select.style.display = 'none';
		link.style.display = '';
		
		for (var j = 0; j < select.options.length; j++)
		{
			var p = document.createElement('P');
			var a = document.createElement('A');
			a.href = '#';
			a.innerHTML = select.options[j].text;
			a.rel = select.options[j].value;
			if (select.options[j].selected) link.innerHTML = select.options[j].text;
			p.appendChild(a);
			list.appendChild(p);
		}
		var left = 0;
		var top = 0;
		var parent = link;
		while (parent)
		{
			left += parent.offsetLeft;
			top += parent.offsetTop;
			parent = parent.offsetParent;
		}
		list.style.left = left - 16 + 'px';
		list.style.top = top - 10.5 +  'px';
		
		if (!link.textContent)
		{
			var o = link.getBoundingClientRect();
			list.style.left = o.left - 17 + 'px';
			list.style.top = o.top - 13 + 'px';
		}
		
		link.onclick = change;
		select.style.display = 'none';
		link.style.display = '';
		var links = list.getElementsByTagName('A');
		for (var j = 0; j < links.length; j++)
		{
			links[j].onclick = changeItem;
		}
		i++;
	}
	
	get('r').onclick = get('l').onclick = get('c').onclick = switchForm;
}

switchForm = function (e)
{
	e = e ? e : window.event;
	var target = e.target ? (e.target.tagName == 'SPAN' ? e.target : e.target.parentNode) : (e.srcElement.tagName == 'SPAN' ? e.srcElement : e.srcElement.parentNode);
	blockEvent(e);
	target.style.display = 'none';
	get(target.id + '_sel').style.display = '';
	switch (target.id)
	{
		case "l" :
			// form1
			get('div_c').style.display = 'none';
			get('c').parentNode.className = '';
			get('c_sel').style.display = 'none';
			get('c').style.display = '';
			
			get('div_r').style.display = 'none';
			get('r').parentNode.className = '';
			get('r_sel').style.display = 'none';
			get('r').style.display = '';
			
			get('div_l').style.display = '';
			get('l').parentNode.className = 'sel';
			form1.prepare();
		break;
		case "r" :
			// form3
			get('div_c').style.display = 'none';
			get('c').parentNode.className = '';
			get('c_sel').style.display = 'none';
			get('c').style.display = '';
			
			get('div_r').style.display = '';
			get('r').parentNode.className = 'sel';
			
			get('div_l').style.display = 'none';
			get('l').parentNode.className = '';
			get('l_sel').style.display = 'none';
			get('l').style.display = '';
			form3.prepare();
		break;
		case "c" :
			// form2
			get('div_c').style.display = '';
			get('c').parentNode.className = 'sel';
			
			get('div_r').style.display = 'none';
			get('r').parentNode.className = '';
			get('r_sel').style.display = 'none';
			get('r').style.display = '';
			
			get('div_l').style.display = 'none';
			get('l').parentNode.className = '';
			get('l_sel').style.display = 'none';
			get('l').style.display = '';
			form2.prepare();
		break;
	}
	resize();
}

perPage = function (cold, cnew, param)
{
	if (cold && cnew)
	{
		cold.style.display = 'none';
		cnew.style.display = '';
		for (var i = 0; i < cold.options.length; i++)
		{
			var a = document.createElement('A');
			a.href = '#';
			a.innerHTML = cold.options[i].value;
			if (cold.options[i].selected) a.className = 'sel';
			a.onclick = function (e)
			{
				hideAll();
				e = e ? e : window.event;
				get('countPerPage'+param).value = this.innerHTML;
				var links = document.getElementsByTagName('A');
				for (var j = 0; j < links.length; j++)
				{
					links[j].className = links[j].className.replace('sel', '');
				}
				this.className = 'sel';
				blockEvent(e);
			}
			cnew.appendChild(a);
		}
	}
}

resize = function ()
{
	var i = 0;
	while (get('link' + window.elems[i]) && get('list' + window.elems[i]))
	{
		var link = get('link' + window.elems[i]);
		var list = get('list' + window.elems[i]);
		var select = get('select' + window.elems[i]);
		var left = 0;
		var top = 0;
		var parent = link;
		while (parent)
		{
			left += parent.offsetLeft;
			top += parent.offsetTop;
			parent = parent.offsetParent;
		}
		list.style.left = left - 16 + 'px';
		list.style.top = top - 10.5 +  'px';		
		if (!link.textContent)
		{
			var o = link.getBoundingClientRect();
			list.style.left = o.left - 17 + 'px';
			list.style.top = o.top - 13 + 'px';
		}
		i++;
	}
}

hideAll = function ()
{
	var i = 0;
	while (get('list' + window.elems[i]))
	{
		get('list' + window.elems[i]).style.display = 'none';
		i++;
	}
}

change = function (e)
{
	hideAll();
	e = e || window.event;
	target = e.target || e.srcElement;
	get('list' + target.id.replace('link', '')).style.display = '';
	blockEvent(e);
}

changeItem = function (e)
{
	var target = (e ? e.target : window.event.srcElement);
	var id = target.parentNode.parentNode.id.replace('list', '');
	get('link' + id).innerHTML = target.innerHTML;
	get('select' + id).value = target.rel;
	get('list' + id).style.display = 'none';
	blockEvent(e);
}

blockEvent = function (event)
{
	event = event || window.event;
	if(event.stopPropagation) event.stopPropagation();
	else event.cancelBubble = true;
	if(event.preventDefault) event.preventDefault();
	else event.returnValue = false;
}

function handleMouseMove(event)
{
	form1.move(event);
	form2.move(event);
	form3.move(event);
}

function handleMouseUp()
{
	form1.drop();
	form2.drop();
	form3.drop();
}