var xhrSearch = createXHR();
var limit = 10;
var stranka = 1;
var seek = 0;
var razeni = 1;
var days = 1;
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
var show_loading = false;


function change_model(znacka) {
    if(xhrSearch){
        try{            
            showLoadingMask();
            xhrSearch.open("GET","../../../../../getModel.php?zn="+Url.encode(znacka),true);
            xhrSearch.onreadystatechange = callBackModel;
            xhrSearch.send(null);
        }catch(e){
            alert("Nelze se připojik k serveru:\n" + e.toString());
        }
    }else{
        alert("Funkce \"precitSoubor()\": chybí objekt XMLHttpRequest");
    }
}

function getSearchResults(znacka){

    if(xhrSearch){
        try{
            //if (!check_php_vypis()) {
            //show_progressbar('content');            
            showLoadingMask();
            if(show_loading == true) {
                $('#loading').show();
            }
            //document.getElementById("body-ps").innerHTML = '<div class="ajax_loading"></div>';
            
            /*
            kategorie = document.getElementById("kategorie").value;
            kategorie = Url.encode(kategorie);
            */
            znacka = document.getElementById("znacka").value;
            znacka = Url.encode(znacka);
            model = document.getElementById("model").value;
            model = Url.encode(model);
            karoserie = document.getElementById("karoserie").value;
            karoserie = Url.encode(karoserie);
            palivo = document.getElementById("palivo").value;
            najeto = document.getElementById("najeto").value;
              
            min_rok = document.getElementById("minstari").value;
            max_rok = document.getElementById("maxstari").value;
            min_cena = document.getElementById("mincena").value;
            max_cena = document.getElementById("maxcena").value;
              
            //params = 'kat='+kategorie+'&zn='+znacka+'&model='+model+'&kar='+karoserie+'&pal='+palivo+'&najeto='+najeto+'&minr='+min_rok+'&maxr='+max_rok+'&minc='+min_cena+'&maxc='+max_cena+'&razeni='+razeni+'&limit='+limit+'&str='+stranka;
            params = 'zn='+znacka+'&model='+model+'&kar='+karoserie+'&pal='+palivo+'&najeto='+najeto+'&minr='+min_rok+'&maxr='+max_rok+'&minc='+min_cena+'&maxc='+max_cena+'&razeni='+razeni+'&limit='+limit+'&str='+stranka;
  
            xhrSearch.open("GET","../../../../../getSearchResults.php?"+params,true);
            xhrSearch.onreadystatechange = callBackResult;
            xhrSearch.send(null);
        //}
            
        }catch(e){
            alert("Nelze se připojik k serveru:\n" + e.toString());
        }
    }else{
        alert("Funkce \"precitSoubor()\": chybí objekt XMLHttpRequest");
    }
}

function callBackResult(){
      
    if(xhrSearch.readyState == 4){
        if(xhrSearch.status == 200){          
            try{                
                hideLoadingMask();
                if(show_loading == true) {
                    show_loading = false;                    
                    $("#loading").fadeOut(100);
                    $("#search_area").fadeIn(500);
                    $("#search_area").show();
                }
                var XMLRes = xhrSearch.responseXML;
                //zachycení chyb IE a Opery
                if(!XMLRes || !XMLRes.documentElement){
                    throw("Chybná struktura XML:\n" + xhrSearch.responseText);
                }
                //zachycení chyb ohnivé lišky :-)
                
                var rootNodeName = XMLRes.documentElement.nodeName;
                if(rootNodeName == "parsererror"){
                    throw("Chybná struktura XML:\n" + xhrSearch.responseText);
                }
                //čtu dokument, jelikož je vše ok :-)              
                xmlRoot = XMLRes.documentElement;
                results =  xmlRoot.getElementsByTagName("results");
                                  
                //var pocet_vysledku = results[0].children[0].textContent;
                var pocet_vysledku = results[0].childNodes[0].firstChild.data;
                if (pocet_vysledku == 0) {
                    $(".nalezeno").html("Nalezeno <strong>0</strong> aut.");
                } else if (pocet_vysledku == 1) {
                    $(".nalezeno").html("Nalezen <strong>1</strong> auto.");
                } else if (pocet_vysledku >= 2 && pocet_vysledku <= 4) {
                    $(".nalezeno").html("Nalezeny <strong>"+pocet_vysledku+"</strong> auta.");
                } else {
                    $(".nalezeno").html("Nalezeno <strong>"+pocet_vysledku+"</strong> aut.");
                }
                
                search =  xmlRoot.getElementsByTagName("search");

                $(".polozka").remove();
                
                // aktualizace poctu stranek
                $("#stranka-horni a").remove();
                /*
                var url = window.location;
                var urlparts = url.toString().split('/');
                
                for (i = 0; i < urlparts.length; i++){
                  if (urlparts[i].match('limit')){
                    limit = urlparts[i].substring(5);
                    alert('nastavuji limit '+limit);
                  }         
                }
                */
                
                var pocet_stranek = Math.ceil(pocet_vysledku/limit);

                stranka = parseInt(stranka);

                var strh = "";
                var strd = "";
                if (pocet_stranek <= 8) {
                    for (var j=1; j<=pocet_stranek; j++) {
                        if (stranka == j) {
                            strh += '<a id="sh'+j+'" class="active" name="#">'+j+'</a>';
                            strd += '<a id="sd'+j+'" class="active" name="#">'+j+'</a>';
                        } else {
                            strh += '<a id="sh'+j+'" name="#">'+j+'</a>';
                            strd += '<a id="sd'+j+'" name="#">'+j+'</a>';
                        }
                    }
                } else {
                    skipped = false;

                    for(s=1; s<=pocet_stranek; s++) {
                        if (s==1 || s==2 || s==(pocet_stranek-1) || s==pocet_stranek || s==(stranka-1) || s==stranka || s==(stranka+1)) {
                            skipped = false;
                            if (stranka == s) {
                                strh += '<a id="sh'+s+'" class="active" name="#">'+s+'</a>';
                                strd += '<a id="sd'+s+'" class="active" name="#">'+s+'</a>';
                            } else {
                                strh += '<a id="sh'+s+'" name="#">'+s+'</a>';
                                strd += '<a id="sd'+s+'" name="#">'+s+'</a>';
                            }
                        } else {
                            if (!skipped) {
                                skipped = true;
                                strh += '<span class="tecky-strankovani">...</span>';
                                strd += '<span class="tecky-strankovani">...</span>';
                            }
                        }
                    }
                }

                if (stranka >= pocet_stranek){
                    odkaz_dalsi_str1 = null;
                }else {
                    dalsi_str = stranka+1;
                    odkaz_dalsi_str1 = '<div id="posun-right" onmouseover="naviDarkBg(\'right\');" onmouseout="naviLightBg(\'right\');"><div id="navi-right-top"><div id="navi-right-bottom"><a name="#" title="Následující stránka" onclick="return check_php_vypis();">&nbsp;</a></div></div></div>';
                }
                if (stranka <= 1)
                    odkaz_pred_str1 = "";
                else {
                    pred_str = stranka-1;
                    odkaz_pred_str1 = '<div id="posun-left" onmouseover="naviDarkBg(\'left\');" onmouseout="naviLightBg(\'left\');"><div id="navi-left-top"><div id="navi-left-bottom"><a name="#" title="Předchozí stránka" onclick="return check_php_vypis();">&nbsp;</a></div></div></div>';
                }
                                
                var zaznam = "";
                // v pripade, ze nebylo nic nalezeno
                if (pocet_vysledku == 0) {

                    zaznam += "<div class='norow'>Pro vámi zadané parametry nebyl nalezen žádný vůz.</div>";
                                    
                    $("#topnavi").css({
                        'visibility': 'hidden'
                    });
                    $("#bottomnavi").css({
                        'visibility': 'hidden'
                    });
                    $("#odkaz_pred_str").css({
                        'visibility': 'hidden'
                    });
                    $("#odkaz_dalsi_str").css({
                        'visibility': 'hidden'
                    });
                    $(".hlavicka").css({
                        'visibility': 'hidden'
                    });
                                                                        
                    $("#vysledky_vyhl").html(zaznam);

                } else {
                    $("#topnavi").css({
                        'visibility': 'visible'
                    });
                    $("#bottomnavi").css({
                        'visibility': 'visible'
                    });
                    $("#odkaz_pred_str").css({
                        'visibility': 'visible'
                    });
                    $("#odkaz_dalsi_str").css({
                        'visibility': 'visible'
                    });
                    $(".hlavicka").css({
                        'visibility': 'visible'
                    });
                  		            
                    for(var i=0; i < search.length; i++){
                        if ( search[i].childNodes[0].firstChild == null )
                            v_f = "";
                        else
                            v_f = search[i].childNodes[0].firstChild.data;
                        if ( search[i].childNodes[1].firstChild == null )
                            v_pf = "";
                        else
                            v_pf = search[i].childNodes[1].firstChild.data;
                        if ( search[i].childNodes[2].firstChild == null )
                            v_z = "";
                        else
                            v_z = search[i].childNodes[2].firstChild.data;
                        if ( search[i].childNodes[3].firstChild == null )
                            v_mod = "";
                        else
                            v_mod = search[i].childNodes[3].firstChild.data;
                        if ( search[i].childNodes[4].firstChild == null )
                            v_t = "";
                        else
                            v_t = search[i].childNodes[4].firstChild.data;
                        if ( search[i].childNodes[5].firstChild == null )
                            v_k = "";
                        else
                            v_k = search[i].childNodes[5].firstChild.data;
                        if ( search[i].childNodes[6].firstChild == null )
                            v_o = "";
                        else
                            v_o = search[i].childNodes[6].firstChild.data;
                        if ( search[i].childNodes[7].firstChild == null )
                            v_p = "";
                        else
                            v_p = search[i].childNodes[7].firstChild.data;
                        if ( search[i].childNodes[8].firstChild == null )
                            v_r = "";
                        else
                            v_r = search[i].childNodes[8].firstChild.data;
                        if ( search[i].childNodes[9].firstChild == null )
                            v_c = "";
                        else
                            v_c = search[i].childNodes[9].firstChild.data;
                        if ( search[i].childNodes[10].firstChild == null )
                            v_n = "";
                        else
                            v_n = search[i].childNodes[10].firstChild.data;
                        if ( search[i].childNodes[11].firstChild == null )
                            v_po = "";
                        else
                            v_po = search[i].childNodes[11].firstChild.data;
                        if ( search[i].childNodes[13].firstChild == null )
                            v_odkaz = "";
                        else
                            v_odkaz = search[i].childNodes[13].firstChild.data;
             
             
                        zaznam += '<div class="polozka" onmouseover="darkPolozka(this);" onmouseout="lightPolozka(this);"><a href="../../../../../'+search[i].childNodes[13].firstChild.data+'-id'+search[i].childNodes[12].firstChild.data+'/"><span class="odkaz">&nbsp;</span></a>';
                        zaznam += '<div class="obrazek"><img src="'+v_f+'" alt="'+v_pf+'" width="69" height="51" /></div>';
                        zaznam += '<div class="znacka">'+v_z+'</div>';
                        zaznam += '<div class="model">'+v_mod+' '+v_t+'</div>';
                        zaznam += '<div class="karoserie">'+v_k+'</div>';
                        zaznam += '<div class="obsah">'+v_o+' ccm</div>';
                        zaznam += '<div class="palivo">'+v_p+'</div>';
                        zaznam += '<div class="rok">'+v_r+'</div>';
                        zaznam += '<div class="najeto">'+v_n+' km</div>';
                        zaznam += '<div class="cena">'+v_c+' Kč</div>';
                        zaznam += '<div class="popis">'+v_po+'</div>';
                        zaznam += '</div>';
                     
                    //alert(search[i].children[0].textContent);
                    }
  
                    $("#stranka-horni").html(strh);
                    $("#stranka-dolni").html(strd);
                    $("#vysledky_vyhl").html(zaznam);
                  
                    $("#odkaz_pred_str").html(odkaz_pred_str1);
                    $("#odkaz_dalsi_str").html(odkaz_dalsi_str1);
                  
                    reaktivate_hrefs();
                    reaktivate_navi();
                }  

            }catch(e){
                alert("Chyba při čtení odpovědi:" + e.toString());
            }
        }else{
            alert("Požadavek HTTP není v pořádku.")
        }
    }
}
 
function callBackModel(){
      
    if(xhrSearch.readyState == 4){
        if(xhrSearch.status == 200){          
            try{
                hideLoadingMask();
                var XMLRes = xhrSearch.responseXML;
                //zachycení chyb IE a Opery
                if(!XMLRes || !XMLRes.documentElement){
                    throw("Chybná struktura XML:\n" + xhrSearch.responseText);
                }
                //zachycení chyb ohnivé lišky :-)
                
                var rootNodeName = XMLRes.documentElement.nodeName;
                if(rootNodeName == "parsererror"){
                    throw("Chybná struktura XML:\n" + xhrSearch.responseText);
                }
                //čtu dokument, jelikož je vše ok :-)

                xmlRoot = XMLRes.documentElement;
                  
                // kategorie
                model = xmlRoot.getElementsByTagName("model");
                var select = document.getElementById("sel2");
                var selectModel = document.getElementById("model").options;
                selectModel.length = 0;
                $("#model").resetSS();
                $('#model').append('<option value="0">--- Vyberte model ---</option>').resetSS();
                for (i = 0; i < model.length; i++){
                    if ( model[i].childNodes[0].firstChild == null )
                        v_model = "";
                    else
                        v_model = model[i].childNodes[0].firstChild.data;

                    $('#model').append('<option value="'+v_model+'">'+v_model+'</option>').resetSS();
                }
                getSearchResults();
                reactivate_model();
            }catch(e){
                alert("Chyba při čtení odpovědi:" + e.toString());
            }
        }else{
            alert("Požadavek HTTP není v pořádku.")
        }
    }
}

var zn = "";

function zrus_provoz() {
    AC_FL_RunContent(
        'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
        'width', '239',
        'height', '33',
        'src', cesta+'sb1',
        'quality', 'high',
        'pluginspage', 'http://www.adobe.com/go/getflashplayer',
        'align', 'middle',
        'play', 'true',
        'loop', 'true',
        'scale', 'showall',
        'wmode', 'transparent',
        'devicefont', 'false',
        'id', 'sb1',
        'bgcolor', '#ededed',
        'name', 'sb1',
        'menu', 'true',
        'allowFullScreen', 'false',
        'allowScriptAccess','sameDomain',
        'movie', cesta+'sb1',
        'flashvars', 'min=1989&max=' + (new Date().getFullYear()).toString() + '&id=1&left=0&right=10',
        'salign', ''
        ); //end AC code

}
function reaktivate_hrefs(){
  
    $(".stranka a").click(function(){
        $(".stranka a").removeClass();
        stranka = this.id.substr(2);

        $("#sh"+stranka).addClass("active");
        $("#sd"+stranka).addClass("active");
        getSearchResults();
    });
  

}

function check_php_vypis(){
    //var kategorie = $("#kategorie").val();
    var znacka = $("#znacka").val();
    var model = $("#model").val();
    var karoserie = $("#karoserie").val();
    var palivo = $("#palivo").val();
    var najeto = $("#najeto").val();
    var min_rok = document.getElementById("minstari").value;
    var max_rok = document.getElementById("maxstari").value;
    var min_cena = document.getElementById("mincena").value;
    var max_cena = document.getElementById("maxcena").value;
      
    //if (kategorie == 0 && znacka == "Vyberte značku" && najeto == 0 && model == 0 && karoserie == "Vyberte karoserii" && palivo == 0 && min_rok==1989 && max_rok==2009 && min_cena == 20000 && max_cena == 1200000) {
    if (znacka == "Vyberte značku" && najeto == 0 && model == 0 && karoserie == "Vyberte karoserii" && palivo == 0 && min_rok==1989 && max_rok==(new Date().getFullYear()) && min_cena == 20000 && max_cena == 1200000) {
        return true;
    } else {
        return false;
    }
}

function set_value_str (v) {
    stranka=v;
}
function set_value_lim (v) {
    limit=v;
}
function set_value_ra (v) {
    razeni=v;
}

function reactivate_model() {
    $("#model").change(function(){
        stranka = 1;
        getSearchResults();
    });
}

function reaktivate_navi() {

    $("#navi-right-bottom a").click(function(){
        act = $(".horni a.active").attr('id');
        last = $(".horni a:last").attr('id');
        if (act != last) {
            next = $("#"+act).next().attr('id');
            $(".stranka a").removeClass();
            stranka = next.substr(2);
            $("#sh"+stranka).addClass("active");
            $("#sd"+stranka).addClass("active");
            getSearchResults();
        }
    });
   
    $("#navi-left-bottom a").click(function(){
        act = $(".horni a.active").attr('id');
        first = $(".horni a:first").attr('id');
        if (act != first) {
            previous = $("#"+act).prev().attr('id');
            $(".stranka a").removeClass();
            stranka = previous.substr(2);
            $("#sh"+stranka).addClass("active");
            $("#sd"+stranka).addClass("active");
            getSearchResults();
        }
    });
}




$(document).ready(function(){

    // zakazani vypisovani aut pres php
  
    if (!check_php_vypis()) {        
        show_loading = true;
        getSearchResults();
    }
  
    /*
    $("#kategorie").change(function(){
        stranka = 1;
        getSearchResults();
    });
    */
    $("#znacka").change(function(){
        stranka = 1;
        change_model($("#znacka").val());
          
    });
    $("#model").change(function(){
        stranka = 1;
        getSearchResults();
    });
    $("#karoserie").change(function(){
        stranka = 1;
        getSearchResults();
    });
    $("#palivo").change(function(){
        stranka = 1;
        getSearchResults();
    });
    $("#najeto").change(function(){
        stranka = 1;
        getSearchResults();
    });
    $("#posuvnik-stari").click(function(){
        stranka = 1;
        getSearchResults();
    });
    $("#posuvnik-cena").click(function(){
        stranka = 1;
        getSearchResults();
    });
  
  
    $(".znacka").click(function(){

        if (razeni==1)
            razeni = 2;
        else
            razeni = 1;
        if(!check_php_vypis())
            getSearchResults();
    });
    $(".model").click(function(){
        if (razeni==3)
            razeni = 4;
        else
            razeni = 3;
        if(!check_php_vypis())
            getSearchResults();
    });
    $(".karoserie").click(function(){
        if (razeni==5)
            razeni = 6;
        else
            razeni = 5;
        if(!check_php_vypis())
            getSearchResults();
    });
    $(".obsah").click(function(){
        if (razeni==7)
            razeni = 8;
        else
            razeni = 7;
        if(!check_php_vypis())
            getSearchResults();
    });
    $(".palivo").click(function(){
        if (razeni==9)
            razeni = 10;
        else
            razeni = 9;
        if(!check_php_vypis())
            getSearchResults();
    });
    $(".rok").click(function(){
        if (razeni==11)
            razeni = 12;
        else
            razeni = 11;
        if(!check_php_vypis())
            getSearchResults();
    });
    $(".cena").click(function(){
        if (razeni==13)
            razeni = 14;
        else
            razeni = 13;
        if(!check_php_vypis())
            getSearchResults();
    });
    $(".najeto").click(function(){
        if (razeni==15)
            razeni = 16;
        else
            razeni = 15;
        if(!check_php_vypis())
            getSearchResults();
    });
  
    $(".limit a").click(function(){
        $(".limit a").removeClass();
        limit = this.id.substr(2);
        $("#lh"+limit).addClass("active");
        $("#ld"+limit).addClass("active");
        stranka = 1;
        if(!check_php_vypis())
            getSearchResults();
    });

    if(!check_php_vypis()) {        
        reaktivate_hrefs();
    }

    $("#navi-right-bottom a").click(function(){
        act = $(".horni a.active").attr('id');
        last = $(".horni a:last").attr('id');
        if (act != last) {
            next = $("#"+act).next().attr('id');
            $(".stranka a").removeClass();
            stranka = next.substr(2);
            $("#sh"+stranka).addClass("active");
            $("#sd"+stranka).addClass("active");
            getSearchResults();
        }
    });
   
    $("#navi-left-bottom a").click(function(){
        act = $(".horni a.active").attr('id');
        first = $(".horni a:first").attr('id');
        if (act != first) {
            previous = $("#"+act).prev().attr('id');
            $(".stranka a").removeClass();
            stranka = previous.substr(2);
            $("#sh"+stranka).addClass("active");
            $("#sd"+stranka).addClass("active");
            getSearchResults();
        }
    });


/*
    $("#zrus-kat").click(function(){
        $("#kategorie").val('0');
        $("#kategorie").next().remove();
        $("#kategorie").sSelect();
        getSearchResults();
    });
    */
    $("#zrus-zn").click(function(){
        stranka = 1;
        $("#znacka").val('Vyberte značku');
        $("#znacka").next().remove();
        $("#znacka").sSelect();
        change_model("Vyberte značku");
    });
    $("#zrus-model").click(function(){
        $("#model").val('0');
        $("#model").next().remove();
        $("#model").sSelect();
        getSearchResults();
    });
    $("#zrus-kar").click(function(){
        $("#karoserie").val('Vyberte karoserii');
        $("#karoserie").next().remove();
        $("#karoserie").sSelect();
        getSearchResults();
    });
    $("#zrus-pal").click(function(){
        $("#palivo").val('0');
        $("#palivo").next().remove();
        $("#palivo").sSelect();
        getSearchResults();
    });
    $("#zrus-tach").click(function(){
        $("#najeto").val('0');
        $("#najeto").next().remove();
        $("#najeto").sSelect();
        getSearchResults();
    });

    $("#zrus-doprovozu").click(function(){
        resetSB1Values();
        getSearchResults();
    });
        
    $("#zrus-cena").click(function(){
        resetSB2Values();
        getSearchResults();
    });
    $("#cancel-all").click(function(){
        /*
        // kategorie
        $("#kategorie").val('0');
        $("#kategorie").next().remove();
        $("#kategorie").sSelect();
        */       
        // model
        $("#model").val('0');
        $("#model").next().remove();
        $("#model").sSelect();
        // karoserie
        $("#karoserie").val('Vyberte karoserii');
        $("#karoserie").next().remove();
        $("#karoserie").sSelect();
        // palivo
        $("#palivo").val('0');
        $("#palivo").next().remove();
        $("#palivo").sSelect();
        //najeto
        $("#najeto").val('0');
        $("#najeto").next().remove();
        $("#najeto").sSelect();
        // do provozu
        resetSB1Values();
        // cena
        resetSB2Values();
        // znacka
        stranka = 1;
        $("#znacka").val('Vyberte značku');
        $("#znacka").next().remove();
        $("#znacka").sSelect();
        // po zruseni znacky se zavola ajax, ktery zrusi model a po nem se zavola getSearchResults();
        change_model("Vyberte značku");
    });

});

