  var companies;  


  function AjaxRequest(u, cb) {
    this.callback = cb;
    this.url = u;
  }

  AjaxRequest.prototype.send = function() {
    this.request = (window.XMLHttpRequest ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : null));
    var that = this;
    this.request.onreadystatechange = function() {
      that.callback(that);
    }
    this.request.open("GET", this.url, true);
    this.request.send(null);
  }


  function searchCompanies(keywords, type) {
    var url='';
    if (!keywords || keywords == '') {
      url = '/gaffligem/servlet/jsoncompany?method=getCompanies&type='+type;
    } else {
      url = '/gaffligem/servlet/jsoncompany?method=searchCompanies&name='+keywords+'&keywords='+keywords+'&type='+type;
    }
    var req = new AjaxRequest(url, searchResultsCompanies);
    req.send();
  }

  function searchResultsCompanies(response) {
    var req = response.request;
    if (req.readyState == 4) {
      if (req.status == 200) {

        var resultText = req.responseText;
        var result = eval('(' + resultText + ')');

        var searchResultsContent = '';
        if (result != null) {
            searchResultsContent = '';
                   
          companies = new Array();
          for (var i=0; i<result.companies.length; i++) {
            var company = result.companies[i];
            var key = company.id;
            companies[key] = company;
            var name = company.name;
//            var location = company.location;
            var cityname = company.city;
            var summary = company.summary;
            
            searchResultsContent += '<div class="lijstitem">\n<a class="teaserTitle" href="#" onclick="showCompany(' + key + ');return false;">';
            searchResultsContent += name;
            searchResultsContent += '</a>\n';
            if(company.logo != '' && company.logo != null){
              searchResultsContent += '<div style="width: 150px;" class="list_logo_container">\n<img class="lijstitem_logo" style="max-width: 150px;width:expression(this.width>150?150:true);" src="';
              searchResultsContent += company.logo +'"/>\n</div>\n';
            }
            searchResultsContent += '<span class="shortNReadMore">\n<br/>\n<span class="shortpresentation">';            
            searchResultsContent += summary +'\n</span>\n<br/>';
            searchResultsContent += '<a class="readMore" href="#" onclick="showCompany(' + key + ');return false;">bekijk volledige item...</a>';
            searchResultsContent += '\n</span>\n</div>\n<br/>';
            
          }
        } else {
          searchResultsContent = '<span style="font-size: 1.1em; color: #c00000; font-weight: bold;">Error loading search results.</span>';
        }

        var searchResultDiv = document.getElementById("searchResultsCompanies");
        searchResultDiv.innerHTML = searchResultsContent;
        searchResultDiv.style.display = "block";
      }
    }
  }

  var companyDetailContent = '';  

  function showCompany(key) {
    if (companyDetailContent == '') {
      companyDetailContent  = document.getElementById("companydetail").innerHTML;
    }
    var company = companies[key];
    var x = companyDetailContent;
    var cityname = company.city;

    x = x.replace(/@COMPANYNAME@/g, company.name);
    x = x.replace(/@SUMMARY@/g, company.summary);
    x = x.replace(/@DESCRIPTION@/g, company.description);
    x = x.replace(/@KEYWORDS@/g, company.keywords);
    x = x.replace(/@LOCATION@/g, company.location);
    x = x.replace(/@CITY@/g, cityname);
    x = x.replace(/@PHONE@/g, company.phone);
    x = x.replace(/@FAX@/g, company.fax);
    x = x.replace(/@INFOMAIL@/g, company.infoMail);
    x = x.replace(/@WEBSITE@/g, company.website!= null?company.website:"");
    x = x.replace(/@LOGO@/g, company.logo!= null?company.logo:"../files/transparent.gif");

    document.getElementById("companydetail").innerHTML = x;
    document.getElementById("companydetail").style.display = 'block';
    document.getElementById("companysearch").style.display = 'none';
    document.getElementById("searchResultsCompanies").style.display = 'none';
  }

  function showSearch() {
    document.getElementById("companydetail").style.display = 'none';
    document.getElementById("companysearch").style.display = 'block';
    document.getElementById("searchResultsCompanies").style.display = 'block';
  }
       

