// JavaScript Document

//-- oreze medzery na zaciatku a na konci retazca
function trim(s) {
	var i = 0;
	var j = s.length;
	while (s.charAt(i) == " " && i < s.length) i++;
	while (s.charAt(j - 1) == " " && j >= 0) j--;
	return j > i ? s.substring(i, j) : "";
}

//-- prevedie desatinnu ciarku na desatinnu bodku
function c2p(n) {
	var n2 = "";
	n += "";
	for (var i=0; i<n.length; i++) n2 += (n.charAt(i) == ",") ? "." : n.charAt(i);
	return n2;
}

function joinstr() {
	var str = "";
	for (var i=0; i<joinstr.arguments.length; i++) str += joinstr.arguments[i];
	return str;
}

//-- kontrola: ci string obsahuje len ok znaky
function is_valid_str(s, cs) {
	if (!cs) var cs = "";
	for (var i=0; i<s.length; i++) if (cs.indexOf(s.charAt(i)) < 0) return false;
	return s.length ? true : false;
}

//-- kontrola: ci je to celé cislo
function is_number(n) {
	return is_valid_str(n, "0123456789-+") && n.length;
}

//-- kontrola: ci je to realne cislo
function is_float(n) {
	n = c2p(n);
  return n.length && n.charAt(0) != " " && !isNaN(n % 1);
}

//-- kontrola: ci je to kladné celé cislo
function is_number_ext(n) {
	return is_valid_str(n, "0123456789+") && n.length;
}

//-- kontrola: ci je to kladne realne cislo
function is_float_ext(n) {
	n = c2p(n);
	return is_float(n) && n >= 0;
}

//-- kontrola: datumu (bud jeden parameter v tvare "dd.mm.rrrr" alebo tri parametre den, mesic, rok)
function is_date_valid (iv_date, iv_month, iv_year) {
	if (iv_month) iv_date = iv_date + "." + iv_month + "." + iv_year;
	var err = false;
	if (iv_date.length >= 8 && iv_date.length <= 10) {
		var text = "";
		var v_day = "";
		var iv_month = "";
		var iv_year = "";
		var dot = 0;
		var ch;
		var today = new Date();
		for (var i = 0; i < iv_date.length; i++) {
			ch = iv_date.charAt(i);
			if ((is_valid_str(ch, "0123456789.")) && !err) {
				if (dot == 0 && ch != ".") v_day = v_day + ch;
				if (dot == 1 && ch != ".") iv_month = iv_month + ch;
				if (dot == 2 && ch != ".") iv_year = iv_year + ch;
				if (ch == "." && !err) dot++;
			}
		}
		if (v_day<1 || v_day >31) err = true;
		if (iv_month<1 || iv_month>12) err = true;
		if ((dot == 2 && iv_year == "") || (dot > 2)) err = true;
		if (iv_month == 2 && ((iv_year % 4 != 0) && (iv_year % 100 != 0) && (iv_year % 400 != 0)) && (v_day>28)) err = true;
		if (iv_month == 2 && (iv_year % 4 == 0) && (v_day>29)) err = true;		
		if ((iv_month == 4 || iv_month == 6 || iv_month == 9 || iv_month == 11) && (v_day>30)) err = true;	
		if (iv_year.length != 4 && (iv_year % 1 == 0)) err = true;
	}
	else err = true;
	return !err;
}

//-- kontrola: ci je datum dnes alebo v buducnosti
function is_date_future (iv_date, iv_month, iv_year) {
	if (iv_month) iv_date = iv_date + "." + iv_month + "." + iv_year;
	if (is_valid_date(iv_date)) {
		var arr = iv_date.split(".");
		var date = new Date(arr[2], arr[1]-1, arr[0], "23", "59", "59"), now = new Date();
		return date.getTime() > now.getTime();
	}
	else return false;
}

//-- kontrola: ci je datum z minulosti
function is_date_passed(iv_date, iv_month, iv_year) {
	if (iv_month) iv_date = iv_date + "." + iv_month + "." + iv_year;
	return is_valid_date(iv_date) ? !is_future_date(iv_date) : false;
}

//-- kontrola: ci je to validny email
function is_valid_email(s) {
	var err = true;
	if (s.indexOf(".") > 0 && s.indexOf(".") < s.length-2 && s.indexOf("@") > 0) {
		for (var i = 0; i < s.length; i++) 
			if (!is_valid_str(s, "_-.@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")) break;
		if (i == s.length) err = false;
	}
	return !err;
}

//-- kontrola: ci je hodnota v stanovenom rozsahu
function is_in_range (value, min_value, max_value) {
	if (!is_number(value)) return false;
	value = c2p(value) - 0;
	min_value = c2p(min_value) - 0;
	max_value = c2p(max_value) - 0;
	return value >= min_value && value <= max_value;
}

//-- kontrola: na minimalnu / maximalnu dlzku retazca
function is_length_ok(str, vmin, vmax) {
	if (!vmin) vmin = 0;
	if (!vmax) vmax = 999999;
	return (str.length >= vmin - 0) && (str.length <= vmax - 0);
}

//-- potvrdenie otazky
function confirmTF(text) {
var agree = confirm(text);
  if (agree) return true;
   else return false;
}

//-- uprava: vrati len cisla a , a .
function only_num(o, r) {
var s = o.value, s2 = "", cs = "0123456789" + (r ? ".," : ""), err = false;
	for (var i=0; i<s.length; i++) if (cs.indexOf(s.charAt(i)) >= 0) s2 += s.charAt(i); else err = true;
	if (err) o.value = s2;
}

//-- uprava: vrati vsetko okrem cisiel
function not_num(o) {
	var s = o.value, s2 = "", cs = "0123456789", err = false;
	for (var i=0; i<s.length; i++) if (cs.indexOf(s.charAt(i)) < 0) s2 += s.charAt(i); else err = true;
	if (err) o.value = s2;
}

//-- uprava: vrati cisla a .
function only_num_dat(o) {
	var s = o.value, s2 = "", cs = "0123456789.", err = false;
	for (var i=0; i<s.length; i++) if (cs.indexOf(s.charAt(i)) >= 0) s2 += s.charAt(i); else err = true;
	if (err) o.value = s2;
}

function getObj(name) {
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
	this.obj = getObjNN4(document,name);
	this.style = this.obj;
  }
}

function getObjNN4(obj,name) {
	var x = obj.layers;
	var foundLayer;
	for (var i=0;i<x.length;i++)
	{
		if (x[i].id == name)
		 	foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}