1timer = {}; 2 3timer.selectors = { 4 "main": "[data-timer]", 5 "container": "[data-timer-container]", 6 "days": "[data-timer-days]", 7 "hours": "[data-timer-hours]", 8 "minutes": "[data-timer-minutes]", 9 "seconds": "[data-timer-seconds]", 10 "textDays": "[data-timer-days-text]", 11 "textHours": "[data-timer-hours-text]" 12}; 13 14timer.interval = null; 15 16timer.dataTimer = function () { 17 if ($(timer.selectors.main).length > 0) { 18 $(timer.selectors.main).each(function (e) { 19 var days = $(this).find(timer.selectors.days); 20 var hours = $(this).find(timer.selectors.hours); 21 var minutes = $(this).find(timer.selectors.minutes); 22 var seconds = $(this).find(timer.selectors.seconds); 23 24 var finalDate = $(this).attr('data-timer-source'); 25 var txtDays = $(this).find(timer.selectors.textDays); 26 var txtHours = $(this).find(timer.selectors.textHours); 27 28 finalDate = finalDate.split(/[^0-9]/); 29 finalDateYear = finalDate[0]; 30 finalDateMonth = finalDate[1]; 31 finalDateDay = finalDate[2]; 32 finalDateHour = finalDate[3]; 33 finalDateMinute = finalDate[4]; 34 finalDateSecond = finalDate[5]; 35 var finalDateObject = new Date( 36 finalDateYear, 37 finalDateMonth - 1, 38 finalDateDay, 39 finalDateHour, 40 finalDateMinute, 41 finalDateSecond 42 ); 43 44 var date = new Date(); 45 if (date.getTime() >= finalDateObject.getTime()) { 46 dateDays = 0; 47 dateHours = 0; 48 dateMinutes = 0; 49 dateSeconds = 0; 50 return false; 51 } 52 53 var dateYears = finalDateYear - date.getFullYear(); 54 var dateMonths = finalDateMonth - (date.getMonth() + 1 + (dateYears * 12)); 55 var dateDays = finalDateDay - date.getDate() + (dateMonths * 30); 56 var dateHours = finalDateHour - date.getHours(); 57 var dateMinutes = finalDateMinute - date.getMinutes(); 58 var dateSeconds = finalDateSecond - date.getSeconds(); 59 60 if (dateSeconds < 0) { 61 dateMinutes = dateMinutes - 1; 62 dateSeconds = 60 + dateSeconds; 63 } 64 65 if (dateMinutes < 0) { 66 dateHours = dateHours - 1; 67 dateMinutes = 60 + dateMinutes; 68 } 69 70 if (dateHours < 0) { 71 dateDays = dateDays - 1; 72 dateHours = 24 + dateHours; 73 } 74 75 timer.interval = setInterval(function (ex) { 76 var type = 0; 77 78 if (dateSeconds == 0) { 79 if (dateMinutes > 0) { 80 type = 3; 81 } else if (dateHours > 0) { 82 type = 2; 83 } else if (dateDays > 0) { 84 type = 1; 85 } else { 86 type = 4; 87 } 88 } 89 90 switch (type) { 91 case 1: 92 dateDays = dateDays - 1; 93 dateHours = dateHours + 24; 94 case 2: 95 dateHours = dateHours - 1; 96 dateMinutes = dateMinutes + 60; 97 case 3: 98 dateMinutes = dateMinutes - 1; 99 dateSeconds = dateSeconds + 60; 100 case 0: 101 dateSeconds = dateSeconds - 1; 102 break; 103 case 4: 104 clearInterval(timer.interval); 105 } 106 107 if (dateDays == 1) { 108 txtDays.html('dia'); 109 } else { 110 txtDays.html('dias'); 111 } 112 113 if (dateHours == 1) { 114 txtHours.html('hora'); 115 } else { 116 txtHours.html('horas'); 117 } 118 119 dateDays = (dateDays > -1 && dateDays < 10 && dateDays.toString().length == 1) ? "0" + dateDays : dateDays; 120 dateHours = (dateHours > -1 && dateHours < 10 && dateHours.toString().length == 1) ? "0" + dateHours : dateHours; 121 dateMinutes = (dateMinutes > -1 && dateMinutes < 10 && dateMinutes.toString().length == 1) ? "0" + dateMinutes : dateMinutes; 122 dateSeconds = (dateSeconds > -1 && dateSeconds < 10 && dateSeconds.toString().length == 1) ? "0" + dateSeconds : dateSeconds; 123 124 days.html(dateDays); 125 hours.html(dateHours); 126 minutes.html(dateMinutes); 127 seconds.html(dateSeconds); 128 }, 1000); 129 }); 130 } 131} 132 133timer.finish = function() { 134 clearInterval(timer.interval); 135 if ($(timer.selectors.main).length > 0) { 136 $(timer.selectors.main).each(function (e) { 137 $(this).find(timer.selectors.days).html('0'); 138 $(this).find(timer.selectors.hours).html('0'); 139 $(this).find(timer.selectors.minutes).html('0'); 140 $(this).find(timer.selectors.seconds).html('0'); 141 }) 142 } 143} 144 145$(function () { 146 timer.dataTimer(); 147});
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.