1function parseNav(thisStr){ 2 var qParams = {}; 3 var currStr = ''; 4 if(typeof thisStr === 'undefined' || thisStr == ''){ 5 return qParams; 6 }; 7 8 // clean and prep string 9 if(thisStr.slice(-1) != '/'){ 10 thisStr = thisStr+'/'; 11 } 12 thisStr = thisStr.replace('http://',''); 13 thisStr = thisStr.replace('https://',''); 14 thisStr = thisStr.replace('//',''); 15 if(thisStr.substring(0,1) == '/'){ 16 thisStr = thisStr.replace('/',''); 17 } 18 // build object 19 while(thisStr != ''){ 20 thisI = thisStr.indexOf('/'); 21 if(thisI <= 1 ){ 22 thisStr = ''; 23 } else { 24 currStr = thisStr.substring(0,thisI+1); 25 if(currStr.indexOf('_') > 0){ 26 splitStr = currStr.replace('/','').split('_'); 27 qParams[splitStr[0]] = splitStr[1]; 28 } 29 thisStr = thisStr.replace(currStr,''); 30 } 31 } 32 return qParams; 33} 34 35function navActivator(){ 36 var thisUrl = window.location.href+'/'; 37 var hasActive = false; 38 urlQuery = parseNav(thisUrl); 39 if(Object.keys(urlQuery).length == 0){ 40 $('#nav').find('.navLink:first').closest('li').addClass('active'); 41 return; 42 } 43 44 $('.nav li a.navLink').each(function(){ 45 var thisNav = $(this).attr('href'); 46 // bail on links that are # or links that 47 if(thisNav.length < 2){ 48 return; 49 } 50 var navQuery = parseNav(thisNav); 51 if(Object.keys(urlQuery).length != 0){ 52 if (JSON.stringify(urlQuery) == JSON.stringify(navQuery)) { 53 $(this).closest('li').addClass('active'); 54 } 55 } 56 }); 57} 58 59function addToCart(prod,qty){ 60 var pBar = "<div class='progress progress-striped active'><div class='progress-bar' role='progressbar' aria-valuenow='100' aria-valuemin='0' aria-valuemax='100' style='width: 100%'><span class='sr-only'>Processing</span></div></div>"; 61 $('#shoppingCart').append(pBar); 62 if(qty === undefined){qty = 1;} 63 if(prod === undefined){prod = '';} 64 $.ajax({ 65 type: 'get', 66 url: '/com/webService/ajax.cfc', 67 data: {method:'addToCart' 68 , sku: prod 69 , quantity:qty 70 }, 71 dataType: 'json', 72 async: false, 73 success: function(result){ 74 if(!result.SUCCESS){ 75 alert(result.ERROR); 76 } else { 77 displayCart(); 78 } 79 } 80 }); 81} 82function removeFromCat(prod){ 83 var pBar = "<div class='progress progress-striped active'><div class='progress-bar' role='progressbar' aria-valuenow='100' aria-valuemin='0' aria-valuemax='100' style='width: 100%'><span class='sr-only'>Processing</span></div></div>"; 84 $('#shoppingCart').append(pBar); 85 if(prod === undefined){prod = '';} 86 $.ajax({ 87 type: 'get', 88 url: '/com/webService/ajax.cfc', 89 data: {method:'removeFromCart' 90 , sku: prod.split('_')[0] 91 , lineItem: prod.split('_')[1] 92 }, 93 dataType: 'json', 94 async: false, 95 success: function(result){ 96 if(!result.SUCCESS){ 97 alert(result.ERROR); 98 } else { 99 displayCart(); 100 } 101 } 102 }); 103 104} 105function displayCart(){ 106 $.ajax({ 107 type: 'get', 108 url: '/com/webService/ajax.cfc', 109 data: {method:'displayShoppingCart' 110 }, 111 dataType: 'json', 112 async: false, 113 success: function(result){ 114 // console.log(result); 115 $('#shoppingCart').html(result); 116 $('.delItem').on('click',function(){ 117 removeFromCat($(this).attr('rel')); 118 }); 119 } 120 }); 121} 122 123 124 125function clearCheckAvail(){ 126 $('#basicForm #uName').closest('.form-group').removeClass('has-success has-error'); 127 $('#basicForm #messageUname').html(''); 128} 129function checkAvail(){ 130 clearCheckAvail(); 131 var uName = $('#basicForm #uName').val(); 132 if(uName.length<5){ 133 $('#basicForm #uName').closest('.form-group').addClass('has-error'); 134 $('#basicForm #messageUname').html('User name must be at least 5 characters'); 135 return; 136 } 137 $.ajax({ 138 type: 'get', 139 url: '/com/webService/ajax.cfc', 140 data: {method:'checkUserNameAvailablity' 141 , uName: uName 142 /* ,personGUID: personGUID */ 143 }, 144 dataType: 'json', 145 async: false, 146 success: function(result){ 147 if(result.SUCCESS){ 148 $('#basicForm #uName').closest('.form-group').addClass('has-success'); 149 } else { 150 $('#basicForm #uName').closest('.form-group').addClass('has-error'); 151 $('#basicForm #messageUname').html('User name not available'); 152 } 153 } 154 }); 155} 156 157 158function checkPasswordStrength(holder){ 159 var val = $("#"+holder).val(); 160 var meter = $("#password_meter")[0]; 161 var pass_type = $("#password_type")[0]; 162 var no=0; 163 if(val!=""){ 164 // If the password length is less than or equal to 6 165 if(val.length<6){ 166 no=1; 167 } else { 168 no=2; 169 } 170 // if the password is at least 6 characters add 1 for each match 171 if(no>1){ 172 if(val.match(/[a-z]/)){ 173 no++; 174 } 175 if(val.match(/[A-Z]/)){ 176 no++; 177 } 178 if(val.match(/\d+/)){ 179 no++; 180 } 181 if(val.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/)){ 182 no++; 183 } 184 } 185 if(no==1){ 186 $("#password_meter").css('background-color', 'transparent'); 187 pass_type.innerHTML="6 char min."; 188 } else if(no<=3){ 189 $("#password_meter").animate({width:'28px'},300).css('background-color', 'red'); 190 pass_type.innerHTML="Very Weak"; 191 } else if(no==4){ 192 $("#password_meter").animate({width:'56px'},300).css('background-color', '#F5BCA9'); 193 pass_type.innerHTML="Weak"; 194 } else if(no==5){ 195 $("#password_meter").animate({width:'84px'},300).css('background-color', '#FF8000'); 196 pass_type.innerHTML="Good"; 197 } else if(no==6){ 198 $("#password_meter").animate({width:'112px'},300).css('background-color', '#00FF40'); 199 pass_type.innerHTML="Strong"; 200 } 201 } else { 202 $("#password_meter").animate({width:'0'},300).css('background-color', 'transparent'); 203 pass_type.innerHTML=""; 204 } 205} 206(function($) { 207 /*************************************** 208 EXTEND 209 ***************************************/ 210 $.fn.extend({ 211 /*************************************** 212 cityStateLoader 213 ***************************************/ 214 cityStateLoader:function(config){ 215 var config = $.extend({}, $.cityStateLoader.defaults, config);
216 config.cityStateContainer = this.attr("id"); 217 config.zipLens = {}; 218 config.currentZip = ''; 219 config.currentCountry = ''; 220 config.countryOptionString = ''; 221 getAndLoadCountries(config); 222 config.zipInput = $('#'+config.cityStateContainer+' [name="'+config.zipFieldName+'"]'); 223 config.countryInput = $('#'+config.cityStateContainer+' [name="'+config.countryFieldName+'"]'); 224 config.stateInput = $('#'+config.cityStateContainer+' [name="'+config.stateFieldName+'"]'); 225 config.cityInput = $('#'+config.cityStateContainer+' [name="'+config.cityFieldName+'"]'); 226 config.zipClass = $(config.zipInput).prop('class'); 227 config.countryClass = $(config.countryInput).prop('class'); 228 config.stateClass = $(config.stateInput).prop('class'); 229 config.cityClass = $(config.cityInput).prop('class'); 230 $(config.countryInput).empty().append(config.countryOptionString); 231 $(config.countryInput).on('change keyup',function(){lookUpZip(config);}) 232 $(config.zipInput).on('keyup',function(){lookUpZip(config);}) 233 $(config.countryInput).val(config.startingSelectedCountry); 234 return this; 235 } 236 }); 237 /*************************************** 238 DEFAULTS 239 ***************************************/ 240 $.cityStateLoader = { 241 defaults:{ 242 zipFieldName : 'zip', 243 countryFieldName : 'country', 244 stateFieldName : 'state', 245 cityFieldName : 'city', 246 startingSelectedCountry : 'US' 247 } 248 }; 249 /*************************************** 250 START cityStateLoader functions 251 ***************************************/ 252 function getAndLoadCountries(config){ 253 $.ajax({ 254 type: 'get', 255 url: '/_shared/com/webService/Zip.cfc', 256 data: {method:'getCountryLookupSerialized' 257 ,countriesWithZipOnly:false}, 258 dataType: 'json', 259 async: false, 260 success: function(result){ 261 config.countryOptionString = '<option value="">Select your Country</option>'; 262 for (i=0;i<result.length;i++) { 263 config.countryOptionString += '<option value="' + result[i].COUNTRYCODE2 + '">' + result[i].COUNTRY + '</option>'; 264 config.zipLens[result[i].COUNTRYCODE2] = result[i].ZIPLENGTH; 265 } 266 } 267 }); 268 } 269 function lookUpZipReset(config){ 270 config.stateInput = $('#'+config.cityStateContainer+' [name="'+config.stateFieldName+'"]'); 271 config.cityInput = $('#'+config.cityStateContainer+' [name="'+config.cityFieldName+'"]'); 272 $(config.countryInput).closest('.form-group').removeClass('success').removeClass('error'); 273 $(config.zipInput).closest('.form-group').removeClass('success').removeClass('error'); 274 $('#'+config.stateInput.prop('id')).val('').off('change keyup').closest('.form-group').removeClass('success').removeClass('error').find('.help-inline').text(''); 275 $('#'+config.cityInput.prop('id')).val('').off('change keyup').closest('.form-group').removeClass('success').removeClass('error'); 276 $cityControls = $(config.cityInput).closest('.controls'); 277 $stateControls = $(config.stateInput).closest('.controls'); 278 $cityControls.html('<input type="text" id="'+config.cityFieldName+'" name="'+config.cityFieldName+'" class="'+config.cityClass+'" readonly="true" value="">'); 279 $stateControls.html('<input type="text" id="'+config.stateFieldName+'" name="'+config.stateFieldName+'" class="'+config.stateClass+'" readonly="true" value="" >'); 280 } 281 function lookUpZip(config){ 282 var $c = $(config.countryInput).val(); //country selected 283 var $z = $(config.zipInput).val(); //zip Entered 284 if(config.currentZip == $z && config.currentCountry == $c){return;} //make sure the zip or the country has changed 285 lookUpZipReset(config); 286 config.currentCountry = $c; //set global value 287 config.currentZip = $z; //set global value 288 $zc = config.zipLens[$c]; //lengths the zip should be 289 $zfl = $z.length; //length of the zipcode entered 290 if($c.toLowerCase() == 'gb' && ($zfl == 2 || $zfl == 3 || $zfl == 4 )){$zc = $zfl;} //for GB 291 if($zfl == $zc){ 292 $.ajax({
293 type: 'get', 294 url: '/_shared/com/webService/Validate.cfc', 295 data: {method:'validateZipReturnJSONStruct' 296 , country: $c 297 , zip: $z.substring(0,$zfl) 298 }, 299 dataType: 'json', 300 async: false, 301 success: function(result){ 302 if(result[0].ERRORMESSAGE !=''){ 303 $(config.zipInput).closest('.form-group').addClass('error'); 304 $(config.zipInput).closest('.form-group').find('.help-inline').text(result[0].ERRORMESSAGE); 305 } else { 306 var delay = setTimeout(function(){ 307 $(config.zipInput).closest('.form-group').removeClass("success"); 308 $(config.stateInput).closest('.form-group').removeClass("success"); 309 $(config.countryInput).closest('.form-group').removeClass("success"); 310 $(config.cityInput).closest('.form-group').removeClass("success"); 311 }, 800) 312 $(config.zipInput).closest('.form-group').addClass('success'); 313 $(config.countryInput).closest('.form-group').addClass('success'); 314 if(result.length == 1){ 315 $('#'+config.stateInput.prop('id')).val(result[0].STATENAME != '' ? result[0].STATENAME : ' ').closest('.form-group').addClass('success'); 316 $('#'+config.cityInput.prop('id')).val(result[0].CITY).closest('.form-group').addClass('success'); 317 } else { 318 var cityArray = []; 319 var stateArray = []; 320 var statePairArray = []; 321 for(i=0;i<result.length;i++){ 322 if($.inArray(result[i].CITY,cityArray) == -1){ 323 cityArray.push(result[i].CITY); 324 } 325 if($.inArray(result[i].STATE,stateArray) == -1){ 326 stateArray.push(result[i].STATE); 327 thisObj = {'stateAbbr' : result[i].STATE , 'stateName' : result[i].STATENAME}; 328 statePairArray.push(thisObj); 329 } 330 } 331 cityArray.sort(); 332 stateArray.sort(); 333 var cityOptions = ''; 334 if(cityArray.length > 1){ 335 cityOptions = '<option value="">Select your City</option>'; 336 } 337 for(i=0;i<cityArray.length;i++){ 338 cityOptions += '<option value="' + cityArray[i]+ '">' + cityArray[i] + '</option>'; 339 } 340 var stateOptions = ''; 341 if(stateArray.length > 1){ 342 stateOptions = '<option value="">Select your State / Providence</option>'; 343 } 344 for(i=0;i<statePairArray.length;i++){ 345 stateOptions += '<option value="' + statePairArray[i].stateAbbr+ '">' + statePairArray[i].stateName + '</option>'; 346 } 347 var citySelect = '<select id="'+config.cityFieldName+'" name="'+config.cityFieldName+'" class="'+config.cityClass+'">'+cityOptions+'</select>'; 348 $cityControls.html(citySelect); 349 config.cityInput = $('#'+config.cityStateContainer+' [name="'+config.cityFieldName+'"]'); 350 var stateSelect = '<select id="'+config.stateFieldName+'" name="'+config.stateFieldName+'" class="'+config.stateClass+'">'+stateOptions+'</select>'; 351 $stateControls.html(stateSelect); 352 config.stateInput = $('#'+config.cityStateContainer+' [name="'+config.stateFieldName+'"]'); 353 if(stateArray.length == 1){ 354 $(config.stateInput).closest('.form-group').addClass('success'); 355 } else { 356 $(config.stateInput).on('change keyup',function(){ 357 if( $(config.stateInput).val()){ 358 $(config.stateInput).closest('.form-group').addClass('success'); 359 } else { 360 $(config.stateInput).closest('.form-group').removeClass('success').removeClass('error'); 361 } 362 }); 363 } 364 if(cityArray.length == 1){ 365 $(config.cityInput).closest('.form-group').addClass('success'); 366 } else { 367 $(config.cityInput).on('change keyup',function(){ 368 if( $(config.cityInput).val()){ 369 $(config.cityInput).closest('.form-group').addClass('success'); 370 } else { 371 $(config.cityInput).closest('.form-group').removeClass('success').removeClass('error'); 372 } 373 }); 374 } 375 } 376 } 377 } 378 }); 379 } 380 } 381 /*************************************** 382 END cityStateLoader functions 383 ***************************************/ 384})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.