/*global ActiveXObject: false, window: false, dhtmlwindow: false */

$(window).load(function(){if (window.Banners !== undefined) {Banners.initBanners();}});

function GetXmlHttpObject() {
	var xmlHttp = null;

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

	return xmlHttp;
}

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

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

function c_c_box(obj) {
	var 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), i;

	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) {
	var lm = (screen.width - w) / 2;
	var tm = (screen.height - h) / 2;

	var 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) {
	var lm = (screen.width - w) / 2;
	var tm = (screen.height - h) / 2;

	var 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) {
	var lm = (screen.width - w) / 2;
	var tm = (screen.height - h) / 2;
	
	window.moveTo(lm, tm);
	window.resizeTo(w, h);
	
	window.focus();
}

function fullWindow(lnk, id) {
	var 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)
	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_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_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_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_off(id) {
	var sl = document.getElementById('obj_' + id);

	sl.style.display = "none";
}

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 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) {
	var 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;
	btn.value = disabledText;
	btn.disabled = true;
}

function formImageSubmit(imageUid, imageUrl, formId) {
	var formElem = document.getElementById(formId);
	
	var 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, 10);
	month = parseInt(month, 10);

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

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

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

	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 += '';
	var x = nStr.split('.');
	var x1 = x[0];
	var 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) {
		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 = [], i;
	
    for (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), i;
	
    for (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 = "", i, elem;

	for (i = 0; i < arr_request_types.length; i++) {
		if (i < arr_obj_building.length) {
			if (!arr_obj_building[i]) {
                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 = [];
	var inx = 0, i, elem;

	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]) {
			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) {
//	var arr_obj_building = m_obj_building.split(",");
	var arr_request_types = m_request_types.split(",");
	var arr_case_types = m_case_types.split(","), i;

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

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

