// JavaScript Document

/*
 * @copyright Radek Veselý
 * @author Motorad
 */

//<![CDATA[

//-------------------------------- JAVASCRIPT ----------------------------------

var addChidNumStart = 1;
var regEmail = "^[\+]?[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$";
var imagesPath ='graphics/';
var imgOk = '<img src="'+imagesPath+'icon_ok.gif" width="32" height="32" alt="" />';


//----------------------------- LANGUAGE CZECH ---------------------------------
  var MSG_SYSTEM_0001 = 'Nastala chyba při komunikaci se serverem! Chyba: ';
  
  var MSG_0001 = 'Nezadali jste Váš e-mail!';
  var MSG_0002 = 'E-mailová adresa není zadána ve správném tvaru!';
  var MSG_0003 = 'Nezadali jste Vaše jméno!';
  var MSG_0004 = 'Nezadali jste Vaše příjmení!';
  var MSG_0005 = 'Nezadali jste ulici!';
  var MSG_0006 = 'Nezadali jste město/obec!';
  var MSG_0007 = 'Nezadali jste PSČ!';
  var MSG_0008 = 'Nezadali jste telefon!';
  var MSG_0009 = 'Nevybrali jste apartmán!';
  var MSG_0010 = 'Nezadali jste počet dospělých';
  var MSG_0011 = 'Nezadali jste datum příjezdu (nejprve je nutno vybrat apartmán)!';
  var MSG_0012 = 'Nezadali jste datum odjezdu (nejprve je nutno vybrat apartmán)!';
  var MSG_0013 = 'Den příjezdu nesmí mít pozdější datum, než den odjezdu!';
  var MSG_0014 = 'Den odjezdu nesmí mít dřívější datum, než den přijezdu!';
  var MSG_0015 = 'Čekejte prosím...Wait please';
  var MSG_0016 = 'Je možné přidat maximálně';
  var MSG_0017 = 'pole';
  var MSG_0018 = 'polí';
  var MSG_0019 = 'pro věk!';
  var MSG_0020 = '<div id="regMsgOK">Odeslání rezervace bylo úspěšné.<br />'+imgOk+'<br /><br />Na zadaný e-mail Vám budou co nejdříve<br /> zaslány informace o stavu objednávky.</div>';
  var MSG_0021 = 'Nezadali jste vzkaz!';
  var MSG_0022 = '<div id="contMsgOK">'+imgOk+'<br /><br />Váš vzkaz byl úspěšně odeslán.</div>';


if (currlang == "cz")
{
  var MSG_SYSTEM_0001 = 'Nastala chyba při komunikaci se serverem! Chyba: ';
  
  var MSG_0001 = 'Nezadali jste Váš e-mail!';
  var MSG_0002 = 'E-mailová adresa není zadána ve správném tvaru!';
  var MSG_0003 = 'Nezadali jste Vaše jméno!';
  var MSG_0004 = 'Nezadali jste Vaše příjmení!';
  var MSG_0005 = 'Nezadali jste ulici!';
  var MSG_0006 = 'Nezadali jste město/obec!';
  var MSG_0007 = 'Nezadali jste PSČ!';
  var MSG_0008 = 'Nezadali jste telefon!';
  var MSG_0009 = 'Nevybrali jste apartmán!';
  var MSG_0010 = 'Nezadali jste počet dospělých';
  var MSG_0011 = 'Nezadali jste datum příjezdu (nejprve je nutno vybrat apartmán)!';
  var MSG_0012 = 'Nezadali jste datum odjezdu (nejprve je nutno vybrat apartmán)!';
  var MSG_0013 = 'Den příjezdu nesmí mít pozdější datum, než den odjezdu!';
  var MSG_0014 = 'Den odjezdu nesmí mít dřívější datum, než den přijezdu!';
  var MSG_0015 = 'Čekejte prosím...Wait please';
  var MSG_0016 = 'Je možné přidat maximálně';
  var MSG_0017 = 'pole';
  var MSG_0018 = 'polí';
  var MSG_0019 = 'pro věk!';
  var MSG_0020 = '<div id="regMsgOK">Odeslání rezervace bylo úspěšné.<br />'+imgOk+'<br /><br />Na zadaný e-mail Vám budou co nejdříve<br /> zaslány informace o stavu objednávky.</div>';
  var MSG_0021 = 'Nezadali jste vzkaz!';
  var MSG_0022 = '<div id="contMsgOK">'+imgOk+'<br /><br />Váš vzkaz byl úspěšně odeslán.</div>';
}
//------------------------------------------------------------------------------

if (currlang == "en")
{
  var MSG_SYSTEM_0001 = 'An error occurred while communicating with the server! Error: ';
  var MSG_0001 = 'Enter your e-mail!'; var MSG_0002 = 'E-mail address is entered in incorrect form!'; var MSG_0003 = 'Enter your name!'; var MSG_0004 = 'Enter your surname!'; var MSG_0005 = 'Enter your street!'; var MSG_0006 = 'Enter your city!'; var MSG_0007 = 'Enter ZIP code!'; var MSG_0008 = 'Enter your phone!'; var MSG_0009 = 'Select Apartment!'; var MSG_0010 = 'Enter the number of adults'; var MSG_0011 = 'Enter the date of arrival (first, you must select the apartment)!'; var MSG_0012 = 'Enter the date of departure (to be selected first apartment)!'; var MSG_0013 = 'Arrival date must be later than the day of departure!'; var MSG_0014 = 'Day of departure date must be earlier than arrival date!'; var MSG_0015 = 'Wait please...'; var MSG_0016 = 'You can add up max.'; var MSG_0017 = 'field'; var MSG_0018 = 'fields'; var MSG_0019 = 'for ages!'; var MSG_0020 = '<div id="regMsgOK">Send reservation was successful.<br />'+imgOk+'<br /><br />The entered e-mail you as soon as possible <br /> sent information about the status of your order.</div>'; var MSG_0021 = 'Please enter a message!'; var MSG_0022 = '<div id="contMsgOK">'+imgOk+'<br /><br />Your message was successfully sent.</div>';
}

if (currlang == "de")
{
  var MSG_SYSTEM_0001 = 'Ein Fehler trat während der Kommunikation mit dem Server! Fehler: ';
  var MSG_0001 = 'Bitte geben Sie Ihre E-Mail!'; var MSG_0002 = 'E-Mail-Adresse ist in der falschen Form eingegeben!'; var MSG_0003 = 'Geben Sie Ihren Name!'; var MSG_0004 = 'Geben Sie Ihren Nachnamen!'; var MSG_0005 = 'Geben Sie den Straßennamen!'; var MSG_0006 = 'Geben Sie die Stadt!'; var MSG_0007 = 'Geben Sie Postleitzahl!'; var MSG_0008 = 'Geben Sie die Telefonnummer!'; var MSG_0009 = 'Geben Typ Wohnung!'; var MSG_0010 = 'Geben Sie die Anzahl der Erwachsenen'; var MSG_0011 = 'Bitte geben Sie Ihr Anreisedatum (erstes müssen Sie die Wohnung wählen)!'; var MSG_0012 = 'Bitte geben Sie Ihren Tag der Abreise (zu ausgewählten ersten Wohnung)!'; var MSG_0013 = 'Ankunftsdatum muss später als am Tag der Abreise!'; var MSG_0014 = 'Tag der Abreise muss früher als Anreisedatum!'; var MSG_0015 = 'Warte bitte...'; var MSG_0016 = 'Sie können bis'; var MSG_0017 = 'Feld'; var MSG_0018 = 'Field'; var MSG_0019 = 'für Alter!'; var MSG_0020 = '<div id="regMsgOK">Senden Reservierung erfolgreich war.<br />'+imgOk+'<br /><br />Um eine E-Mail so schnell wie möglich <br /> geschickt Informationen über den Status Ihrer Bestellung.</div>'; var MSG_0021 = 'Bitte geben Sie eine Nachricht!'; var MSG_0022 = '<div id="contMsgOK">'+imgOk+'<br /><br />Ihre Nachricht wurde erfolgreich gesendet.</div>';

}

function changePicReg(th,path){
    var hid_prj = document.getElementById('hid_prj');
    var hid_odj = document.getElementById('hid_odj');
    hid_prj.value = '';
    hid_odj.value = '';

    var dvCal = 'calD01';
    var obj = document.getElementById('imAp');
    if(th.value != 'x') obj.src = path + th.value + '.jpg';
        else obj.src = path + 'no_apart.gif';
    loadIcoRegistration(dvCal);
    showCalendarBySelectApartman(dvCal,th.value);
}

function insTm(value,id,time){

    var prj = 'prj';
    var odj = 'odj';
    var ins = true;

    var obj = document.getElementById('imp_'+id);
    var obj1 = document.getElementById('hid_'+id);

    if(id == prj){
        ins = controlDateReg(obj, obj1, odj, time, '<');
    }
    if(id == odj){
        ins = controlDateReg(obj, obj1, prj, time, '>');
    }
    if(ins){
        obj.value = value;
        obj1.value = time;
    }
}

function controlDateReg(obj, obj1, idControl, time, act){

        var ret = true;

        var objControl = document.getElementById('hid_'+idControl);
        if(objControl.value != ''){

            if(act == '<'){
                if(objControl.value < time){
                    ret = false;
                    alert(MSG_0013);
                }
            }

            if(act == '>'){
                if(objControl.value > time){
                    ret = false;
                    alert(MSG_0014);
                }
            }
        }
        if(!ret){
            obj.value = '';
            obj1.value = '';
        }
        return ret;
}
function addChid(num){

    if(addChidNumStart < num){
        var obj = document.getElementById('impChild');
        var input = document.createElement('input');
        var obj1 = document.getElementById('numSpChild');
        var br = document.createElement('br');

        var nm = num - addChidNumStart - 1;

        input.id = 'chl'+nm;
        input.type = 'text';
        input.name = 'deti[]';
        input.className = 'impAddChild';

        input.onkeyup = function(){validNum(this)}
        input.onchange = function(){validNum(this)}
        input.onblur = function(){validNum(this)}

        obj1.innerHTML = nm;

        obj.appendChild(input);
        obj.appendChild(br);

        addChidNumStart++;

    }else{
        var ms;
        if(addChidNumStart >= 1 && addChidNumStart <= 4) ms = MSG_0017;
            else ms = MSG_0018;
        alert(MSG_0016+' '+num+' '+ms+' '+MSG_0019);
    }
}
function validNum(ths){
    var value = stringToArray(ths.value);
    var regContorl = new RegExp('^[0-9]$');
    var tmp = '';

    if(value != ''){
        for(var i=0; i<value.length; i++){
            if(regContorl.test(value[i])) tmp += value[i];
        }
    }
    ths.value = tmp;
}
function stringToArray(string){
    return string.split('');
}
function loadIcoRegistration(id){
    var obj = document.getElementById(id);
    obj.innerHTML = '<div class="loadCalReg">'+MSG_0015+'</div>';
}
function activeInput(id){
    var obj = document.getElementById(id);
    obj.focus();
}
/**
 * Set cookies for submenus
 */
function showSubmenu(id){

    var obj = document.getElementById(id);
    obj.className = (obj.className == 'hideSwitch') ? 'showSwitch' : 'hideSwitch';
    var showHid = (obj.className == 'hideSwitch') ? 0 : 1;

    //Data expires
    var days = 20000;
    var date = new Date();
    date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);

    var value = encodeURIComponent(id)+'='+showHid;
    value += '; expires=' + date.toGMTString();
    //value += '; path=/;';

    document.cookie = value;
}
function saveRegistration(idForm,numInp){
    saveRegistrationAJAX(idForm,numInp);
    return false;
}
/**
 * Function for encoding URL address
 */
function urlEncod(str){
    return encodeURIComponent(str);
}
function getChildString(num){
    var chString = '';
    for(var i=num; i>=0; i--){
        var obj = document.getElementById('chl'+i);
        if(obj){
            if(obj.value != '') chString += obj.value + ';';
        }
    }
    return chString;
}
/**
 * Function for replace char in string
 */
function str_replace(search, replace, subject){
    var result = '';
    var i;
    var oldi = 0;

    for (i = subject.indexOf(search); i > -1; i = subject.indexOf(search, i)){
        result += subject.substring (oldi, i);
        result += replace;
        i += search.length;
        oldi = i;
    }
    return result + subject.substring (oldi, subject.length);
}
function isNotEmpty(string){
    var str = str_replace(' ', '', string);
    if(str == '') return false;
    return true;
}
function sendContact(form){
    sendContactAJAX(form);
    return false;
}
//---------------------------------- AJAX --------------------------------------

//Create objektu Ajax
function createXMLHttpRequestObjekt()
{
    var XMLHttpRequestObjekt;

    if (window.XMLHttpRequest) XMLHttpRequestObjekt = new XMLHttpRequest();
        else if (window.ActiveXObject) XMLHttpRequestObjekt = new ActiveXObject("Microsoft.XMLHTTP");

    return XMLHttpRequestObjekt;
}

//------------------------------------------------------------------------------

// Calendar reservation
function calendar(month,year,idCalendar,callFunc,idApart)
{
    //--------------------------------------------------
    var XMLHttpRequestObjekt = false;
    XMLHttpRequestObjekt = createXMLHttpRequestObjekt();
    //--------------------------------------------------

    if(XMLHttpRequestObjekt)
    {
        var obj = document.getElementById(idCalendar);

        XMLHttpRequestObjekt.open('POST', 'functionCall.php');
        XMLHttpRequestObjekt.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        XMLHttpRequestObjekt.onreadystatechange = function()
        {
            if (XMLHttpRequestObjekt.readyState == 4)
            {
                if(XMLHttpRequestObjekt.status == 200){
                    obj.innerHTML = XMLHttpRequestObjekt.responseText;
                }
                else{
                    if(XMLHttpRequestObjekt.status != 0)
                        alert(MSG_SYSTEM_0001+XMLHttpRequestObjekt.status);
                }
            }
        }
        XMLHttpRequestObjekt.send('month='+month+'&year='+year+'&idCalendar='+idCalendar+'&idApart='+idApart+'&func='+callFunc);
    }
}
function showCalendarBySelectApartman(idDiv,idApartman)
{
    //--------------------------------------------------
    var XMLHttpRequestObjekt = false;
    XMLHttpRequestObjekt = createXMLHttpRequestObjekt();
    //--------------------------------------------------

    if(XMLHttpRequestObjekt)
    {
        var obj = document.getElementById(idDiv);

        XMLHttpRequestObjekt.open('POST', 'functionCall.php');
        XMLHttpRequestObjekt.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        XMLHttpRequestObjekt.onreadystatechange = function()
        {
            if (XMLHttpRequestObjekt.readyState == 4)
            {
                if(XMLHttpRequestObjekt.status == 200){
                    obj.innerHTML = XMLHttpRequestObjekt.responseText;
                }
                else{
                    if(XMLHttpRequestObjekt.status != 0)
                        alert(MSG_SYSTEM_0001+XMLHttpRequestObjekt.status);
                }
            }
        }
        XMLHttpRequestObjekt.send('idApartman='+idApartman+'&func=3');
    }
}
function saveRegistrationAJAX(idForm,numInp)
{
    //--------------------------------------------------
    var XMLHttpRequestObjekt = false;
    XMLHttpRequestObjekt = createXMLHttpRequestObjekt();
    //--------------------------------------------------

    if(!isNotEmpty(idForm.ps.value)){
        alert(MSG_0001);
        idForm.ps.focus();
        return false;
    }
    else{
        regMail = new RegExp(regEmail);
        if (!(regMail.test(idForm.ps.value))){
            alert(MSG_0002);
            idForm.ps.focus();
            return false;
        }
    }
    if(!isNotEmpty(idForm.jmeno.value)){
        alert(MSG_0003);
        idForm.jmeno.focus();
        return false;
    }
    if(!isNotEmpty(idForm.prijmeni.value)){
        alert(MSG_0004);
        idForm.prijmeni.focus();
        return false;
    }
    if(!isNotEmpty(idForm.ulice.value)){
        alert(MSG_0005);
        idForm.ulice.focus();
        return false;           
    }
    if(!isNotEmpty(idForm.mesto.value)){
        alert(MSG_0006);
        idForm.mesto.focus();
        return false;
    }
    if(!isNotEmpty(idForm.psc.value)){
        alert(MSG_0007);
        idForm.psc.focus();
        return false;
    }
    if(!isNotEmpty(idForm.telefon.value)){
        alert(MSG_0008);
        idForm.telefon.focus();
        return false;
    }
    if(idForm.apart.value == 'x'){
        alert(MSG_0009);
        idForm.apart.focus();
        return false;
    }
    if(!isNotEmpty(idForm.dospeli.value)){
        alert(MSG_0010);
        idForm.dospeli.focus();
        return false;
    }
    if(!isNotEmpty(idForm.hid_prj.value)){
        alert(MSG_0011);
        return false;
    }
    if(!isNotEmpty(idForm.hid_odj.value)){
        alert(MSG_0012);
        return false;
    }

    var ps         = urlEncod(idForm.ps.value);
    var jmeno      = urlEncod(idForm.jmeno.value);
    var prijmeni   = urlEncod(idForm.prijmeni.value);
    var ulice      = urlEncod(idForm.ulice.value);
    var mesto      = urlEncod(idForm.mesto.value);
    var psc        = idForm.psc.value;
    var telefon    = urlEncod(idForm.telefon.value);
    var fax        = urlEncod(idForm.fax.value);
    var apart      = idForm.apart.value;
    var dospeli    = idForm.dospeli.value;
    var deti       = urlEncod(getChildString(numInp));
    var hid_prj    = idForm.hid_prj.value;
    var hid_odj    = idForm.hid_odj.value;
    var poznamka   = urlEncod(idForm.poznamka.value);
    var robotEmail = urlEncod(idForm.email.value);
    var rorbotUrl  = urlEncod(idForm.url.value);

    var objInp = document.getElementById('inpSendReg');
    objInp.disabled = true;

    if(XMLHttpRequestObjekt){

        var obj = document.getElementById('regFormDiv');

        XMLHttpRequestObjekt.open('POST', 'functionCall.php');
        XMLHttpRequestObjekt.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        XMLHttpRequestObjekt.onreadystatechange = function()
        {
            if (XMLHttpRequestObjekt.readyState == 4)
            {
                if(XMLHttpRequestObjekt.status == 200){
                    if(XMLHttpRequestObjekt.responseText == 1){
                        obj.style.height = obj.offsetHeight + 'px';
                        obj.style.width = obj.offsetWidth + 'px';
                        obj.innerHTML = MSG_0020;
                        objInp.disabled = false;
                    }
                    else{
                        objInp.disabled = false;
                        alert(XMLHttpRequestObjekt.responseText);
                    }
                }
                else{
                    if(XMLHttpRequestObjekt.status != 0)
                        alert(MSG_SYSTEM_0001+XMLHttpRequestObjekt.status);
                }
            }
        }
        XMLHttpRequestObjekt.send('ps='+ps+'&jmeno='+jmeno+'&prijmeni='+prijmeni+'&ulice='+ulice+'&mesto='+mesto+'&psc='+psc+'&telefon='+telefon+'&fax='+fax+'&apart='+apart+'&dospeli='+dospeli+'&deti='+deti+'&hid_prj='+hid_prj+'&hid_odj='+hid_odj+'&poznamka='+poznamka+'&robotEmail='+robotEmail+'&rorbotUrl='+rorbotUrl+'&func=4');
    }
}
function sendContactAJAX(form)
{
    //--------------------------------------------------
    var XMLHttpRequestObjekt = false;
    XMLHttpRequestObjekt = createXMLHttpRequestObjekt();
    //--------------------------------------------------

    if(!isNotEmpty(form.jm.value)){
        alert(MSG_0003);
        form.jm.focus();
        return false;
    }
    if(!isNotEmpty(form.ps.value)){
        alert(MSG_0001);
        form.ps.focus();
        return false;
    }
    else{
        regMail = new RegExp(regEmail);
        if (!(regMail.test(form.ps.value))){
            alert(MSG_0002);
            form.ps.focus();
            return false;
        }
    }
    if(!isNotEmpty(form.vz.value)){
        alert(MSG_0021);
        form.vz.focus();
        return false;
    }

    var objInp = document.getElementById('submContact');
    objInp.disabled = true;

    if(XMLHttpRequestObjekt){
        var obj = document.getElementById('contactForm');

        XMLHttpRequestObjekt.open('POST', 'functionCall.php');
        XMLHttpRequestObjekt.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        XMLHttpRequestObjekt.onreadystatechange = function(){
            if (XMLHttpRequestObjekt.readyState == 4){
                if(XMLHttpRequestObjekt.status == 200){
                    if(XMLHttpRequestObjekt.responseText == '1'){
                        obj.style.height = obj.offsetHeight + 'px';
                        obj.style.width = obj.offsetWidth + 'px';
                        obj.innerHTML = MSG_0022;
                        objInp.disabled = false;
                    }else{
                        objInp.disabled = false;
                        alert(XMLHttpRequestObjekt.responseText);
                    }
                }
                else{
                    if(XMLHttpRequestObjekt.status != 0)
                        alert(MSG_SYSTEM_0001+XMLHttpRequestObjekt.status);
                }
            }
        }
        XMLHttpRequestObjekt.send('name='+urlEncod(form.jm.value)+'&email='+urlEncod(form.ps.value)+'&message='+urlEncod(form.vz.value)+'&emailrobot='+urlEncod(form.email.value)+'&urlrobot='+urlEncod(form.url.value)+'&func=5');
    }
}
//]]>

