// BACHA NA TOHLE ČIC //
var sServerAddress = "http://www.inter-auto.cz/";
//var sServerAddress = "http://interauto.scdev.cz/";

// ####### AJAX OBJECT #########################################################
function Ajax(url, method, params, response)
{
    this.url    = url       || "";
    this.method = method    || "GET";
    this.params = params    || "";
    this.response = response    || "";

    var request = null;
}
 
Ajax.prototype.runAjax = function() {
    this.createRequest();
    this.sendRequest();
}

Ajax.prototype.createRequest = function() {
    try {
        request = new XMLHttpRequest();
    } catch (tryms) {
        try {
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (otherms) {
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (failed) {
                request = null;
            }
        }
    }

    if (request == null)
        alert("Error implementing Ajax functionality");
}


Ajax.prototype.sendRequest = function() {
    oAjax = this;
    if(this.method.toUpperCase() == "GET")
    {
        request.open("GET", this.url + "?" + this.params, true);
        request.onreadystatechange = function(){oAjax.handleResponse(oAjax);};
        request.send(null); 
    }else{
        request.open("POST", this.url, true);
        request.onreadystatechange = function(){oAjax.handleResponse(oAjax);};
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        request.setRequestHeader("Content-length", this.params.length);
        request.send(encodeURIComponent(this.params));
    } 
}

Ajax.prototype.handleResponse = function(oAjax) {
    switch (request.readyState)
    {
        case 0:
            // uninitialized
            break;
        case 1:
            // loading
            break;
        case 2:
            // loaded
            break;
        case 3:
            // interactive
            break;
        case 4:
            // complete
            if (request.status == 200) { 
               if(typeof(oAjax.response) == 'function')
               {
                  oAjax.response();
               }else{
                  alert(oAjax.response.toString() + ' is not a function');
               }
                
                
            } else {
                var stat = request.getResponseHeader("Status");
                alert(request.status + " | " + stat);
            }
            break;
     }
}

// ####### PARAM SEARCH OBJECT #################################################
var userChoices =
{
    selectedProducerId  : 0,
    selectedModel       : "",
    selectedBarva       : "",
    selectedKaroserie   : "",
    selectedNahon       : "",
    selectedPalivo      : ""
};

var paramType = 
{
    karoserie  : "KAROSERIE",
    barva      : "BARVA",  
    nahon      : "NAHON",
    palivo     : "PALIVO"
};

var selectControl =
{
    karoserie  : "selectKaroserie",
    barva      : "selectBarva",  
    nahon      : "selectNahon",
    palivo     : "selectPalivo"          
};
    
function getModelNameList(producerId)
{
    var modelName = document.getElementById("selectModel").value;
    if (modelName != "zvolte model" || modelName != "") {
        document.images['ajaxButton'].src = "/img/BTsearchPS.gif";
    }
    
    Clear();
    var url = sServerAddress + "ajaxParamSearch.asp";
    var params = "step=2&producerId="+producerId.value;
    
    var ajax = new Ajax(url,"GET",params,fillModelSelectBox);
    ajax.runAjax();
    userChoices.selectedProducerId = producerId.value;
}

function fillModelSelectBox()
{
    var objSelect = document.getElementById("selectModel");
    objSelect.length = 0;
    
    var response = request.responseText;
    var splitted = response.split("|");
    objSelect[0] = new Option("zvolte model", "zvolte model");
    for(i=0; i<splitted.length-1; i++)
    {
        objSelect[objSelect.length] = new Option(splitted[i],  splitted[i]);
    }
    objSelect.selectedIndex = 0;
}


function getCarParamList(model)
{
    var url = sServerAddress + "ajaxParamSearch.asp";
    var params = "step=3&producerId="+userChoices.selectedProducerId+"&model="+model.value;
    var ajax = new Ajax(url,"GET",params,fillCarParameters);
    ajax.runAjax();
    userChoices.selectedModel = model.value;
}

function fillCarParameters()
{
    var response = request.responseText;
    response = response.replace("<!-- dbgr=off -->","");
    var objSelectKaroserie = document.getElementById("selectKaroserie");
    objSelectKaroserie.length = 0;
    
    var objSelectBarva = document.getElementById("selectBarva");
    objSelectBarva.length = 0;
    
    var objSelectPalivo = document.getElementById("selectPalivo");
    objSelectPalivo.length = 0;
    
    var objSelectNahon = document.getElementById("selectNahon");
    objSelectNahon.length = 0;
    
    
    var splitted = response.split("|");
    for(i=0; i<splitted.length; i++)
    {
        var subSplit = splitted[i].split(":");
        
        if(subSplit[0] == paramType.karoserie)
            objSelectKaroserie[objSelectKaroserie.length] = new Option(subSplit[1],  subSplit[1]);
       
       if(subSplit[0] == paramType.barva)
            objSelectBarva[objSelectBarva.length] = new Option(subSplit[1],  subSplit[1]);
            
       if(subSplit[0] == paramType.nahon)
            objSelectNahon[objSelectNahon.length] = new Option(subSplit[1],  subSplit[1]);
            
       if(subSplit[0] == paramType.palivo)
            objSelectPalivo[objSelectPalivo.length] = new Option(subSplit[1],  subSplit[1]);
    }
    
    return;
}

function Clear()
{
    var objSelectKaroserie = document.getElementById(selectControl.karoserie);
    objSelectKaroserie.length = 0;
    
    var objSelectBarva = document.getElementById(selectControl.barva);
    objSelectBarva.length = 0;
    
    var objSelectNahon = document.getElementById(selectControl.nahon);
    objSelectNahon.length = 0;
    
    var objSelectPalivo = document.getElementById(selectControl.palivo);
    objSelectPalivo.length = 0;
}


function SendForm()
{
    var producerId = document.getElementById("selectProducer").value;
    var modelName = document.getElementById("selectModel").value;
    var karoserie = document.getElementById("selectKaroserie").value;
    var barva = document.getElementById("selectBarva").value;
    var palivo = document.getElementById("selectPalivo").value;
    var nahon = document.getElementById("selectNahon").value;
    
    var mista = document.getElementById("txtPlaces").value;
    var dvere = document.getElementById("txtDoors").value;
    var vyrobenoOd = document.getElementById("txtMadeFrom").value;
    var vyrobenoDo = document.getElementById("txtMadeTo").value;
    var cenaOd = document.getElementById("txtPriceFrom").value;
    var cenaDo = document.getElementById("txtPriceTo").value;
    var sOdpoctemDPH = document.getElementById("chckWidthoutVat").checked;
    var nove = document.getElementById("chckNew").checked;
    
    if (producerId == "zvolte značku") {
        alert('Nebyl zvolen výrobce!');
        return false;
    }
   
    if (modelName == "zvolte model" || modelName == "") {
        alert('Nebyl zvolen model!');
        return false;
    }
    
    if(sOdpoctemDPH == true) {sOdpoctemDPH = 1;} else {sOdpoctemDPH = 0;}
    if(nove == true) {nove = 1;} else {nove = 0;}
    
    window.location = "/advancedajaxsearch.asp?do=ajaxSearch&prod="+producerId+"&catname="+modelName+
        "&karoserie="+karoserie+"&barva="+barva+"&palivo="+palivo+"&nahon="+nahon+
        "&mista="+mista+"&dvere="+dvere+"&vyrobenoOd="+vyrobenoOd+"&vyrobenoDo="+vyrobenoDo+"&cenaOd="+cenaOd+"&cenaDo="+cenaDo+
        "&sOdpoctemDPH="+sOdpoctemDPH+"&nove="+nove;
}


function FillValuesAfterSendForm()
{
  var qs = new Querystring()
  var mista = qs.get("mista", "");
  var dvere = qs.get("dvere", ""); 
  var vyrobenoOd = qs.get("vyrobenoOd","")
  var vyrobenoDo = qs.get("vyrobenoDo","")
  var cenaOd = qs.get("cenaOd","")
  var cenaDo = qs.get("cenaDo","")
  
  var sOdpoctemDPH = qs.get("sOdpoctemDPH","1")
  if(sOdpoctemDPH == 1){sOdpoctemDPH = "true";}else{sOdpoctemDPH = "false";}
  var nove = qs.get("nove","1")
  if(nove == 1){nove = true;}else{nove = false;}
  
  if(mista != "" && document.getElementById("txtPlaces") != null)
    document.getElementById("txtPlaces").value = mista;
    
  if(dvere != "" && document.getElementById("txtDoors") != null)
    document.getElementById("txtDoors").value = dvere;
    
  if(vyrobenoOd != "" && document.getElementById("txtMadeFrom") != null)
    document.getElementById("txtMadeFrom").value = vyrobenoOd;
    
  if(vyrobenoDo != "" && document.getElementById("txtMadeTo") != null)
    document.getElementById("txtMadeTo").value = vyrobenoDo;
    
  if(cenaOd != "" && document.getElementById("txtPriceFrom") != null)
    document.getElementById("txtPriceFrom").value = cenaOd;
    
  if(cenaDo != "" && document.getElementById("txtPriceTo") != null)
    document.getElementById("txtPriceTo").value = cenaDo;
    
  if(sOdpoctemDPH != "" && document.getElementById("sOdpoctemDPH") != null)
    document.getElementById("sOdpoctemDPH").checked = sOdpoctemDPH;
    
  if(nove != "" && document.getElementById("nove") != null)
    document.getElementById("nove").checked = nove;
  
}

// ####### QUERYSTRING OBJECT ##################################################

function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return


	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}

function Querystring_get(key, default_) {
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}
