//##############################################################################
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 TNewsMailing=new function(){
	this.News=null;
	this.Trade=null;
	this.Name=null;
	this.Surname=null;
	this.Email=null;
	this.SubmitButton=null;
	this.ResultText=null;
	this.Okres=null;
//------------------------------------------------------------------------------
	this.Init=function(){
		//alert('TNewsMailing.Init');
		TNewsMailing.LoadElements();
		TNewsMailing.News.disabled=true;
		TNewsMailing.Trade.disabled=true;
		CrossBrowser.addEventListener(TNewsMailing.SubmitButton,'click',function(irEvent){TNewsMailing.Save()});
	}
//------------------------------------------------------------------------------
	this.LoadElements=function(){
		this.News							=document.getElementById('cbNews');
		this.Trade						=document.getElementById('cbTrade');
		this.Name							=document.getElementById('dfName');
		this.Surname					=document.getElementById('dfSurname');
		this.Email						=document.getElementById('dfEmail');
		this.SubmitButton			=document.getElementById('btSubmit');
		this.ResultText				=document.getElementById('ResultText');
		this.Okres						=document.getElementById('cmbOkres');
	}
//------------------------------------------------------------------------------
	this.Save=function(){
		TNewsMailing.LoadElements();
		//alert('Save');
		var lsErrors = "";
		lsErrors += TFormValidator.ValidateEmpty(TNewsMailing.Name,'JmĂ©no');
		lsErrors += TFormValidator.ValidateEmpty(TNewsMailing.Surname,'PĹ™Ă­jmenĂ­');
		lsErrors += TFormValidator.ValidateComboSelect(TNewsMailing.Okres,'Okres');
		lsErrors += TFormValidator.ValidateEmpty(TNewsMailing.Email,'Email');
		lsErrors += TFormValidator.ValidateEmail(TNewsMailing.Email,'Email');

		if (lsErrors != "") {
			alert("FormulĂˇĹ™ je nesprĂˇvnÄ› vyplnÄ›n:\n\n" + lsErrors);
			return false;
		}

		TNewsMailing.ResultText.innerHTML='ProbĂ­hĂˇ zpracovĂˇnĂ­...';
		TAjax.Send('ajax/NewsMailingSave.php',{'News':TNewsMailing.News.value,'Trade':TNewsMailing.Trade.value,'Name':TNewsMailing.Name.value,'Surname':TNewsMailing.Surname.value,'Email':TNewsMailing.Email.value,'IP':remote_addr,'Browser':navigator.userAgent,'Okres':TNewsMailing.Okres.value},TNewsMailing.AfterSave);
	}
//------------------------------------------------------------------------------
	this.AfterSave=function(req){
		TNewsMailing.LoadElements();
		var lsResponseText=req.responseText;
		if(lsResponseText.indexOf('Chyba')!=-1){
			//
		}else{
			TNewsMailing.Name.value='';
			TNewsMailing.Surname.value='';
			TNewsMailing.Email.value='';
			TNewsMailing.Okres.value='';
		}
		TNewsMailing.ResultText.innerHTML=lsResponseText;
		alert(lsResponseText);
	}
//------------------------------------------------------------------------------
}
//##############################################################################
//##############################################################################



