" $(".support-drivers-browse-results-highlvl-container").append(htmltoappend); if(countcat == 1) { supportcat = originaljsonname; pagedepth = 2; lvlskip = 1; $('.support-drivers-browse-results-hr-top').css("display","none"); $('.support-drivers-browse-arrows-container').css("display","none"); $(".support-drivers-browse-results-models").html(""); displayModels("None"); } } } }); }); $(document).on('click', '.support-drivers-browse-results-subcats-text', function() { var elementtoshow = $(this).attr('data-content'); $("#support-drivers-browse-results-container").css({"visibility": "hidden", "position": "absolute", "left": "-9999px", "opacity": "0"}); $("#support-drivers-browse-results-final-container").css({"visibility": "visible", "position": "relative", "left": "0", "display": "flex", "opacity": "1"}); pagedepth = 2; supportcat = elementtoshow; var supportcattouse = supportcat.replace("and", "&"); supportcattouse = supportcattouse.replace(/-/gi, " "); var supportsubcat = ""; $(".support-drivers-browse-results-topcat").html(supportcattouse.toUpperCase()); $.ajax({ url: ajaxurl, crossDomain: true, type: "GET", success: function (data) { var countcat = Object.keys(data[supportparent][supportcat]).length; counterforcats = countcat; var supportkeys = Object.keys(data[supportparent][supportcat]); var supportkeysname = ""; var htmltoappend = ""; var originaljsonname = ""; for(var i = 0; i < countcat; i++) { originaljsonname = supportkeys[i]; supportkeys[i] = supportkeys[i].replace("and", "&"); supportkeysname = supportkeys[i].replace(/_/gi, " "); supportkeysname = supportkeysname.toUpperCase(); if(i == 0) { htmltoappend = "
" + supportkeysname + "
" displayModels(originaljsonname); } else { htmltoappend = "
" + supportkeysname + "
" } $(".support-drivers-browse-results-lowlvl-container").append(htmltoappend); } if((counterforcats <= 5 && screen.width > 767) || (counterforcats <= 3 && screen.width <= 767)) { $('.support-drivers-browse-results-lowlvl-container').css("justify-content","center"); } else { $('.support-drivers-browse-results-lowlvl-container').css("justify-content","flex-start"); } if(counterforcats < 6 && screen.width > 767) { $('#support-drivers-right-arrow').css("display","none"); $('#support-drivers-left-arrow').css("display","none"); } else { if(screen.width > 767) { $('#support-drivers-right-arrow').css("display","block"); $('#support-drivers-left-arrow').css("display","block"); $(".support-drivers-icon-left-arrow").css({"opacity": "0"}); $(".support-drivers-icon-right-arrow").css({"opacity": "1"}); } } if(supportkeysname == "NONE") { $('.support-drivers-browse-results-hr-top').css("display","none"); $('.support-drivers-browse-arrows-container').css("display","none"); } else { $('.support-drivers-browse-results-hr-top').css("display","block"); $('.support-drivers-browse-arrows-container').css("display","flex"); } } }); }); $(document).on('click', '.support-drivers-browse-results-catselect-text', function() { var elementtoshow = $(this).attr('data-content'); $(".support-drivers-underline").removeClass("support-drivers-underline-active"); $(".support-drivers-browse-results-catselect-text").removeClass("support-drivers-browse-results-catselect-text-active"); $(this).addClass("support-drivers-browse-results-catselect-text-active"); $(this).children().addClass("support-drivers-underline-active"); $(".support-drivers-browse-results-models").html(""); displayModels(elementtoshow); }); function displayModels(modelcat) { $("#support-drivers-browse-results-container").css({"visibility": "hidden", "position": "absolute", "left": "-9999px", "opacity": "0"}); $("#support-drivers-browse-results-final-container").css({"visibility": "visible", "position": "relative", "left": "0", "display": "flex", "opacity": "1"}); $.ajax({ url: ajaxurl, crossDomain: true, type: "GET", success: function (data) { var countcat = Object.keys(data[supportparent][supportcat][modelcat]).length; var supportkeys = Object.keys(data[supportparent][supportcat][modelcat]); var supportkeysname = ""; var htmltoappend = ""; var originaljsonname = ""; var linktoappend = ""; for(var i = 0; i < countcat; i++) { originaljsonname = data[supportparent][supportcat][modelcat][i].name; linktoappend = data[supportparent][supportcat][modelcat][i].spdplinks + "?tab=drivers_downloads"; supportkeysname = originaljsonname; htmltoappend = "" + supportkeysname + "" console.log(supportkeysname); $(".support-drivers-browse-results-models").append(htmltoappend); } } }); } $(".support-drivers-browse-results-back").click(function() { if(pagedepth == 1) { $(".support-drivers-browse-container").css("display", "block"); $("#support-drivers-browse-results-container").css({"visibility": "hidden", "position": "absolute", "left": "-9999px", "opacity": "0"}); $(".support-drivers-browse-results-topcat").html(""); $(".support-drivers-browse-results-highlvl-container").html(""); } else if(pagedepth == 2 && lvlskip == 0) { pagedepth = 1; $("#support-drivers-browse-results-container").css({"visibility": "visible", "position": "relative", "left": "0", "display": "flex", "opacity": "1"}); $("#support-drivers-browse-results-final-container").css({"visibility": "hidden", "position": "absolute", "left": "-9999px", "opacity": "0"}); $(".support-drivers-browse-results-topcat").html(supportparent.toUpperCase().replace(/-|_/gi, " ")); $(".support-drivers-browse-results-lowlvl-container").html(""); $(".support-drivers-browse-results-models").html(""); } else if(pagedepth == 2 && lvlskip == 1) { pagedepth = 0; lvlskip = 0; $(".support-drivers-browse-container").css("display", "block"); $("#support-drivers-browse-results-container").css({"visibility": "hidden", "position": "absolute", "left": "-9999px", "opacity": "0"}); $("#support-drivers-browse-results-final-container").css({"visibility": "hidden", "position": "absolute", "left": "-9999px", "opacity": "0"}); $(".support-drivers-browse-results-topcat").html(""); $(".support-drivers-browse-results-highlvl-container").html(""); $(".support-drivers-browse-results-lowlvl-container").html(""); $(".support-drivers-browse-results-models").html(""); } }); $(".support-drivers-browse-results-close").click(function() { pagedepth = 0; lvlskip = 0; $(".support-drivers-browse-container").css("display", "block"); $("#support-drivers-browse-results-container").css({"visibility": "hidden", "position": "absolute", "left": "-9999px", "opacity": "0"}); $("#support-drivers-browse-results-final-container").css({"visibility": "hidden", "position": "absolute", "left": "-9999px", "opacity": "0"}); $(".support-drivers-browse-results-topcat").html(""); $(".support-drivers-browse-results-highlvl-container").html(""); $(".support-drivers-browse-results-lowlvl-container").html(""); $(".support-drivers-browse-results-models").html(""); }); /* Carousel left/right */ $('#support-drivers-left-arrow').click(function () { var leftPos = $('.support-drivers-browse-results-lowlvl-container').scrollLeft(); $(".support-drivers-icon-right-arrow").css({"opacity": "1"}); $(".support-drivers-browse-results-lowlvl-container").css({"margin-right": "0px"}); $(".support-drivers-browse-results-lowlvl-container").animate({ scrollLeft: leftPos - $('.support-drivers-browse-results-lowlvl-container').width() - 110 }, 800); if(leftPos - $('.support-drivers-browse-results-lowlvl-container').width() - 110 <= 0) { $(".support-drivers-icon-left-arrow").css({"opacity": "0"}); } }); $('#support-drivers-right-arrow').click(function () { var leftPos = $('.support-drivers-browse-results-lowlvl-container').scrollLeft(); $(".support-drivers-icon-left-arrow").css({"opacity": "1"}); $(".support-drivers-browse-results-lowlvl-container").css({"margin-left": "0px"}); $(".support-drivers-browse-results-lowlvl-container").animate({ scrollLeft: leftPos + $('.support-drivers-browse-results-lowlvl-container').width() }, 800); if(leftPos + $('.support-drivers-browse-results-lowlvl-container').width() >= $('.support-drivers-browse-results-lowlvl-container').width()) { $(".support-drivers-icon-right-arrow").css({"opacity": "0"}); } }); function titleCase(string) { var sentence = string.toLowerCase().split(" "); for(var i = 0; i< sentence.length; i++){ sentence[i] = sentence[i][0].toUpperCase() + sentence[i].slice(1); } sentence = sentence.join(" "); return sentence; } //Search Bar Function var testdata = "anthony"; var holdallmodels = [{ label: "jquery", link: "jQuery" }]; $.ajax({ url: ajaxurl, crossDomain: true, type: "GET", success: function (data) { for (var key in data) { var item = data[key]; for (var key2 in item) { var item2 = item[key2]; for (var key3 in item2) { var item3 = item2[key3]; for (var x = 0; x < item3.length; x++) { holdallmodels.push({ label: item3[x].name, link: item3[x].spdplinks + "?tab=drivers_downloads" }); } } } } } }); // ***** This is the old JQuery vanilla autocomplete, keeping this here just in case // $("#support-searchbar").autocomplete({ // minLength: 2, // source: function (request, response) { // var results = $.ui.autocomplete.filter(holdallmodels, request.term); // response(results.slice(0, 6)); // }, // select: function(event, ui) { // window.location.href=ui.item.link; // } // }); // ***** New custome filter to grab search terms better. Mostly will account for things like mx922/mx920. The Vanilla version does not account for that. function customFilter(array, terms) { arrayOfTerms = terms.split(" "); var term = $.map(arrayOfTerms, function (tm) { return $.ui.autocomplete.escapeRegex(tm); }).join('|'); var matcher = new RegExp("\b" + term, "i"); var matcher2 = new RegExp("\\b" + terms, "i"); return $.grep(array, function (value) { return (matcher.test(value.label) || matcher2.test(value.label)); }); }; $("#support-searchbar").autocomplete({ source: holdallmodels, multiple: true, mustMatch: true ,source: function (request, response) { var vanillaresults = $.ui.autocomplete.filter(holdallmodels, request.term); var customresults = customFilter(holdallmodels, request.term); for(var x = 0; x < customresults.length; x++) { if(!vanillaresults.includes(customresults[x])) { vanillaresults.push(customresults[x]); } } //This will dedupe the list in case there are any models that belong in multiple categories var dedupelist = new Array(); for(var y = 0; y < vanillaresults.length; y++) { //var found = dedupelist.some(el => el.label === vanillaresults[y].label); var found = dedupelist.some(function(el) {return el.label === vanillaresults[y].label}); if (!found) dedupelist.push(vanillaresults[y]); } response(dedupelist.slice(0, 6)); }, select: function(event, ui) { window.location.href=ui.item.link; } }); $(".support-search-clear-text").click(function() { $("#support-searchbar").val(''); }); if(screen.width > 767) { $("#support-searchbar").attr('placeholder', 'Start typing your product name (e.g. EOS 5D Mark IV)'); } else { $("#support-searchbar").attr('placeholder', 'Start typing your product name'); } window.matchMedia("screen and (max-device-width: 767px) and (orientation: portrait)").onchange = function (event) { if (window.matchMedia("screen and (max-device-width: 767px) and (orientation: portrait)").matches) { $("#support-searchbar").attr('placeholder', 'Start typing your product name'); } else { $("#support-searchbar").attr('placeholder', 'Start typing your product name (e.g. EOS 5D Mark IV)'); } }; $("input.support-top-banner-searchbar").focusin(function(){ document.documentElement.style.setProperty('--current-color', 'var(--gradient-color)'); }); $("input.support-top-banner-searchbar").focusout(function(){ document.documentElement.style.setProperty('--current-color', 'var(--normal-color)'); }); //Search Bar Function - END });
SOFTWARE & DRIVERS
Search for your product to get started
×
Browse by Product Type
Cameras
Lenses
Video Cameras
Printers
Scanners
Projectors
Copiers / MFPs / Fax Machines
Software
Calculators
References Displays
Network Video Solutions
Binoculars
Back
×
Select your device
Back
×
Select your model
GET PERSONALIZED SUPPORT
THROUGH YOUR CANON ACCOUNT
Your Canon account is the way to get the most personalized support resources for your products.
Already have an account? Sign In
SIGN UP
MORE SUPPORT
Manage your Canon products and keep them up-to-date
REGISTER YOUR PRODUCT
Get additional piece of mind on your Canon product
CAREPAK SERVICE PLAN
Need a service or repair?
SERVICE AND REPAIRS