1$( document ).ready(function() { 2 validation(); 3 //Function for animations that trigger when scrolled into view 4 function isScrolledIntoView(elem) { 5 const docViewTop = $(window).scrollTop(); 6 const docViewBottom = docViewTop + $(window).height(); 7 8 const elemTop = $(elem).offset().top; 9 10 return ((elemTop <= docViewBottom) && (elemTop >= docViewTop)); 11 } 12 13 //Offsets fixed navbar when navigating to a specific section on the home page from different page 14 //Stops scroll animations from triggering if user has navigated to home page from a different page 15 if (window.location.href.includes("#")) { 16 var y = $(window).scrollTop(); 17 $(window).scrollTop(y-75); 18 } else { 19 $(window).scroll(function() { 20 $('.scroll-animations .animated').each(function() { 21 if (isScrolledIntoView(this) === true) { 22 $(this).addClass('slideInUp'); 23 } 24 }); 25 }); 26 } 27 28 //Navbar Scrolling 29 //When not on home page nav bar tabs will take you to home page at correct section 30 //If already on home page will animate scroll to correct section 31 $(".scroll-nav-tab").on("click", function () { 32 const section = $(this).data("section"); 33 34 $("html, body").animate({ scrollTop: $("#" + section).offset().top - 75 }, 800); 35 }); 36 37 38 //Customer Service Link in Features Section Scrolls to Contact Section 39 $("#cust-service-link").on("click", function () { 40 $("html, body").animate({ scrollTop: $("#contact").offset().top - 75 }, 800); 41 }); 42 43 44 //Homepage Assurance Quote Calculator 45 //Hides Result and Shows Calculator 46 $("#BackNewQuote").on("click", function () { 47 $("#divAssuranceQuoteInput").addClass("fadeIn"); 48 $("#divAssuranceQuoteOutput").css("display", "none"); 49 $("#divAssuranceQuoteInput").css("display", "block"); 50 $("#divAssuranceQuoteOutput").removeClass("fadeIn"); 51 }); 52 53}); 54 55 56//Validation for Contact form on Homepage 57 58function validation() { 59 //************* REQUIRED ******************** 60 $('.form-group input[required], .form-group textarea[required], .form-group select[required], .form-group radio[required]').on('keyup change', function () { 61 //closest - return the first ancestor 62 63 var $form = $(this).closest('section'), 64 $group = $(this).closest('.form-group'), 65 $addon = $group.find('.input-group-addon'), 66 $addon2 = $group.find('.val-error'), 67 state = false; 68 69 //Checking to see if the inputs validate against a pattern 70 if (!$group.data('validate')) { 71 state = $(this).val() ? true : false; 72 } else if ($group.data('validate') === "text") { 73 state = /^([a-zA-Z0-9_\-])+$/.test($(this).val()) 74 75 } else if ($group.data('validate') === "money") { 76 //alert("money"); 77 state = /^([0-9,.])+$/.test($(this).val()) 78 79 } else if ($group.data('validate') === "age") { 80 state = /^\d{2}$/.test($(this).val()) 81 82 } else if ($group.data('validate') === "email") { 83 state = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test($(this).val()) 84 } else if ($group.data('validate') === 'phone') { 85 state = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/.test($(this).val()) 86 } else if ($group.data('validate') === 'date') { 87 state = /^([0-9]{2}\/)([0-9]{2}\/)([0-9]{4})$/.test($(this).val()) 88 } else if ($group.data('validate') === 'phone') { 89 state = /^\d{1,2,3}\/\d{1,2,3}\/\d{4}$/.test($(this).val()) 90 } else if ($group.data('validate') === 'soc') { 91 state = /^\d{4}$/.test($(this).val()) 92 93 } else if ($group.data('validate') === 'social') { 94 state = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{2}[-\s\.]{0,1}[0-9]{4}$/.test($(this).val()) 95 96 } else if ($group.data('validate') === 'ein') { 97 state = /^\d{9}$/.test($(this).val()) 98 } else if ($group.data('validate') === 'license') { 99 state = /^\d{15}$/.test($(this).val()) 100 } else if ($group.data('validate') === 'zip') { 101 state = /^\d{5}
101$/.test($(this).val()) 102 } else if ($group.data('validate') === "length") { 103 state = $(this).val().length >= $group.data('length') ? true : false; 104 } else if ($group.data('validate') === "number") { 105 state = !isNaN(parseFloat($(this).val())) && isFinite($(this).val()) 106 } else if ($group.data('validate') === "noSpecChar") { 107 state = /^([A-Za-z0-9 ]*[A-Za-z0-9.][A-Za-z0-9 ]*)$/.test($(this).val())//numbers, letters upper and lower, and spaces 108 } else if ($group.data('validate') === "npn") { 109 110 state = /^\d{4,9}$/.test($(this).val()); 111 } 112 113 //adding classes based on if inputs do or do not validate against pattern 114 if (state) { 115 $addon.removeClass('danger'); 116 $addon.addClass('success'); 117 $addon2.removeClass("val-error");/*.css("border", "solid thin green");, 1000, "easeInBack"*/ 118 119 } else { 120 $addon.removeClass('success'); 121 $addon.addClass('danger'); 122 } 123 124 }); 125 126 $('.form-group input[required], .form-group textarea[required], .form-group select[required], .form-group radio[required]').trigger('change'); 127 128 129 //************* NOT REQUIRED ******************** 130 $('.form-group form.not-required, .form-group textarea.not-required, .form-group select.not-required, .form-group radio.not-required').on('keyup change', function () { 131 //closest - return the first ancestor 132 133 var $form = $(this).closest('section'), 134 $group = $(this).closest('.form-group'), 135 $addon = $group.find('.input-group-addon'), 136 state = false; 137 138 //Checking to see if the inputs validate against a pattern 139 if (!$group.data('validate')) { 140 state = $(this).val() ? true : false; 141 } else if ($group.data('validate') === "text") { 142 state = /^([a-zA-Z0-9_\-])+$/.test($(this).val()) 143 144 } else if ($group.data('validate') === "money") { 145 //alert("money"); 146 state = /^([0-9,.])+$/.test($(this).val()) 147 148 } else if ($group.data('validate') === "age") { 149 state = /^\d{2}$/.test($(this).val()) 150 151 } else if ($group.data('validate') === "email") { 152 state = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test($(this).val()) 153 } else if ($group.data('validate') === 'phone') { 154 state = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/.test($(this).val()) 155 } else if ($group.data('validate') === 'date') { 156 state = /^([0-9]{2}\/)([0-9]{2}\/)([0-9]{4})$/.test($(this).val()) 157 } else if ($group.data('validate') === 'phone') { 158 state = /^\d{1,2,3}\/\d{1,2,3}\/\d{4}$/.test($(this).val()) 159 } else if ($group.data('validate') === 'soc') { 160 state = /^\d{4}$/.test($(this).val()) 161 162 } else if ($group.data('validate') === 'social') { 163 state = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{2}[-\s\.]{0,1}[0-9]{4}$/.test($(this).val()) 164 165 } else if ($group.data('validate') === 'ein') { 166 state = /^\d{9}$/.test($(this).val()) 167 } else if ($group.data('validate') === 'license') { 168 state = /^\d{15}$/.test($(this).val()) 169 } else if ($group.data('validate') === 'zip') { 170 state = /^\d{5}$/.test($(this).val()) 171 } else if ($group.data('validate') === "length") { 172 state = $(this).val().length >= $group.data('length') ? true : false; 173 } else if ($group.data('validate') === "number") { 174 state = !isNaN(parseFloat($(this).val())) && isFinite($(this).val()); 175 } 176 177 //adding classes based on if inputs do or do not validate against pattern 178 if (state) { 179 $addon.removeClass('not-req'); 180 $addon.addClass('success'); 181 182 } else { 183 $addon.removeClass('success'); 184 $addon.addClass('not-req'); 185 } 186 187 }); 188 189 $('.form-group input.not-required, .form-group textarea.not-required, .form-group select.not-required, .form-group radio.not-required').trigger('change'); 190 191} 192 193function validationEach() { 194 //************* REQUIRED ******************** 195 $('.form-group input[required], .form-group textarea[required], .form-group select[required], .form-group radio[required]').each(function () { 196 //closest - return the first ancestor 197 198 var $form = $(this).closest('section'), 199 $group = $(this).closest('.form-group'), 200 $addon = $group.find('.input-group-addon'), 201 $addon2 = $group.find('.val-error'), 202 state = false; 203 204 //Checking to see if the inputs validate against a pattern 205 if (!$group.data('validate')) { 206 state = $(this).val() ? true : false; 207 } else if ($group.data('validate') === "text") { 208 state = /^([a-zA-Z0-9_\-])+$/.test($(this).val()) 209 210 } else if ($group.data('validate') === "money") { 211 //alert("money"); 212 state = /^([0-9,.])+$/.test($(this).val()) 213 214 } else if ($group.data('validate') === "age") { 215 state = /^\d{2}$/.test($(this).val()) 216 217 } else if ($group.data('validate') === "email") { 218 state = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test($(this).val()) 219 } else if ($group.data('validate') === 'phone') { 220 state = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/.test($(this).val()) 221 } else if ($group.data('validate') === 'date') { 222 state = /^([0-9]{2}\/)([0-9]{2}\/)([0-9]{4})$/.test($(this).val()) 223 } else if ($group.data('validate') === 'phone') { 224 state = /^\d{1,2,3}\/\d{1,2,3}\/\d{4}$/.test($(this).val()) 225 } else if ($group.data('validate') === 'soc') { 226 state = /^\d{4}$/.test($(this).val()) 227 228 } else if ($group.data('validate') === 'social') { 229 state = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{2}[-\s\.]{0,1}[0-9]{4}$/.test($(this).val()) 230 231 } else if ($group.data('validate') === 'ein') { 232 state = /^\d{9}$/.test($(this).val()) 233 } else if ($group.data('validate') === 'license') { 234 state = /^\d{15}$/.test($(this).val()) 235 } else if ($group.data('validate') === 'zip') { 236 state = /^\d{5}
236$/.test($(this).val()) 237 } else if ($group.data('validate') === "length") { 238 state = $(this).val().length >= $group.data('length') ? true : false; 239 } else if ($group.data('validate') === "number") { 240 state = !isNaN(parseFloat($(this).val())) && isFinite($(this).val()); 241 } 242 243 //adding classes based on if inputs do or do not validate against pattern 244 if (state) { 245 $addon.removeClass('danger'); 246 $addon.addClass('success'); 247 $addon2.removeClass("val-error");/*.css("border", "solid thin green");, 1000, "easeInBack"*/ 248 249 } else { 250 $addon.removeClass('success'); 251 $addon.addClass('danger'); 252 //$icon.attr('class', 'fa fa-times'); 253 } 254 255 }); 256 257 $('.form-group input[required], .form-group textarea[required], .form-group select[required], .form-group radio[required]').trigger('change'); 258 259 260 //************* NOT REQUIRED ******************** 261 $('.form-group input.not-required, .form-group textarea.not-required, .form-group select.not-required, .form-group radio.not-required').on('keyup change', function () { 262 //closest - return the first ancestor 263 264 var $form = $(this).closest('section'), 265 $group = $(this).closest('.form-group'), 266 $addon = $group.find('.input-group-addon'), 267 state = false; 268 269 //Checking to see if the inputs validate against a pattern 270 if (!$group.data('validate')) { 271 state = $(this).val() ? true : false; 272 } else if ($group.data('validate') === "text") { 273 state = /^([a-zA-Z0-9_\-])+$/.test($(this).val()) 274 275 } else if ($group.data('validate') === "money") { 276 //alert("money"); 277 state = /^([0-9,.])+$/.test($(this).val()) 278 279 } else if ($group.data('validate') === "age") { 280 state = /^\d{2}$/.test($(this).val()) 281 282 } else if ($group.data('validate') === "email") { 283 state = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test($(this).val()) 284 } else if ($group.data('validate') === 'phone') { 285 state = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/.test($(this).val()) 286 } else if ($group.data('validate') === 'date') { 287 state = /^([0-9]{2}\/)([0-9]{2}\/)([0-9]{4})$/.test($(this).val()) 288 } else if ($group.data('validate') === 'phone') { 289 state = /^\d{1,2,3}\/\d{1,2,3}\/\d{4}$/.test($(this).val()) 290 } else if ($group.data('validate') === 'soc') { 291 state = /^\d{4}$/.test($(this).val()) 292 293 } else if ($group.data('validate') === 'social') { 294 state = /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{2}[-\s\.]{0,1}[0-9]{4}$/.test($(this).val()) 295 296 } else if ($group.data('validate') === 'ein') { 297 state = /^\d{9}$/.test($(this).val()) 298 } else if ($group.data('validate') === 'license') { 299 state = /^\d{15}$/.test($(this).val()) 300 } else if ($group.data('validate') === 'zip') { 301 state = /^\d{5}$/.test($(this).val()) 302 } else if ($group.data('validate') === "length") { 303 state = $(this).val().length >= $group.data('length') ? true : false; 304 } else if ($group.data('validate') === "number") { 305 state = !isNaN(parseFloat($(this).val())) && isFinite($(this).val()); 306 } 307 308 //adding classes based on if inputs do or do not validate against pattern 309 if (state) { 310 $addon.removeClass('not-req'); 311 $addon.addClass('success'); 312 313 } else { 314 $addon.removeClass('success'); 315 $addon.addClass('not-req'); 316 } 317 318 }); 319 320 $('.form-group input.not-required, .form-group textarea.not-required, .form-group select.not-required, .form-group radio.not-required').trigger('change'); 321 322} 323 324 325 326
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.