function isdefined(variable) {
    return (typeof(window[variable]) == "undefined")?  false: true;
}


jQuery(function($) {

  $("#loading").ajaxStart(function() {
    $(this).slideDown();
  });
  
  $("#loading").ajaxStop(function() {
    $(this).slideUp();
  });

    
  // Form stuff
  $("input[type=text]").click(function() {
    if (jQuery.support.boxModel) {
      $(this).css({ color: "black" }).val("");
    }
  });
  
  $("input[type=text]").blur(function() {
    if ($(this).val() == "") {
      $(this).val("start your search here").css({ color: "gray" });
    }
  });
  
  var advs_clicked = false;
  $("span#advsearch-link").click(function() {
    if (!advs_clicked) {
      $(this).html("try the advanced search");
      advs_clicked = true;
    }
    else {
      $(this).html("turn off advanced search &rarr;");
      advs_clicked = false;
    }
      
    $("div#advanced-search").slideToggle("fast");
  });
  
  $("input#search-submit").click(function(e) {
    e.preventDefault();
    
    if (advs_clicked) {
      $("div#advanced-search").slideToggle("fast");
      $("span#advsearch-link").html("try the advanced search &rarr;");
      advs_clicked = false;
    }
        
    var affArray = new Array(); 
    $("input.search_Affiliation").each(function(id) { 
      if ($(this).is(':checked')) {
        affArray.push($(this).val());
      }
    });
    
    var langArray = new Array(); 
    $("input.search_Language").each(function(id) { 
      if ($(this).is(':checked')) {
        langArray.push($(this).val());
      }
    });
    
    var areaArray = new Array(); 
    $("input.search_Area").each(function(id) { 
      if ($(this).is(':checked')) {
        areaArray.push($(this).val());
      }
    });
    
    var serviceArray = new Array(); 
    $("input.search_Services").each(function(id) { 
      if ($(this).is(':checked')) {
        serviceArray.push($(this).val());
      }
    });


    var targetArray = new Array(); 
    $("input.search_Target").each(function(id) { 
      if ($(this).is(':checked')) {
        targetArray.push($(this).val());
      }
    });
    
    var typeArray = new Array(); 
    $("input.search_Type").each(function(id) { 
      if ($(this).is(':checked')) {
        typeArray.push($(this).val());
      }
    });
    
    var search_data = {
      name: (($("input#search_Name").val() == "start your search here") ? "" : $("input#search_Name").val()),
      "affiliation[]": affArray,
      "language[]": langArray,
      "area[]": areaArray,
      "service[]": serviceArray,
      "target[]": targetArray,
      "type[]": typeArray,
      jsoncallback: "?"
    };
    $.getJSON("query.php", search_data, function(data) {
      var results = data.org_result.QueryOrgByExamplesResult.QueryResults.QueryResult;
      var org_html = '';
      
      $("div#searchbits").slideDown();
      
      $("span#totalorgscount").html(data.org_result.QueryOrgByExamplesResult.ResultCount);
      $("div#totalorgs").effect("highlight", {}, 8000);
      
      if (data.org_result.QueryOrgByExamplesResult.ResultCount > 0) {
        
        $.each(results, function() {
          current_org = { OrgName: this.OrgName, DetailURL: this.DetailURL, Description: this.Informations["Info"][1]["!Value"] };
          org_html += '<div class="organisation" url="'+current_org.DetailURL+'">';
    	    org_html += '  <div class="OrgName">'+current_org.OrgName+'</div>';
    	    org_html += '  <div class="org-details">';
    	    org_html += '    '+current_org.Description+'...';
    	    org_html += '  </div>';
    	    org_html += '</div>';
        });
        
        $("div#search-results").html(org_html);
        $("#loading").hide();      
        
        var pagination = "";
        if (data.page != 1)  {
          pagination += "<span class='nextPreviousPage' page='"+(data.page - 1)+"'>&larr; Previous Page</span> ";
        }
        
        if ((Math.ceil(data.org_result.QueryOrgByExamplesResult.ResultCount)) != data.page) {
          pagination += "<span class='nextPreviousPage' page='"+(data.page + 1)+"'>Next Page &rarr;</span>";
        }
          
        $("div.pagination").html(pagination);
      }
      else {
        $("div#search-results").html("");
        $("#loading").slideUp();
      }      
      
    });
  });
  
  $("span.nextPreviousPage").live("click", function() {
    var go_to_page = $(this).attr("page");
        
    var affArray = new Array(); 
    $("input.search_Affiliation").each(function(id) { 
      if ($(this).is(':checked')) {
        affArray.push($(this).val());
      }
    });
    
    var langArray = new Array(); 
    $("input.search_Language").each(function(id) { 
      if ($(this).is(':checked')) {
        langArray.push($(this).val());
      }
    });
    
    var areaArray = new Array(); 
    $("input.search_Area").each(function(id) { 
      if ($(this).is(':checked')) {
        areaArray.push($(this).val());
      }
    });
    
    var serviceArray = new Array(); 
    $("input.search_Services").each(function(id) { 
      if ($(this).is(':checked')) {
        serviceArray.push($(this).val());
      }
    });


    var targetArray = new Array(); 
    $("input.search_Target").each(function(id) { 
      if ($(this).is(':checked')) {
        targetArray.push($(this).val());
      }
    });
    
    var typeArray = new Array(); 
    $("input.search_Type").each(function(id) { 
      if ($(this).is(':checked')) {
        typeArray.push($(this).val());
      }
    });
/*
    var search_data = {
      name: (($("input#search_Name").val() == "start your search here") ? "" : $("input#search_Name").val()),
      affiliation: $("select#search_Affiliation").val(),
      area: $("select#search_Area").val(),
      language: $("select#search_Language").val(),
      service: $("select#search_Services").val(),
      target: $("select#search_Target").val(),
      type: $("select#search_Type").val(),
      page: $("span.nextPreviousPage").attr("page"),
      jsoncallback: "?"
    };
*/
    var search_data = {
      name: (($("input#search_Name").val() == "start your search here") ? "" : $("input#search_Name").val()),
      "affiliation[]": affArray,
      "language[]": langArray,
      "area[]": areaArray,
      "service[]": serviceArray,
      "target[]": targetArray,
      "type[]": typeArray,
      page: go_to_page,
      jsoncallback: "?"
    };

    $.getJSON("query.php", search_data, function(data) {
      var results = data.org_result.QueryOrgByExamplesResult.QueryResults.QueryResult;
      var org_html = '';
      
      $("div#searchbits").slideDown();
      $("span#totalorgscount").html(data.org_result.QueryOrgByExamplesResult.ResultCount);
      $("div#totalorgs").effect("highlight", {}, 8000);
      
      $.each(results, function() {
        current_org = { OrgName: this.OrgName, DetailURL: this.DetailURL, Description: this.Informations["Info"][1]["!Value"] };
        org_html += '<div class="organisation" url="'+current_org.DetailURL+'">';
  	    org_html += '  <div class="OrgName">'+current_org.OrgName+'</div>';
  	    org_html += '  <div class="org-details">';
  	    org_html += '    '+current_org.Description+'...';
  	    org_html += '  </div>';
  	    org_html += '</div>';
      });
      
      $("div#search-results").html(org_html);
      $("#loading").hide();      
      
      var pagination = "";
      if (data.page != 1)  {
        pagination += "<span class='nextPreviousPage' page='"+(data.page - 1)+"'>&larr; Previous Page</span>  ";
      }
      
      if ((Math.ceil(data.org_result.QueryOrgByExamplesResult.ResultCount/data.pagesize)) != data.page) {
        pagination += "<span class='nextPreviousPage' page='"+(data.page + 1)+"'>Next Page &rarr;</span>";
      }
        
      $("div.pagination").html(pagination);
    });
  });
  
  
  $("div.organisation").live("click", function() {
    window.open($(this).attr("url"));
  });
  
});


