//##############################################################################
var TAjax=new function(){
//------------------------------------------------------------------------------
	this.Send=function(isURL,irParameters,onSuccessFunction){
		//alert('TAjax.Send');
		AjaxRequest.post(
			{
				'url':isURL
				,'parameters':irParameters
				,'onSuccess':onSuccessFunction
				,'onError':function(req){ alert('Error!\nStatusText='+req.statusText+'\nContents='+req.responseText);}
				,'timeout':15000
				,'onTimeout':function(req){ alert('Timed Out!'); }
			}
		);
	}
//------------------------------------------------------------------------------
}
//##############################################################################
var TFormValidator=new function(){
	this.ValidateEmpty=function(fld,fldname) {
		var error = "";
		if (fld.value.length == 0) {
				fld.style.background = 'Yellow'; 
				error = "'" +fldname+ "': Toto pole je povinné.\n"
		} else {
				fld.style.background = 'White';
		}
		return error;  
	}
//------------------------------------------------------------------------------
	this.ValidateComboSelect=function(fld,fldname) {
		var error = "";
		if (fld.value == "") {
				fld.style.background = 'Yellow'; 
				error = "'" +fldname+ "': Toto pole je povinné.\n"
		} else {
				fld.style.background = 'White';
		}
		return error;  
	}
//------------------------------------------------------------------------------
	this.Trim=function(s)
		{
			return s.replace(/^\s+|\s+$/, '');
		}
//------------------------------------------------------------------------------
	this.ValidateEmail=function(fld,fldname) {
			var error="";
			var tfld = TFormValidator.Trim(fld.value);                        // value of field with whitespace trimmed off
			var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
			var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
		 
			if (fld.value == "") {
					/*
					fld.style.background = 'Yellow';
					error = "You didn't enter an email address.\n";
					*/
			} else if (!emailFilter.test(tfld)) {              //test email for illegal characters
					fld.style.background = 'Yellow';
					error = "'" +fldname+ "': Nesprávný formát emailové adresy.\n";
			} else if (fld.value.match(illegalChars)) {
					fld.style.background = 'Yellow';
					error = "'" +fldname+ "': Emailová adresa obsahuje nepovolené znaky.\n";
			} else {
					fld.style.background = 'White';
			}
			return error;
	}
}
//##############################################################################
var TContactForm=new function(){
	this.PostalCode=null;
	this.Location=null;
	this.IDObec=null;
//------------------------------------------------------------------------------
	this.Init=function(){
		//alert('TEditContact.Init');
		TContactForm.LoadElements();
		CrossBrowser.addEventListener(TContactForm.PostalCode,'keyup',function(irEvent){TContactForm.PopulateCities()});
	}
//------------------------------------------------------------------------------
	this.LoadElements=function(){
		TContactForm.PostalCode=document.getElementById('dfPostalCode');
		TContactForm.Location=document.getElementById('dfLocation');
		TContactForm.IDObec=document.getElementById('IDObec');
	}
//------------------------------------------------------------------------------
	this.PopulateCities=function(){
		TContactForm.LoadElements();
		var lsPostalCode=TContactForm.PostalCode.value;
		lsPostalCode=lsPostalCode.replace(" ","");
		TContactForm.PostalCode.value=lsPostalCode;
		///alert(lsPostalCode.length);
		if(lsPostalCode.length==5){
			TAjax.Send(weburl+'/ContactForm_AjaxPopulateCities.php',{'PostalCode':lsPostalCode,'IP':remote_addr,'Browser':navigator.userAgent,'Timestamp':(new Date()).getTime()},TContactForm.AfterPopulateCities);
		}else{
			TContactForm.Location.options.length=0;
		}
	}
//------------------------------------------------------------------------------
	this.AfterPopulateCities=function(req){
		TContactForm.LoadElements();
		//alert("AfterPopulateCities");
		var lsResponseText=req.responseText;
		//alert(lsResponseText);
		var lrData=lsResponseText.split('#');
		TContactForm.Location.options.length=0;
		for(var i=0;i<lrData.length;i++){
			//alert(lrData[i]);
			var lrOption=lrData[i].split(';');
			TContactForm.Location.options[TContactForm.Location.options.length]=new Option(lrOption[1],lrOption[0]);
			if(lrOption[0]==TContactForm.IDObec.value){
				TContactForm.Location.selectedIndex=i;
			}
		}
	}
//------------------------------------------------------------------------------
}
//##############################################################################
var TRegForm=new function(){
	this.PostalCode=null;
	this.Location=null;
	this.IDObec=null;
//------------------------------------------------------------------------------
	this.Init=function(){
		//alert('TRegForm.Init');
		TRegForm.LoadElements();
		CrossBrowser.addEventListener(TRegForm.PostalCode,'keyup',function(irEvent){TRegForm.PopulateCities()});
	}
//------------------------------------------------------------------------------
	this.LoadElements=function(){
		TRegForm.PostalCode=document.getElementById('dfPostalCode');
		TRegForm.Location=document.getElementById('dfLocation');
		TRegForm.IDObec=document.getElementById('IDObec');
	}
//------------------------------------------------------------------------------
	this.PopulateCities=function(){
		TRegForm.LoadElements();
		var lsPostalCode=TRegForm.PostalCode.value;
		lsPostalCode=lsPostalCode.replace(" ","");
		TRegForm.PostalCode.value=lsPostalCode;
		///alert(lsPostalCode.length);
		if(lsPostalCode.length==5){
			TAjax.Send(weburl+'/RegForm_AjaxPopulateCities.php',{'PostalCode':lsPostalCode,'IP':remote_addr,'Browser':navigator.userAgent,'Timestamp':(new Date()).getTime()},TRegForm.AfterPopulateCities);
		}else{
			TRegForm.Location.options.length=0;
		}
	}
//------------------------------------------------------------------------------
	this.AfterPopulateCities=function(req){
		TRegForm.LoadElements();
		//alert("AfterPopulateCities");
		var lsResponseText=req.responseText;
		//alert(lsResponseText);
		var lrData=lsResponseText.split('#');
		TRegForm.Location.options.length=0;
		for(var i=0;i<lrData.length;i++){
			//alert(lrData[i]);
			var lrOption=lrData[i].split(';');
			TRegForm.Location.options[TRegForm.Location.options.length]=new Option(lrOption[1],lrOption[0]);
			if(lrOption[0]==TRegForm.IDObec.value){
				TRegForm.Location.selectedIndex=i;
			}
		}
	}
//------------------------------------------------------------------------------
}
//##############################################################################
var TURLChangeForm=new function(){
	this.IdeaURL=null;
	this.NewURL=null;
	this.AjaxMessage=null;
	this.AjaxLoader=null;
//------------------------------------------------------------------------------
	this.Init=function(){
		TURLChangeForm.LoadElements();
		CrossBrowser.addEventListener(TURLChangeForm.IdeaURL,'keyup',function(irEvent){TURLChangeForm.Validate(0)});
		CrossBrowser.addEventListener(TURLChangeForm.IdeaURL,'blur',function(irEvent){TURLChangeForm.Validate(1)});
	}
//------------------------------------------------------------------------------
	this.LoadElements=function(){
		TURLChangeForm.IdeaURL=document.getElementById('dfIdeaURL');
		TURLChangeForm.NewURL=document.getElementById('dfNewURL');
		TURLChangeForm.AjaxMessage=document.getElementById('dfAjaxMessage');
		TURLChangeForm.AjaxLoader=document.getElementById('ajaxloader');
	}
//------------------------------------------------------------------------------
	this.Validate=function(inType){
		//alert('Validate');
		TURLChangeForm.LoadElements();
		var lsIdeaURL=TURLChangeForm.IdeaURL.value;
		//alert(lsIdeaURL);
		if(inType==1){
			TURLChangeForm.AjaxLoader.style.display='inline';
			TURLChangeForm.AjaxMessage.style.color='Blue';
			TURLChangeForm.AjaxMessage.innerHTML="Probíhá kontrola zadaných dat...";
		}
		TAjax.Send(weburl+'/URLChangeForm_AjaxValidate.php',{'IdeaURL':lsIdeaURL,'Type':inType,'IP':remote_addr,'Browser':navigator.userAgent,'Timestamp':(new Date()).getTime()},TURLChangeForm.AfterValidate);
	}
//------------------------------------------------------------------------------
	this.AfterValidate=function(req){
		//alert('AfterValidate');
		TURLChangeForm.LoadElements();
		var lsResponseText=req.responseText;
		//alert(lsResponseText);
		TURLChangeForm.AjaxLoader.style.display='none';
		var lrData=lsResponseText.split('#');
		if(lrData[0]=="OK"){
			TURLChangeForm.AjaxMessage.style.color='Green';
		}
		if(lrData[0]=="ERROR"){
			TURLChangeForm.AjaxMessage.style.color='Red';
		}
		TURLChangeForm.AjaxMessage.innerHTML=lrData[1];
		TURLChangeForm.NewURL.innerHTML=lrData[2];
		//alert(lrData[1]);
	}
//------------------------------------------------------------------------------
}
//##############################################################################




