   var http_request = false;

   function makeRequest(url, parameters) {
      $('#loading').show();

      http_request = false;

      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }


   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {

            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('searchspan').innerHTML = result;

            $('#loading').hide();

            $("a[rel]").overlay({effect: 'apple', fixed:false, top: '5%',

				onBeforeLoad: function() {

				// grab wrapper element inside content
				var wrap = this.getOverlay().find(".contentWrapper");

				// load the page specified in the trigger
				wrap.load(this.getTrigger().attr("href"));

				}
			});


			$(document).ready(function() {
                $("[id^='itemvar']").click(function() {
                    var gemid = this.id;
                    var itemb = gemid.substring(7,gemid.lastIndexOf('!p!'));
                    var itemp = gemid.substring(gemid.lastIndexOf('!p!')+3,gemid.lastIndexOf('!i!'));//main original product id in the item block
                    var itemi = gemid.substring(gemid.lastIndexOf('!i!')+3,gemid.lastIndexOf('!m!'));//item variation's product id
                    var itemm = gemid.substring(gemid.lastIndexOf('!m!')+3,gemid.lastIndexOf('!n!'));//item variation's product image
                    var itemn = stripslashes(gemid.substring(gemid.lastIndexOf('!n!')+3));//item variation's product name

                    //alert(gemid+' itemp='+itemp+' itemi='+itemi+' itemm='+itemm+' itemn='+itemn);

                    $('#thumbimage'+itemb+'p'+itemp).attr("src","images/"+itemm);
                    $('#thumbquick'+itemb+'p'+itemp).attr("href","templates/Gemologica/quick_view.php?p="+itemi);
                    $('#thumblink'+itemb+'p'+itemp).attr("href","product_info.php?products_id="+itemi);
                    $('#gem_type'+itemb+'p'+itemp).attr("href","product_info.php?products_id="+itemi);
                    $('#gem_type'+itemb+'p'+itemp).html(itemn);

                });
			});



         } else {
            alert('There was a problem with the request.');
         }
      }
   }

  function get(obj) {

    var getstr = "";
    for (i=0; i<obj.getElementsByTagName("input").length; i++) {
        if (obj.getElementsByTagName("input")[i].type == "text") {
           getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   obj.getElementsByTagName("input")[i].value + "&";
        }
        if (obj.getElementsByTagName("input")[i].type == "checkbox") {
           if (obj.getElementsByTagName("input")[i].checked) {
              getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   obj.getElementsByTagName("input")[i].value + "&";
           } else {
              getstr += obj.getElementsByTagName("input")[i].name + "=&";
           }
        }
        if (obj.getElementsByTagName("input")[i].type == "radio") {
           if (obj.getElementsByTagName("input")[i].checked) {
              getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   obj.getElementsByTagName("input")[i].value + "&";
           }
        }
        if (obj.getElementsByTagName("input")[i].type == "hidden") {
           getstr += obj.getElementsByTagName("input")[i].name + "=" +
                   escape(encodeURI(obj.getElementsByTagName("input")[i].value)) + "&";
        }
    }
    for (i=0; i<obj.getElementsByTagName("select").length; i++) {
        var sel = obj.getElementsByTagName("select")[i];
        getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
    }


    makeRequest('/includes/modules/product_listing_col.php', getstr);


  }

  function jah(url,target) {
    // native XMLHttpRequest object
    document.getElementById(target).innerHTML = 'retrieving...';
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {jahDone(target);};
        req.open("GET", url, true);
        req.send(null);
    // IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {jahDone(target);};
            req.open("GET", url, true);
            req.send();
        }
    }
  }

  function jahDone(target) {
    // only if req is "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            results = req.responseText;
            document.getElementById(target).innerHTML = results;
        } else {
            document.getElementById(target).innerHTML="jah error:\n" +
                req.statusText;
        }
    }
  }

