function popUp(url, width, height) {
	var win = window
			.open(
					url,
					'',
					'width='
							+ width
							+ ',height='
							+ height
							+ ',status=no,scrolling=yes,scrollbars=1,resizable=yes,top=200,left=200,dependent=yes,alwaysRaised=yes');
}

function focusNext(field, evt) {
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.which)
			? evt.which
			: evt.keyCode);

	if (charCode == 13) {
		var i;
		for (i = 0; i < field.form.elements.length; i++)
			if (field == field.form.elements[i])
				break;

		i = (i + 1) % field.form.elements.length;
		field.form.elements[i].focus();
		return false;
	}
	return true;
}

function _jp_doFocusNext(field) {
	document.getElementById(field).onkeypress = function(event) {
		return focusNext(this, event)
	};
}

function init() {
	if (window.jpOnLoad)
		return jpOnLoad();
}

function uninit() {
	if (window.jpOnUnload)
		return jpOnUnload();
}

/* pre tag j:htmlBox - na foldovanie a unfoldovanie boxov */
function box_fold(foldEl, idBox) {
	el = document.getElementById(idBox + '_body');
	el.style.display = 'none';
	document.getElementById(idBox + '_unfold').style.display = 'inline';
	if (foldEl != null)
		foldEl.style.display = 'none';
}

function box_unfold(foldEl, idBox) {
	el = document.getElementById(idBox + '_body');
	el.style.display = 'block';
	document.getElementById(idBox + '_fold').style.display = 'inline';
	if (foldEl != null)
		foldEl.style.display = 'none';
}

/* pre tag j:htmlLinkModal */
function addOver() {
	var overDiv = document.createElement('div');
	overDiv.setAttribute('id', 'jpModalOverlay');

	/***************************************************************************
	 * overDiv.innerHTML = '<br />';
	 **************************************************************************/
	document.body.appendChild(overDiv);
}

function addWindow(link) {
	var content = '<div class=\'modalHeader\'>'
			+ '<a href=\'javascript:closeModal()\'>close</a>' + '</div>'
			+ '<div class=\'modalBody\'>'
			+ '<iframe id=\'jpModalIframe\' src=\'' + link + '\'/>';
	+'</div>';

	var overDiv = document.createElement('div');
	overDiv.setAttribute('id', 'jpModalWindow');
	overDiv.innerHTML = content;
	document.body.appendChild(overDiv);
}

function closeModal() {
	document.body.removeChild(document.getElementById('jpModalOverlay'));
	document.body.removeChild(document.getElementById('jpModalWindow'));
}

function createModal(link) {
	addOver();
	addWindow(link);
}

function formatNumberLcl(num, lcl, dec) {

	if (lcl = 'sk'){
		num = Math.round(num*(Math.pow(10,dec)))/(Math.pow(10,dec));
		var sNum = new String(num);
		aParts = sNum.split(".");
		sNum = aParts.join(",");
		return sNum;
	}
		

}

function formatNumber(num, dec, thou, pnt, curr1, curr2, n1, n2) {
	var x = Math.round(num * Math.pow(10, dec));
	if (x >= 0)
		n1 = n2 = '';
	var y = ('' + Math.abs(x)).split('');
	var z = y.length - dec;
	if (z < 0)
		z--;
	for (var i = z; i < 0; i++)
		y.unshift('0');
	y.splice(z, 0, pnt);
	if (y[0] == pnt)
		y.unshift('0');
	while (z > 3) {
		z -= 3;
		y.splice(z, 0, thou);
	}
	var r = curr1 + n1 + y.join('') + n2 + curr2;
	return r;
}

function locale(decimalPoint, thousandSep, fracDigits) {
	this.decimalPoint = new String(decimalPoint);
	this.thousandSep = new String(thousandSep);
	this.fracDigits = fracDigits;
}
function roundFloat(num, fracDigits) {
	var factor = Math.pow(10, fracDigits);
	return (Math.round(num * factor) / factor);
}
function toLcString(num, lc) {
	var str = new String(num);
	var aParts = str.split(".");
	return (aParts.join(lc.decimalPoint));
}
function formatNum(num, lc) {
	var sNum = new String(roundFloat(num, lc.fracDigits));
	if (lc.fracDigits > 0) {
		if (sNum.indexOf(".") < 0)
			sNum = sNum + ".";
		while (sNum.length < 1 + sNum.indexOf(".") + lc.fracDigits)
			sNum = sNum + "0";
	}
	return (toLcString(sNum, lc));
}
function parseLcNum(str, lc) {
	var sNum = new String(str);
	var aParts = sNum.split(lc.thousandSep);
	sNum = aParts.join("");
	aParts = sNum.split(lc.decimalPoint);
	return (parseFloat(aParts.join(".")));
}

window.onload = init;
window.onunload = uninit;

/**
 * Highlight support
 * 
 * @param {}
 *            val
 * @param {}
 *            field
 * @param {}
 *            class
 * @return {}
 */
function interpolate(val, field, pclass) {
	var x = new Object();
	var q = Ext.get(field).dom.value;
	var qs = q.trim().split(" ");

	return doHighlight(val, qs, pclass);

}
function doHighlight(bodyText, searchTerms, pclass) {

	bodyText = bodyText.replace(new RegExp(searchTerms, 'ig'), function(searchTerms) {
				return '<span class="' + pclass + '">' + searchTerms
						+ '</span>'
			});
			
	return bodyText;		

}

