function setInnerHTML(obj, html_content) {
	try {
		obj.innerHTML = html_content;
	} catch (e) {
		while(obj.firstChild)
			obj.firstChild.removeNode(true);
		obj.appendChild(document.createTextNode(html_content));
	}
}

function raiseError(form, errType) {
	switch(errType) {
		case 'required':
			if(document.getElementById(form + '-error-message'))
				document.getElementById(form + '-error-message').innerHTML = '<div class="messageBox miniMes"><p class="alert">Před odesláním je nutné vyplnit alespoň <strong>zvýrazněná</strong> pole!</p></div>';
			else
				alert('Před odesláním je nutné vyplnit alespoň zvýrazněná pole!');
			break
		case 'email':
			if(document.getElementById(form + '-error-message'))
				document.getElementById(form + '-error-message').innerHTML = '<div class="messageBox miniMes"><p class="alert">Zadaná e-mailová adresa má špatný formát!</p></div>';
			else
				alert('Zadaná e-mailová adresa má špatný formát!');
			break
	}
}

function zvyraznit(oid) {
	var label = document.getElementById('label-'+oid)
	if(label)
		setInnerHTML(label, '<strong class="spatne">' + label.innerHTML +'</strong><ins class="screenHide">(špatně vyplněno)</ins>')
	var input = document.getElementById(oid);
	if(input)
		if(input.className)
			input.className += ' spatne'
		else
			input.className = 'spatne'
}

function odvyraznit(oid) {
	var label = document.getElementById('label-'+oid)
	var re = new RegExp('<strong class="?spatne"?>', 'gi');
	setInnerHTML(label, label.innerHTML.replace(re, ''))
	re = new RegExp('</strong>', 'gi');
	setInnerHTML(label, label.innerHTML.replace(re, ''))
	var input = document.getElementById(oid)
	if(input)
		if(input.className.indexOf('spatne') != -1) {
			re = new RegExp('spatne', 'gi');
			input.className = input.className.substring(0, input.className.indexOf('spatne')) + input.className.substring(input.className.indexOf('spatne') + 6);
			input.className = input.className.replace(re, '');
		}
}

function radio_checked(form, name) {
	radio = form.elements[name]
	for(i = 0; i < radio.length; i++)
		if(radio[i].checked)
			return true
	return false
}


function validate(name) {
	var frm = document.getElementById('form-' + name)
	var error_focused = false
	var ret = true
	var errFlag = new Array()
	var email_regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]{2,7}))$/
	
	for(var i in form_rules[name]) {
		for(var j in form_rules[name][i]) {
			if(form_rules[name][i][j] == 'required' && frm.elements[i].value == '') {
				errFlag[i] = 'required'
				ret = false
			}
			if(form_rules[name][i][j] == 'checkbox_required' && !radio_checked(frm, i)) {
				errFlag[i] = 'required'
				ret = false
			}
			if(form_rules[name][i][j] == 'checkbox_required' && !radio_checked(frm, i)) {
				errFlag[i] = 'required'
				ret = false
			}
			if(form_rules[name][i][j] == 'email' && !email_regex.test(frm.elements[i].value)) {
				errFlag[i] = 'email'
				ret = false
			}
		}
	}

	if(ret == false) {
		errType = ''
		for(var i in form_rules[name]) {
			if(errFlag[i]) {
				zvyraznit(name + '-' + i)
				if(!error_focused) {
					document.getElementById(name + '-email').focus();
					error_focused=true
				}
				if(!(errFlag[i] == 'email' && errType == 'required'))
					errType = errFlag[i]
			} else {
				odvyraznit(name + '-' + i)
			}
		}
		raiseError(name, errType)
		return false
	}
	return true
}

var form_rules = new Array()