function GetXmlHttpObject()
{
	var xmlHttp = null;

	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	return xmlHttp;
}

function c_r_box(obj)
{
	elem = document.getElementById(obj);

	if (elem)
	{
		if (elem.type == 'radio')
		{
			elem.checked = true;
		}
	}
}

function c_c_box(obj)
{
	elem = document.getElementById(obj);

	if (elem.checked == true)
	{
		elem.checked = false;
	}
	else
	{
		elem.checked = true;
	}
}

function c_c_box_extended(sourceId, relatedId)
{
	var sw_cs = document.getElementById(sourceId);
	var sw_cr = document.getElementById(relatedId);

	if ( sw_cs.checked == true )
	{
		sw_cr.checked = true;
	}
	else
	{
		sw_cr.checked = false;
	}
}

function c_byName_box(obj)
{
	var elem = document.getElementsByName(obj);

	for (i=0; i<elem.length; i++)
	{
		if (elem[i].checked == true)
		{
			elem[i].checked = false;
		}
		else
		{
			elem[i].checked = true;
		}
	}
}

function c_s_option(obj, t_obj)
{
	var s_elem = document.getElementById(obj);
	var t_elem = document.getElementById(t_obj);

	t_elem.innerHTML = s_elem.options[s_elem.selectedIndex].text;
}

function checkboxAbstractOnload(uid)
{
	var elem = document.getElementById(uid);

	switch(elem.checked)
	{
		case true:
			elem.checked = true;
			elem.value = 'yes';
		break;
		case false:
			elem.checked = false;
			elem.value = 'no';
		break;
		default:
			elem.checked = false;
			elem.value = 'no';
	}
}

function clear_f( obj, str )
{
	if ( obj.value == str )
		obj.value = '';
}

function restore_f( obj, str )
{
	if ( obj.value == '' )
		obj.value = str;
}

function hi_lite( obj, color )
{
	obj.style.backgroundColor = color;
}

function lo_lite( obj, color )
{
	obj.style.backgroundColor = color;
}

function a_href( lnk )
{
	document.location.href = lnk;
}

function pop_up( lnk, w, h, scroll, id )
{
	lm = (screen.width - w) / 2;
	tm = (screen.height - h) / 2;

	vars = 'menubar=0, status=0, toolbar=0, resizable=1, titlebar=0, scrollbars='+scroll+', width='+w+', height='+h+', top='+tm+', left='+lm;

	var win = window.open( lnk, 'popUp'+id, vars );
	win.focus();
}

function calcPriceWin( lnk, w, h, id )
{
	lm = (screen.width - w) / 2;
	tm = (screen.height - h) / 2;

	vars = 'menubar=0, status=0, toolbar=0, resizable=0, titlebar=0, scrollbars=0, width='+w+', height='+h+', top='+tm+', left='+lm;

	var cpWin = window.open( lnk, id, vars );
	cpWin.focus();
}

function calcPriceS()
{
	var cpStreet 	= document.getElementById('reo_address');
	var cpM2count 	= document.getElementById('calc_price_m2_count');
	var cpHouseNr 	= document.getElementById('calc_price_house_nr');
	var cpApartCnt 	= document.getElementById('calc_price_apart_count');
	var btn 	= document.getElementById('calc_price_calculate');
	
	btn.disabled = true;
	btn.className = 'button_disabled';

	if (cpStreet.value.length > 0 && cpM2count.value.length > 0 && cpHouseNr.value.length > 0 && cpApartCnt.value.length > 0)
	{
		btn.disabled = false;
		btn.className = 'button_search';
	}
	
	return false;
}

// resize & center popup window
function operateWin(w, h)
{
	lm = (screen.width - w) / 2;
	tm = (screen.height - h) / 2;
	
	window.moveTo(lm, tm);
	window.resizeTo(w, h);
	
	window.focus();
}

function fullWindow( lnk, id )
{
	vars 	= 'directories=0, toolbar=0, location=0, status=0, menubar=0, scrollbars=auto, titlebar=0, resizable=0, channelmode=1, fullscreen=1';

	var win = window.open( lnk, 'fullW_'+id, vars );
	win.focus();
}

function win_box(winUid, method, url, title, w, h, resize, scroll, center)
{
	// winUid - window uid
	// method - (iframe | ajax | div | inline)
	var win = dhtmlwindow.open( winUid, method, url, title, 'width='+w+', height='+h+', resize='+resize+', scrolling='+scroll+', center='+center );
}

function a_fix(str, lnk)
{
	var action = confirm(str);

	if (action == true)
	{
		document.location.href = lnk;
	}
}

// --
var dyn_id = null;

function Plus_on(id,site)
{
	if(dyn_id != null)
	{
		Plus_off(dyn_id,site);
		
		if(dyn_id == id)
		{
			dyn_id = null;
			return;
		}
	}
	
	dyn_id = id;
	
	var sl 		= document.getElementById('obj_'+id);
	var display 	= sl.style.display ? '' : 'none';
	
	sl.style.display = display;
}

function Plus_off(id,site)
{
	var sl = document.getElementById('obj_'+id);
	var im = document.getElementById('img_'+id);

	sl.style.display = 'none';
	im.src = site + '/img/sign_plus.gif';
}

function plus_minus_set(id, sign_plus, sign_minus)
{
	var sl = document.getElementById('img_'+id);

	if (document.getElementById('obj_'+id).style.display == 'none')
	{
		sl.src = sign_plus;
	}
	else
	{
		sl.src = sign_minus;
	}
}

// -- layers
function lpos_on(id)
{
	var sl 		= document.getElementById('obj_'+id);
	var display 	= sl.style.display ? '' : 'none';

	sl.style.display = display;
}

var lpos_id = null;

function lpos_on_once(id)
{
	if(lpos_id != null)
	{
		lpos_off(lpos_id);
	
		if(lpos_id == id)
		{
			lpos_id = null;
			
			return;
		}
	}
	
	lpos_id = id;

	var sl 		= document.getElementById('obj_' + id);
	var display 	= sl.style.display ? '' : 'none';

	sl.style.display = display;
}

function lpos_off(id)
{
	var sl = document.getElementById('obj_' + id);

	sl.style.display = "none";
}

// --
function menu_on(id)
{
	var sl = document.getElementById(id);

	sl.style.visibility = 'visible';

}

function menu_off(id)
{
	var sl = document.getElementById(id);

	sl.style.visibility = 'hidden';
}

// --
function changeImgSrc(image_uid, image_url)
{
	image_loaded = new Image();
	image_loaded.src = image_url;
	document.getElementById( image_uid ).src = image_loaded.src;
}

// --
function formGeneralSubmit(bId, bVal) {
	var bElem = document.getElementById(bId);

	bElem.className = 'disabled';
	bElem.value = bVal;
	bElem.disabled = true;
}

// disable button form element
function disableButton(btn, disabledText, disabledStyleClass) {
	btn.className = disabledStyleClass;
	bElem.value = disabledText;
	bElem.disabled = true;
}

function formImageSubmit(imageUid, imageUrl, formId)
{
	var formElem = document.getElementById(formId);
	
	imageLoaded = new Image();
	imageLoaded.src = imageUrl;
	document.getElementById(imageUid).src = imageLoaded.src;
	
	formElem.submit();
}

function changeFormAction(formUid, actionUrl)
{
	var x = document.getElementById(formUid);

	x.action = actionUrl;
}

// -- calendar
function goLastM(year, month)
{
	year  = parseInt(year);
	month = parseInt(month);

	if ( month == 1 )
	{
		--year;
		month = 13;
	}

	return year + "-" + (month-1);
}

function goNextM(year, month)
{
	year  = parseInt(year);
	month = parseInt(month);

	if ( month == 12 )
	{
		++year;
		month = 0;
	}

	return year + "-" + (month+1);
}
// --

function validateNr(oid, str)
{
	var elem = document.getElementById(oid);
	
	if( isNaN(elem.value.split(',').join('.')) || elem.value == " " )
	{
		alert(str);
		elem.value = '';
	}
}

function numberFormat(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 Trim(str)
{  
	while(str.charAt(0) == " ")
	{  
		str = str.substring(1);
	}
  
	while(str.charAt(str.length-1) == " ")
	{
		str = str.substring(0,str.length-1);
	}

	return str;
}

// detects key pressed
function getKey(evt)
{
	evt = (evt) ? evt : (window.event) ? event : null;

	if (evt)
	{
		var cCode = (evt.charCode) ? evt.charCode :
				((evt.keyCode) ? evt.keyCode :
				((evt.which) ? evt.which : 0));
		
		return cCode; 
	}
}

function addressOnKey(e,elem)
{
	switch(getKey(e)) 
	{
		case 8: // backspace
			document.getElementById('reo_address').focus();
		break;
		case 9:  // tab
		case 13: // enter
		case 27: // escape
			document.getElementById('box_list_local_addresses').style.display = 'none';
			document.getElementById('reo_address').focus();
		break;
		case 40: // arrow down
			if(document.getElementById('box_list_local_addresses').style.display == '')
			{
				document.getElementById('hint_address_1_td').style.backgroundColor = '#63B1FF';
				document.getElementById('hint_address_1').focus();

				document.getElementById('reo_address').value = Trim(document.getElementById('hint_address_1').innerHTML);
			}
		break;
		default:
			return false;
	}
}

function hintOnKey(e,previousElem,currentElem,nextElem)
{
	switch(getKey(e))
	{
		case 8: // backspace
			document.getElementById('reo_address').focus();
		break;
		case 9:  // tab
		case 13: // enter
		case 27: // escape
			document.getElementById('box_list_local_addresses').style.display = 'none';
			document.getElementById('reo_address').focus();
		break;
		case 38: // arrow up
			if (previousElem)
			{
				document.getElementById(currentElem + '_td').style.backgroundColor = '';

				document.getElementById(previousElem + '_td').style.backgroundColor = '#63B1FF';
				document.getElementById(previousElem).focus();
				document.getElementById('reo_address').value = Trim(document.getElementById(previousElem).innerHTML);
			}
			else
			{
				document.getElementById(currentElem + '_td').style.backgroundColor = '';

				document.getElementById('reo_address').focus();
			}
		break;
		case 40: // arrow down
			if (nextElem)
			{
				document.getElementById(currentElem + '_td').style.backgroundColor = '';

				document.getElementById(nextElem + '_td').style.backgroundColor = '#63B1FF';
				document.getElementById(nextElem).focus();
				document.getElementById('reo_address').value = Trim(document.getElementById(nextElem).innerHTML);
			}
			else
			{
				document.getElementById(currentElem + '_td').style.backgroundColor = '';
				
				document.getElementById('hint_address_1_td').style.backgroundColor = '#63B1FF';
				document.getElementById('hint_address_1').focus();
				document.getElementById('reo_address').value = Trim(document.getElementById('hint_address_1').innerHTML);
			}
		break;
		default:
			return false;
	}
}

// ** tab elements
var nlayer_id = null;

function drawExtTab(id)
{
	if(nlayer_id != null)
	{
		document.getElementById(nlayer_id).style.display = 'none';
		document.getElementById(nlayer_id + '_bg').style.backgroundColor = '#C6E3A1';
		document.getElementById(nlayer_id + '_bg').style.color = '#708657';

		if(nlayer_id == id)
		{
			document.getElementById(nlayer_id).style.display = '';
			document.getElementById(nlayer_id + '_bg').style.backgroundColor = '#7BA14E';
			document.getElementById(nlayer_id + '_bg').style.color = '#ffffff';

			return;
		}
	}

	nlayer_id = id;

	var display = document.getElementById(id).style.display ? '' : 'none';

	document.getElementById(id).style.display = display;
	document.getElementById(id + '_bg').style.backgroundColor = '#7BA14E';
	document.getElementById(id + '_bg').style.color = '#ffffff';
}

// ** tab AJAX elements
function drawAjaxTab(id)
{
	if(nlayer_id != null)
	{
		document.getElementById(nlayer_id).className = "td_normal";

		if(nlayer_id == id)
		{
			document.getElementById(nlayer_id).className = "td_hover";

			return;
		}
	}

	nlayer_id = id;

	document.getElementById(id).className = "td_hover";
}

// ** select options array type
function sOptionsTypeList(id)
{
        var swList = document.getElementById(id);
	
	var snList = new Array();
	
        for(var i=0; i<swList.length; i++)
	{
		if ( swList[i].selected )
		{
			snList.push(swList[i].value);
		}
	}
	
	if(snList.length == 0)
	{
		snList.push(0);
	}
	
	return snList;
}

// -- select all
function sOptionsAll(id)
{
        var cList = document.getElementById(id);
	
        for(var i=0; i<cList.length; i++)
	{
		cList[i].selected = true;
	}
}			



// ** created by Aleksandr
var layer_id = null;
var arr_obj_building = null;
var arr_request_types = null;
var arr_case_types = null;

function uniq_pos_on(id)
{
	if(layer_id != null)
	{
		lpos_off(layer_id);

		if(layer_id == id)
		{
			layer_id = null;
			return;
		}
	}

	layer_id = id;

	var sl          = document.getElementById('obj_'+id);
	var display     = sl.style.display ? '' : 'none';

	sl.style.display = display;
}

function get_info_arr()
{
	var s_obj1 = "";
	var s_obj2 = "";
	var s_obj3 = "";

	for(i=0; i<arr_request_types.length; i++)
	{
		if (i < arr_obj_building.length)
		{
			if( arr_obj_building[i] == false )
			{
 				s_obj1 = s_obj1 + "0";
			}
			else
			{
				elem = document.getElementById( arr_obj_building[i] );

				if ( elem.checked == true )
				{
		    			s_obj1 = s_obj1 + "1";
				}
				else
				{
		    			s_obj1 = s_obj1 + "0";
				}
			}
		}

		elem = document.getElementById( arr_request_types[i] );

		if ( elem.checked == true )
		{
    			s_obj2 = s_obj2 + "1";
		}
		else
		{
    			s_obj2 = s_obj2 + "0";
		}

		if ( i < arr_case_types.length )
		{
			elem = document.getElementById( arr_case_types[i] );

			if ( elem.checked == true )
			{
	    			s_obj3 = s_obj3 + "1";
			}
			else
			{
	    			s_obj3 = s_obj3 + "0";
			}
		}

	}

	document.map.SetVariable( "s_obj1", s_obj1 );
	document.map.SetVariable( "s_obj2", s_obj2 );
	document.map.SetVariable( "s_obj3", s_obj3 );
}

function set_disable_checkboxes( is_disable )
{
	var arr_obj_id = new Array();
	inx = 0;

	for( i = 0; i < arr_obj_building.length; i++, inx++ )
	{
		arr_obj_id[inx] = arr_obj_building[i];
	}

	for( i = 0; i < arr_request_types.length; i++, inx++ )
	{
		arr_obj_id[inx] = arr_request_types[i];
	}

	for( i = 0; i < arr_case_types.length; i++, inx++ )
	{
		arr_obj_id[inx] = arr_case_types[i];
	}

	for( i = 0; i < arr_obj_id.length; i++ )
	{
		if( arr_obj_id[i] == false )
		{
		}
		else
		{
			elem = document.getElementById( arr_obj_id[i] );
			elem.disabled = is_disable;

			elem = document.getElementById( "s_" + arr_obj_id[i] );
			elem.disabled = is_disable;

			if ( elem.disabled == true )
			{
				elem.style.color = '#cccccc';
				elem.style.cursor = 'text';
			}
			else
			{
				elem.style.color = '#333333';
				elem.style.cursor = 'pointer';
			}
		}
	}

	if( is_disable == false )
	{
		get_info_arr();
	}
}

function set_flash_objects( m_obj_building, m_request_types, m_case_types )
{
	arr_obj_building = m_obj_building.split( "," );
	arr_request_types = m_request_types.split( "," );
	arr_case_types = m_case_types.split( "," );

	for( i = 0; i < arr_request_types.length; i++ )
	{
		if( arr_request_types[i] != false )
		{
			arr_request_types[i] = arr_request_types[i] + "_active";
		}
	}

	for( i = 0; i < arr_case_types.length; i++ )
	{
		if( arr_case_types[i] != false )
		{
			arr_case_types[i] = arr_case_types[i] + "_active";
		}
	}
}
