var is_ie = ( /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent) );

function g(id){
	return document.getElementById(id);
}

/* IE6 flicker fix
-------------------------------------------------- */
try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


/* Login toggle
-------------------------------------------------- */
var exp1 = null;
var exp2 = null;

function addEvent(el, evname, func) {
	if (el.attachEvent) { // IE
		el.attachEvent("on" + evname, func);
	} else if (el.addEventListener) { // Gecko / W3C
		el.addEventListener(evname, func, true);
	} else {
		el["on" + evname] = func;
	}
	focusFirstForm();
}

function removeEvent(el, evname, func) {
	if (el.detachEvent) { // IE
		el.detachEvent("on" + evname, func);
	} else if (el.removeEventListener) { // Gecko / W3C
		el.removeEventListener(evname, func, true);
	} else {
		el["on" + evname] = null;
	}
}

function closeExpandable(ev){
	if (!exp1 || !exp2) return;

	var f = is_ie ? window.event.srcElement : ev.target;
	while (f){
		if (f.id == exp1+'container') return;
		f = f.parentNode;
	}

	el = g(exp1);
	el.style.display = 'none';
	exp2.className = '';
	removeEvent(document, "mousedown", closeExpandable);
}

function toggleExpandable(target, ref){
	if (exp1 != null && exp1 != target){ g(exp1).style.display = 'none'; }
	if (exp1 != null && exp2 != ref){ exp2.className = ''; }
	exp1 = target;
	exp2 = ref;

	el = g(target);
	if (el.style.display != 'block'){
		el.style.display = 'block';
		ref.className = 'open';
		addEvent(document, "mousedown", closeExpandable);
	} else {
		el.style.display = 'none';
		ref.className = '';
		removeEvent(document, "mousedown", closeExpandable);
	}
	return false;
}

/* On key press
-------------------------------------------------- */
document.onkeypress = function(e) {
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	if (code == 27){
		hideOverlay();
	}
}

/* Form (elements) focusing
-------------------------------------------------- */
function focusFirstForm() {
	if (g('login') && g('login').style.display != 'none') {
		o = g('loginform');
		focusFirstFormItem(o);
	} else if (g('searchform')) {
		o = g('searchform');
		focusFirstFormItem(o);
	}
}

function focusFirstFormItem(o){
	for (var i=0; i<o.childNodes.length; i++) {
		if (o.childNodes.item(i).style && o.childNodes.item(i).style.display == "none") {
			continue;
		}
		var temp = o.childNodes.item(i).nodeName.toUpperCase();
		var text = false;
		if (temp == "INPUT") {
			var type = o.childNodes.item(i).getAttribute("type");
			if (type == "text" || type == "radio" || type == "checkbox") {
				text = true;
			}
		}
		if (text || temp == "SELECT" || temp == "SELECT") {
			o.childNodes.item(i).focus();
			return true;
		} else {
			var result = focusFirstFormItem(o.childNodes.item(i));
			if (result) {
				return true;
			}
		}
	}
	return false;
}

if (document.all && !window.opera) {
	window.attachEvent('onload', focusFirstForm);
} else {
	window.addEventListener('load', focusFirstForm, false);
}

/* Popup script
-------------------------------------------------- */
function popup(url, window_name, window_width, window_height) {
	settings=
	"toolbar=no,location=no,directories=no,"+
	"status=no,menubar=no,scrollbars=yes,"+
	"resizable=yes,width="+window_width+",height="+window_height;

	NewWindow=window.open(url,window_name,settings);
	if (window.focus) {NewWindow.focus()}
}

/* Map functions
-------------------------------------------------- */
function getboxes() {
	if (box_names == 'district') {
		return document.searchEstateForm.district;
	}
}

function showmap(part){
	if (multiple) {
		document.getElementById('layer_'+part).style.backgroundImage = 'url('+src_prefix+'active_'+part+'.gif)';
	} else {
		document.getElementById('locationlayer_only').style.backgroundImage = 'url('+src_prefix+'active_'+part+'.gif)';
	}
}

function hidemap(part){
	if (multiple) {
		index = mapBoxes[part];
		if (!getboxes()[0].checked && !getboxes()[index].checked) {
			document.getElementById('layer_'+part).style.backgroundImage='';
		}
	} else {
		document.getElementById('locationlayer_only').style.backgroundImage='';
	}
}

function clickmap(part){
	if (multiple) {
		index = mapBoxes[part];
		getboxes()[index].click();
		//document.getElementById('StyledCheckboxLink'+index).click();
	}
}

function clickbox() {
	if (getboxes()[0].checked) {
		getboxes()[0].click();
	} else {
		refreshmap();
	}
}

function refreshmap() {
	if (getboxes()[0].checked) {
		for (var i in mapBoxes) {
			showmap(i);
		}
	} else {
		for (var i in mapBoxes) {
			index = mapBoxes[i];
			if (getboxes()[index].checked) {
				showmap(i);
			} else {
				hidemap(i);
			}
		}
	}
}

function checkall() {
	for (var i in mapBoxes) {
		index = mapBoxes[i];
		if(document.getElementById('StyledCheckboxLink'+index))	document.getElementById('StyledCheckboxLink'+index).click();
		//i++;
	}
}

/* Make textarea 100px higher
-------------------------------------------------- */
function msgResize(pix) {
	var box        = document.getElementById('message');
	var msgsmaller = document.getElementById('msg-smaller');
	var cur_height = parseInt( box.style.height ) ? parseInt( box.style.height ) : 100;
	var new_height = cur_height + pix;
	
	if ( new_height > 0 ){
		box.style.height = new_height + "px";
	}
	if ( new_height > 100 ) {
		msgsmaller.style.display = '';
	} else {
		msgsmaller.style.display = 'none';
	}
	return false;
}

/* Toggle ID
-------------------------------------------------- */
function toggle(id){
	var element = document.getElementById(id);

	if (element.style.display == 'none') {
		if (element.tagName == 'TBODY') {
			element.style.display = "";
		} else if (document.getElementById(id).tagName == 'TR' && !document.all){
			document.getElementById(id).style.display = "table-row";
		} else if ((navigator.userAgent.indexOf("Opera")!=-1 || navigator.userAgent.indexOf("Opera/")!=-1) && document.getElementById(id).tagName == 'TR') {
			element.style.display = "table-row";
		} else if (element.tagName == 'TD') {
			element.style.display = "table-cell";
		} else if (element.tagName == 'INPUT' || 'A') {
			element.style.display = "inline";
		} else {
			element.style.display = 'block';
		}
	} else {
		element.style.display = 'none';
	}
}

/* Show element
-------------------------------------------------- */
function showElement(id) {
	var element = document.getElementById(id);

	element.style.display = '';
}

/* Close element
-------------------------------------------------- */
function closeElement(id) {
	var element = document.getElementById(id);

	element.style.display = 'none';
}

/* Bronn toggle
-------------------------------------------------- */
function bronn01() {
	closeElement('radiochoice02');
	closeElement('radiochoice04');
	showElement('radiochoice03');
	showElement('radiochoice01');
}
function bronn02() {
	closeElement('radiochoice01');
	closeElement('radiochoice03');
	showElement('radiochoice02');
	showElement('radiochoice04');
}

/* Set Checkbox
-------------------------------------------------- */
function markAll(formId,checked) {
	var e = document.forms[formId].elements;
	for (i = 0; i < e.length; i++) {
		if (e[i].type != 'checkbox') continue;

		e[i].checked = checked;
		if (checked) {
			if(e[i].parentNode.parentNode.className == 'even') {
				e[i].parentNode.parentNode.className = 'even marked';
			} else {
				e[i].parentNode.parentNode.className = 'marked';
			}
		} else {
			if(e[i].parentNode.parentNode.className == 'even marked') {
				e[i].parentNode.parentNode.className = 'even';
			} else {
				e[i].parentNode.parentNode.className = '';
			}
		}
	}
}
function setCheckbox(e, cell) {
	var cbox = cell.getElementsByTagName('input')[0];
	var clickedElt = window.event? event.srcElement: e.target;

	if (clickedElt != cbox)
		cbox.checked = !(cbox.checked);
		var classes = cell.parentNode.className;
	if (cbox.checked) {
		classes += " marked";
	} else {
	    classes.replace(/marked/, '');
	}
}
function norobotmail(aUser, aDomain) { 
    document.location = "mailto:" + aUser + "@" + aDomain;
}

