//var ajaxBasePath = "http://metrostavdevelopment.dev.metrostav.dator3.cz/webapp/ajax/searcher/";
//var ajaxBasePath = location.href;
//ajaxBasePath = ajaxBasePath.replace(/[^\/]*$/gi, "");
//ajaxBasePath = ajaxBasePath + "webapp/ajax/searcher/";

var ajaxBase = location.href;
ajaxBase = ajaxBase.match(/http:\/\/[^\/]*/i);

//var ajaxBasePath = ajaxBase + "/metrostavdevelopment/metrostavdevelopment/webapp/ajax/searcher/";
var ajaxBasePath = ajaxBase + "/webapp/ajax/searcher/";

var searchType = "sSearch";
var usePriceVal = -1;
var useArrayVal = -1;

var useOptions = false;
var locationOpt;
var typeOpt;
var sizeOpt;
var arrayOpt1;
var arrayOpt2;
var priceOpt1;
var priceOpt2;

var langPlocha = "";


if (langConst == "en")
{
    langPlocha = "Size:";
    langCena = "Cost:";
    langKc = "Kč";
    langRefreshTypeError = "Error: I can't load typelist.";
    langRefreshSizeError = "Error: I can't load size.";
    langRefreshAreaError = "Error: I can't load area.";
    langRefreshCostError = "Error: I can't load cost.";
    langCreateTitleRangeMsg1 = "This parameter isn't for elect criteria accessible.";
    langCreateTitleRangeMsg2 = "Information about price near our brokers.";
} else
{
    langPlocha = "Plocha:";
    langCena = "Cena:";
    langKc = "Kč";
    langRefreshTypeError = "Chyba: nemohu načíst seznam typů.";
    langRefreshSizeError = "Chyba: nemohu načíst seznam velikostí.";
    langRefreshAreaError = "Chyba: nemohu načíst dostupnou plochu.";
    langRefreshCostError = "Chyba: nemohu načíst dostupné ceny.";
    langCreateTitleRangeMsg1 = "Tento parametr není pro zvolená kritéria dostupný.";
    langCreateTitleRangeMsg2 = "Info o ceně u našich makléřů.";
}

function setOptions()
{
    if (useOptions)
    {
        $(".listOption[name='typ']").val(typeOpt);
        $(".listOption[name='lokalita']").val(locationOpt);
        $(".listOption[name='velikost']").val(sizeOpt);

        min = arrayOpt1;
        max = arrayOpt2;
        $('#arraySlider').slider('option','max', max);
        $('#arraySlider').slider('option','min', min);
        if (min != max)
        {
           $('#arraySlider').slider("values", 0, min);
           $('#arraySlider').slider("values", 1, max);
           useArrayVal = -1;
        } else
        {
           useArrayVal = min;
           $('#arraySlider').css("display", "none");
        }
        $('#arrayTitle').html(createTitleRange(langPlocha, min, max, "m<sup>2</sup>"));

        min = priceOpt1;
        max = priceOpt2;
        $('#priceSlider').slider('option','max', max);
        $('#priceSlider').slider('option','min', min);
        if (min != max)
        {
           $('#priceSlider').slider("values", 0, min);
           $('#priceSlider').slider("values", 1, max);
           usePriceVal = -1;
        } else
        {
           usePriceVal = min;
        }
        $('#priceTitle').html(createTitleRange(langCena, min, max, langKc));

        if (min == max || (min == -1 && max == 0))
        {
           $('#priceSlider').css("display", "none");
        }

        refreshSearcher();
        useOptions = false;
    }
}

//window.alert(ajaxBasePath);

function refreshType()
{
    var location = $(".listOption[name='lokalita']").val().toString();

    $.get(ajaxBasePath + "searcherGet.php", {location: location, cmd: "typ", "lang": langConst},
       function(data, status)
       {
           if (status == "success")
           {
              $(".listOption[name='typ']").empty();
              $(".listOption[name='typ']").append(data);
              refreshSize();
           } else
           {
              window.alert(langRefreshTypeError);
           }
       }
    );
}

function refreshSize()
{
   var typ = $(".listOption[name='typ']").val().toString();
   var location = $(".listOption[name='lokalita']").val().toString();

    $.get(ajaxBasePath + "searcherGet.php", {location: location, type: typ, cmd: "size", "lang": langConst},
       function(data, status)
       {
           if (status == "success")
           {
              $(".listOption[name='velikost']").empty();
              $(".listOption[name='velikost']").append(data);
              
              refreshArea();
           } else
           {
              window.alert(langRefreshSizeError);
           }
       }
   );
}

function refreshArea()
{
    var typ = $(".listOption[name='typ']").val().toString();
    var location = $(".listOption[name='lokalita']").val().toString();
    var velikost = $(".listOption[name='velikost']").val().toString();

    $.get(ajaxBasePath + "searcherGet.php", {location: location, size: velikost,type: typ, cmd: "scrollSize", "lang": langConst},
       function(data, status)
       {
           if (status == "success")
           {
              
              try
              {
                   var obj = eval(data);
                   
                   if (obj.error == true)
                   {
                      window.alert(langRefreshAreaError);
                   } else
                   {
                      if ($('#arraySlider').css('display') == "none")
                      {
                         $('#arraySlider').css('display', 'block');
                      }

                      var min = parseInt(obj.min);
                      var max = parseInt(obj.max);

                      $('#arraySlider').slider('option','max', max);
                      $('#arraySlider').slider('option','min', min);
                      if (min != max)
                      {
                          $('#arraySlider').slider("values", 0, min);
                          $('#arraySlider').slider("values", 1, max);
                          useArrayVal = -1;

                      } else
                      {
                         useArrayVal = min;
                         $('#arraySlider').css("display", "none");
                      }
                      $('#arrayTitle').html(createTitleRange(langPlocha, min, max, "m<sup>2</sup>"));

                      //if (min == max || typeof(min) != 'number' || typeof(max) != 'number')
                      //if (min == max || isNaN(min) || isNaN(max))
                      //{
                        // $('#arraySlider').css("display", "none");
                      //}

                      refreshCost();
                   }
              } catch(e)
              {
                window.alert(langRefreshAreaError);
              }
           } else
           {
              window.alert(langRefreshAreaError);
           }
       }
    );
}

function refreshCost()
{
    var typ = $(".listOption[name='typ']").val().toString();
    var location = $(".listOption[name='lokalita']").val().toString();
    var velikost = $(".listOption[name='velikost']").val().toString();
    var plochaOd;// = parseInt($('#arraySlider').slider("values", 0));
    var plochaDo;// = parseInt($('#arraySlider').slider("values", 1));

    if (useArrayVal != -1)
    {
        plochaOd = useArrayVal;
        plochaDo = useArrayVal;
    } else
    {
        plochaOd = parseInt($('#arraySlider').slider("values", 0));
        plochaDo = parseInt($('#arraySlider').slider("values", 1));
    }

    //window.alert(typ + "/" + location + "/" +velikost+ "/" +plochaOd + "/" + plochaDo)
    //return;
    //window.alert(plochaOd + "/" + plochaDo);

    $.get(ajaxBasePath + "searcherGet.php", {location: location, size: velikost,type: typ, cmd: "scrollCost", plochaOd: plochaOd, plochaDo: plochaDo, "lang": langConst},
       function(data, status)
       {
           if (status == "success")
           {
              var obj = eval(data);
              
                   if (obj.error == true)
                   {
                      window.alert(langRefreshCostError);
                   } else
                   {
                      if ($('#priceSlider').css('display') == "none")
                      {
                         $('#priceSlider').css('display', 'block');
                      }

                      var min = parseInt(obj.min);
                      var max = parseInt(obj.max);
                      //window.alert(obj.min + "=" + min.toString() + "/" + obj.max + "="+ max.toString());
                      //window.alert(isNaN(min).toString() + "/" +isNaN(max).toString());

                      if (isNaN(min)) min = -1;
                      if (isNaN(max)) max = 0;
                      
                      /*if (min == max && !isNaN(min) && !isNaN(max))
                      {*/
                      /*if (!isNaN(min) && !isNaN(max))
                      {*/
                      
                      //window.alert(min +"/"+ max);

                      $('#priceSlider').slider('option','max', max);
                      $('#priceSlider').slider('option','min', min);
                      if (min != max)
                      {
                          $('#priceSlider').slider("values", 0, min);
                          $('#priceSlider').slider("values", 1, max);
                          usePriceVal = -1;
                      } else
                      {
                          usePriceVal = min;
                          refreshSearcher();
                      }
                      /*} else
                      {
                         blockPriceVal = true;
                      }*/
                      
                      $('#priceTitle').html(createTitleRange(langCena, min, max, langKc));
                      /*}*/

                      if (min == max || (min == -1 && max == 0))
                      {
                         $('#priceSlider').css("display", "none");
                      }/* else
                      {
                        $('#priceSlider').slider('option','max', max);
                        $('#priceSlider').slider('option','min', min);
                        $('#priceSlider').slider("values", 0, min);
                        $('#priceSlider').slider("values", 1, max);
                        $('#priceTitle').html(createTitleRange(langCena, min, max, "Kč"));
                      }*/

                      //setOptions();
                   }
           } else
           {
              window.alert(langRefreshCostError);
           }
       }
    );

   //cmd=scrollSize&amp;location=&amp;type=&amp;size=&amp;plochaOd=&amp;plochaDo=
}

function refreshSearcher()
{
    var typ = $(".listOption[name='typ']").val().toString();
    var location = $(".listOption[name='lokalita']").val().toString();
    var velikost = $(".listOption[name='velikost']").val().toString();
    var plochaOd; //= parseInt($('#arraySlider').slider("values", 0));
    var plochaDo; //= parseInt($('#arraySlider').slider("values", 1));
    var cenaOd; //= parseInt($('#priceSlider').slider("values", 0));
    var cenaDo; //= parseInt($('#priceSlider').slider("values", 1));

    if (useArrayVal != -1)
    {
        plochaOd = useArrayVal;
        plochaDo = useArrayVal;
    } else
    {
        plochaOd = parseInt($('#arraySlider').slider("values", 0));
        plochaDo = parseInt($('#arraySlider').slider("values", 1));
    }

    if (useArrayVal != -1)
    {
        cenaOd = usePriceVal;
        cenaDo = usePriceVal;
    } else
    {
        cenaOd = parseInt($('#priceSlider').slider("values", 0));
        cenaDo = parseInt($('#priceSlider').slider("values", 1));
    }

/*
   var url = ajaxBasePath + "searcherGet.php?" +
             "cmd=sSearch&"+
             "location="+location+"&"+
             "type="+typ+"&"+
             "size="+velikost+"&"+
             "plochaOd="+plochaOd+"&"+
             "plochaDo="+plochaDo+"&"+
             "cenaOd="+cenaOd+"&"+
             "cenaDo="+cenaDo;

   window.alert(url);

   return;
  */

   $.get(ajaxBasePath + "searcherGet.php", {'location': location, size: velikost,type: typ, cmd: searchType, 'plochaOd': plochaOd, 'plochaDo': plochaDo, 'cenaOd': cenaOd, 'cenaDo': cenaDo, "lang": langConst},
   function(data, status)
   {
      if (status == "success")
      {
          $('#searchResultContainer').empty();
          $('#searchResultContainer').html = "";
          $('#searchResultContainer').append(data);
      } else
      {
         //window.alert("Chyba: nemohu načíst dostupné ceny.");
      }
   });
}

function initSearcher()
{
   var tmpType = $('#searchResultContainer').attr("class");

   if (tmpType == "sSearch" || "aSearch")
   {
       searchType = tmpType;
   } else
   {
       searchType = "sSearch";
   }

   refreshType();
}

function formatValueSpace(value)
{
    var outVal = new String("");

    var strVal = new String(value.toString());
    var num = 0;

    for (var i = strVal.length - 1; i >= 0; i--)
    {
        if (num == 3)
        {
           num = 0;
           outVal = " " + outVal;
        }
        num++;
        outVal = strVal.charAt(i) + outVal;
    }

    return outVal;
}

function createTitleRange(title, val1, val2, suffix)
{
    var msg = langCreateTitleRangeMsg1;

    if (suffix == langKc) msg = langCreateTitleRangeMsg2;

    if (val1 == -1 && (val2 == 0 || val2 == -1))
    {
        return "<strong>" + title + "</strong> " + msg +".";
    } else
    {
        if (suffix == langKc)
        {
            val1 = formatValueSpace(val1);
            val2 = formatValueSpace(val2);
        }
        return "<strong>" + title + "</strong> " + val1 + " " + suffix  + " - " + val2 + " " + suffix;
    }
}

$(document).ready(function()
{
    if ($('.searchContainer').length > 0)
    {
        if ($('#priceSlider').length > 0)
        {
            $('#priceSlider').slider({
                'range': 'true',
                'min': 2458796, 'max': 8127441,
                'values':[2458796, 8127441],
                'slide': function(event, ui)
                {
                    $('#priceTitle').html(createTitleRange(langCena, ui.values[0], ui.values[1], langKc));
                },
                'change': refreshSearcher
            });
        }

        if ($('#priceTitle').length > 0)
        {
            $('#priceTitle').html(createTitleRange(langCena, $('#priceSlider').slider("values", 0), $('#priceSlider').slider("values", 1), " " + langKc));
        }

        if ($('#arraySlider').length > 0)
        {
            $('#arraySlider').slider({
                'range': 'true',
                'min': 47,
                'max': 184,
                'values':[47, 184],
                'slide': function(event, ui)
                {
                    $('#arrayTitle').html(createTitleRange(langPlocha, ui.values[0], ui.values[1], " m<sup>2</sup>"));
                },
                'stop': refreshCost
                        
            });
        }

        if ($('#arrayTitle').length > 0)
        {
            $('#arrayTitle').html(createTitleRange(langPlocha, $('#arraySlider').slider("values", 0), $('#arraySlider').slider("values", 1), " m<sup>2</sup>"));
        }
       
        if ($('.listOption').length > 0)
        {
            $('.listOption').each(function(){
                var elName = $(this).attr("name");
                
                switch (elName)
                {
                   case "lokalita":
                       $(this).change(refreshType);
                   break;
                   case "typ":
                       $(this).change(refreshSize);
                   break;
                   case "velikost":
                       $(this).change(refreshArea);
                }
            });    
         }
        //$('.listOption').selectbox();

        $('.jsHidden').css("display", "none");

        initSearcher();
    }
});

setTimeout("setOptions()", 1000);

