function LPad(ContentToSize, PadLength, PadChar) {
	var PaddedString = ContentToSize.toString();
	for (i = ContentToSize.length + 1; i <= PadLength; i++) {
		PaddedString = PadChar + PaddedString;
	}
	return PaddedString;
}

function addTimeZero(i) {
	return LPad(i, 2, "0");
}

/**
 * Najde k predanemu inputu label podle atributu 'for' a vrati jeho text
 * @param id id zkoumaneho inputu
 * @param hideLabel pokud tru, tak nalezeny label zaroven v CSS zneviditelni
 * @return textovy obsah nalezeneho labelu
 */
function getLabelFor(id, hideLabel) {
	var labels = document.getElementsByTagName("label");
	for (i = 0; i < labels.length; i++) {
		if (labels[i].htmlFor == id) {
			if (hideLabel) {
				labels[i].style.display = 'none';
			}
			var text = labels[i].innerHTML;

			return text;
		}
	}
	return '';
}


var gener_on_focus = function() {
	if (this.value == getLabelFor(this.id)){
		this.value = '';
		this.className = '';
	}
}

var gener_on_blur = function() {
	if (this.value == '') {
		this.className = 'innertext';
		this.value = getLabelFor(this.id);
	}
}

function setInnerLabels() {
	var hideLabel = false;
	var i = 0;
	if ((arguments[0] === true) || (arguments[0] === false)) {
		hideLabel = arguments[0];
		i++;
	}

	for (; i<arguments.length; i++) {
		var obj = document.getElementById(arguments[i]);
		if (obj) {
			text = getLabelFor(arguments[i], hideLabel);
			args = arguments;
			if (obj.addEventListener){
				obj.addEventListener('focus', gener_on_focus, false);
				obj.addEventListener('blur', gener_on_blur, false);
			} else if (obj.attachEvent){
				obj.attachEvent("onfocus", gener_on_focus.bind(obj));
				obj.attachEvent("onblur", gener_on_blur.bind(obj));
			} else {
				obj.onfocus = gener_on_focus;
				obj.onblur = gener_on_blur;
			}
			if (obj.value == '') {
				obj.className = 'innertext';
				obj.value = getLabelFor(obj.id);
			}
			if (parentForm = getParentForm(obj))
				if (parentForm.addEventListener) {
					parentForm.addEventListener('submit',
						function() {
							var i = 0;
							if ((args[0] === true) || (args[0] === false)) {
								i++;
							}

							for (; i<args.length; i++) {
								var obj = document.getElementById(args[i]);
								if (obj) {
									text = getLabelFor(args[i], false);
									if (obj.value == text) {
										obj.value = '';
									}
								}
							}
						},
						false
					);
				} else if (obj.attachEvent) {
					parentForm.attachEvent('onsubmit',
						function() {
							var i = 0;
							if ((args[0] === true) || (args[0] === false)) {
								i++;
							}

							for (; i<args.length; i++) {
								var obj = document.getElementById(args[i]);
								if (obj) {
									text = getLabelFor(args[i], false);
									if (obj.value == text) {
										obj.value = '';
									}
								}
							}
						}
					);
				}
		}
	}
}


/**
 * Najde rodocovsky node typu FORM od predaneho objektu.
 * @param obj zkoumany objekt
 * @return null nebo rodicovsky form
 */
function getParentForm(obj) {
	var tmp_obj = obj;
	while (tmp_obj = tmp_obj.parentNode) {
		if (tmp_obj.nodeName == 'FORM')
			return tmp_obj;
	}
	return null;
}


/**
 * Vlozi do kosiku polozky urcene v parametrech
 * @param item_id id polozky
 * @param count pocet kusu ke vlozeni
 * @return true nebo false, jestli se vlozeni povedlo
 */
function addItemToBasket(item_id, count) {
	var xmlAddItemResponse = null;
	var addItemRequest = new Request({	method: 'post',
						url: '/ajax-api/xml/order/basket_add/?',
						async: false,
						noCache: true,
						onSuccess: function(xmlDataTxt, xmlData) {
								xmlAddItemResponse = xmlData;
							}
					});
	addItemRequest.send('basket_add_submit=ajax&basket_add_id='+item_id+'&basket_add_count='+count);
	return xmlAddItemResponse.getElementsByTagName('success_message').length > 0;
}

