13 initialize : function()
15 this.startupTime = this.unixTimestamp();
18 unixTimestamp : function()
20 return Math.round((new Date().getTime() / 1000));
23 getUrlParam : function(name)
25 hashLoc = window.location.hash.split("?");
27 (RegExp(name + '=' + '(.+?)(&|$)').exec(hashLoc[1])||[,null])[1]
35 div = document.createElement('div'),
36 all = div.getElementsByTagName('i');
38 div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
46 updateCheckboxStyle : function ( $_checkbox )
48 if ($_checkbox.hasClass('no-mod'))
52 var label = $_checkbox.parent('label');
54 $(label).addClass('checkbox');
56 $_checkbox.wrap('<label class="checkbox"/>');
58 $('<span class="styled-checkbox" />').insertAfter($_checkbox);
59 if ( !!this.ie && this.ie < 9){
60 $_checkbox.set_checked = function() {
62 form.find('input[name="'+this.name+'"] + span').removeClass('checked');
63 $(this).next('span').addClass('checked').blur();
66 $_checkbox.set_checked();
67 $_checkbox.bind('change', function() {
71 if($_checkbox.value == 'on'){ $_checkbox.value = true; }
74 updateCheckboxStyles : function ( form )
76 var $$_checkboxes = form.find('input[type=checkbox]');
77 $.each($$_checkboxes, function(i, checkbox){
78 var $_checkbox = $(checkbox);
79 if ($_checkbox.hasClass('no-mod'))
83 var label = $_checkbox.parent('label');
85 $(label).addClass('checkbox');
87 $_checkbox.wrap('<label class="checkbox"/>');
89 $('<span class="styled-checkbox" />').insertAfter($_checkbox);
90 if( !!this.ie && this.ie < 9){
91 checkbox.set_checked = function(){
93 form.find('input[name="'+this.name+'"] + span').removeClass('checked');
94 $(this).next('span').addClass('checked').blur();
97 checkbox.set_checked();
98 $_checkbox.bind('change', function(){
102 if(checkbox.value == 'on'){ checkbox.value = true; }
106 calculateTimeLeft : function ( value, numDays, endDate )
108 var dateTime = value.split(' '),
111 dateParts = date.split('-').map(function(part){
112 return parseInt(part, 10);
114 timeParts = time.split(':').map(function(part){
115 return parseInt(part, 10);
117 var timeObject = new Date();
118 var currentDateTime = new Date( timeObject.getTime() - (1000 * App.timeDiff) );
121 var dateTime = endDate.split(' '),
124 dateParts = date.split('-').map(function(part){
125 return parseInt(part, 10);
127 timeParts = time.split(':').map(function(part){
128 return parseInt(part, 10);
130 var expireDateTime = new Date(dateParts[0], dateParts[1]-1, dateParts[2], timeParts[0], timeParts[1], timeParts[2] );
134 var dateTime = value.split(' '),
137 dateParts = date.split('-').map(function(part){
138 return parseInt(part, 10);
140 timeParts = time.split(':').map(function(part){
141 return parseInt(part, 10);
143 var expireDateTime = new Date(dateParts[0], dateParts[1]-1, dateParts[2], timeParts[0], timeParts[1], timeParts[2] );
144 expireDateTime.setDate(expireDateTime.getDate() + numDays);
146 var difference = expireDateTime.getTime() - currentDateTime.getTime();
147 var daysDifference, hoursDifference, minutesDifference;
149 daysDifference = Math.floor(difference/1000/60/60/24);
150 difference -= daysDifference*1000*60*60*24;
151 hoursDifference = Math.floor(difference/1000/60/60);
152 difference -= hoursDifference*1000*60*60;
153 minutesDifference = Math.floor(difference/1000/60);
154 difference -= minutesDifference*1000*60;
156 if (expireDateTime.getTime() < currentDateTime.getTime()) {
160 return daysDifference > 0
161 ? daysDifference + 'd, ' + hoursDifference + 'h, ' + minutesDifference + 'm'
162 : hoursDifference + 'h, ' + minutesDifference + 'm';
165 calculateTimeLeftHours : function ( value, numDays )
167 var dateTime = value.split(' '),
170 dateParts = date.split('-').map(function(part){
171 return parseInt(part, 10);
173 timeParts = time.split(':').map(function(part){
174 return parseInt(part, 10);
176 var timeObject = new Date();
177 var currentDateTime = new Date( timeObject.getTime() - (1000 * App.timeDiff) );
178 var expireDateTime = new Date(dateParts[0], dateParts[1]-1, dateParts[2], timeParts[0], timeParts[1], timeParts[2] );
180 var addSeconds = expireDateTime.setSeconds(expireDateTime.getSeconds() + numDays * 86400);
181 expireDateTime = new Date(expireDateTime .getSeconds() + addSeconds);
182 //console.log('expireDateTime2',expireDateTime2 ) ;
185 var difference = expireDateTime.getTime() - currentDateTime.getTime();
186 var daysDifference, hoursDifference, minutesDifference;
188 daysDifference = Math.floor(difference/1000/60/60/24);
189 difference -= daysDifference*1000*60*60*24;
190 hoursDifference = Math.floor(difference/1000/60/60);
191 difference -= hoursDifference*1000*60*60;
192 minutesDifference = Math.floor(difference/1000/60);
193 difference -= minutesDifference*1000*60;
195 if (expireDateTime.getTime() < currentDateTime.getTime()) {
199 return daysDifference > 0
200 ? daysDifference + 'd, ' + hoursDifference + 'h, ' + minutesDifference + 'm'
201 : hoursDifference + 'h, ' + minutesDifference + 'm';
204 updateClock : function ()
206 var timeObject = new Date();
207 var currentTime = new Date( timeObject.getTime() - (1000 * App.timeDiff) );
208 var currentHours = currentTime.getHours ( );
209 var currentMinutes = currentTime.getMinutes ( );
210 var currentSeconds = currentTime.getSeconds ( );
211 currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
212 currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;
213 currentHours = ( currentHours == 0 ) ? 12 : currentHours;
214 var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds;
215 $("#clock").html(currentTimeString);
216 $("#clockmobi").html(currentTimeString);
219 setCookie : function (name, value, days)
222 var date = new Date();
223 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
224 var expires = "; expires=" + date.toGMTString();
228 document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";
231 getCookie : function (name, defaultValue)
233 var nameEQ = escape(name) + "=";
234 var ca = document.cookie.split(';');
235 for (var i = 0; i < ca.length; i++) {
237 while (c.charAt(0) == ' ') {
238 c = c.substring(1, c.length);
240 if (c.indexOf(nameEQ) == 0) {
241 return unescape(c.substring(nameEQ.length, c.length));
244 return undefined == defaultValue
251 String.prototype.replaceAll = function(str1, str2, ignore)
253 return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2);
256 jQuery.validator.addMethod("notNull", function(value, element, params) {
257 return this.optional(element) || value != null;
258 }, "Please select a value."
261 jQuery.validator.addMethod("mobile", function(value, element, params) {
262 return this.optional(element) || value.match(/^[0-9]\d{8}$/) != null;
263 }, "Must be a valid mobile number."
266 jQuery.validator.addMethod("companyReg", function(value, element, params) {
267 return this.optional(element) || value.match(/^\d{4}\/\d{6}\/\d{2}$/) != null;
268 }, "Incorrect format."
271 $.validator.setDefaults({
273 errorPlacement: function(error, element) {
274 if (element.hasClass('selectpicker')) {
275 var elem = $('button[data-id=' + element.attr("name") + ']');
276 elem.addClass('error');
277 error.insertAfter(elem);
279 error.insertAfter(element);
282 unhighlight: function(element, errorClass, validClass) {
283 if ($(element).hasClass('selectpicker')) {
284 $('button[data-id=' + $(element).attr("name") + ']').removeClass(errorClass).addClass(validClass);
286 $(element).removeClass(errorClass).addClass(validClass);
288 $(element.form).find("label[for=" + element.id + "]." + errorClass)
289 .remove();//.removeClass(errorClass);
296 $.fn.setCursorPosition = function(pos) {
297 if ($(this).get(0).setSelectionRange) {
298 $(this).get(0).setSelectionRange(pos, pos);
299 } else if ($(this).get(0).createTextRange) {
300 var range = $(this).get(0).createTextRange();
301 range.collapse(true);
302 range.moveEnd('character', pos);
303 range.moveStart('character', pos);