function setBRStep(id){
	if (id=='0'){
		$('#geigerBreadcrumb').css({display:'none'});
	} else {
		$('#geigerBreadcrumb').css({display:'block'});
	}
	for ( var x in new Array('0','1','2','3','4')) {
		if (x == id){
			$('#br'+x+'l').addClass('br_left');
			$('#br'+x+'c').addClass('br_center');
			$('#br'+x+'r').addClass('br_right');
		} else {
			$('#br'+x+'l').removeClass('br_left');
			$('#br'+x+'c').removeClass('br_center');
			$('#br'+x+'r').removeClass('br_right');
		}
	}
}

function hasUrlParameters(url) {
	if (url.indexOf("?") == -1) {
		return false;
	}
	return true;
}
	
function addFirstParameterCharToUrl(url) {
	if (hasUrlParameters(url)) {
		url += "&";
	} else {
		url += "?";
	}
	return url;
}

function highlightNavigation(elemId) {
	var navigationItem = document.getElementById(elemId);
	if (navigationItem) {
		navigationItem.className = navigationItem.className + " active";
	}
}

function expandPanel(element) {

	var panelA = document.getElementById('addressPanel');
	var panelB = document.getElementById('deliveryPanel');
	var panelC = document.getElementById('paymentPanel');
	var panelD = document.getElementById('voucherPanel');
	var panelE = document.getElementById('overviewPanel');

	panelA.className = "panel noDisplay";
	panelB.className = "panel noDisplay";
	panelC.className = "panel noDisplay";
	panelD.className = "panel noDisplay";
	panelE.className = "panel noDisplay";

	document.getElementById(element).className = "panel";

	switch (element) {
		case "addressPanel": updateInfo('step_adress'); break;
		case "deliveryPanel": updateInfo('step_delivery'); break;
		case "paymentPanel": updateInfo('step_payment'); break;
		case "voucherPanel": updateInfo('step_voucher'); break;
		case "overviewPanel": updateInfo('step_overview'); break;
	}
}

function paymentMapping(id) {
	switch (id) {
		case "1": return "prepaymentPanel";
		case "2": return "cashtransferPanel";
		case "3": return "invoicePanel";
		case "4": return "bankcollectionPanel";
		case "5": return "codPanel";
		case "6": return "cashPanel";
	}
	return null;
}

function expandAdditionalPaymentInfoPanel(name) {
	$("div[name='payment']").each(function(){
		this.className = "noDisplay";
	});

	var paymentId = getCheckedRadioOrCheckBox(name).value;
	var panel = document.getElementById("payment_" + paymentId);
	panel.className = "display";
}

function checkBoxBtnControl(checkBoxId, btnId) {
	var checkBox = document.getElementById(checkBoxId);
	var btn = document.getElementById(btnId);

	if (checkBox.checked == true) {
		btn.disabled = false;
	} else {
		btn.disabled = true;
	}

}

function getCheckedRadioOrCheckBox(name) {
	set = document.getElementsByName(name);

	for(var i = 0; i < set.length; i++)
	if(set[i].checked == true) {
		return set[i];
		break;
	}
	return null;
}

function isRadioOrCheckBoxSelected(name) {
	ele = document.getElementsByName(name);

	var isChecked = "false";

	for(var i = 0; i < ele.length; i++)
	if(ele[i].checked == true) {
		isChecked = "true";
		break;
	}
	return isChecked;
}

function popup (url, title, width, heigth, resizable) {
	 fenster = window.open(url, title, width=width, height=heigth, resizable=resizable);
	 fenster.focus();
	 return false;
}

function confirmDelete(msg, id) {
	var go_on = confirm(msg);
	if (go_on == true) {
		document.getElementById("deleteForm_itemId").value = id;
		document.getElementById("deleteForm").submit();
	}
	return go_on;
}

function confirmCopy(id) {
	document.getElementById("copyForm_itemId").value = id;
	document.getElementById("copyForm").submit();
	return true;
}


function ensureNumberInput(inputField) {

	try {
		var newVal = parseInt(inputField.value);

		return (!isNaN(newVal));

	} catch (e) {
		alert(e);
		return false;
	}

	return true;
}

function submitChange(inputField, oldAmountFieldIndex) {
	var succeed = ensureNumberInput(inputField);
	if (succeed) {
		document.getElementById('set_amount').value = inputField.value;
		document.getElementById('set_index').value  = oldAmountFieldIndex;
		document.getElementById('btn_recalculate').click();

	} else {
		// reset to old amount
		var oldAmount = document
				.getElementById('oldAmount_' + oldAmountFieldIndex).value;
		inputField.value = oldAmount;

		var span = document.getElementById('error_' + oldAmountFieldIndex);
		if (span) {
			span.style.display = 'inline';
		}

		return false;
	}
}

function submitChangeOnCr(inputField, oldAmountFieldIndex, keyval) {
	if (keyval == 13) {
		submitChange(inputField, oldAmountFieldIndex);
	}
}

function invertBooleanResource(id) {
	resource = document.getElementById(id);
	if (resource.value == "true") {
		resource.value = "false";
	} else {
		resource.value = "true";
	}
}

function ietruebody() {
	return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement
			: document.body
}

function ddrivetip(thetext, thewidth, thecolor) {
	if (ns6 || ie) {
		if (typeof thewidth != "undefined")
			tipobj.style.width = thewidth + "px"
		if (typeof thecolor != "undefined" && thecolor != "")
			tipobj.style.backgroundColor = thecolor
		tipobj.innerHTML = thetext
		enabletip = true
		return false
	}
}

function positiontip(e) {
	if (enabletip) {
		var nondefaultpos = false
		var curX = (ns6) ? e.pageX : event.clientX + ietruebody().scrollLeft;
		var curY = (ns6) ? e.pageY : event.clientY + ietruebody().scrollTop;
		// Find out how close the mouse is to the corner of the window
		var winwidth = ie && !window.opera ? ietruebody().clientWidth
				: window.innerWidth - 20
		var winheight = ie && !window.opera ? ietruebody().clientHeight
				: window.innerHeight - 20

		var rightedge = ie && !window.opera ? winwidth - event.clientX
				- offsetfromcursorX : winwidth - e.clientX - offsetfromcursorX
		var bottomedge = ie && !window.opera ? winheight - event.clientY
				- offsetfromcursorY : winheight - e.clientY - offsetfromcursorY

		var leftedge = (offsetfromcursorX < 0) ? offsetfromcursorX * (-1)
				: -1000

		// if the horizontal distance isn't enough to accomodate the width of
		// the context menu
		if (rightedge < tipobj.offsetWidth) {
			// move the horizontal position of the menu to the left by it's
			// width
			tipobj.style.left = curX - tipobj.offsetWidth + "px"
			nondefaultpos = true
		} else if (curX < leftedge)
			tipobj.style.left = "5px"
		else {
			// position the horizontal position of the menu where the mouse is
			// positioned
			tipobj.style.left = curX + offsetfromcursorX
					- offsetdivfrompointerX + "px"
			pointerobj.style.left = curX + offsetfromcursorX + "px"
		}

		// same concept with the vertical position
		if (bottomedge < tipobj.offsetHeight) {
			tipobj.style.top = curY - tipobj.offsetHeight - offsetfromcursorY
					+ "px"
			nondefaultpos = true
		} else {
			tipobj.style.top = curY + offsetfromcursorY + offsetdivfrompointerY
					+ "px"
			pointerobj.style.top = curY + offsetfromcursorY + "px"
		}
		tipobj.style.visibility = "visible"
		if (!nondefaultpos)
			pointerobj.style.visibility = "visible"
		else
			pointerobj.style.visibility = "hidden"
	}
}

function hideddrivetip() {
	if (ns6 || ie) {
		enabletip = false
		tipobj.style.visibility = "hidden"
		pointerobj.style.visibility = "hidden"
		tipobj.style.left = "-1000px"
		tipobj.style.backgroundColor = ''
		tipobj.style.width = ''
	}
}
