var execfilepath = "http://www.utazascentrum.hu/";
var execfilename = "getajax.php";

function set_hidden_param(paramname, paramvalue)
{
        document.getElementById(paramname).value = paramvalue;
}

function popular_comments(travelid, traveltype, targetItem)
{
        var Request = new HTTPRequest();
	Request.setMethod('GET');
	Request.setAction(execfilepath + execfilename);
	Request.setReturnMode('text');
	Request.add('action', 'popular_comments');
	Request.add('travelid', travelid);
        Request.add('traveltype', traveltype);
        var str = '';
        var elem = document.getElementById('review').elements;
        for(var i = 0; i < elem.length; i++)
        {
                if (elem[i].type=="checkbox")
                {
                        if (elem[i].checked == true) Request.add(elem[i].name, "on");
                        else Request.add(elem[i].name, "");
                }
                else if (elem[i].type=="radio")
                {
                        if (elem[i].checked == true) Request.add(elem[i].name, elem[i].value);
                }
                else
                {
                        Request.add(elem[i].name, "#"+Base64.encode(elem[i].value));
                }
                Request.add(elem[i].name+"_type", elem[i].type);
        }
        reviewloader_on();
        Request.add('targetitem', targetItem);
	var response = Request.send();
        document.getElementById(targetItem).innerHTML = response;
}

function new_review(travelid, traveltype, targetItem)
{
        var Request = new HTTPRequest();
	Request.setMethod('GET');
	Request.setAction(execfilepath + execfilename);
	Request.setReturnMode('text');
	Request.add('action', 'new_review');
	Request.add('travelid', travelid);
        Request.add('traveltype', traveltype);
        var str = '';
        var elem = document.getElementById('review').elements;
        for(var i = 0; i < elem.length; i++)
        {
                if (elem[i].type=="checkbox")
                {
                        if (elem[i].checked == true) Request.add(elem[i].name, "on");
                        else Request.add(elem[i].name, "");
                }
                else if (elem[i].type=="radio")
                {
                        if (elem[i].checked == true) Request.add(elem[i].name, elem[i].value);
                }
                else
                {
                        Request.add(elem[i].name, "#"+Base64.encode(elem[i].value));
                }
                Request.add(elem[i].name+"_type", elem[i].type);
        }
        reviewloader_on();
        Request.add('targetitem', targetItem);
	var response = Request.send();
        document.getElementById(targetItem).innerHTML = response;
}

function close_review(targetItem)
{
        document.getElementById(targetItem).innerHTML = "";
}

function save_review(travelid, traveltype, targetItem)
{
        var Request = new HTTPRequest();
	Request.setMethod('GET');
	Request.setAction(execfilepath + execfilename);
	Request.setReturnMode('text');
	Request.add('action', 'save_review');
	Request.add('travelid', travelid);
        Request.add('traveltype', traveltype);
        var str = '';
        var elem = document.getElementById('review').elements;
        for(var i = 0; i < elem.length; i++)
        {
                if (elem[i].type=="checkbox")
                {
                        if (elem[i].checked == true) Request.add(elem[i].name, "on");
                        else Request.add(elem[i].name, "");
                }
                else if (elem[i].type=="radio")
                {
                        if (elem[i].checked == true) Request.add(elem[i].name, elem[i].value);
                }
                else
                {
                        Request.add(elem[i].name, "#"+Base64.encode(elem[i].value));
                }
                Request.add(elem[i].name+"_type", elem[i].type);
        }
        Request.add('targetitem', targetItem);
	var response = Request.send();
        document.getElementById(targetItem).innerHTML = response;
}

function ajax_test()
{
	var request = new HTTPRequest();
	request.setMethod('POST');
	request.setAction(execfilepath + execfilename);
	request.setReturnMode('text');
	request.add('action','test');

	var queryString = "";
	var m = document.getElementsByName("params");
	for (var i=0; i<m.length; i++)
	{
		if (i > 0)
		{
			queryString += "&";
		}
		queryString += "params=" + m[i].value;
		request.add('params', queryString);
	}

	var response = request.send();

	if (request.wasError())
	{
	        alert('Ajax hiba');
	}
}

function loadtimes(travelid, traveltype, month, turnus, elhelyezes, targetItem)
{
        loader_on();
	var Request = new HTTPRequest();

	Request.setMethod('GET');
	Request.setAction('getajax.php');
	Request.setReturnMode('text');
	Request.add('action', 'gettimes');
	Request.add('travelid', travelid);
        Request.add('traveltype', traveltype);
	Request.add('m', (month ? month : document.getElementById('m').value));
	Request.add('t', (turnus ? turnus : document.getElementById('t').value));
	Request.add('e', (elhelyezes ? elhelyezes : document.getElementById('e').value));
	var response = Request.send();

	if (month) document.getElementById('m').value = month;
	if (turnus) document.getElementById('t').value = turnus;
	if (elhelyezes) document.getElementById('e').value = elhelyezes;

	if(!Request.wasError())
	{
		document.getElementById(targetItem).innerHTML = response;
                loader_off();
	}
	else
	{
		alert(Request.errorMsg());
                loader_off();
	}

}

function loadcalculator(timeID, traveltype, calcparams, targetItem)
{
        var Request = new HTTPRequest();
        loader_on();
	Request.setMethod('GET');
	Request.setAction('getajax.php');
	Request.setReturnMode('text');
	Request.add('action', 'getcalculator');
	Request.add('timeid', timeID);
        Request.add('traveltype', traveltype);
        Request.add('calcparams', calcparams);
        Request.add('targetitem', targetItem);
	var response = Request.send();

/*        var alltags=document.getElementsByTagName("div");
        for (i=0;i<alltags.length;i++)
        {
                var tagid = alltags[i].id;
                if (document.getElementById(tagid).innerHTML.length>100)
                {
                        document.getElementById(tagid).innerHTML = '';
                }
        }
*/

        document.getElementById(targetItem).innerHTML = response;
        loader_off();
}

function hidecalculator(targetItem)
{
        document.getElementById(tagid).innerHTML = '';
}

function loadpassengers(adults, children, babies, extrabed, targetItem)
{
        var Request = new HTTPRequest();

	Request.setMethod('GET');
	Request.setAction('getajax.php');
	Request.setReturnMode('text');
	Request.add('action', 'getajaxpassengers');
	Request.add('adults', adults);
        Request.add('children', children);
        Request.add('babies', babies);
        Request.add('extrabed', extrabed);
	var response = Request.send();

        document.getElementById(targetItem).innerHTML = response;
}


function loadinsurance(adults, children, babies, extrabed, instype, targetItem)
{
        var Request = new HTTPRequest();
	var Request = new HTTPRequest();

	Request.setMethod('GET');
	Request.setAction('getajax.php');
	Request.setReturnMode('text');
	Request.add('action', 'getajaxinsurance');
	Request.add('adults', adults);
        Request.add('children', children);
        Request.add('babies', babies);
        Request.add('extrabed', extrabed);
	var response = Request.send();

        document.getElementById(targetItem).innerHTML = response;
}

function msgBox(message)
{
        var msgbox = document.getElementById("msgbox");
        msgbox.innerHTML = message;
        var x = (window.innerWidth / 2) - (msgbox.offsetWidth / 2);
        var y = (window.offsetHeight / 2) - (msgbox.offsetHeight / 2);
        msgbox.style.top = y;
        msgbox.style.left = x;
        msgbox.style.display = "block";
}


function loader_on()
{
	var loadmessage = document.getElementById('loadmsg');
	//var loadmessageback = document.getElementById('loadmsgbg');
	loadmessage.style.display="";
	//loadmessageback.style.display="";

        var x = (window.innerWidth / 2) - (loadmessage.offsetWidth / 2);
        var y = (window.offsetHeight / 2) - (loadmessage.offsetHeight / 2);
	loadmessage.innerHTML = "<div class='main_ajanlat' style='text-align:center;'><div id='loadericon' style='top:"+y+"px;left:"+x+"px;'><img src='images/design/ikonok/ajax-loader.gif' width='32' width='32' alt='Várjon!'><br><br><h1>Kérem, várjon!</h1></div></div>";
}

function loader_off()
{
	var loadmessage = document.getElementById('loadmsg');
	//var loadmessageback = document.getElementById('loadmsgbg');

        loadmessage.style.display="none";
        //loadmessageback.style.display="none";
}

function savereservation(timeID, traveltype, calcparams)
{
        var errors = 0;
        /* -- Ellenőrzés -- */
        if (document.getElementById('registereduser').value!='1')
        {
                var uname = document.getElementById('newusername').value;
                var email = document.getElementById('ecim').value;
                var telefon1 = document.getElementById('telefon1').value + document.getElementById('telefon2').value;
                var nev = document.getElementById('tnev').value;

                var usernameerror;
                usernameerror = _validateUsername(document.getElementById('newusername'))

                if (uname.length==0 || usernameerror != "")
                {
                        document.getElementById('userneverror').innerHTML = "A felhasználói név hibás! Csak az angol ábécé kisbetűit és számokat tartalmazhat (írásjeleket, ékezetes betűket, stb. nem)!";
                        errors = 1;
                }

                if (email.length==0)
                {
                        document.getElementById('emailerror').innerHTML = "Az e-mail cím megadása kötelező!";
                        errors = 1;
                }

                if (telefon1.length==0)
                {
                        document.getElementById('telefon1error').innerHTML = "Egy telefonszám megadása kötelező!";
                        errors = 1;
                }

                if (nev.length==0)
                {
                        document.getElementById('tneverror').innerHTML = "A név megadása kötelező!";
                        errors = 1;
                }

                if (document.getElementById('szaml_nev').value==0 || document.getElementById('szaml_cim').value==0 || document.getElementById('irsz').value==0 || document.getElementById('szaml_varos').value==0)
                {
                        document.getElementById('szamlaerror').innerHTML = "A számlázási adatok megadása kötelező!";
                        errors = 1;
                }
        }

        /* -- Ellenőrzés vége -- */

        if (!errors || document.getElementById('registereduser').value=='1')
        {
                loader_on();
                var description = document.getElementById('description').value;
                calcparams = calcparams + '|description;'+description;

                if (document.getElementById('registereduser').value!='1')
                {
                        var username = document.getElementById('newusername').value;
                        var email = document.getElementById('ecim').value;
                        var fullname = document.getElementById('tnev').value;
                        var szname = document.getElementById('szaml_nev').value;
                        var szcim = document.getElementById('szaml_cim').value;
                        var szirsz = document.getElementById('irsz').value;
                        var sztelepules = document.getElementById('szaml_varos').value;
                        var hirlevel = document.getElementById('hirlevel').value;
                        var telefon1 = document.getElementById('telefon1').value;
                        var telefon2 = document.getElementById('telefon2').value;
                        var othertelefon1 = document.getElementById('othertelefon1').value;
                        var othertelefon2 = document.getElementById('othertelefon2').value;
                        var robotmail = document.getElementById('email2').value;

                        calcparams = calcparams + '|unev;'+username+'|ecim;'+email+'|tnev;'+fullname+'|szaml_nev;'+szname+'|szaml_cim;'+szcim+'|szaml_irsz;'+szirsz+'|szaml_varos;'+sztelepules+'|hirlevel;'+hirlevel+'|telefon1;'+telefon1+'|telefon2;'+telefon2+'|othertelefon1;'+othertelefon1+'|othertelefon2;'+othertelefon2+'|robotmail;'+robotmail;
                }

                var Request = new HTTPRequest();
        	Request.setMethod('GET');
        	Request.setAction('getajax.php');
        	Request.setReturnMode('text');
        	Request.add('action', 'saveajaxreservation');
                Request.add('timeid', timeID);
                Request.add('traveltype', traveltype);
                Request.add('calcparams', calcparams);
        	var response = Request.send();

                document.getElementById('msgbox').innerHTML = response;
                document.getElementById('timelayer').innerHTML = '';
                document.getElementById('passengercontainer').innerHTML = '';
                location.href='#sikeresfoglalas';

                loader_off();
        }
}

function test()
{
        document.getElementById('testbox').innerHTML = '<div style="margin-left: -165px; width: 330px; margin-top: -120px; display: block;" id="TB_window">';
}

function closecalc(timeid, targetItem)
{
        document.getElementById(targetItem).innerHTML = '';
        location.href='#idopontok';
}

/* Form validálás - csak megfelelő értékek továbbengedése */
function _validateUsername(fld)
{
        var error = "";
        var illegalChars = /\W/; // allow letters, numbers, and underscores

        if (fld.value == "")
        {
                error = "You didn't enter a username.\n";
        }
        else if ((fld.value.length < 5) || (fld.value.length > 15))
        {
                error = "The username is the wrong length.\n";
        }
        else if (illegalChars.test(fld.value))
        {
                error = "The username contains illegal characters.\n";
        }
        else
        {
                error = "";
        }
        return error;
}

function reviewloader_on()
{
	var loadmessage = document.getElementById('reviewbox');
        if (loadmessage.innerHTML=='')
        {
        	//var loadmessageback = document.getElementById('loadmsgbg');
        	loadmessage.style.display="";
        	//loadmessageback.style.display="";

                var x = (window.innerWidth / 2) - (loadmessage.offsetWidth / 2);
                var y = (window.offsetHeight / 2) - (loadmessage.offsetHeight / 2);
        	loadmessage.innerHTML = "<div class='ratinginnerbox' style='height:60px;text-align:center;'><h1>Utazás értékelése</h1><center><div id='loadericon'><img src='images/design/ikonok/ajax-loader.gif' width='32' width='32' alt='Várjon!'></div></center></div>";
        }
}

function reviewloader_off()
{
	var loadmessage = document.getElementById('reviewbox');
	//var loadmessageback = document.getElementById('loadmsgbg');

        loadmessage.style.display="none";
        //loadmessageback.style.display="none";
}

var Base64 = {

// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

// public method for encoding
encode : function (input) {
    var output = "";
    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
    var i = 0;

    input = Base64._utf8_encode(input);

    while (i < input.length) {

        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);

        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;

        if (isNaN(chr2)) {
            enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
            enc4 = 64;
        }

        output = output +
        this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
        this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

    }

    return output;
},

// public method for decoding
decode : function (input) {
    var output = "";
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;

    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

    while (i < input.length) {

        enc1 = this._keyStr.indexOf(input.charAt(i++));
        enc2 = this._keyStr.indexOf(input.charAt(i++));
        enc3 = this._keyStr.indexOf(input.charAt(i++));
        enc4 = this._keyStr.indexOf(input.charAt(i++));

        chr1 = (enc1 << 2) | (enc2 >> 4);
        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
        chr3 = ((enc3 & 3) << 6) | enc4;

        output = output + String.fromCharCode(chr1);

        if (enc3 != 64) {
            output = output + String.fromCharCode(chr2);
        }
        if (enc4 != 64) {
            output = output + String.fromCharCode(chr3);
        }

    }

    output = Base64._utf8_decode(output);

    return output;

},

// private method for UTF-8 encoding
_utf8_encode : function (string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++) {

        var c = string.charCodeAt(n);

        if (c < 128) {
            utftext += String.fromCharCode(c);
        }
        else if((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }

    }

    return utftext;
},

// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
    var string = "";
    var i = 0;
    var c = c1 = c2 = 0;

    while ( i < utftext.length ) {

        c = utftext.charCodeAt(i);

        if (c < 128) {
            string += String.fromCharCode(c);
            i++;
        }
        else if((c > 191) && (c < 224)) {
            c2 = utftext.charCodeAt(i+1);
            string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
        }
        else {
            c2 = utftext.charCodeAt(i+1);
            c3 = utftext.charCodeAt(i+2);
            string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }

    }

    return string;
}

}
