var menuCurrent = null;
function toggleMenu(obj) {
	if (menuCurrent != null && menuCurrent != obj) {
		document.getElementById('sm'+menuCurrent).style.display = 'none';	
	}
	if (document.getElementById('sm'+obj) != undefined) {
		document.getElementById('sm'+obj).style.display = 'block';
		menuCurrent = obj;
	}
}

function doSearch(path) {
	/*re = /\$|,|@|#|~|`|´|\%|\*|\^|\&|\(|\)|\+|\=|\[|\_|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$/g;
	var query = document.getElementById('query').value.replace(re, "");*/
	var query = document.getElementById('query').value;
	window.location.href = '/'+encodeURIComponent(path)+'/'+encodeURIComponent(query)+'/';
}



function doSearchEnter(e, path){
	e = e || event;
	if (e.keyCode == 13) {
		doSearch(path);
		return false;
	}
}

function customPrompt(q, d, params) {
	disable();
	document.getElementById('prompt_q').innerHTML = q;
	document.getElementById('prompt_value').value = d;
	$('#prompt').center();
	document.getElementById('prompt').style.display = 'block';
	
	document.getElementById('prompt_ok').onclick = function() {
		for (key in params) {
			document.getElementById(key).value = params[key];	
		}
		document.getElementById('value').value = document.getElementById('prompt_value').value;
		
		document.getElementById('form_action').submit();
	}
	
	document.getElementById('prompt_value').focus();
	document.getElementById('prompt_value').select();
}

function closePrompt() {
	document.getElementById('prompt').style.display = 'none';
	document.getElementById('disable').style.display = 'none';
}

function customConfirm(q, params) {
	disable();
	document.getElementById('confirm_q').innerHTML = q;
	$('#confirm').center();
	document.getElementById('confirm').style.display = 'block';
	
	document.getElementById('confirm_ok').onclick = function() {
		for (key in params) {
			document.getElementById(key).value = params[key];	
		}

		document.getElementById('form_action').submit();
	}
}

function closeConfirm() {
	document.getElementById('confirm').style.display = 'none';	
	document.getElementById('disable').style.display = 'none';
}

function customAlert(t) {
	disable();
	document.getElementById('alert_t').innerHTML = t;
	$('#alert').center();
	document.getElementById('alert').style.display = 'block';
}

function closeAlert() {
	document.getElementById('alert').style.display = 'none';
	document.getElementById('disable').style.display = 'none';
}

jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}

function disable() {
	var d = document.getElementById('disable').style;
	d.height = getDocHeight()+'px';
	d.width = getDocWidth()+'px';
	d.display = 'block';
}

function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

function getDocWidth() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
        Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
        Math.max(D.body.clientWidth, D.documentElement.clientWidth)
    );
}

requiredFields = new Array();

function checkValues(obj, form_id) {
	var error = false;

	for (field_id in requiredFields[obj]) {
		if (requiredFields[obj][field_id]['type'] == 'textfield') {
			if (!requiredFields[obj][field_id]['param'].test(document.getElementById(field_id).value) && ((requiredFields[obj][field_id]['only_check_if_value'] == true && document.getElementById(field_id).value != '') || (requiredFields[obj][field_id]['check_if_value'] && document.getElementById(requiredFields[obj][field_id]['check_if_value']).value != '' && document.getElementById(requiredFields[obj][field_id]['check_if_value']).value > 0) || (requiredFields[obj][field_id]['check_if_checked'] && document.getElementById(requiredFields[obj][field_id]['check_if_checked']) != undefined && document.getElementById(requiredFields[obj][field_id]['check_if_checked']).checked == true) || (requiredFields[obj][field_id]['only_check_if_value'] != true && !requiredFields[obj][field_id]['check_if_value'] && !requiredFields[obj][field_id]['check_if_checked']))) {
				error = true;
				
				if (requiredFields[obj][field_id]['tab'] != undefined) {
					selectTab(document.getElementById('tab'+requiredFields[obj][field_id]['tab']));
				}
	
				document.getElementById(field_id).parentNode.getElementsByTagName('span')[1].innerHTML = requiredFields[obj][field_id]['error'];
				document.getElementById(field_id).parentNode.getElementsByTagName('span')[1].style.display = 'inline';
					
				document.getElementById(field_id).className += ' error_input';
				document.getElementById(field_id).onkeyup = function () {
					if (requiredFields[obj][field_id]['param'].test(document.getElementById(field_id).value) || (requiredFields[obj][field_id]['only_check_if_value'] == true && document.getElementById(field_id).value == '') || (requiredFields[obj][field_id]['check_if_value'] && !document.getElementById(requiredFields[obj][field_id]['check_if_value']).value) || (requiredFields[obj][field_id]['check_if_checked'] && document.getElementById(requiredFields[obj][field_id]['check_if_checked']).checked == false)) {
						this.className = this.className.replace(' error_input', '');
						document.getElementById(field_id).parentNode.getElementsByTagName('span')[1].style.display = 'none';
						this.onkeyup = null;
					}
				}
				
				document.getElementById(field_id).onchange = function () {
					if (requiredFields[obj][field_id]['param'].test(document.getElementById(field_id).value) || (requiredFields[obj][field_id]['only_check_if_value'] == true && document.getElementById(field_id).value == '') || (requiredFields[obj][field_id]['check_if_value'] && !document.getElementById(requiredFields[obj][field_id]['check_if_value']).value) || (requiredFields[obj][field_id]['check_if_checked'] && document.getElementById(requiredFields[obj][field_id]['check_if_checked']).checked == false)) {
						this.className = this.className.replace(' error_input', '');
						document.getElementById(field_id).parentNode.getElementsByTagName('span')[1].style.display = 'none';
						this.onchange = null;
					}
				}
				
				document.getElementById(field_id).onfocus = function () {
					if (requiredFields[obj][field_id]['param'].test(document.getElementById(field_id).value) || (requiredFields[obj][field_id]['only_check_if_value'] == true && document.getElementById(field_id).value == '') || (requiredFields[obj][field_id]['check_if_value'] && !document.getElementById(requiredFields[obj][field_id]['check_if_value']).value) || (requiredFields[obj][field_id]['check_if_checked'] && document.getElementById(requiredFields[obj][field_id]['check_if_checked']).checked == false)) {
						this.className = this.className.replace(' error_input', '');
						document.getElementById(field_id).parentNode.getElementsByTagName('span')[1].style.display = 'none';
						this.onfocus = null;
					}
				}
										
				document.getElementById(field_id).focus();
				break;
			}
		} else if (requiredFields[obj][field_id]['type'] == 'option') {
			if (!document.getElementById(field_id).length || !requiredFields[obj][field_id]['param'].test(document.getElementById(field_id).options[document.getElementById(field_id).selectedIndex].value)) {
				error = true;
				
				if (requiredFields[obj][field_id]['tab'] != undefined) {
					selectTab(document.getElementById('tab'+requiredFields[obj][field_id]['tab']));	
				}
				
				alert(requiredFields[obj][field_id]['error']);
				
				document.getElementById(field_id).focus();
				break;
			}
		}
	}	

	if (!error) {
		document.getElementById(form_id).submit();
	}
}

function onlyNumbers(evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	// Backspace, Tab, Delete, Piletaster, Tal
	if (charCode == 8 || charCode == 9 || charCode == 127 || (charCode >= 17 && charCode <= 20) || (charCode >= 48 && charCode <= 57)) {
		return true;	
	}
	return false;
}