// ----------------------- PromDefination variables--------------------- //
var errorcolor = "#DDEEFF";
var checkedcolor = "#D6E7FF";
var speccheck = new Array('user','xxx'); // pole na ktere se bude aplikovat kontrola se zakazanyma znakama
var minChar = 3;


// ----------------------- Form submit ----------------------------- //
function runSubmit (formular)  {
	if (passed == 0) {
		formular.submit();
		}
}

// ----------------------- Form check ----------------------------- //
function checkForm(form,nocheck)
{
passed = 0;
noagain = 0;
polesize = form.elements.length;
var varlength;


for (i = 0; i < polesize; i++) {


// ----------------------- No check objekty ------------------------ //
	for (n = 0 ; n < nocheck.length ; n++) {
		if (form.elements[i].name == nocheck[n]) 
		{
			i++;
		}
	}
	

		if ((form.elements[i].type != "select-one" 
		&& form.elements[i].type != "select-multiple" 
		&& form.elements[i].type != "checkbox" 
		&& form.elements[i].type != "reset" 
		&& form.elements[i].type != "radio" 
		&& form.elements[i].type != "button"
		&& form.elements[i].type != "hidden")
		&& form.elements[i].disabled != true)
		{


		// delka retezce
		varlength = eval (form.elements[i].value.length);

		
			form.elements[i].style.background = checkedcolor;
			treatpole = form.elements[i];

			
			// ---- Osetreni existence atributu fix -----
			//if (form.elements[i].fix == null || form.elements[i].fix == "") {
			//	poleerror = "Prosím vyplňte toto pole: " + form.elements[i].title;
			//} else {
			 //   poleerror = form.elements[i].fix;
			//}

			poleerror = "Bitte füllen Sie Feld " + form.elements[i].title + " auf";
			

	
			// -------- Hodnoceni value
				if (form.elements[i].value == "") 
					{
					passed ++; i = polesize + 1;
					fixElement(treatpole,poleerror);
				} 
				else if (varlength < minChar) {			
					passed ++; i = polesize + 1;
					fixElement(treatpole, "Seine Wert ist zu kurz. Es mu&szlig; am kleinsten " + minChar + " Lettern haben");
				}
		
				else if (form.elements[i].name == "heslo2") {			
					fixPassw(form.elements[i-1].name,form.elements[i].name);			
				}

			
				else if (varlength >= minChar) {				
	
				fixTrim(form.elements[i]);
				fixEmail(form.elements[i]);
				fixString(form.elements[i]);				
				}
		}
		
		else if (form.elements[i].type == "select-one"
		&& form.elements[i].disabled != true)
		{

		treatpole = form.elements[i];
		treatpole.style.background = checkedcolor;
			
	
			// -------- Hodnoceni value
				if (form.elements[i].value == "") 
					{
					passed ++; i = polesize + 1;
			//		alert("Zvolte prosím "+treatpole.title);			
					fixElement(treatpole,"Please fill in this mandatory field");
          treatpole.style.background = errorcolor;	
					treatpole.focus()
				} 	

		}


}	

return passed;
}

// ----------------------- Fix elements --------------------------- //
function fixElement(form,message) 
{

	if (message == "undefined") {
	message = 'Test';
	}


	if (form == '')
	{
		alert(message);
	}
	else 
	{
		alert(message);
		form.style.background = errorcolor;	
		form.focus();
		form.select();
	}
}

// ----------------------- Check email structure ------------------ //
function fixEmail(form)
{
	var defaultemail = new Array('email','notify','e-mail');

	for (z = 0 ; z < defaultemail.length ; z++) {
		if (form.name == defaultemail[z]) {
			if (form.value.indexOf("@") == -1 || form.value.indexOf(".") == -1){
				passed ++; i = polesize + 1;
				fixElement(treatpole,"E-mail ist nicht korrekt! Es mu&szlig; z. B. etwas@etwas.com sein");
			}
			else if (form.value.length < 7) {
				passed ++; i = polesize + 1;
				fixElement(treatpole,"Email is too short!");
			}
		}
	}							  
}
// ----------------------- Check string ---------------------------- //
function fixString(form)
{
	// zakazane znaky
	var specstrings = new Array('*',';',':','!','-','[',']','{','}','(',')','~','<','>');

	
	for (ft = 0; ft < speccheck.length; ft++) {

		if (speccheck[ft] == form.name) {
			for (st = 0 ; st < specstrings.length ; st++) {
				if (form.value.indexOf(specstrings[st]) != -1)
				{
					passed ++;i = polesize + 1;
					alert ("pozice2" + i);
					fixElement(form,"Pole #" + form.name + " obsahuje nepovolené znaky!");
				}
			}
		}
	}
}
// ----------------------- Trim free spaces ----------------------- //
function fixTrim(form) 
{
	while (form.value.charAt(0) == ' ') 
	   	form.value = form.value.substring(1, form.value.length);
		
		   if (form.value.length <= 0) 
			{
				passed ++; i = polesize + 1;
				fixElement(treatpole,"Nepoužívejte prázdná pole!");
			}	
			
}




// ----------------------- check Radio ---------------------------- //
function checkRadio (form)
{
var radioflag = 0;
var elementpole = form.elements.length;
passed = 1; // defaultne zakazano odeslat

for (y = 0; y < elementpole; y++)
	{
	if (form.elements[y].type == 'radio'
	 && form.elements[y].checked == true)	
		{
			passed = 0; // pokud je jeden true, tak muze send
			radioflag++;
		}
	}

	 if (radioflag == 0)
		 	{
			 	fixElement('',"Musí být vybrána položka !");
			}
}

// ----------------------- Fix min char --------------------------- //
function fixMinChar(form)
{
	//alert(form.value);
	if (form.value.length < minChar)
	{
		passed ++;
		fixElement(form, "Vámi zadaná hodnota je příliš krátká. Musí mít nejméně " + minChar + " znaky");
	}
}

// ----------------------- Pass check  ---------------------------- //
function fixPassw(passwordA,passwordB) 
{
pwd1 = document.all[passwordA]
pwd2 = document.all[passwordB]

	if (pwd1.value != "" 
	 || pwd2.value != "") 
	 {
 		if (pwd2.value != pwd1.value)
			{			
				passed ++; i = polesize + 1;
  				fixElement(pwd1,"Hesla musí být shodná!");
			}
	}
}
