			var forumID =				0;
			var currentContainerID =	"content_formular";
						
			
			function returnObjById( id )
			{
				if (document.getElementById)
					var returnVar = document.getElementById(id);
				else if (document.all)
					var returnVar = document.all[id];
				else if (document.layers)
					var returnVar = document.layers[id];
				return returnVar;
			}
			
			function InitForum() {
				//formBackup = returnObjById('forumForm').innerHTML;
				//returnObjById('forumForm').innerHTML = null;
			}
			
			function ShowForm(controlID,forumItemID) {
				var control =	returnObjById(controlID);
				var current =   returnObjById(currentContainerID);
				forumID = forumItemID;
				if (controlID!=currentContainerID) {
					control.innerHTML = current.innerHTML;
					current.innerHTML = "";								
				}
				currentContainerID = controlID;
			}
			
			function HideForm() {
				window.location.reload();
				//if (lastChanged!=null) {
					//lastChanged.innerHTML = backup;
					//lastChanged.style.display = 'none';
					//lastChanged = null;
				//}
			}
			
			function SendForm() {
				var name =		returnObjById('comment_jmeno').value;
				var subject =	returnObjById('comment_subject').value;
				var txt =		returnObjById('comment_txt').value;
				var email =		returnObjById('comment_email').value;
				var forID =		forumID;
				var controlToHide = returnObjById('control'+forumID);
				var code =		returnObjById('code').value;
				
				if (validateAndSubmit()) {
					var valid = AjaxCAPTCHA(code);
					//alert(valid);
					if (valid == '1') {
						AjaxCall(controlToHide,urlBase,name,subject,txt,email,forID);
					} else {
						alert("Spatne vyplneny kontrolni kod");
					}
				}
			}
			
			function SendNewForm() {
				var name =		returnObjById('newjmeno').value;
				var subject =	returnObjById('newsubject').value;
				var txt =		returnObjById('newtxt').value;
				var email =		returnObjById('newemail').value;
				var code =		returnObjById('newcode').value;
				var forID =		0;			
			
				if (validateAndSubmitNEW()) {
					var valid = AjaxCAPTCHA(code);
					alert(valid);
					if (valid == '1') {
						AjaxCall(null,urlBase,name,subject,txt,email,forID);
						ClearNewForm();
					} else {
						alert("Spatne vyplneny kontrolni kod");					
					}
				}
			}
			
			function ClearNewForm() {
				returnObjById('newjmeno').value =	"";
				returnObjById('newsubject').value = "";
				returnObjById('newtxt').value =		"";
				returnObjById('newemail').value =	"";
			}
			
				
			function AjaxCallScore(id,score,message) {
				var url = urlBase+'?id='+id+'&score='+score;
				var xmlHttp = GetHTTPObject();
				
				if (xmlHttp) {
					xmlHttp.abort();
					xmlHttp.open("GET", url, false);
					xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					xmlHttp.send(null);
					HideScoreBox(id,message);
				}				
			}
			
			function HideScoreBox(id,message) {
				var scoreBox = returnObjById('scoreBox'+id);
				if (scoreBox) {
					scoreBox.innerHTML = "("+message+")";
				}
			}
			
			function GetHTTPObject() {
				var xmlHttp = null;
				if(typeof XMLHttpRequest != "undefined"){
					xmlHttp = new XMLHttpRequest();
				}
				else if(typeof window.ActiveXObject != "undefined") {
					try {
						xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
					}
					catch(e) {
						try {
							xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
						}
						catch(e){
							try {
								xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
							}
							catch(e){
								xmlHttp = null;
							}
						}
					}
				}
				return xmlHttp;			
			}
			
			function AjaxCall(controlToHide,url,name,subject,txt,email,forID) {
				var DELIMITER = "*+*|_~_|-**";
				var productID =	returnObjById('productID').value;
				var xmlHttp = GetHTTPObject();
				
				if (xmlHttp) {
					//xmlHttp.onreadystatechange = function (){};
					xmlHttp.abort();
					xmlHttp.open("POST", url, false);
					xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					xmlHttp.send(name+DELIMITER+productID+DELIMITER+forID+DELIMITER+email+DELIMITER+subject+DELIMITER+txt);
					//xmlHttp.onreadystatechange = this.getResults;
					alert(xmlHttp.responseText);
					HideForm();
					//if (controlToHide) controlToHide.innerHTML = null;
					//if (lastChanged) lastChanged.innerHTML = "<p>"+txt+"</p>";
				}
			}
			
			
// ***************************** CAPTCHA **************************************

			function AjaxCAPTCHA(code) {
				var xmlHttp = GetHTTPObject();
				var url = captchaBase + '?code='+code;
				if (xmlHttp) {
					xmlHttp.abort();
					xmlHttp.open("GET", url, false);
					xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					xmlHttp.send(null);
					//xmlHttp.onreadystatechange = this.getResults;
					//alert(xmlHttp.responseText);
					return xmlHttp.responseText.replace(/^\s+|\s+$/g, '');
				}
			}	
			
			function refreshCAPTCHA() {
				var obj =	returnObjById("obrazekCAPTCHA");
				obj.src =	obj.src+"0";			
			}
			
			function setTableColor(tdID) {
				var obj =	returnObjById(tdID);
				var obj1 = returnObjById("td1");var obj2 = returnObjById("td2");var obj3 = returnObjById("td3");var obj4 = returnObjById("td4");
				obj1.style.backgroundColor = "#eeeeee";obj2.style.backgroundColor = "#eeeeee";obj3.style.backgroundColor = "#eeeeee";obj4.style.backgroundColor = "#eeeeee";
				obj.style.backgroundColor = "#FFCC99";
			}
			
			
// ***************************** VALIDATION ***********************************		
			
function required() {
	this.aa = new Array("comment_jmeno",	'Musite vyplnit jmeno',				new Function ("varName", " return this[varName];"));
	this.ab = new Array("comment_email",	'Musite vyplnit email',				new Function ("varName", " return this[varName];"));							
	this.ae = new Array("comment_subject",	'Musite vyplnit predmet',			new Function ("varName", " return this[varName];"));
	this.ac = new Array("comment_txt",		'Musite vyplnit text komentare',	new Function ("varName", " return this[varName];"));

	this.af = new Array("newjmeno",			'Musite vyplnit jmeno',				new Function ("varName", " return this[varName];"));
	this.ag = new Array("newemail",			'Musite vyplnit email',				new Function ("varName", " return this[varName];"));							
	this.ah = new Array("newsubject",		'Musite vyplnit predmet',			new Function ("varName", " return this[varName];"));
	this.ai = new Array("newtxt",			'Musite vyplnit text komentare',	new Function ("varName", " return this[varName];"));
}

function email() {
	this.aj = new Array("comment_email",  	'Polozka \"Email\" neni platna emailova adresa!', 			new Function ("varName", " return this[varName];"));
	this.ak = new Array("newemail",  		'Polozka \"Email\" neni platna emailova adresa!', 			new Function ("varName", " return this[varName];"));
}

function validateAndSubmit() {	
	if (
			validateRequiredAJAX(returnObjById('comment_jmeno')) &&
			validateRequiredAJAX(returnObjById('comment_email')) &&
			validateRequiredAJAX(returnObjById('comment_subject')) &&
			validateRequiredAJAX(returnObjById('comment_txt')) &&
			checkEmailAJAX(returnObjById('comment_email').value)
	   )
	{
		return true;
	} else {
		alert("Vsechny polozky musite vyplnit, email musi mit pozadovany format.");
		return false;
	}
}

function validateAndSubmitNEW() {	
	if (
			validateRequiredAJAX(returnObjById('newjmeno')) &&
			validateRequiredAJAX(returnObjById('newemail')) &&
			validateRequiredAJAX(returnObjById('newsubject')) &&
			validateRequiredAJAX(returnObjById('newtxt')) &&
			checkEmailAJAX(returnObjById('newemail').value)
	   )
	{
		return true;
	} else {
		alert("Vsechny polozky musite vyplnit, email musi mit pozadovany format.");
		return false;
	}
}		
			

function validateRequiredAJAX(field) {
    var bValid = true;
    if (field.type == 'text' ||
        field.type == 'textarea' ||
        field.type == 'select-one' ||
        field.type == 'radio' ||
        field.type == 'password') {
        
        var value;
		// get field's value
		if (field.type == "select-one") {
			var si = field.selectedIndex;
			value = field.options[si].value;
		} else {
			value = field.value;
		}
        
        if (value == '') {
			bValid = false;
        }
    }
    return bValid;
}


/**
    * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
    * http://javascript.internet.com
    */
function checkEmailAJAX(emailStr) {
    if (emailStr.length == 0) {
        return true;
    }
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
    var matchArray=emailStr.match(emailPat);
    if (matchArray == null) {
        return false;
    }
    var user=matchArray[1];
    var domain=matchArray[2];
    if (user.match(userPat) == null) {
        return false;
    }
    var IPArray = domain.match(ipDomainPat);
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i] > 255) {
                return false;
            }
        }
        return true;
    }
    var domainArray=domain.match(domainPat);
    if (domainArray == null) {
        return false;
    }
    var atomPat=new RegExp(atom,"g");
    var domArr=domain.match(atomPat);
    var len=domArr.length;
    if ((domArr[domArr.length-1].length < 2) ||
        (domArr[domArr.length-1].length > 3)) {
        return false;
    }
    if (len < 2) {
        return false;
    }
    return true;
}

			


