var menu_active = 0;
var li;

function komunikat_error(obj_name,kom)
{
    $(obj_name).parentNode.parentNode.getElementsByTagName("div").item(2).innerHTML=kom;
}

function sprawdzFormularz()
{
    error = false;

    if($('firma').checked)
    {

        if(!$('nip').value)
        {
           error=true;
           komunikat_error('nip',"Podaj nip");
        }
        
        if(!$('company_name').value)
        {
           error=true;
           komunikat_error('company_name',"Podaj nazwę firmy");
        }
    }
    
    if($('name').value.length ==0)
    {
        error=true;
        komunikat_error('name',"Podaj imię osoby kontaktowej");
    }

    if($('surname').value.length ==0)
    {
        error=true;
        komunikat_error('surname',"Podaj nazwisko osoby kontaktowej");
    }

    if($('street').value.length ==0)
    {
        error=true;
        komunikat_error('street',"Podaj ulicę");
    }

    if($('postcode').value.length ==0)
    {
        error=true;
        komunikat_error('postcode',"Podaj kod pocztowy");
    }

    if($('city').value.length ==0)
    {
        error=true;
        komunikat_error('city',"Podaj miasto");
    }

    if($('phone').value.length ==0)
    {
        error=true;
        komunikat_error('phone',"Podaj numer telefonu");
    }



    if($('email').value.length ==0)
    {
        error=true;
        komunikat_error('email',"Podaj adres pocztowy");
    }


    if(!error)
        $('formularz').submit()
}

function cleanCalendar()
{
  
    for(i=0;i<zarezerwowane_obj.length;i++)
    {
        zarezerwowane_obj[i][0].className=zarezerwowane_obj[i][1];
    }

    if(zarezerwowane_obj.length>0)
    {
        rezerwacja_start='';
        rezerwacja_stop='';
        rezerwacja_start_date='';
        rezerwacja_start_obj=null;
        rezerwacja_stop_obj=null;
    }
    
    zarezerwowane_obj = new Array();
}

function checkCalendarDay(obj)
{
	a_elements = obj.getElementsByTagName("a");
	if(a_elements.length==0 || !a_elements[0].onclick){
		cleanCalendar();
		alert("Podany okres pokrywa się już z terminem zarezerwowanym przez inną osobę");
		document.getElementById("price").innerHTML = "wybierz prawidłowy termin rezerwacji";
		return false;
	}
	
	return true;	
}

function strtotime(str, now) {
   
    var i, match, s, strTmp = '', parse = '';

    strTmp = str;
    strTmp = strTmp.replace(/\s{2,}|^\s|\s$/g, ' '); // unecessary spaces
    strTmp = strTmp.replace(/[\t\r\n]/g, ''); // unecessary chars

    if (strTmp == 'now') {
        return (new Date()).getTime()/1000; // Return seconds, not milli-seconds
    } else if (!isNaN(parse = Date.parse(strTmp))) {
        return (parse/1000);
    } else if (now) {
        now = new Date(now*1000); // Accept PHP-style seconds
    } else {
        now = new Date();
    }

    strTmp = strTmp.toLowerCase();

    var __is =
    {
        day:
        {
            'sun': 0,
            'mon': 1,
            'tue': 2,
            'wed': 3,
            'thu': 4,
            'fri': 5,
            'sat': 6
        },
        mon:
        {
            'jan': 0,
            'feb': 1,
            'mar': 2,
            'apr': 3,
            'may': 4,
            'jun': 5,
            'jul': 6,
            'aug': 7,
            'sep': 8,
            'oct': 9,
            'nov': 10,
            'dec': 11
        }
    };

    var process = function (m) {
        var ago = (m[2] && m[2] == 'ago');
        var num = (num = m[0] == 'last' ? -1 : 1) * (ago ? -1 : 1);

        switch (m[0]) {
            case 'last':
            case 'next':
                switch (m[1].substring(0, 3)) {
                    case 'yea':
                        now.setFullYear(now.getFullYear() + num);
                        break;
                    case 'mon':
                        now.setMonth(now.getMonth() + num);
                        break;
                    case 'wee':
                        now.setDate(now.getDate() + (num * 7));
                        break;
                    case 'day':
                        now.setDate(now.getDate() + num);
                        break;
                    case 'hou':
                        now.setHours(now.getHours() + num);
                        break;
                    case 'min':
                        now.setMinutes(now.getMinutes() + num);
                        break;
                    case 'sec':
                        now.setSeconds(now.getSeconds() + num);
                        break;
                    default:
                        var day;
                        if (typeof (day = __is.day[m[1].substring(0, 3)]) != 'undefined') {
                            var diff = day - now.getDay();
                            if (diff == 0) {
                                diff = 7 * num;
                            } else if (diff > 0) {
                                if (m[0] == 'last') {diff -= 7;}
                            } else {
                                if (m[0] == 'next') {diff += 7;}
                            }
                            now.setDate(now.getDate() + diff);
                        }
                }
                break;

            default:
                if (/\d+/.test(m[0])) {
                    num *= parseInt(m[0], 10);

                    switch (m[1].substring(0, 3)) {
                        case 'yea':
                            now.setFullYear(now.getFullYear() + num);
                            break;
                        case 'mon':
                            now.setMonth(now.getMonth() + num);
                            break;
                        case 'wee':
                            now.setDate(now.getDate() + (num * 7));
                            break;
                        case 'day':
                            now.setDate(now.getDate() + num);
                            break;
                        case 'hou':
                            now.setHours(now.getHours() + num);
                            break;
                        case 'min':
                            now.setMinutes(now.getMinutes() + num);
                            break;
                        case 'sec':
                            now.setSeconds(now.getSeconds() + num);
                            break;
                    }
                } else {
                    return false;
                }
                break;
        }
        return true;
    };

    match = strTmp.match(/^(\d{2,4}-\d{2}-\d{2})(?:\s(\d{1,2}:\d{2}(:\d{2})?)?(?:\.(\d+))?)?$/);
    if (match != null) {
        if (!match[2]) {
            match[2] = '00:00:00';
        } else if (!match[3]) {
            match[2] += ':00';
        }

        s = match[1].split(/-/g);

        for (i in __is.mon) {
            if (__is.mon[i] == s[1] - 1) {
                s[1] = i;
            }
        }
        s[0] = parseInt(s[0], 10);

        s[0] = (s[0] >= 0 && s[0] <= 69) ? '20'+(s[0] < 10 ? '0'+s[0] : s[0]+'') : (s[0] >= 70 && s[0] <= 99) ? '19'+s[0] : s[0]+'';
        return parseInt(this.strtotime(s[2] + ' ' + s[1] + ' ' + s[0] + ' ' + match[2])+(match[4] ? match[4]/1000 : ''), 10);
    }

    var regex = '([+-]?\\d+\\s'+
        '(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?'+
        '|sun\.?|sunday|mon\.?|monday|tue\.?|tuesday|wed\.?|wednesday'+
        '|thu\.?|thursday|fri\.?|friday|sat\.?|saturday)'+
        '|(last|next)\\s'+
        '(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?'+
        '|sun\.?|sunday|mon\.?|monday|tue\.?|tuesday|wed\.?|wednesday'+
        '|thu\.?|thursday|fri\.?|friday|sat\.?|saturday))'+
        '(\\sago)?';

    match = strTmp.match(new RegExp(regex, 'g'));
    if (match == null) {
        return false;
    }

    for (i in match) {
        if (!process(match[i].split(' '))) {
            return false;
        }
    }

    return (now.getTime()/1000);
}

var data_od = '';
var data_do = '';

var rezerwacja_start='';
var rezerwacja_stop='';
var rezerwacja_start_obj=null;
var rezerwacja_stop_obj=null;
var zarezerwowane_obj = new Array();

/*
function setCalendarDate(obj,date)
{
    return false;
    if(!checkCalendarDay(obj.parentNode))
    {
 
        return false;
    }

    d = new Date(Date.parse(date));
    
    nazwa_klasy = "";
    index=0;
    klasa = "";
   
    if(!rezerwacja_start){
        cleanCalendar();
        nazwa_klasy = new String(obj.parentNode.className);

        zarezerwowane_obj.push(new Array(obj.parentNode,nazwa_klasy));
        if(nazwa_klasy=="weekend_reservated_end")
            klasa = "your_weekend_reservated_start";
        else if(nazwa_klasy=="reservated_end")
            klasa = "your_reservated_start";
        else if(nazwa_klasy=="weekend")
            klasa = "your_w_reservated_start";
        else
            klasa = "twoja_rezerwacja_start";

        rezerwacja_start = date;
        rezerwacja_start_obj = obj.parentNode;

        obj.parentNode.className=klasa;
    }else if(rezerwacja_start && !rezerwacja_stop){

        if(strtotime(rezerwacja_start)>=strtotime(date))
        {
            alert("Data końca pobytu nie może być wcześniejsza od daty rozpoczącia");
            cleanCalendar();
            document.getElementById("price").innerHTML = "Cena: Zaznacz termin rezerwacji";
            return false;
        }
        nazwa_klasy = new String(obj.parentNode.className);
        zarezerwowane_obj.push(new Array(obj.parentNode,nazwa_klasy));

        if(nazwa_klasy=="weekend_reservated_start")
            klasa = "your_weekend_reservated_end";
        else if(nazwa_klasy=="reservated_start")
            klasa = "your_reservated_end";
        else if(nazwa_klasy=="weekend")
            klasa = "your_w_reservated_end";
        else
            klasa = "twoja_rezerwacja_end";

        rezerwacja_stop = date;
        rezerwacja_stop_obj = obj.parentNode;

        obj.parentNode.className=klasa;

        start=0;
        if(rezerwacja_start && rezerwacja_stop){
            koniec = 0;
        }else{
            koniec = 1;
        }
        
        index=0;
        while(!koniec)
        {
            td = document.getElementById("calendar").getElementsByTagName("td");

            for(i=0;i<td.length;i++)
            {
                if(td[i].id=="cat_"+rezerwacja_start)
                {
                    start = 1;
                }else if(td[i].id=="cat_"+rezerwacja_stop)
                {
                    //pobierz cene
                    getPrice(rezerwacja_start,rezerwacja_stop,1);

                    start = 0;
                    data_od = rezerwacja_start;
                    data_do = rezerwacja_stop;
                    document.getElementById("od").value = data_od;
                    document.getElementById("do").value = data_do;
                    rezerwacja_start='';
                    rezerwacja_stop='';
                    rezerwacja_start_obj=null;
                    rezerwacja_stop_obj=null;
                    koniec=1;
                    index=0;

                }

                if(start && td[i].id && rezerwacja_stop){
                    if(!checkCalendarDay(td[i]))
                        return false;

                    if(index>0){
                        zarezerwowane_obj.push(new Array(td[i],new String(td[i].className)));
                        td[i].className="twoja_rezerwacja";
                    }
                    index++;
                }
            }
        }
    }

    return false;
}
*/
var rabat=0;
function checkKupon(kupon_str)
{
    if(rabat)
        return false;
    
    if(kupon_str.length==0){
        document.getElementById("kupon_status").innerHTML="";
         return false;
    }
    
    advAJAX.get({ url: "http://www.apartamentyjustin.pl/check_kupon?kupon="+kupon_str,
	 timeout : 13000,
	 onTimeout : function() { alert("Connection timed out."); },
	 retry: 0,

	 onRetry : function() { alert("Retry connection..."); },
	 onRetryDelay : function() { alert("Awaiting retry..."); },
	 onSuccess : function(obj) { checkKuponResponse(obj.responseXML); },
	 onError : function(obj) { alert("Error: " + obj.status); }
	});

        return true;
}

function checkKuponResponse(xml)
{
    var kupon = xml.getElementsByTagName("kupon");
    var rabat_node = xml.getElementsByTagName("procent");
    if(rabat_node.length>0){
        rabat = rabat_node.item(0).firstChild.nodeValue;
    }

    if(kupon.length>0)
    {
        if(kupon.item(0).firstChild.nodeValue==1){
            $('kupon').disabled=true;
            document.getElementById("kupon_status").innerHTML = "<span style='color:#11dd29;'>Kod prawid\u0142owy. Uwzględnimy w cenie "+rabat+"% rabatu.</span>";
            input_kupon = document.createElement("input");
            input_kupon.name = "kupon";
            input_kupon.type = "hidden";
            input_kupon.value = $('kupon').value;
            $('formularz').appendChild(input_kupon);
            
            //pobierz cene
            $('rabat').style.display='block';
            $('rabat').getElementsByTagName("div").item(1).innerHTML = rabat+"%";
        }else{
            document.getElementById("kupon_status").innerHTML = "Kod nieprawid\u0142owy";
            $('rabat').style.display='none';
        }
    }

    //aktualizuj cene
    aktualna_cena = parseFloat($('wartosc').getElementsByTagName("div").item(1).innerHTML);
    $('wartosc').getElementsByTagName("div").item(1).innerHTML = Math.round((aktualna_cena-(aktualna_cena *parseInt(rabat) / 100))*100)/100 + " PLN";


}

function getPrice(date1,date2,apartament,no_data,sprawdz,osob)
{
   
    if(date1==date2)
        return alert("Wybrano nieprawidłową datę");
    
        var kupon;
        if(document.getElementById("kupon"))
            kupon = document.getElementById("kupon").value;
        else
            kupon = "";

        advAJAX.get({    url: "http://www.apartamentyjustin.pl/cena_xml?date1="+date1+"&date2="+date2+"&apartament="+apartament+"&kupon="+kupon+"&sprawdz="+sprawdz,
	 timeout : 13000,
	 onTimeout : function() { alert("Connection timed out."); },	 
         onInitialization : function() {
            $('processing').style.display = "block";
         },
         onFinalization : function() {
            $('processing').style.display = "none";
         },
	 onRetry : function() { alert("Retry connection..."); },	 
	 onRetryDelay : function() { alert("Awaiting retry..."); },	 
	 onSuccess : function(obj) {pokaz_cene(obj.responseXML,date1,date2,no_data,sprawdz); },
	 onError : function(obj) { alert("Error: " + obj.status); }	 
	});
}

function pokaz_cene(xml,date1,date2,no_data,sprawdz)
{
    osob_1_2 = xml.getElementsByTagName("osob_1_2");
    osob_3_4 = xml.getElementsByTagName("osob_3_4");
    dostepnosc_apartamenty = xml.getElementsByTagName("dostepnosc_apartamenty");
    brak_apartamentow = xml.getElementsByTagName("xml").item(0).getAttribute("brak_apartamentow");
    
    $('apartament_other_1').style.display='none';
    $('apartament_other_2').style.display='none';
    $('cennik').style.display = 'none';
    $('termin_ok').style.display = "none";
    $('termin_no').style.display = "none";

    if(sprawdz)
    {

        $('apartament_other_1').style.display='none';
        $('apartament_other_2').style.display='none';

    }

    if(brak_apartamentow==0 && dostepnosc_apartamenty.length == 0)
    {

        $('termin_ok').style.display = "block";
        if(osob_1_2.length > 0)
        {
            $('od_1').value = date1;
            $('od_2').value = date1;

            $('do_1').value = date2;
            $('do_2').value = date2;

            $('cennik').style.display='block';
            //pobierz dla 1-2 osob
            $('termin_ok_from').innerHTML = date1;
            $('termin_ok_to').innerHTML = date2;

            przedzialy = osob_1_2.item(0).getElementsByTagName("przedzialy").item(0).getElementsByTagName("i");
            $('ceny_1').innerHTML = "";
            for(z=0;z<przedzialy.length;z++)
            {
                $('ceny_1').innerHTML += przedzialy[z].getAttribute("od")+" - "+przedzialy[z].getAttribute("do")+": "+przedzialy[z].getAttribute("cena")+"PLN/doba<br />";
            }
            $('ceny_1').innerHTML += "-----------------------<br />Razem: <strong>"+osob_1_2.item(0).getAttribute("pln")+"PLN</strong>";


            przedzialy = osob_3_4.item(0).getElementsByTagName("przedzialy").item(0).getElementsByTagName("i");
            $('ceny_2').innerHTML = "";
            for(z=0;z<przedzialy.length;z++)
            {
                $('ceny_2').innerHTML += przedzialy[z].getAttribute("od")+" - "+przedzialy[z].getAttribute("do")+": "+przedzialy[z].getAttribute("cena")+"PLN/doba<br />";
            }
            $('ceny_2').innerHTML += "-----------------------<br />Razem: <strong>"+osob_3_4.item(0).getAttribute("pln")+"PLN</strong>";


        }else{
             $('termin_ok').style.display = "none";
            $('termin_no_from').innerHTML = date1;
         $('termin_no_to').innerHTML = date2;
            $('termin_no').style.display='block';
           
        }
    }else if(brak_apartamentow == 1){
         $('termin_no_from').innerHTML = date1;
         $('termin_no_to').innerHTML = date2;
         $('termin_no').style.display='block';
    }else{
        if(dostepnosc_apartamenty.item(0).getAttribute("dostepny_apartament_id"))
        {
            $('termin_no').style.display='block';
            $('apartament_other_'+dostepnosc_apartamenty.item(0).getAttribute("dostepny_apartament_id")).style.display = 'block';
        }
        $('termin_no_from').innerHTML = date1;
        $('termin_no_to').innerHTML = date2;

    }

	/*if(pln.length == 0 || pln[0].childNodes.length==0)
	{
            document.getElementById("price").innerHTML = "Nie pobrano ceny";
            return false;
	}
	*/
       
       

	/*if(euro.length == 0 || euro[0].childNodes.length==0){
            euro_html = "-";
            euro_get=false;
	}else if(euro[0].childNodes.length > 0){
            euro_get = true;
            euro_html = " ≈ "+new Number(euro[0].firstChild.nodeValue).toFixed(2)+"  &euro;";
	}
	
	var price = "Cena: "+new Number(pln[0].firstChild.nodeValue).toFixed(2)+" z\u0142"+euro_html+" ";
	
	if(euro_get && kurs.length > 0 && pln[0].childNodes.length>0)
	{
            price +="<br /><span style='font-size:9px;'>Kurs: "+kurs[0].firstChild.nodeValue+"z\u0142 = 1&euro;</span>";
	}
        if(tz){
            tz.src = "http://www.apartamentyjustin.pl/images/termin_wolny.gif";
            document.getElementById("rezerwacja_left_button").style.display="block";
            a_href = document.getElementById("rezerwacja_left_button").getElementsByTagName("a");
            if(a_href.length>0)
            {
                a_href.item(0).href = "http://www.apartamentyjustin.pl/rezerwacja/?date1="+date1+"&date2="+date2;
            }
        }

        if(!no_data)
        {    
            //document.getElementById("data_pobytu").innerHTML = ""+new Date(strtotime(date1)*1000).format("d-m-Y")+"&nbsp;godz.13:00 - "+new Date(strtotime(date2)*1000).format("d-m-Y")+"&nbsp;godz. 11:00 <span style='font-size:10px;'><br />(Ilo\u015bć noclegów:</span> "+parseInt(ilosc_dni)+")";
            
        }
        if(document.getElementById("noclegow"))
            document.getElementById("noclegow").innerHTML = parseInt(ilosc_dni);
        //document.getElementById("price").innerHTML = price;
    */
	
}

function move_calendar(direction)
{
	var kalendarz_body = document.getElementById("kalendarz_body");
	var obj = document.getElementById("calendar");
	
	marginLeft = parseInt(kalendarz_body.style.marginLeft.replace(/px/,""));
	if(!marginLeft)
		marginLeft = 0;

	if(direction==1){
		if(Math.abs(marginLeft) < parseInt(kalendarz_body.style.width.replace(/px/,""))-700)
			kalendarz_body.style.marginLeft = parseInt(marginLeft-245)+"px";
	}else if(marginLeft<0){
		kalendarz_body.style.marginLeft = parseInt(marginLeft+245)+"px";
	}
	
}

/*
function cennik(apartament,value)
{

 advAJAX.get({ url: "http://www.apartamentyjustin.pl/sezony_cennik_xml?apartament="+apartament+"&osob="+value,
     timeout : 13000,
     onTimeout : function() { alert("Connection timed out."); },
     retry: 0,

     onRetry : function() { alert("Retry connection..."); },
     onRetryDelay : function() { alert("Awaiting retry..."); },
     onSuccess : function(obj) {
		
            table = $('cennik');
            for(k=1;k<table.rows.length;k++)
            {
                table.rows[k].parentNode.removeChild(table.rows[k]);
            }

            sezony = obj.responseXML.getElementsByTagName("i");
            index=0;
            
            for(z=0;z<sezony.length;z++)
            {
                time = strtotime(sezony[z].getElementsByTagName("data_do").item(0).firstChild.nodeValue);

                if(parseInt(time)*1000 > new Date().getTime())
                {
                    tr = table.insertRow(index+1);
                    if(index%2==0)
                        tr.style.background="#596c84";
                    
                    td = tr.insertCell(0);
                    td.innerHTML = sezony[z].getElementsByTagName("data_od").item(0).firstChild.nodeValue;
                    td = tr.insertCell(1);
                    td.innerHTML = sezony[z].getElementsByTagName("data_do").item(0).firstChild.nodeValue;
                    td = tr.insertCell(2);
                    td.innerHTML = sezony[z].getElementsByTagName("cena").item(0).firstChild.nodeValue;
                    index++;
                }
            }
		
	 },
     onError : function(obj) { alert("Error: " + obj.status); }
  });

}
*/

function rezerwuj(only_check_errors)
{

   // getPrice(rdata_od,rdata_do,nr_apartament,true,1,$('osob').options[$('osob').selectedIndex].value);

    if(only_check_errors)
        check_errors = "check_errors=1";
    else
        check_errors = "check_errors=0";
 /**url: "http://www.apartamentyjustin.pl/rezerwuj_xml/?name="+document.getElementById("name").value+"&surname="+document.getElementById("surname").value+"&email="+document.getElementById("email").value
            +"&date_start="+data_od+"&date_end="+data_do+"&phone="+document.getElementById("phone").value+"&kupon="+document.getElementById("kupon").value+"&partner="+document.getElementById("partner").value+check_errors+"&apartament=1"
   */
	advAJAX.submit(document.getElementById("rezerwuj_form"),{  
	 timeout : 13000,
         queryString: check_errors,
	 onTimeout : function() { alert("Connection timed out."); },

	 onRetry : function() { alert("Retry connection..."); },
	 onRetryDelay : function() { alert("Awaiting retry..."); },
	 onSuccess : function(obj) { 
         if(only_check_errors){
            rezerwuj_response(obj.responseXML);
         }else{
            pokaz_potwierdzenie_rezerwacji(obj.responseXML);
            document.getElementById("rezerwuj").style.display="none";
         }
 },
	 onError : function(obj) { alert("Error: " + obj.status); }
	 });
}

function rezerwuj_response(xml)
{
    ok = xml.getElementsByTagName("dodano");
 
    if(ok.length>0){
        potwierdz_rezerwacje(xml);
    }else{
        blad_rezerwacji(xml);
    }
}

function odwroc_potwierdz_rezerwacje()
{
   if(document.getElementById("rezerwacja_confirm"))
	document.getElementById("rezerwacja_confirm").style.display="none";
   document.getElementById("rezerwacja_bg").parentNode.removeChild(document.getElementById("rezerwacja_bg"));
}

function background_start()
{
	div = document.createElement("div");
    info = getPageSizeWithScroll();
    div.style.background="url('http://www.apartamentyjustin.pl/images/rezerwacja_bg.gif')";
    div.style.width="100%";
    div.style.zIndex=1;
    div.style.height=info[1]+"px";
    div.style.left="0";
    div.id="rezerwacja_bg";
    div.style.top="0";
    div.innerHTML = "";
    div.style.position="absolute";
	
    body = document.getElementsByTagName("body");
    body[0].appendChild(div);
}

function potwierdz_rezerwacje(xml)
{
    hide_potwierdzenie_rezerwacji();
    background_start();
	
    document.getElementById("rezerwacja_confirm").style.display="block";
    document.getElementById("confirm_data_od").innerHTML = rdata_od;
    document.getElementById("confirm_data_do").innerHTML = rdata_do;
  //  document.getElementById("confirm_koszt").innerHTML = data_od;
    obnizka_html="";
    document.getElementById("confirm_name").innerHTML = document.getElementById("name").value+" "+document.getElementById("surname").value;
    document.getElementById("confirm_phone").innerHTML = document.getElementById("phone").value;
    document.getElementById("confirm_email").innerHTML = document.getElementById("email").value;

    obnizka = xml.getElementsByTagName("obnizka");
    if(obnizka.length>0)
    {
        if(obnizka.item(0).childNodes.length>0)
        {
            obnizka_procent = obnizka.item(0).firstChild.nodeValue;
            obnizka_html = "<span style='font-weight:normal'><br />Wpisano kupon promocyjny uprawniający do "+obnizka_procent+"% upustu, który został uwzględniony</span>";
        }
    }

    var price_node = xml.getElementsByTagName("pln");
    if(price_node.length>0){
       var price = price_node.item(0).firstChild.nodeValue;
        var euro = xml.getElementsByTagName("euro").item(0).firstChild.nodeValue;
    }else{
        price = "Nie pobrano ceny";
    }
    
    document.getElementById("confirm_koszt").innerHTML = price+"pln ≈ "+euro+"&euro;"+obnizka_html;

}

function hide_errors(obj)
{
    obj.className="";
    div = obj.parentNode.parentNode.getElementsByTagName("div");
    for(k=0;k<div.length;k++)
    {
        if(div[k].className=="cell_d")
        {
            div[k].innerHTML = "";
        }
    }
}

function blad_rezerwacji(xml)
{
    name = '';
    element = null;
    error_codes_item = xml.getElementsByTagName("error_codes");
    if(error_codes_item.length==0)
        alert("B\u0142ad z rezerwacją");

    var error_text_item = xml.getElementsByTagName("errors");
    if(error_text_item.length>0)
    {
        error_text = error_text_item.item(0).getElementsByTagName("i");
    
    var error_codes = error_codes_item.item(0).getElementsByTagName("i");
    for(i=0;i<error_codes.length;i++)
    {
        name = '';
        if(error_codes[i.firstChild])
            name = error_codes[i].firstChild.nodeValue;

        element = document.getElementById(name);
        if(name && element)
        {
            element.className="input_error";
            div = element.parentNode.parentNode.getElementsByTagName("div");
            for(k=0;k<div.length;k++)
            {
                if(div[k].className=="cell_d" && error_text[i])
                {
                    div[k].innerHTML = error_text[i].firstChild.nodeValue;
                }
            }
               
        }else{
             alert(error_text[i].firstChild.nodeValue);
        }
    }
    }
}

function getPageSizeWithScroll(){
	if (window.innerHeight && window.scrollMaxY) {// Firefox
		yWithScroll = window.innerHeight + window.scrollMaxY;
		xWithScroll = window.innerWidth + window.scrollMaxX;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
		xWithScroll = document.body.scrollWidth;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		yWithScroll = document.body.offsetHeight;
		xWithScroll = document.body.offsetWidth;
  	}
	arrayPageSizeWithScroll = new Array(xWithScroll,yWithScroll);
	//alert( 'The height is ' + yWithScroll + ' and the width is ' + xWithScroll );
	return arrayPageSizeWithScroll;
}

function hide_potwierdzenie_rezerwacji()
{
    document.getElementById('rezerwacja_ok').style.display="none";
}

function pokaz_potwierdzenie_rezerwacji(xml)
{
    odwroc_potwierdz_rezerwacje();
    hide_potwierdzenie_rezerwacji();

    if(xml.getElementsByTagName("dodano").length>0)
        document.getElementById('rezerwacja_ok').style.display="block";
    else
        document.getElementById('rezerwacja_error').style.display="block";
}

function setM()
{
    document.getElementById('email').innerHTML = "kontakt@apartamentyjustin.pl";
    document.getElementById('email').href = "mailto:kontakt@apartamentyjustin.pl";
}

// Simulates PHP's date function
Date.prototype.format = function(format) {
	var returnStr = '';
	var replace = Date.replaceChars;
	for (var i = 0; i < format.length; i++) {
		var curChar = format.charAt(i);
		if (replace[curChar])
			returnStr += replace[curChar].call(this);
		else
			returnStr += curChar;
	}
	return returnStr;
};
Date.replaceChars = {
	shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
	longMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
	shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
	longDays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],

	// Day
	d: function() { return (this.getDate() < 10 ? '0' : '') + this.getDate(); },
	D: function() { return Date.replace.shortDays[this.getDay()]; },
	j: function() { return this.getDate(); },
	l: function() { return Date.replace.longDays[this.getDay()]; },
	N: function() { return this.getDay() + 1; },
	S: function() { return (this.getDate() % 10 == 1 && this.getDate() != 11 ? 'st' : (this.getDate() % 10 == 2 && this.getDate() != 12 ? 'nd' : (this.getDate() % 10 == 3 && this.getDate() != 13 ? 'rd' : 'th'))); },
	w: function() { return this.getDay(); },
	z: function() { return "Not Yet Supported"; },
	// Week
	W: function() { return "Not Yet Supported"; },
	// Month
	F: function() { return Date.replace.longMonths[this.getMonth()]; },
	m: function() { return (this.getMonth() < 9 ? '0' : '') + (this.getMonth() + 1); },
	M: function() { return Date.replace.shortMonths[this.getMonth()]; },
	n: function() { return this.getMonth() + 1; },
	t: function() { return "Not Yet Supported"; },
	// Year
	L: function() { return "Not Yet Supported"; },
	o: function() { return "Not Supported"; },
	Y: function() { return this.getFullYear(); },
	y: function() { return ('' + this.getFullYear()).substr(2); },
	// Time
	a: function() { return this.getHours() < 12 ? 'am' : 'pm'; },
	A: function() { return this.getHours() < 12 ? 'AM' : 'PM'; },
	B: function() { return "Not Yet Supported"; },
	g: function() { return this.getHours() == 0 ? 12 : (this.getHours() > 12 ? this.getHours() - 12 : this.getHours()); },
	G: function() { return this.getHours(); },
	h: function() { return (this.getHours() < 10 || (12 < this.getHours() < 22) ? '0' : '') + (this.getHours() < 10 ? this.getHours() + 1 : this.getHours() - 12); },
	H: function() { return (this.getHours() < 10 ? '0' : '') + this.getHours(); },
	i: function() { return (this.getMinutes() < 10 ? '0' : '') + this.getMinutes(); },
	s: function() { return (this.getSeconds() < 10 ? '0' : '') + this.getSeconds(); },
	// Timezone
	e: function() { return "Not Yet Supported"; },
	I: function() { return "Not Supported"; },
	O: function() { return (this.getTimezoneOffset() < 0 ? '-' : '+') + (this.getTimezoneOffset() / 60 < 10 ? '0' : '') + (this.getTimezoneOffset() / 60) + '00'; },
	T: function() { return "Not Yet Supported"; },
	Z: function() { return this.getTimezoneOffset() * 60; },
	// Full Date/Time
	c: function() { return "Not Yet Supported"; },
	r: function() { return this.toString(); },
	U: function() { return this.getTime() / 1000; }

}

var actual_image=0;
function change_pic(direction,id)
{
    if(images_page.length > 1)
    {
        if(!id)
        {
            if(direction==1 && actual_image < images_page.length-1 ){
                actual_image++;
                show_pic(images_page[actual_image]);
            }else if(direction==2 && actual_image > 0){
                actual_image--;
                show_pic(images_page[actual_image]);
            }
          
        }else{
            if(images_page[id])
            {
                  show_pic(images_page[id]);
            }
        }
        

    }
}

function show_pic(obj)
{   
    $("change_image").src = obj[1];
    $("change_image").width=667;
    $("change_image").height=227;
    $("change_image_text").innerHTML = obj[2];

}

function strtotime (str, now) {
    // http://kevin.vanzonneveld.net
    // +   original by: Caio Ariede (http://caioariede.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: David
    // +   improved by: Caio Ariede (http://caioariede.com)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Wagner B. Soares
    // +   bugfixed by: Artur Tchernychev
    // %        note 1: Examples all have a fixed timestamp to prevent tests to fail because of variable time(zones)
    // *     example 1: strtotime('+1 day', 1129633200);
    // *     returns 1: 1129719600
    // *     example 2: strtotime('+1 week 2 days 4 hours 2 seconds', 1129633200);
    // *     returns 2: 1130425202
    // *     example 3: strtotime('last month', 1129633200);
    // *     returns 3: 1127041200
    // *     example 4: strtotime('2009-05-04 08:30:00');
    // *     returns 4: 1241418600

    var i, match, s, strTmp = '', parse = '';

    strTmp = str;
    strTmp = strTmp.replace(/\s{2,}|^\s|\s$/g, ' '); // unecessary spaces
    strTmp = strTmp.replace(/[\t\r\n]/g, ''); // unecessary chars

    if (strTmp == 'now') {
        return (new Date()).getTime()/1000; // Return seconds, not milli-seconds
    } else if (!isNaN(parse = Date.parse(strTmp))) {
        return (parse/1000);
    } else if (now) {
        now = new Date(now*1000); // Accept PHP-style seconds
    } else {
        now = new Date();
    }

    strTmp = strTmp.toLowerCase();

    var __is =
    {
        day:
        {
            'sun': 0,
            'mon': 1,
            'tue': 2,
            'wed': 3,
            'thu': 4,
            'fri': 5,
            'sat': 6
        },
        mon:
        {
            'jan': 0,
            'feb': 1,
            'mar': 2,
            'apr': 3,
            'may': 4,
            'jun': 5,
            'jul': 6,
            'aug': 7,
            'sep': 8,
            'oct': 9,
            'nov': 10,
            'dec': 11
        }
    };

    var process = function (m) {
        var ago = (m[2] && m[2] == 'ago');
        var num = (num = m[0] == 'last' ? -1 : 1) * (ago ? -1 : 1);

        switch (m[0]) {
            case 'last':
            case 'next':
                switch (m[1].substring(0, 3)) {
                    case 'yea':
                        now.setFullYear(now.getFullYear() + num);
                        break;
                    case 'mon':
                        now.setMonth(now.getMonth() + num);
                        break;
                    case 'wee':
                        now.setDate(now.getDate() + (num * 7));
                        break;
                    case 'day':
                        now.setDate(now.getDate() + num);
                        break;
                    case 'hou':
                        now.setHours(now.getHours() + num);
                        break;
                    case 'min':
                        now.setMinutes(now.getMinutes() + num);
                        break;
                    case 'sec':
                        now.setSeconds(now.getSeconds() + num);
                        break;
                    default:
                        var day;
                        if (typeof (day = __is.day[m[1].substring(0, 3)]) != 'undefined') {
                            var diff = day - now.getDay();
                            if (diff == 0) {
                                diff = 7 * num;
                            } else if (diff > 0) {
                                if (m[0] == 'last') {diff -= 7;}
                            } else {
                                if (m[0] == 'next') {diff += 7;}
                            }
                            now.setDate(now.getDate() + diff);
                        }
                }
                break;

            default:
                if (/\d+/.test(m[0])) {
                    num *= parseInt(m[0], 10);

                    switch (m[1].substring(0, 3)) {
                        case 'yea':
                            now.setFullYear(now.getFullYear() + num);
                            break;
                        case 'mon':
                            now.setMonth(now.getMonth() + num);
                            break;
                        case 'wee':
                            now.setDate(now.getDate() + (num * 7));
                            break;
                        case 'day':
                            now.setDate(now.getDate() + num);
                            break;
                        case 'hou':
                            now.setHours(now.getHours() + num);
                            break;
                        case 'min':
                            now.setMinutes(now.getMinutes() + num);
                            break;
                        case 'sec':
                            now.setSeconds(now.getSeconds() + num);
                            break;
                    }
                } else {
                    return false;
                }
                break;
        }
        return true;
    };

    match = strTmp.match(/^(\d{2,4}-\d{2}-\d{2})(?:\s(\d{1,2}:\d{2}(:\d{2})?)?(?:\.(\d+))?)?$/);
    if (match != null) {
        if (!match[2]) {
            match[2] = '00:00:00';
        } else if (!match[3]) {
            match[2] += ':00';
        }

        s = match[1].split(/-/g);

        for (i in __is.mon) {
            if (__is.mon[i] == s[1] - 1) {
                s[1] = i;
            }
        }
        s[0] = parseInt(s[0], 10);

        s[0] = (s[0] >= 0 && s[0] <= 69) ? '20'+(s[0] < 10 ? '0'+s[0] : s[0]+'') : (s[0] >= 70 && s[0] <= 99) ? '19'+s[0] : s[0]+'';
        return parseInt(this.strtotime(s[2] + ' ' + s[1] + ' ' + s[0] + ' ' + match[2])+(match[4] ? match[4]/1000 : ''), 10);
    }

    var regex = '([+-]?\\d+\\s'+
        '(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?'+
        '|sun\\.?|sunday|mon\\.?|monday|tue\\.?|tuesday|wed\\.?|wednesday'+
        '|thu\\.?|thursday|fri\\.?|friday|sat\\.?|saturday)'+
        '|(last|next)\\s'+
        '(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?'+
        '|sun\\.?|sunday|mon\\.?|monday|tue\\.?|tuesday|wed\\.?|wednesday'+
        '|thu\\.?|thursday|fri\\.?|friday|sat\\.?|saturday))'+
        '(\\sago)?';

    match = strTmp.match(new RegExp(regex, 'gi')); // Brett: seems should be case insensitive per docs, so added 'i'
    if (match == null) {
        return false;
    }

    for (i = 0; i < match.length; i++) {
        if (!process(match[i].split(' '))) {
            return false;
        }
    }

    return (now.getTime()/1000);
}

function date_set(obj,name)
{
    day =  document.forms['rezform'].elements[name+'Day'].options[document.forms['rezform'].elements[name+'Day'].selectedIndex].value;
    month =  document.forms['rezform'].elements[name+'Month'].options[document.forms['rezform'].elements[name+'Month'].selectedIndex].value;
    year =  document.forms['rezform'].elements[name+'Year'].options[document.forms['rezform'].elements[name+'Year'].selectedIndex].value;

    switch(obj.name)
    {
        case name+'Day':
          day = obj.options[obj.selectedIndex].value;
        break;
        case name+'Month':
          month = obj.options[obj.selectedIndex].value;
        break;
        case name+'Year':
            year = obj.options[obj.selectedIndex].value;
        break;
    }

    if(name=="from"){
        rdata_od = year+"-"+month+"-"+day;
        $('od').value = rdata_od;
    }else{
        rdata_do = year+"-"+month+"-"+day;
        $('do').value = rdata_do;
    }

}
