function getElement(name){
	if (document.layers)
		return eval('document.layers[\''+name+'\']');
	else
		return eval('document.getElementById(\''+name+'\')');
}

function emptyElement(element){
	while (element.childNodes[0]) 
    element.removeChild(element.childNodes[0]);
}


function checkRB(id){
	getElement('grt'+id).checked = 'checked';
	switchTemplate(id);
}

function copyEVal(name){
	var to  = getElement('g'+name);
	var from = getElement('e'+name);
	if (from && to)
		to.innerHTML = from.value.split('\n').join('<br/>');
}

function fncDynElementUpdate(resText, contID){
	var cont = getElement(contID);
	emptyElement(cont);
	cont.innerHTML = resText;
}

function dynamicRequest(link, fnc, params, post){
	var reqObject = null;
	if (window.XMLHttpRequest)
	  reqObject=new XMLHttpRequest();
	else if (window.ActiveXObject)
	  reqObject=new ActiveXObject("Microsoft.XMLHTTP");
	if (!reqObject){
		alert('Tato funkce není podporována Vaším prohlížečem.');
		return null;
	}
	var postVars = new Array();
	var c=0;
	if(post) for(i in post)
		postVars[c++] = i+'='+encodeURI(post[i]);
	postData = postVars.join('&');
	reqObject.open('POST', link, true);
  reqObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=windows-1250');
	reqObject.setRequestHeader('Connection', 'close');
	reqObject.setRequestHeader('Content-Length', postData.length);
  reqObject.onreadystatechange = function() {
    if (reqObject.readyState == 4) {
    	if (reqObject.status == 200){
	      if (reqObject.responseText)
	      	fnc(reqObject.responseText, params)
	      else
	      	alert('Nebyly nalezeny žádné výsledky.');
	    }
	    else	alert('Chyba: ['+reqObject.status+']');
    }
  };
	reqObject.send(postData);
//	alert(postData);
}
function switchTemplate(id){
	if (!getElement('grt'+id).checked) return;
	var actual = new Array();
	actual['head'] = getElement('ehead').value;
	actual['text'] = getElement('etext').value;
	actual['post'] = getElement('epost').value;
	actual['sign'] = getElement('esign').value;
	dynamicRequest('./data.php?tid='+id, fncDynElementUpdate, 'preview', actual);
}

function correctMail(fldname){
	var fld = getElement(fldname);
//	var rePre = RegExp('([\\w-]+\\.)*[\\w-]+@([\\w-]+\\.)+[\\w-]+')
	fld.value = fld.value.match(/([\\w-]+\\.)*[\\w-]+@([\\w-]+\\.)+[\\w-]+/);
}

function formCheck(){
//	correctMail('fmail');
//	correctMail('tmail');
	var formel = getElement('gform');
	var regNumber = /^[\d]+$/;
	var regNameX	= /^[^\\\|<>{}\[\]\^\$@&!:\?_]*$/;
	var regTextX	= /^[^\\\|<>{}\[\]\^\$]*$/;
//	var regMail 	= /^ *([\w-]+\.)*[\w-]+@([\w-]+\.)+[\w-]+ *$/;
	var regMail 	= /([\w-]+\.)*[\w-]+@([\w-]+\.)+[\w-]+/;
	var okMail	  = 'Toto pole může obsahovat pouze platnou e-mailovou adresu';
	var fbName 		= 'Toto pole obsahuje některý z nepovolencých znaků: \\|<>{}[]^$@&!:?_';
	var fbText  	= 'Toto pole obsahuje některý z nepovolencých znaků: \\|<>{}[]^$';
	var fields 		= new Array('gtype', 'fname', 'fmail', 'tname', 'tmail', 'ghead', 'gtext', 'gpost', 'gsign');
	var regexps		= new Array(regNumber,regNameX,regMail,regNameX,regMail,regTextX,regTextX,regTextX,regTextX);
	var req 			= new Array(true, true,	true,	true, true, false, true, false, false);
	var messages	= new Array(
		'Typ přání: neplatné ID',
		'Jméno odesílatele: '+fbName,
		'E-mail odesílatele: '+okMail,
		'Jméno příjemce: '+fbName,
		'E-mail příjemce: '+okMail,
		'Oslovení: '+fbText,
		'Text přání: '+fbText,
		'Dovětek: '+fbText,
		'Podpis: '+fbText
	);
	var fcnt = fields.length;
	if ((regexps.length != fcnt) || (messages.length != fcnt) || (req.length != fcnt)){
		alert(errFormCheck);
		return true;
	}
	var estr = '';
	var valid;
	for(var i = 0; i < fcnt; i++){
		for(var e = 0; e < formel.elements.length; e++){
			var cel = formel.elements[e];
			if (cel.name == fields[i]){
				if ((!req[i]) && (cel.value == '')) continue; // skip empty nonrequired fields
				valid = cel.value.match(regexps[i]);
				if (!valid)
					estr += messages[i]+'\n';
				else 
					cel.value = valid[0];
			}
		}
	}
	if (estr == '')
		return true;
	alert('Formulář není správně vyplněn:\n'+estr);
	return false;
}

function onLoad(){
	copyEVal('head');
	copyEVal('text');
	copyEVal('post');
	copyEVal('sign');
}

