/* funkcijos, apdorojančios ajax response */
function open_page(str) {
	if (typeof(str) != 'undefined' && str != null && str != '') {
		var response = eval('(' + str + ')');
		if (typeof(response.enable) != 'undefined' && response.enable != null && response.enable != '') {
			document.getElementById(response.enable).disabled = false;
		}
		if (typeof(response.focus) != 'undefined' && response.focus != null && response.focus != '') {
			element = document.getElementById(response.focus);
			if (element_visible(element) && element.disabled == false) {
				element.focus();
			}
			if (typeof(response.focus_add_name) != 'undefined' && response.focus_add_name != null && response.focus_add_name != '') {
				var lbl = "lbl" + element.name.substr(element.name.search('_'));
				var obj = document.getElementById(lbl);
				if (obj != null) { response[response.focus_add_name] += (obj.innerText == null ? obj.textContent : obj.innerText); }
			}
		}
		if (typeof(response.message) != 'undefined' && response.message != null && response.message != '') {
			alert(response.message);
		}
		if (typeof(response.error) != 'undefined' && response.error != null && response.error != '') {
			alert(response.error);
			return false;
		}
		if (typeof(response.element) != 'undefined' && response.element != null && response.element != '') {
			document.getElementById(response.element).value = response.value;
		}
		if (typeof(response.click) != 'undefined' && response.click != null && response.click != '') {
			document.getElementById(response.click).click();
			return true;
		}
		if (typeof(response.submit) != 'undefined' && response.submit != null && response.submit != '') {
			document.forms[response.submit].submit();
			return true;
		}
		if (typeof(response.url) != 'undefined' && response.url != null && response.url != '') {
			var url = response.url;
		} else {
			var url = location.href;
		}
		if (typeof(response.row_id) != 'undefined') {
			var regexp = /[\\?&]row_id=([^&#]*)/;
			if (response.row_id != null && response.row_id != '') {
				var pos = url.search(regexp);
				if (pos == -1) {
					url = url + (url.indexOf('?') == -1 ? '?' : '&' ) + 'row_id=' + response.row_id;
				} else {
					url = url.replace(regexp, url.substr(pos, 1) + 'row_id=' + response.row_id);
				}
			} else {
				url = url.replace(regexp, '');
			} 
		}
		if (typeof(response.filter_row_id) != 'undefined') {
			var regexp = /[\\?&]filter_row_id=([^&#]*)/;
			if (response.filter_row_id != null && response.filter_row_id != '') {
				var pos = url.search(regexp);
				if (pos == -1) {
					url = url + (url.indexOf('?') == -1 ? '?' : '&' ) + 'filter_row_id=' + response.filter_row_id;
				} else {
					url = url.replace(regexp, url.substr(pos, 1) + 'filter_row_id=' + response.filter_row_id);
				}
			} else {
				url = url.replace(regexp, '');
			}
		} else {
			var regexp = /[\\?&]filter_row_id=([^&#]*)/;
			var pos = url.search(regexp);
			if (pos != -1) {
				var filter_row_id =	url.match(regexp);
				var regexp2 = /[\\?&]row_id=([^&#]*)/;
				var pos2 = url.search(regexp2);
				if (pos2 != -1) {
					var row_id = url.match(regexp2);
					if (filter_row_id[1] != row_id[1]) {
						url = url.replace(regexp, '');
					}
				}
			}
		}
		window.location.reloading = true;
		window.location = url;
	}
	return true;
}

function reload_page(str) {
	if (typeof(str) != 'undefined' && str != null && str != '') {
		var response = eval('(' + str + ')');
		if (typeof(response.error) != 'undefined' && response.error != null && response.error != '') {
			alert(response.error);
			return false;
		}
	}
	window.location.reloading = true;
	window.location.reload(true);
}

function update_value(str) {
	if (typeof(str) != 'undefined' && str != null && str != '') {
		var response = eval('(' + str + ')');
		if (typeof(response.error) != 'undefined' && response.error != null && response.error != '') {
			alert(response.error);
			return false;
		}
		if (typeof(response.element) != 'undefined' && response.element != null && response.element != '') {
			document.getElementById(response.element).value = response.value;
		}
		if (typeof(response.click) != 'undefined' && response.click != null && response.click != '') {
			document.getElementById(response.click).click();
			return true;
		}
	} 
}

function show_report(str) {
	showing = false;
	var button = document.getElementById('btn_show');
	if (button) { button.disabled = false; }
	focus_element('', 'tab_report', '0');
	if (typeof(str) != 'undefined' && str != null && str != '') {
		var response = eval('(' + str + ')');
		if (typeof(response.error) != 'undefined' && response.error != null && response.error != '') {
			alert(response.error);
			return false;
		}
		if (typeof(response.report) != 'undefined' && response.report != null && response.report != '') {
			var div = document.getElementById('div_report');
			if (div) { div.innerHTML = response.report; } 
		}
	} 
}

function remove_element(str) {
	if (typeof(str) != 'undefined' && str != null && str != '') {
		var response = eval('(' + str + ')');
		if (typeof(response.error) != 'undefined' && response.error != null && response.error != '') {
			alert(response.error);
			return false;
		}
		if (typeof(response.element) != 'undefined' && response.element != null && response.element != '') {
			if (typeof(response.element) == 'object') {
				for (i = 0; i <response.element.length; i++) {
					var element = document.getElementById(response.element[i]);
					if (element) { element.parentNode.removeChild(element); }
				}
			} else {
				var element = document.getElementById(response.element);
				if (element) { element.parentNode.removeChild(element); }
			}
		}
	} 
}

function add_html(str) {
	if (typeof(str) != 'undefined' && str != null && str != '') {
		var response = eval('(' + str + ')');
		if (typeof(response.error) != 'undefined' && response.error != null && response.error != '') {
			alert(response.error);
			return false;
		}
		if (typeof(response.element) != 'undefined' && response.element != null && response.element != '' && typeof(response.html) != 'undefined') {
			var element = document.getElementById(response.element);
			if (element) { element.innerHTML = element.innerHTML + response.html; }
		}
	} 
}

function replace_html(str) {
	if (typeof(str) != 'undefined' && str != null && str != '') {
		var response = eval('(' + str + ')');
		if (typeof(response.error) != 'undefined' && response.error != null && response.error != '') {
			alert(response.error);
			return false;
		}
		if (typeof(response.element) != 'undefined' && response.element != null && response.element != '' && typeof(response.html) != 'undefined') {
			var element = document.getElementById(response.element);
			if (element) { element.innerHTML = response.html; }
		}
	} 
}

/* url manipuliavimo funkcijos */
function url_replace_param(name, value, url) {
	if (typeof(url) == 'undefined' || url == null || url == '') {
		url = location.href;
	}
	var regexp = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i');
	var pos = url.search(regexp);
	if (pos == -1) {
		url = url + (url.indexOf('?') == -1 ? '?' : '&' ) + name + '=' + value;
	} else {
		url = url.replace(regexp, url.substr(pos, 1) + name + '=' + value);
	}
	return url;
}

function url_current_row(grid_id, url) {
	if (typeof(url) == 'undefined' || url == null || url == '') {
		url = location.href;
	}
	var current_row_id = document.getElementById(grid_id + '_current_row').value;
	if (current_row_id != '') {
		var regexp = /[\\?&]row_id=([^&#]*)/;
		var pos = url.search(regexp); 
		if (pos == -1) {
			url = url + (url.indexOf('?') == -1 ? '?' : '&' ) + 'row_id=' + current_row_id;
		} else {
			url = url.replace(regexp, url.substr(pos, 1) + 'row_id=' + current_row_id);
		}
	}
	return url;
}

/* funkcijos, skirtos parodyti/paslėpti pramešimą vartotojui */
function show_message(str, e) {
	var element = document.getElementById('div_path_message');
	if (element) {
		element.innerHTML = '<span class="message">' + str + '</span>';
		if (document.addEventListener) {
			document.addEventListener('click', hide_message, true);
		} else {
			document.attachEvent('onclick', hide_message);
		}
	}
}

function hide_message(e) {
	if (document.removeEventListener) {
		document.removeEventListener('click', hide_message, true);
	} else {
		document.detachEvent('onclick', hide_message);
	}
	var element = document.getElementById('div_path_message');
	if (element) {
		element.innerHTML = '';
	}
}

/* funkcijos, skirtos parodyti/paslėpti puslapio nuorodą */
function show_link(str, e) {
	var span = document.getElementById('div_path_message');
	if (span) {
		span.innerHTML = '<input id="edt_path_link" type="text" class="textbox" size="80" value="' + str + '" />';
		input = document.getElementById('edt_path_link');
		input.focus();
		input.select();
		if (document.addEventListener) {
			e.stopPropagation();
			document.addEventListener('click', hide_link, true);
		} else {
			window.event.cancelBubble = true;
			document.attachEvent('onclick', hide_link)
		}
	}
}

function hide_link(e) {
	if ((e.target||e.srcElement).id != 'edt_path_link') {
		if (document.removeEventListener) {
			document.removeEventListener('click', hide_link, true);
			e.stopPropagation();
		} else {
			document.detachEvent('onclick', hide_link)
			window.event.cancelBubble = true;
		}
		var span = document.getElementById('div_path_message');
		if (span) {
			span.innerHTML = '';
		}
	}
}

/* fokusavimo funkcijos */
function focus_element(row_id, tab_id, tabindex) {
	if (typeof(row_id) != 'undefined' && row_id != null && row_id != '') {
		var id_parts = row_id.split(':');
		var grid_id = id_parts[0];
		var div = document.getElementById(grid_id + '_rows');
		if (div) {
			active_grid_id = grid_id;
			var div = document.getElementById(grid_id + '_rows');
			if (div.offsetWidth < div.scrollWidth) { var div_height = parseInt(div.offsetHeight) - 17; } 
			else { var div_height = parseInt(div.offsetHeight); }
			var div_top = parseInt(div.scrollTop);
		}
		var row = document.getElementById(row_id);
		if (row) {
			var row_height = parseInt(row.offsetHeight);
			var row_top = parseInt(row.rowIndex) * row_height;
			if (row_top + row_height - div_top > div_height) { div.scrollTop = row_top + row_height - div_height; }
			else if (row_top < div_top) { div.scrollTop = row_top; }
		}
		return;
	}
	if (typeof(tab_id) != 'undefined' && tab_id != null && tab_id != '') {
		var tab_new = document.getElementById(tab_id);
		if (tab_new) {
			var active_tab = document.getElementById(element_tabset(tab_new)+'_active_tab');
			var tabset_header_td_new = document.getElementById('tabset_header_td_'+tab_id);
			var tabset_header_div_new = document.getElementById('tabset_header_div_'+tab_id);
			var tab_old = document.getElementById(active_tab.value);
			var tabset_header_td_old = document.getElementById('tabset_header_td_'+active_tab.value);
			var tabset_header_div_old = document.getElementById('tabset_header_div_'+active_tab.value);
			
			active_tab.value = tab_id;
			tab_old.className = 'tab_inactive';
			tab_new.className = 'tab_active';
			tabset_header_td_old.className = 'tabset_header_td_inactive';
			tabset_header_td_new.className = 'tabset_header_td_active';
			tabset_header_div_old.className = 'tabset_header_div_inactive';
			tabset_header_div_new.className = 'tabset_header_div_active';
		}
	}
	if (typeof(tabindex) != 'undefined' && tabindex != null && tabindex != '') {
		if (isNaN(tabindex)) {
			if (document.getElementById(tabindex)) {
				active_grid_id = tabindex;
			}
			return;
		}
		e = parseInt(tabindex);
		var i = 0, j = 0;
		var ii = null, jj = null, i1 = null, j1 = null, i2 = null, j2 = null, i3 = null, j3 = null;
		var first = 1000, next = 1000;
		for (i = 0; i <document.forms.length; i++) {
			for (j = 0; j < document.forms[i].elements.length; j++) {
				if (document.forms[i].elements[j].tabIndex == -1) { continue; }
				if (element_visible(document.forms[i].elements[j]) && (document.forms[i].elements[j].disabled != true) && (document.forms[i].elements[j].type.toLowerCase() != 'hidden')) {
					if (document.forms[i].elements[j].tabIndex < first) { 
						first = document.forms[i].elements[j].tabIndex; j1 = j; i1 = i; 
					}
					if ((document.forms[i].elements[j].tabIndex > e + 1) && (document.forms[i].elements[j].tabIndex < next)) {
						next = document.forms[i].elements[j].tabIndex; j2 = j; i2 = i; 
					}
					if (document.forms[i].elements[j].tabIndex == e + 1) {
						j3 = j; i3 = i; 			
						break;
					}
				}
			}
		}
		if (j1 != null) { jj = j1; ii = i1; }
		if (j2 != null) { jj = j2; ii = i2; }
		if (j3 != null) { jj = j3; ii = i3; }
		if (jj != null) {
			document.forms[ii].elements[jj].focus();
			if ((document.forms[ii].elements[jj].tagName.toLowerCase() == 'input') && (document.forms[ii].elements[jj].type.toLowerCase() == 'text')) { document.forms[ii].elements[jj].select(); }
		}
	}
	return;
};

function element_visible(e) {
	while (e.nodeName.toLowerCase() != 'body') {
		if (e.style.display == 'none' || e.style.visibility == 'hidden' || e.className == 'tab_inactive') {
			return false;
		}
		e = e.parentNode;
	}
	return true;
}

function element_tabset(e) {
	while (e.nodeName.toLowerCase() != 'body') {
		if (e.className == 'tabset') {
			return e.id;
		}
		e = e.parentNode;
	}
	return '';
}

/* popopų funkcijos */
function popup(url, name, width, height) {
	url = url + (url.indexOf('?') == -1 ? '?' : '&' ) + 'width=' + width + '&height=' + height;
	var popup_window = window.open(url, name, 'left='+(screen.width/2 - width/2)+', top='+(screen.height/2 - height/2)+', width='+width+', height='+height+', menubar=no, toolbar=no, location=no, resizable=no, scrollbars=no, status=yes');
	popup_window.focus();
}

function popup_full(url, name) {
	var popup_window = window.open(url, name, 'menubar=yes, toolbar=yes, location=yes, resizable=yes, scrollbars=yes, status=yes');
	popup_window.focus();
}

/* reikšmės formatavimo funkcijos */
function round(rnum, rlength) {
	if (typeof(rlength) == 'undefined') { var rlength = 0; }
	var newnumber = Math.round(rnum * Math.pow(10, rlength)) / Math.pow(10, rlength);
	return newnumber;
}

function num_format(rnum, rlength) {
	var newnumber = round(rnum, rlength);
	return newnumber.toFixed(rlength);
}

function date_format(d, mask) {
	var zeroize = function (value, length) {
		if (!length) length = 2;
		value = String(value);
		for (var i = 0, zeros = ''; i < (length - value.length); i++) {
			zeros += '0';
		}
		return zeros + value;
	};
	return mask.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMs])\1?|TT|tt|[lL])\b/g, function($0) {
		switch($0) {
			case 'd':	return d.getDate();
			case 'dd':	return zeroize(d.getDate());
			case 'ddd':	return ['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][d.getDay()];
			case 'dddd':	return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][d.getDay()];
			case 'm':	return d.getMonth() + 1;
			case 'mm':	return zeroize(d.getMonth() + 1);
			case 'mmm':	return ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][d.getMonth()];
			case 'mmmm':	return ['January','February','March','April','May','June','July','August','September','October','November','December'][d.getMonth()];
			case 'yy':	return String(d.getFullYear()).substr(2);
			case 'yyyy':	return d.getFullYear();
			case 'h':	return d.getHours() % 12 || 12;
			case 'hh':	return zeroize(d.getHours() % 12 || 12);
			case 'H':	return d.getHours();
			case 'HH':	return zeroize(d.getHours());
			case 'M':	return d.getMinutes();
			case 'MM':	return zeroize(d.getMinutes());
			case 's':	return d.getSeconds();
			case 'ss':	return zeroize(d.getSeconds());
			case 'l':	return zeroize(d.getMilliseconds(), 3);
			case 'L':	var m = d.getMilliseconds();
					if (m > 99) m = Math.round(m / 10);
					return zeroize(m);
			case 'tt':	return d.getHours() < 12 ? 'am' : 'pm';
			case 'TT':	return d.getHours() < 12 ? 'AM' : 'PM';
			// Return quoted strings with the surrounding quotes removed
			default:	return $0.substr(1, $0.length - 2);
		}
	});
};

function alnum(str) {
	var lt = new Array('ą', 'č', 'ę', 'ė', 'į', 'š', 'ų', 'ū', 'ž', 'Ą', 'Č', 'Ę', 'Ė', 'Į', 'Š', 'Ų', 'Ū', 'Ž');
	var en = new Array('a', 'c', 'e', 'e', 'i', 's', 'u', 'u', 'z', 'A', 'C', 'E', 'E', 'I', 'S', 'U', 'U', 'Z');
	for (i = 0; i < lt.length; i++) {
		str = str.replace(RegExp(lt[i], "g"), en[i]);
	}
	str = str.replace(/([^\s0-9a-z_-])/gi, '').replace(/^\s+|\s+$/g, '').toUpperCase();
	return str;
}

function upper(str) {
	str = str.toUpperCase();
	return str;
}

function lower(str) {
	str = str.toLowerCase();
	return str;
}

function num(str, x, y) {
	if (isNaN(str)) {
		n = parseFloat(str.replace(/,/g, '.').replace(/[^0-9-.]/g, ''));
		if (isNaN(n)) { nstr = '0'; }
		else { nstr = n.toString(); }
	} else {
		nstr = str.toString();
	}
	if (typeof(x) != 'undefined' && typeof(y) == 'undefined') { y = 0; }
	if (typeof(y) != 'undefined' && y !== '') {
		n = round(nstr, y);
		nstr = n.toFixed(y);
	}
	if (typeof(x) != 'undefined' && x !== '') {
		if (nstr.length > x) { nstr = nstr.substr(nstr.length - x, x); }
	}
	return nstr;
}

function numnull(str, x, y) {
	if (trim(str) == '') { return ''; }
	if (isNaN(str)) {
		n = parseFloat(str.replace(/,/g, '.').replace(/[^0-9-.]/g, ''));
		if (isNaN(n)) { nstr = '0'; }
		else { nstr = n.toString(); }
	} else {
		nstr = str.toString();
	}
	if (typeof(x) != 'undefined' && typeof(y) == 'undefined') { y = 0; }
	if (typeof(y) != 'undefined' && y !== '') {
		n = round(nstr, y);
		nstr = n.toFixed(y);
	}
	if (typeof(x) != 'undefined' && x !== '') {
		if (nstr.length > x) { nstr = nstr.substr(nstr.length - x, x); }
	}
	return nstr;
}

function pos(str, x, y) {
	if (isNaN(str)) {
		n = parseFloat(str.replace(/,/g, '.').replace(/[^0-9-.]/g, ''));
		if (isNaN(n)) { nstr = '0'; }
		else { 
			n = Math.abs(n);
			nstr = n.toString();
		}
	} else {
		n = Math.abs(str);
		nstr = n.toString();
	}
	if (typeof(x) != 'undefined' && typeof(y) == 'undefined') { y = 0; }
	if (typeof(y) != 'undefined' && y !== '') {
		n = round(nstr, y);
		nstr = n.toFixed(y);
	}
	if (typeof(x) != 'undefined' && x !== '') {
		if (nstr.length > x) { nstr = nstr.substr(nstr.length - x, x); }
	}
	return nstr;
}

function neg(str, x, y) {
	if (isNaN(str)) {
		n = parseFloat(str.replace(/,/g, '.').replace(/[^0-9-.]/g, ''));
		if (isNaN(n)) { nstr = '0'; }
		else { 
			n = -Math.abs(str);
			nstr = n.toString();
		}
	} else {
		n = -Math.abs(n);
		nstr = str.toString();
	}
	if (typeof(x) != 'undefined' && typeof(y) == 'undefined') { y = 0; }
	if (typeof(y) != 'undefined' && y !== '') {
		n = round(nstr, y);
		nstr = n.toFixed(y);
	}
	if (typeof(x) != 'undefined' && x !== '') {
		if (nstr.length > x) { nstr = nstr.substr(nstr.length - x, x); }
	}
	return nstr;
}

function date(str) {
	if (str != '') {
		d = trim(str).replace(/[\s,.-]/g, ':').replace(/[^0-9:]/g, '');
		if (d.search(':') == -1) {
			if (d.length == 6) {
				d = d.substr(0, 2) + ':' + d.substr(2, 2) + ':' + d.substr(4, 2);
			} else {
				d = d.substr(0, 4) + ':' + d.substr(4, 2) + ':' + d.substr(6, 2);
			}
		}
		dd = d.split(':');
		if (dd[0].length == 2) { dd[0] = '20' + dd[0]; }
		else { dd[0] = pad(dd[0].substr(0, 4), 4, '0', 'r'); }
		if (dd[1] == '' || dd[1] == null || dd[1] < 1) { dd[1] = '01'; }
		else if (dd[1] > 12) { dd[1] = '12'; }
		else { dd[1] = pad(dd[1].substr(0, 2), 2, '0', 'l'); }
		if (dd[2] == '' || dd[2] == null || dd[2] < 1) { dd[2] = '01'; }
		else {
			var lastdate = new Date(dd[0], dd[1], 1);
			lastdate.setDate(0);
			var lastday = lastdate.getDate();
			if (dd[2] > lastday) { dd[2] = lastday; }
			else { dd[2] = pad(dd[2].substr(0, 2), 2, '0', 'l'); }
		}
		return dd[0] + '-' + dd[1] + '-' + dd[2];
	} else {
		return str;
	}
}

function trim(str) {
   return str.replace(/^\s*|\s*$/g, '');
}

function pad(str, length, symbol, side) {
	length = (length - str.length);
	symbol = ((typeof(symbol) != 'undefined') && (symbol.length > 0) ? symbol : ' ');
	side = (typeof(side) != 'undefined' ? side : 'R');
	var pad = '';
	while (pad.length < length) {
		pad += symbol;
	}
	pad = pad.substr(0, length);
    return (side.toUpperCase() == 'L' ? pad + str : str + pad);
}

/* suformuoja get komandą iš visų formos elementų */
function get(form_name) {
	var str = '';
	obj = document.forms[form_name];
	for (i = 0; i < obj.elements.length; i++) {
		if (obj.elements[i].tagName.toLowerCase() == 'input' && obj.elements[i].type.toLowerCase() == 'checkbox') {
			str +=  "&" + obj.elements[i].name + "=" + (obj.elements[i].checked ? 1 : 0);
		} else {
			str +=  "&" + obj.elements[i].name + "=" + encodeURIComponent(obj.elements[i].value);
		}
	}
	return str;
}

/* suformuoja vieną reikšmę, kai pasirinktos kelios comboboxo eilutės (atskyrimo simbolis ";")*/
function multiple_value(id) {
	element = document.getElementById(id);
	value = '';
	if (element) {
		for (i = 0; i < element.options.length; i++) {
			if (element.options[i].selected) {
	    		value += (value == '' ? '' : ';') + element.options[i].value;
			}
		}
	}
	return value;
}

/* suformuoja formos validavimo komandą, jei forma nenurodyta, formuoja iš visų puslapio formų */
function get_validation(form_name) {
	function form_get_validation(obj) {
		for (i = 0; i < obj.elements.length; i++) {
			if (obj.elements[i].getAttribute('unique') != null) {
				str += '&unique_field' + k + '=' + obj.elements[i].getAttribute('unique');
				str += '&unique_element' + k + '=' + obj.elements[i].getAttribute('id');
				k++;
			}
			if (obj.elements[i].getAttribute('notempty') != null) {
				str += '&notempty_field' + l + '=' + obj.elements[i].getAttribute('notempty');
				str += '&notempty_element' + l + '=' + obj.elements[i].getAttribute('id');
				l++;
			}
			if (obj.elements[i].getAttribute('notnil') != null) {
				str += '&notnil_field' + m + '=' + obj.elements[i].getAttribute('notnil');
				str += '&notnil_element' + m + '=' + obj.elements[i].getAttribute('id');
				m++;
			}
		}
	}
	var str = '';
	var k = 1;
	var l = 1;
	var m = 1;
	if (typeof(form_name) != 'undefined' && form_name != null && form_name != '') {
		var obj = document.forms[form_name];
		form_get_validation(obj);
	} else {
		for (j = 0; j < document.forms.length; j++) {	
			var obj = document.forms[j];
			form_get_validation(obj);
		}
	}
	return str;
};

/* validuoja formą, jei forma nenurodyta, validuoja visas puslapio formas */
function validate(form_name) {
	function form_validate(obj) {
		for (i = 0; i < obj.elements.length; i++) {
			if ((obj.elements[i].getAttribute("notempty") != null) && (obj.elements[i].value === '')) {
			    var lbl = "lbl" + obj.elements[i].name.substr(obj.elements[i].name.search('_'));
			    var lbl_obj = document.getElementById(lbl);
			    if (lbl_obj != null) { alert("Tuščias laukas: " + (lbl_obj.innerText == null ? lbl_obj.textContent : lbl_obj.innerText)); }
			    else { alert("Tuščias laukas."); }
	    		if (element_visible(obj.elements[i]) && obj.elements[i].disabled != true) {
					obj.elements[i].focus();
				}
				return false;
			}
			if ((obj.elements[i].getAttribute("notnil") != null) && (obj.elements[i].value == 0)) {
			    var lbl = "lbl" + obj.elements[i].name.substr(3);
			    var lbl_obj = document.getElementById(lbl);
			    if (lbl_obj != null) { alert("Nulinis laukas: " + (lbl_obj.innerText == null ? lbl_obj.textContent : lbl_obj.innerText)); }
				else { alert("Nulinis laukas."); }
	    		if (element_visible(obj.elements[i]) && obj.elements[i].disabled != true) {
					obj.elements[i].focus();
				}
				return false;
			}
		}
		return true;
	}
	if (typeof(form_name) != 'undefined' && form_name != null && form_name != '') {
		var obj = document.forms[form_name];
		if (!form_validate(obj)) {
			return false;
		}
	} else {
		for (j = 0; j < document.forms.length; j++) {	
			var obj = document.forms[j];
			if (!form_validate(obj)) {
				return false;
			}
		}
	}
	return true;
};

/* grąžina visų pažymėtų grido įrašų id (atskyrimo simbolis ",") */
function id_range(grid_id) {
	var obj = document.getElementById(grid_id);
	var value = '';
	var j = 0;
	for (i = 0; i < obj.rows.length; i++) {
		var checkbox_id = obj.rows[i].id + ':mark';
		if (document.getElementById(checkbox_id).checked == 1) {
			value += (value == '' ? '' : ',') + obj.rows[i].getAttribute('value');
			j++;
		}
	}
	return value;
}