/*
funkce pro odmazavani a doplnovani vzoroveho textu inputu pri aktivaci a deaktivaci inputu
*/


function vzorovyText(id, vzorovyText, akce)
{
	prvek = document.getElementById(id);
	
	if (akce == 'aktivace') {
		if (prvek.value == vzorovyText) {
			prvek.value = '';
		}
	}
	
	if (akce == 'deaktivace') {
		if (prvek.value == '') {
			prvek.value = vzorovyText;
		}
	}
}

// --- zkontroluje email
function CheckMail(email)
{
	
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email)) {
		return true;
	}
	else {
		return false;
	}
}

/*
funkce pro kontrolu validity emailu v inputu s danym id
*/
function overEmail(id)
{
	prvek = document.getElementById(id);
	if (CheckMail(prvek.value)) {
		return true;
	}
	else {
		alert('Zadaná emailová adresa není platná.');
		return false;
	}
}

/** Odeslání XMLHttp požadavku
* @param Function state_change funkce zajišťující obsluhu při změně stavu požadavku, dostane parametr s XMLHttp objektem
* @param string method GET|POST|...
* @param string url URL požadavku
* @param string [content] tělo zprávy
* @param object [headers] předané hlavičky ve tvaru { 'hlavička': 'obsah' }
* @return boolean true v případě úspěchu, false jinak
* @copyright Jakub Vrána, http://php.vrana.cz
*/
function send_xmlhttprequest(state_change, method, url, content, headers) {
    var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
    if (!xmlhttp) {
        return false;
    }
    xmlhttp.open(method, url);
    xmlhttp.onreadystatechange = function () {
        state_change(xmlhttp);
    };
    headers = headers || {};
    headers['X-Requested-With'] = headers['X-Requested-With'] || 'XMLHttpRequest';
    for (var key in headers) {
        xmlhttp.setRequestHeader(key, headers[key]);
    }
    xmlhttp.send(content);
    return true;
}

/** Odeslání formuláře přes XMLHttp požadavek
* @param function state_change funkce zajišťující obsluhu při změně stavu požadavku, dostane parametr s XMLHttp objektem
* @param string url URL požadavku
* @param object form formulář k odeslání
* @param object [headers] předané hlavičky ve tvaru { 'hlavička': 'obsah' }
* @return boolean true v případě úspěchu, false jinak
* @copyright Jakub Vrána, http://php.vrana.cz
*/
function post_xmlhttprequest(state_change, url, form, headers) {
    var elements = form.elements;
    var content = [];
    for (var i=0; i < elements.length; i++) {
        if (elements[i].attributes.name && elements[i].attributes.name.specified && !elements[i].disabled) {
            if (/^(select)$/i.test(elements[i].tagName)) {
                var options = elements[i].options;
                for (var j=0; j < options.length; j++) {
                    if (options[j].selected) {
                        var value = (options[j].attributes.value && options[j].attributes.value.specified ? options[j].value : options[j].text);
                        content.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(value));
                    }
                }
            } else if (!/^(submit|reset|button|file|image)$/i.test(elements[i].type) && (!/^(radio|checkbox)$/i.test(elements[i].type) || elements[i].checked)) {
                content.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(elements[i].value));
            }
        }
    }
    if (!headers) {
        headers = {};
    }
    headers['Content-Type'] = 'application/x-www-form-urlencoded';
    return send_xmlhttprequest(state_change, 'POST', url, content.join('&'), headers);
}

function odeslat(id, url, result) {
    //document.getElementById('cena').innerHTML = '...';
    //document.getElementById('cena_dph').innerHTML = '...';
    form = document.getElementById(id);
    return post_xmlhttprequest(function (xmlhttp) {
        if (xmlhttp.readyState == 4) {
            document.getElementById(result).innerHTML = xmlhttp.responseText;
            var scripts = xmlhttp.responseText.replace(/\r/g, "");
               scripts = scripts.replace(/\n/g, "");
               scripts = scripts.replace(/^.*<script type="text\/javascript">(.*)<\/script>.*$/im, "$1");
               eval(scripts);

            //document.getElementById('cena').innerHTML = Math.round(Number(xmlhttp.responseText)*1.19);
        }
    }, baseUrl+url, form);
}

// funkce pro nastaveni kontrolniho klice formularu
function vyplnFormControl(id)
{					  
	var FormElement = document.getElementById(id);
	
	var NahodneCislo = Math.round((Math.random() * 20000)) * 8513; 
	
	if (FormElement != undefined){
		FormElement.value = NahodneCislo; 	
	}
	
}

function skryjElement(id) {
	document.getElementById(id).style.display = 'none';
}

function zobrazElement(id) {
	document.getElementById(id).style.display = 'block';
}

function strlen(strVar)
{
	strVar = strVar.replace(/ /g, "");
	return(strVar.length);
}

function checkdate (month, day, year) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Pyerre
    // *     example 1: checkdate(12, 31, 2000);
    // *     returns 1: true
    // *     example 2: checkdate(2, 29, 2001);
    // *     returns 2: false
    // *     example 3: checkdate(03, 31, 2008);
    // *     returns 3: true
    // *     example 4: checkdate(1, 390, 2000);
    // *     returns 4: false
 
    var myDate = new Date();
    myDate.setFullYear( year, (month - 1), day );
 
    return month >= 1 && month <= 12 && year >= 1 && year <= 32767 && ((myDate.getMonth()+1) == month && day<32);
}

function overVyhledavani(id) {
	var FormElement = document.getElementById(id);
	if (FormElement.value == '') {
		alertt(document.getElementById('ErrorVyhlText').value);
		return false;
	}
	else if (strlen(FormElement.value) < 3) {
		alertt(document.getElementById('ErrorVyhlDelka').value);
		return false;
	}
	else {
		return true;
	}
}

function overKontaktForm(id) {
	formElement = document.getElementById(id);
	
	if (formElement.jmeno.value == '') {
		alertt(document.getElementById('ErrorKontJmeno').value);
		return false;
	}
	if (formElement.email.value == '') {
		alertt(document.getElementById('ErrorKontEmail').value);
		return false;
	}
	else if (!CheckMail(formElement.email.value)) {
		alertt(document.getElementById('ErrorKontFormat').value);
		return false;
	}
	else if (formElement.telefon.value == '') {
		alertt(document.getElementById('ErrorKontTelefon').value);
		return false;
	}
	else if (formElement.text.value == '') {
		alertt(document.getElementById('ErrorKontText').value);
		return false;
	}
	else {
		return true;
	}
}

function overPraceForm(id) {
	formElement = document.getElementById(id);
	
	if (formElement.jmeno.value == '') {
		alertt(document.getElementById('ErrorPraceJmeno').value);
		return false;
	}
	
	if (formElement.prijmeni.value == '') {
		alertt(document.getElementById('ErrorPracePrijmeni').value);
		return false;
	}
	
	if (formElement.narozeniDen.value == '') {
		alertt(document.getElementById('ErrorPraceDen').value);
		return false;
	}
	
	if (formElement.narozeniMesic.value == '') {
		alertt(document.getElementById('ErrorPraceMesic').value);
		return false;
	}
	
	if (formElement.narozeniRok.value == '') {
		alertt(document.getElementById('ErrorPraceRok').value);
		return false;
	}
	
	if (!checkdate(formElement.narozeniMesic.value, formElement.narozeniDen.value, formElement.narozeniRok.value)) {
		alertt(document.getElementById('ErrorPraceDatumFormat').value);
		return false;
	}
	
	if (formElement.ulice.value == '') {
		alertt(document.getElementById('ErrorPraceUlice').value);
		return false;
	}
	
	if (formElement.psc.value == '') {
		alertt(document.getElementById('ErrorPracePsc').value);
		return false;
	}
	
	if (formElement.mesto.value == '') {
		alertt(document.getElementById('ErrorPraceMesto').value);
		return false;
	}
	
	if (formElement.telefon.value == '') {
		alertt(document.getElementById('ErrorPraceTelefon').value);
		return false;
	}
	
	if (formElement.email.value == '') {
		alertt(document.getElementById('ErrorPraceEmail').value);
		return false;
	}
	else if (!CheckMail(formElement.email.value)) {
		alertt(document.getElementById('ErrorPraceEmailFormat').value);
		return false;
	}
	
	if (formElement.termin.value == '') {
		alertt(document.getElementById('ErrorPraceTermin').value);
		return false;
	}
	
	if (formElement.vzdelani.value == '') {
		alertt(document.getElementById('ErrorPraceVzdelani').value);
		return false;
	}
	
	if (formElement.praxe.value == '') {
		alertt(document.getElementById('ErrorPracePraxe').value);
		return false;
	}
	
	if (formElement.kvalifikace.value == '') {
		alertt(document.getElementById('ErrorPraceKvalifikace').value);
		return false;
	}
	
	if (formElement.prijem.value == '') {
		alertt(document.getElementById('ErrorPracePrijem').value);
		return false;
	}
	
	if (formElement.stav.value == '') {
		alertt(document.getElementById('ErrorPraceStav').value);
		return false;
	}
	
	if (!formElement.souhlas.checked) {
		alertt(document.getElementById('ErrorPraceSouhlas').value);
		return false;
	}
	
	return true;
	
}

function overKurzForm(id) {
	formElement = document.getElementById(id);
	
	if (formElement.kurzJmeno.value == '') {
		alertt(document.getElementById('ErrorObjJmeno').value);
		return false;
	}
	if (formElement.kurzEmail.value == '') {
		alertt(document.getElementById('ErrorObjEmail').value);
		return false;
	}
	else if (!CheckMail(formElement.kurzEmail.value)) {
		alertt(document.getElementById('ErrorObjFormat').value);
		return false;
	}
	else if (formElement.kurzTelefon.value == '') {
		alertt(document.getElementById('ErrorObjTelefon').value);
		return false;
	}
	else if (formElement.kurzPocet.value == '') {
		alertt(document.getElementById('ErrorObjPocet').value);
		return false;
	}
	else {
		return true;
	}
}

function overKurzPreposlaniForm(id) {
	formElement = document.getElementById(id);
	
	if (formElement.kurzPreposlaniEmail.value == '') {
		alertt(document.getElementById('ErrorPrepEmail').value);
		return false;
	}
	else if (!CheckMail(formElement.kurzPreposlaniEmail.value)) {
		alertt(document.getElementById('ErrorPrepEmailFormat').value);
		return false;
	}
	else if (formElement.kurzPreposlaniCiziEmail.value == '') {
		alertt(document.getElementById('ErrorPrepPrijem').value);
		return false;
	}
	else if (!CheckMail(formElement.kurzPreposlaniCiziEmail.value)) {
		alertt(document.getElementById('ErrorPrepPrijemFormat').value);
		return false;
	}
	else {
		return true;
	}
}

function alertt(errorMessage) {
	var alertWidth = 120 + (strlen(errorMessage) * 6);
	
	Ext.MessageBox.show({
	       msg: errorMessage,
	       buttons: Ext.MessageBox.OK,
	       icon: Ext.MessageBox.ERROR,
	       minWidth: alertWidth
	    }
	    );
}

function vymazKontaktForm(id) {
	formElement = document.getElementById(id);
	
	formElement.jmeno.value = '';
	formElement.email.value = '';
	formElement.telefon.value = '';
	formElement.text.value = '';
}

function vymazKurzForm(id) {
	formElement = document.getElementById(id);
	
	formElement.kurzJmeno.value = '';
	formElement.kurzEmail.value = '';
	formElement.kurzTelefon.value = '';
	formElement.kurzPocet.value = '';
	formElement.kurzSleva.value = '';
}

function vymazKurzPreposlaniForm(id) {
	formElement = document.getElementById(id);
	
	formElement.kurzPreposlaniEmail.value = '';
	formElement.kurzPreposlaniCiziEmail.value = '';
	formElement.textPreposlat.value = '';
}