var dropableElements = new Array();

function addZero(s, n) {
	if(s < n * 10) {
		return "0" + s;
	} else {
		return s;
	}
}

function checkBox(e, id) {
	checkBoxValue(e, id, "0,1");
}

function checkBoxValue(e, id, values) {

	values = values.split(",");

	if(e.src.search("active") > -1) {
		e.src = "/" + PATH + "images/control/checkbox.gif";
		if(id != "") document.getElementById(id).value = values[0];
	} else {
		e.src = "/" + PATH + "images/control/checkbox_active.gif";
		if(id != "") document.getElementById(id).value = values[1];
	}
}

function checkAll(group) {
	var temp = getElementsByClassName(document, "*", "checkable_" + group + "_v");

	change_val_to = 0;
	change_src_to = "";

	for(i = 0; i < temp.length; i++) {
		if(temp[i].value == 0) {
			i = temp.length;
			change_val_to = 1;
			change_src_to = "_active";
		}
	}

	for(i = 0; i < temp.length; i++) {
		temp[i].value = change_val_to;
	}

	temp = getElementsByClassName(document, "*", "checkable_" + group);

	for(i = 0; i < temp.length; i++) {
		temp[i].src = "/" + PATH + "images/control/checkbox" + change_src_to + ".gif";
	}
}

function focusError(e, color) {
	e.focus();
	if(color == "red") { startColor = "FF0000"; }
	if(color == "green") { startColor = "00FF00"; }
	if(color == "blue") { startColor = "0000FF"; }
	var finalColor = "";//e.style.backgroundColor;
	if(finalColor == "") { finalColor = "FFFFFF"; }
	bgChanger(e, startColor, finalColor, 25)
}

function numberOnly(text) {
	if(text != "") {
		return text.match(new RegExp("^[0-9 ]+$"));
	} else {
		return true;
	}
}

function alphaOnly(text) {
	if(text != "") {
		return text.match(new RegExp("^[a-zA-ZěščřžýáíúůéäëïöóüďťňĚŠČŘŽÝÁÍÉÚŮÄËÏÖÓÜĎŤŇ ]+$"));
	} else {
		return true;
	}
}

function alphanumOnly(text) {
	if(text != "") {
		return text.match(new RegExp("^[0-9a-zA-ZěščřžýáíúůéäëïöóüďťňĚŠČŘŽÝÁÍÉÚŮÄËÏÖÓÜĎŤŇ _\.]+$"));
	} else {
		return true;
	}
}

function checkHeading(text) {
	if(text != "") {
		return text.match(new RegExp("^[0-9a-zA-ZěščřžýáíúůéäëïöóüďťňĚŠČŘŽÝÁÍÉÚŮÄËÏÖÓÜĎŤŇ :!&#,\"\*\(\)_\.\\\-\?]+$"));
	} else {
		return true;
	}
}

function checkPhone(text) {
	if(text != "") {
		return text.match(new RegExp("^[\+]*[0-9]*[ ]*[0-9]{3}[ ]*[0-9]{3}[ ]*[0-9]{3}$"));
	} else {
		return true;
	}
}

function checkEmail(text) {
	if(text != "") {
		return text.match(new RegExp("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$"));
	} else {
		return true;
	}
}

function passStrength(text) {
	var strength = 0;

	if(text != "") {
		if(text.match(new RegExp("^.*([a-z]+).*$"))) { strength++; }
		if(text.match(new RegExp("^.*([A-Z]+).*$"))) { strength++; }
		if(text.match(new RegExp("^.*([0-9]+).*$"))) { strength++; }
		if(text.match(new RegExp("^.*([ěščřžýáíúůéäëïöüĚŠČŘŽÝÁÍÉÚŮÄËÏÖÜ]+).*$"))) { strength++; }
	}

	return strength;
}

function increaseValue(e, target, max) {
	var n = eval(document.getElementById(target).value);

	if(e.src.search("disabled") > -1 && n <= max) {
		return false;
	} else {
		var c = document.getElementById(target + "_down");
		if(n == max - 1) {
			e.src = "/" + PATH + "images/control/counter_up_disabled.gif";
		}
		if(c.src.search("disabled") > -1) {
			c.src = "/" + PATH + "images/control/counter_down.gif";
		}
		document.getElementById(target).value = addZero(n + 1, 1);
		return true;
	}
}

function decreaseValue(e, target, min) {
	var n = eval(document.getElementById(target).value);

	if(e.src.search("disabled") > -1 && n >= min) {
		return false;
	} else {
		var c = document.getElementById(target + "_up");
		if(n == min + 1) {
			e.src = "/" + PATH + "images/control/counter_down_disabled.gif";
		}
		if(c.src.search("disabled") > -1) {
			c.src = "/" + PATH + "images/control/counter_up.gif";
		}
		document.getElementById(target).value = addZero(n - 1, 1);
		return true;
	}
}

function counterKeyPress(thisElement, thisEvent, min, max) {
	var key = window.event ? thisEvent.keyCode : thisEvent.which;
	var keychar = String.fromCharCode(key);
	var n = eval(thisElement.value);
	var up = document.getElementById(thisElement.name + "_up");
	var down = document.getElementById(thisElement.name + "_down");

	if(keychar == "+") {
		if(n < max) {
			thisElement.value = addZero(n + 1, 1);
			down.src = "/" + PATH + "images/control/counter_down.gif";
		}
		if(n == max) {
			up.src = "/" + PATH + "images/control/counter_up_disabled.gif";
		}
		return false;
	}

	if(keychar == "-") {
		if(n > min) {
			thisElement.value = addZero(n - 1, 1);
			up.src = "/" + PATH + "images/control/counter_up.gif";
		}
		if(n == min) {
			down.src = "/" + PATH + "images/control/counter_down_disabled.gif";
		}
		return false;
	}

	if(keychar.match(new RegExp("^[0-9 ]+$"))) {
		return true;
	} else {
		if(key == 8) return true;
		if(key == 0) return true;
	}

	return false;
}

function chekValue(thisElement, min, max) {
	var n = eval(thisElement.value);

	if(n > max) {
		thisElement.value = addZero(max, 1);
	}

	if(n < min) {
		thisElement.value = addZero(min, 1);
	}
}

function setValue(id, value) {
	document.getElementById(id).value = value;
}

function setComboValue(id, vh, vt) {
	setValue(id, vh);
	setValue(id + "_text", vt);
}

function findDropableElements() {
	temp = getElementsByClassName(document, "*", "dropable");

	for(i = 0; i < temp.length; i++) {
		dropableElements[i] = new Array(temp[i], temp[i].offsetLeft, temp[i].offsetTop, temp[i].offsetWidth, temp[i].offsetHeight)
	}
}

function getDropableElementByPosition(x, y) {

	for(i = 0; i < dropableElements.length; i++) {
		if(x > dropableElements[i][1] && x < (dropableElements[i][1] + dropableElements[i][3]) &&
			y > dropableElements[i][2] && y < (dropableElements[i][2] + dropableElements[i][4])) {
			return dropableElements[i][0];
		}
	}

	return false;
}

function showThumb(id) {
	document.getElementById("thumb_" + id).style.display = "block";
}

function hideThumb(id) {
	document.getElementById("thumb_" + id).style.display = "none";
}

function populateSelect(sbox, values) {
	// clear current values
	for (x = sbox.length; x >= 0; x = x - 1) {
      sbox[x] = null;
	}

	// populate new values
	for (var x = 0; x < values.length; x++) {
		sbox[sbox.length] = new Option(values[x], values[x]);
	}
}
