//#######################################################################################################
// PROCEDURY A FUNKCE PRO JS																			#
//#######################################################################################################


function ControlForm(event)
{
	event = event || window.event; // IE doesn't pass event as argument.
	var frm = event.target || event.srcElement; // IE doesn't use .target
	
	var prvky = frm.elements;
	// if (typeof(prvky.length) == "undefined")
		// prvky = new Array(prvky);
		
	for (var i=0; i<prvky.length;i++)
	{
		if (!ControlOneElement(prvky[i]))
			return false;
	}
	return true;
}

// Otestuje jeden prvek formulare - vrati true pokud je prvek OK, jinak false
function ControlOneElement(elem)
{
	var test = elem.attributes.getNamedItem("test");
	if (test)
		test = test.value;

	var mustBe = elem.attributes.getNamedItem("mustbe");
	
	if (mustBe)
		mustBe = mustBe.value;
		
	var value = elem.value;
	
	var pzn = "";
	if (mustBe == 1 && value == "")
		pzn = "Pole musí být vyplněno!";
	
	if (pzn=="")
	{
		switch (test)
		{
			case "INT":
				if (value!="" && isNaN(value))
					pzn = "Zadejte celé číslo!";
				break;
			case "FLOAT":
				var re = /,/g;
				value = value.replace(re,".");
				if (isNaN(value))
					pzn = "Hodnota musí být reálné číslo!";
				break;
			case "DATE":
				if (value!="")
				{
					if (!CheckDate(value))
						pzn = "Zadejte datum ve formátu DD.MM.RRRR!";
				}
				break;
			case "DATETIME":
				if (value != "")
				{
					if (!CheckDateTime(value))
						pzn = "Zadejte datum a čas ve formátu DD.MM.RRRR HH:mm!";
				}
				break;
		}
	}

	
	if (pzn != "")
	{
		switch(elem.tagName)
		{
			case "SELECT":
				elem.focus();
				break;
			default:
				elem.select();
		}
		alert(pzn);
		return false;
	}

	return true;
}

function CheckDate(DateString)
{
	var dat = DateString.split('.');
	if (dat.length != 3)
	{
		return false;
	}
	else
	{
		dat[1] -= 1;
		var datD = new Date(dat[2], dat[1], dat[0]);
		if (isNaN(datD) || datD.getDate() != dat[0] || datD.getMonth() != dat[1] || datD.getFullYear() != dat[2])
			return false;
	}
	return true;
}

function CheckDateTime(DateTimeString)
{
	var parts = DateTimeString.split(' ');
	if (parts.length != 2)
	{
		return false;
	}
	else
	{
		var dat = parts[0].split('.');
		var time = parts[1].split(':');
		if (dat.length != 3 || time.length != 2)
			return false
		dat[1] -= 1;
		var datD = new Date(dat[2], dat[1], dat[0], time[0], time[1]);
		if (isNaN(datD) || datD.getDate() != dat[0] || datD.getMonth() != dat[1] || datD.getFullYear() != dat[2]
			|| datD.getHours() != time[0] || datD.getMinutes() != time[1])
			return false;
	}
	return true;
}





function FormatText(elem,type,param1,param2,param3)
{
	var begin = "";
	var end = "";
	switch (type)
	{
		case "bold":
			begin = "<b>";
			end = "</b>";
			break;
		case "italic":
			begin = "<i>";
			end = "</i>";
			break;
		case "uline":
			begin = "<u>";
			end = "</u>";
			break;
		case "anchor":
			begin = "<a href='" + param1 + "' title='" + param2 + "'>" + param3;
			end = "</a>";
			break;
		case "enter":
			begin = "<br>";
			end = "";
			break;
	}
	elem.value += begin + end;
}

function DoPreview(div2preview, area)
{
	nahled.innerHTML = area.innerText;
}

function DeleteRec()
{
	if (window.confirm('Chcete opravdu smazat tento záznam?'))
	{
		var obj = event.srcElement;
		frm.recid.value = obj.recid;
		frm.akce.value = "DEL";
		frm.submit();
	}
}

function EditRec()
{
		var obj = event.srcElement;
		location.href = obj.url + obj.recid;
}

function myCustomURLConverter(url, node, on_save)
{
	// Do some custom URL convertion
	
	if (url.substring(0,7) != "http://")
	{
		url = MAIN_APP_URL + url;
	}

	// Return new URL
	return url;
}

function PrepareChangeOfPassword(formId, inputName)
{
	var frm = document.getElementById(formId);

	if (typeof (formId) != "undefined" && formId)
	{
		var changePasswordBtn = frm.elements["ChangePasswordBtn"];
		var passwordInput = frm.elements[inputName];

		if (typeof (changePasswordBtn) != "undefined" && changePasswordBtn)
			changePasswordBtn.style.display = "none";

		if (typeof (passwordInput) != "undefined" && passwordInput)
		{
			passwordInput.style.display = "block";
			passwordInput.setAttribute("mustbe", "1");
		}
	}
}

function SendLangChangeForm(LangCode, Type)
{
	if (Type == "WEB" || confirm("Neuložená data budou ztracena. Pokračovat?"))
	{
		var frm = document.forms["langChangeForm"];
		frm.newLanguageCode.value = LangCode;
		frm.submit();
	}
}
