/*************************************** * product_search.js - RedDot Solutions * * Revision: 0.9.3 (November 21, 2007) * Requires: * - jQuery (http://jquery.com/) * - Live Query (http://jquery.com/plugins/project/livequery/) * ***************************************/ /*=========================================== * GLOBAL VARIABLES *===========================================*/ var timeoutID; /*=========================================== * DOCUMENT READY ACTIONS *===========================================*/ $(document).ready(function() { // bind form using ajaxForm $('#frm_quickSearch').submit( function() { var formfields=$("form#frm_quickSearch input"); size=formfields.size(); $("form#frm_quickSearch input#keyword").focus() if(size!=1) { submitProductBrowser('frm_quickSearch'); } return false; }); // bind product browser input field $("form#frm_quickSearch input#keyword").keyup(function(){ window.clearTimeout(timeoutID); if (this.value != ""){ // set a timeout to populating the quick search box, to improve performance. timeoutID = window.setTimeout("loadProdQuickSearch(\""+this.value+"\");", 300); }else{ closeProdQuickSearch(); } }); // close the quick search box on blur $("form#frm_quickSearch//input#keyword").blur( function() { window.setTimeout("closeProdQuickSearch();",300); }); //product browser - group headings (expand/collapse) $("a.toggleProdBrowseGroup").click(function(e) { e.preventDefault(); var objID = $(this).attr("rel"); if ($("div#" + objID).is(":hidden")) { closeAllProdBrowseGroups(); $("div#" + objID).show("fast"); $(this).addClass("open"); } else { $("div#" + objID).hide("fast"); $(this).removeClass("open"); } return false; }); //product browser - close button on checkbox layers $("a.closeProdBrowseGroup").click(function() { var objID = $(this).attr("rel"); $("div#" + objID).hide("fast"); $(this).removeClass("open"); return false; }); //product browser - Apply/Submit buttons $("a.submitProductBrowser").click(function() { $("#frm_quickSearch input:text").attr("value",""); submitProductBrowser('frm_prodBrowser'); //closeAllProdBrowseGroups(); return false; }); //product browser - clear the form $("#ClearAll").click(function(){ clearProductBrowser(); submitProductBrowser('frm_prodBrowser'); return false; }); //Quick Search button $("input#QuickSearchGo").click(function(){ clearProductBrowser(); submitProductBrowser("frm_quickSearch"); return false; }); // on change of event filter checkbox elements: submit calendar //$("form#frm_prodBrowser//input[@type=checkbox]").click(function(){ $("input.submitProductBrowser").click(function(){ //alert("submit"); $(this).parents("div.popPro").hide(); submitProductBrowser("frm_prodBrowser"); return false; }); // prepare pagination link to use ajax $('a.pagination').livequery("click", function(){ var hrefParams = $(this).attr("href"); hrefParams = hrefParams.substring(hrefParams.indexOf("?")+1); // call function from parent JavaScript clickPaginationLink(hrefParams); return false; }); $('a.view_more_prod').livequery("click", function(){ var hrefParams = $(this).attr("href"); hrefParams = hrefParams.substring(hrefParams.indexOf("?")+1); // call function from parent JavaScript clickPaginationLink(hrefParams); return false; }); }); /*=========================================== * FUNCTIONS *===========================================*/ function closeAllProdBrowseGroups() { $("div.popPro:visible").each(function(){$(this).hide()}); $("a.toggleProdBrowseGroup").filter(".open").each(function(){$(this).addClass("open")}); } // submit product browser form function submitProductBrowser(formID){ //alert("function submitProductBrowser"); //document.getElementById(formID).submit(); closeAllProdBrowseGroups(); //loop through each "grouping" $("div.proSelector ul.browseCategory li").each(function() { //the Div to be filled var fillDiv = $("div.browse-current-selections", $(this)); var fillHTML = ""; //loop through each checked checkbox $("div.popPro input:checked",$(this)).each(function(){ fillHTML += "
  • " + $(this).parent("li").html() + "
  • "; }); if (fillHTML!="") fillHTML = ""; fillDiv.html(fillHTML); $("input:checkbox",fillDiv).each(function(){ $(this).attr("checked",true); $(this).click(synhronizeRelatedCheckboxes); //$(this).attr("disabled",true); }); }); $("form#" + formID).ajaxSubmit({ target: "div#product-load", success: function() { $("div#shell").removeClass("d1_details"); $("div#shell").addClass("view-all"); $("div#product-load").fadeIn("fast"); //loadPagination(); //interNantionlizationMessageFunction(); loadDefaultPaginationLink(); } }); } // clear product browser function loadDefaultPaginationLink() { hrefParams = null; hrefParams = $('#paginationViewAllText').attr("href"); if (hrefParams !="" && hrefParams != null) { hrefParams = hrefParams.substring(hrefParams.indexOf("?")+1); clickPaginationLink(hrefParams); } return false; } function clearProductBrowser() { //reset forms document.getElementById('frm_prodBrowser').reset(); document.getElementById('frm_quickSearch').reset(); } // synchronize related checkboxes // - typo in method name, is it only used in one place? function synhronizeRelatedCheckboxes() { var theId = $(this).attr("id"); var isChecked = $(this).is(":checked"); var theValue = $(this).attr("value"); $("input.layerCheckbox").filter("#" + theId).each(function() { if ($(this).attr("value")==theValue) $(this).attr("checked",isChecked); }); return true; } // load product quick search function loadProdQuickSearch(value){ if (value != ""){ $.get("/cps/rde/xchg/SID-64710DC1-E7C189A7/smithnephewls/product-quick-search.xsl/product-quick-search.xml?keywords="+value, function(result){ //alert(result); if($.trim(result) != ""){ $("form#frm_quickSearch div.suggestions").html(result); $("form#frm_quickSearch div.suggestions").show(); }else{ closeProdQuickSearch(); } }); } } // close product quick search function closeProdQuickSearch(){ $("form#frm_quickSearch div.suggestions").hide(); $("form#frm_quickSearch div.suggestions").html(""); } // click action for pagination links. function clickPaginationLink(hrefParams){ $.get("/cps/rde/xchg/SID-64710DC1-E7C189A7/smithnephewls/hs/product-search.xml?"+hrefParams, function(result){ //alert(result); $("div#product-load").html(result); //loadPagination(); }); //interNantionlizationMessageFunction(); }