Sorry, unable to find vehicle details at this time.
'); }, complete: function(jqXHR, textStatus){ $('#regNumber, #regNumberSearch #submit').prop('disabled', false); } }); } /** * Perform a free text search from HPI data * The data comes from the RegLookupService. * @param jsonData decoded vehicle information */ function doFreeTextSearch(jsonData){ // Check if we have any information to display if((jsonData.summary != undefined) && (jsonData.summary != '')){ // We have summary info $('#vehicleDetailsFromReg').html('' + jsonData.summary + '
'); $('#vehicleDetailsFromReg').slideDown(500); }else if(jsonData.faultstring != undefined){ // We have a defined fault string $('#vehicleDetailsFromReg').html('' + jsonData.faultstring + '
'); $('#vehicleDetailsFromReg').slideDown(500); return; } else{ // We have nothing $('#vehicleDetailsFromReg').hide(); } // Remove search tags $('#search-tags').remove(); // Rest all the combos // Part Search reset all combos $('#year, #search_manu, #search_model, #itemtype, #search_ic').unbind('change'); $('#year option:selected, #search_manu option:selected, #search_model option:selected, #itemtype option:selected, #search_ic option:selected').removeAttr('selected'); // Do the free text search var year = (jsonData.year != undefined) ? jsonData.year : ''; var manuname = (jsonData.make != undefined && jsonData.make.manuname != undefined) ? jsonData.make.manuname : ''; var modelname = (jsonData.model != undefined && jsonData.model.modelname != undefined) ? jsonData.model.modelname : ''; // Can we use the manu, model or do we have to use the summary info. // Our test case was RegNo: 555 EXG which had NO manu and model data but the summary info did contain the data. var display = ""; if (manuname == '' && modelname == '') { display = jsonData.freeText; } else { display = year + ' ' + manuname + ' ' + modelname; } // Strip out any characters which could cause a problem for the search. display = stripChars(display); $('#free-text').html('' + display.substring(0, 80) + ' '); $('#free-text-search-btn').trigger('click'); } /** * We had a successful call with HPI and have some data * Attempt to use the data in the search criteria. * @param jsonData the raw data retrieved from HPI */ function populateSearchCriteria(jsonData){ // attempt to pull out the year/make/model providing there defined and not "viewall" var year = (jsonData.year != undefined) ? jsonData.year : 'viewall'; var manuname = (jsonData.make != undefined && jsonData.make.manuname != undefined) ? jsonData.make.manuname : 'viewall'; var modelname = (jsonData.model != undefined && jsonData.model.modelname != undefined) ? jsonData.model.modelname : 'viewall'; // set the .searchCriteria data to be what we've matched. $('.searchCriteria').data('year', year); $('.searchCriteria').data('manuname', manuname); $('.searchCriteria').data('modelname', modelname); if((jsonData.summary != undefined) && (jsonData.summary != '') ){ // We have summary info $('#vehicleDetailsFromReg').html('' + jsonData.summary + '
'); $('#vehicleDetailsFromReg').slideDown(500); }else if(jsonData.faultstring != undefined){ // We have a defined fault string $('#vehicleDetailsFromReg').html('' + 'Error doing RegLookup' + '
'); $('#vehicleDetailsFromReg').slideDown(500); return; }else{ // We have nothing $('#vehicleDetailsFromReg').hide(); } if(year != 'viewall' || manuname != 'viewall' || modelname != 'viewall'){ $('#year, #search_manu, #search_model, #itemtype, #search_ic').unbind('change'); $('#year option:selected, #search_manu option:selected, #search_model option:selected, #itemtype option:selected, #search_ic option:selected').removeAttr('selected'); $('#year option[value="viewall"], #search_manu option[value="viewall"], #search_model option[value="viewall"], #itemtype option[value="viewall"], #search_ic option[value="viewall"]').attr('selected', 'selected'); var comboYear = document.getElementById('year').value; var comboMake = document.getElementById('search_manu').value; var comboModel = document.getElementById('search_model').value; var comboItemType = document.getElementById('itemtype').value; if($('.year-tag:visible').length == 1){ comboYear = $('.year-tag').data('val'); } if($('.search_manu-tag:visible').length == 1){ comboMake = $('.search_manu-tag').data('val'); } if($('.search_make-tag:visible').length == 1){ comboModel = $('.search_make-tag').data('val'); } if($('.itemtype-tag:visible').length == 1){ comboItemType = $('.itemtype-tag').data('val'); } var sortElement = document.getElementById('sort'); var sort = (sortElement == null) ? '' : sortElement.value; // find the currentPage class within this page var currentPageElements = $('.currentPage').length; var page = (currentPageElements > 1) ? $('.currentPage')[0].innerHTML : '1'; var with_images = $('#with_images').prop('checked') ? 'true' : 'false'; var viewType = ($('.selected-view').length == 1) ? $('.selected-view').prop('id') : 'grid_view'; var free_text = ''; $('#free-text .search-token-matches').each( function(index, ele){ free_text += $(ele).text() + ' '; }) page = 1; var icNum = $('#icNumFromQS').length > 0 ? $('#icNumFromQS').val() : '';var icver = $('#icverFromQS').length > 0 ? $('#icverFromQS').val() : '';var itemTypeId = $('#itemTypeIdFromQS').length > 0 ? $('#itemTypeIdFromQS').val() : '';var modelId = $('#modelIdFromQS').length > 0 ? $('#modelIdFromQS').val() : '';var startYear = $('#startYearFromQS').length > 0 ? $('#startYearFromQS').val() : '';var endYear = $('#endYearFromQS').length > 0 ? $('#endYearFromQS').val() : ''; var ajax = new ajaxObj( 'https://www.carparts-uk.com/ops/inc/backGroundActivity.php?'+ 'opsId='+'global' +'&'+generateLocalStorageQueryStringJS() +'&activityType='+encodeURIComponent('yearSelect') +'&icNum='+icNum+'&icver='+icver+'&itemTypeId='+itemTypeId+'&modelId='+modelId+'&startYear='+startYear+'&endYear='+endYear +'&year='+encodeURIComponent(comboYear) +'&make='+encodeURIComponent(comboMake) +'&model='+encodeURIComponent(comboModel) +'&itemtype='+encodeURIComponent(comboItemType) +'&sort='+encodeURIComponent(sort) +'&page='+encodeURIComponent(page) +'&comboName='+encodeURIComponent('year') +'&with_images='+encodeURIComponent(with_images) +'&view_type='+encodeURIComponent(viewType) +'&free_text='+encodeURIComponent(free_text), ['year'], 'null', '$(\'#year option:selected\').removeAttr(\'selected\');$(\'#year option[value=\"year:\' + $(\'.searchCriteria\').data(\'year\') + \'\"]\').attr(\'selected\', \'selected\');if (\'localStorage\' in window && window[\'localStorage\'] !== null) {localStorage.setItem(\'OPS_SEARCH_YEAR\', year)};showSearchTag(\"year\"); checkStatus();', false ); cacheAjaxObj(ajax);page = 1; var icNum = $('#icNumFromQS').length > 0 ? $('#icNumFromQS').val() : '';var icver = $('#icverFromQS').length > 0 ? $('#icverFromQS').val() : '';var itemTypeId = $('#itemTypeIdFromQS').length > 0 ? $('#itemTypeIdFromQS').val() : '';var modelId = $('#modelIdFromQS').length > 0 ? $('#modelIdFromQS').val() : '';var startYear = $('#startYearFromQS').length > 0 ? $('#startYearFromQS').val() : '';var endYear = $('#endYearFromQS').length > 0 ? $('#endYearFromQS').val() : ''; var ajax = new ajaxObj( 'https://www.carparts-uk.com/ops/inc/backGroundActivity.php?'+ 'opsId='+'global' +'&'+generateLocalStorageQueryStringJS() +'&activityType='+encodeURIComponent('makeSelect') +'&icNum='+icNum+'&icver='+icver+'&itemTypeId='+itemTypeId+'&modelId='+modelId+'&startYear='+startYear+'&endYear='+endYear +'&year='+encodeURIComponent(comboYear) +'&make='+encodeURIComponent(comboMake) +'&model='+encodeURIComponent(comboModel) +'&itemtype='+encodeURIComponent(comboItemType) +'&sort='+encodeURIComponent(sort) +'&page='+encodeURIComponent(page) +'&comboName='+encodeURIComponent('search_manu') +'&with_images='+encodeURIComponent(with_images) +'&view_type='+encodeURIComponent(viewType) +'&free_text='+encodeURIComponent(free_text), ['search_manu'], 'null', '$(\'#search_manu option:selected\').removeAttr(\'selected\');$(\'#search_manu option[value=\"manu:\' + $(\'.searchCriteria\').data(\'manuname\') + \'\"]\').attr(\'selected\', \'selected\');if (\'localStorage\' in window && window[\'localStorage\'] !== null) {localStorage.setItem(\'OPS_SEARCH_MAKE\', manuname)};showSearchTag(\"search_manu\"); checkStatus();', false ); cacheAjaxObj(ajax);page = 1; var icNum = $('#icNumFromQS').length > 0 ? $('#icNumFromQS').val() : '';var icver = $('#icverFromQS').length > 0 ? $('#icverFromQS').val() : '';var itemTypeId = $('#itemTypeIdFromQS').length > 0 ? $('#itemTypeIdFromQS').val() : '';var modelId = $('#modelIdFromQS').length > 0 ? $('#modelIdFromQS').val() : '';var startYear = $('#startYearFromQS').length > 0 ? $('#startYearFromQS').val() : '';var endYear = $('#endYearFromQS').length > 0 ? $('#endYearFromQS').val() : ''; var ajax = new ajaxObj( 'https://www.carparts-uk.com/ops/inc/backGroundActivity.php?'+ 'opsId='+'global' +'&'+generateLocalStorageQueryStringJS() +'&activityType='+encodeURIComponent('modelSelect') +'&icNum='+icNum+'&icver='+icver+'&itemTypeId='+itemTypeId+'&modelId='+modelId+'&startYear='+startYear+'&endYear='+endYear +'&year='+encodeURIComponent(comboYear) +'&make='+encodeURIComponent(comboMake) +'&model='+encodeURIComponent(comboModel) +'&itemtype='+encodeURIComponent(comboItemType) +'&sort='+encodeURIComponent(sort) +'&page='+encodeURIComponent(page) +'&comboName='+encodeURIComponent('search_model') +'&with_images='+encodeURIComponent(with_images) +'&view_type='+encodeURIComponent(viewType) +'&free_text='+encodeURIComponent(free_text), ['search_model'], 'null', '$(\'#search_model option:selected\').removeAttr(\'selected\');$(\'#search_model option[value=\"modelName:\' + $(\'.searchCriteria\').data(\'modelname\') + \'\"]\').attr(\'selected\', \'selected\');if (\'localStorage\' in window && window[\'localStorage\'] !== null) {localStorage.setItem(\'OPS_SEARCH_MODEL\', modelname)};showSearchTag(\"search_model\"); checkStatus();', false ); cacheAjaxObj(ajax); } // Work our what should be added into the free text box from the year, manu and model. var displayYear = year == 'viewall' ? '' : year; var displayManu = manuname == 'viewall' ? '' : manuname; var displayModel = modelname == 'viewall' ? '' : modelname; // Can we use the manu, model or do we have to use the summary info. // Our test case was RegNo: 555 EXG which had NO manu and model data but the summary info did contain the data. var display = ""; if (displayManu == '' && displayModel == '') { display = jsonData.summary; } else { display = displayYear + ' ' + displayManu + ' ' + displayModel; } // Strip out any characters which could cause a problem for the search. display = stripChars(display); // populate the free text search for the given year, manu and model. $('#free-text').html(display); // reload the data.; reload(); } /** * Strip characters from the given string * @param textToStrip the string to strip characters from * @return a string with bad characters replaced. */ function stripChars(textToStrip) { return textToStrip.replace(/[^a-zA-Z0-9 ]/g, ""); } /** * Check status */ function checkStatus(){ if($('.err-gen').length > 0){ var err_msg = $('.err-gen').text(); $('.err-gen').remove(); $('#alert').html('