remove word 'dealer'
[namibia] / public / js / app / util_backup.js
1 ;(function(){
2
3         _App.Util = function()
4         {
5                 this.initialize();
6         };
7
8         _App.Util.prototype =
9         {
10
11                 startupTime: 0,
12
13                 initialize : function()
14                 {
15                         this.startupTime = this.unixTimestamp();
16                 },
17
18                 unixTimestamp : function()
19                 {
20                         return Math.round((new Date().getTime() / 1000));
21                 },
22
23                 getUrlParam : function(name)
24                 {
25                         hashLoc = window.location.hash.split("?");
26                         return decodeURI(
27                                 (RegExp(name + '=' + '(.+?)(&|$)').exec(hashLoc[1])||[,null])[1]
28                             );
29                 },
30
31                 ie : (function()
32                 {
33                       var undef,
34                           v = 3,
35                           div = document.createElement('div'),
36                           all = div.getElementsByTagName('i');
37                       while (
38                           div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
39                           all[0]
40                       );
41                       return v > 4
42                           ? v
43                           : undef;
44                 }()),
45
46                 updateCheckboxStyle : function ( $_checkbox )
47                 {
48                         if ($_checkbox.hasClass('no-mod'))
49                         {
50                                 return;
51                         }
52                       var label = $_checkbox.parent('label');
53                       if (label.length) {
54                         $(label).addClass('checkbox');
55                       } else {
56                         $_checkbox.wrap('<label class="checkbox"/>');
57                       }
58                       $('<span class="styled-checkbox" />').insertAfter($_checkbox);
59                       if ( !!this.ie && this.ie < 9){
60                           $_checkbox.set_checked = function() {
61                           if (this.checked) {
62                                   form.find('input[name="'+this.name+'"] + span').removeClass('checked');
63                             $(this).next('span').addClass('checked').blur();
64                           }
65                         };
66                         $_checkbox.set_checked();
67                         $_checkbox.bind('change', function() {
68                           this.set_checked();
69                         });
70                       }
71                       if($_checkbox.value == 'on'){ $_checkbox.value = true; }
72                 },
73
74                 updateCheckboxStyles : function ( form )
75                 {
76                         var $$_checkboxes = form.find('input[type=checkbox]');
77                     $.each($$_checkboxes, function(i, checkbox){
78                       var $_checkbox = $(checkbox);
79                           if ($_checkbox.hasClass('no-mod'))
80                           {
81                                 return;
82                           }
83                       var label = $_checkbox.parent('label');
84                       if(label.length){
85                         $(label).addClass('checkbox');
86                       }else{
87                         $_checkbox.wrap('<label class="checkbox"/>');
88                       }
89                       $('<span class="styled-checkbox" />').insertAfter($_checkbox);
90                       if( !!this.ie && this.ie < 9){
91                         checkbox.set_checked = function(){
92                           if(this.checked){
93                                   form.find('input[name="'+this.name+'"] + span').removeClass('checked');
94                             $(this).next('span').addClass('checked').blur();
95                           }
96                         };
97                         checkbox.set_checked();
98                         $_checkbox.bind('change', function(){
99                           this.set_checked();
100                         });
101                       }
102                       if(checkbox.value == 'on'){ checkbox.value = true; }
103                     });
104                 },
105
106                 calculateTimeLeft : function ( value, numDays, endDate )
107                 {
108                         var dateTime = value.split(' '),
109                                 date     = dateTime[0],
110                                 time     = dateTime[1],
111                                 dateParts = date.split('-').map(function(part){
112                                         return parseInt(part, 10);
113                                 }),
114                                 timeParts = time.split(':').map(function(part){
115                                         return parseInt(part, 10);
116                                 });
117                         var timeObject = new Date();
118                         var currentDateTime = new Date( timeObject.getTime() - (1000 * App.timeDiff) );
119                         if (endDate)
120                         {
121                                 var dateTime = endDate.split(' '),
122                                         date     = dateTime[0],
123                                         time     = dateTime[1],
124                                         dateParts = date.split('-').map(function(part){
125                                                 return parseInt(part, 10);
126                                         }),
127                                         timeParts = time.split(':').map(function(part){
128                                                 return parseInt(part, 10);
129                                         });
130                                 var expireDateTime = new Date(dateParts[0], dateParts[1]-1, dateParts[2], timeParts[0], timeParts[1], timeParts[2] );
131                         }
132                         else
133                         {
134                                 var dateTime = value.split(' '),
135                                         date     = dateTime[0],
136                                         time     = dateTime[1],
137                                         dateParts = date.split('-').map(function(part){
138                                                 return parseInt(part, 10);
139                                         }),
140                                         timeParts = time.split(':').map(function(part){
141                                                 return parseInt(part, 10);
142                                         });
143                                 var expireDateTime = new Date(dateParts[0], dateParts[1]-1, dateParts[2], timeParts[0], timeParts[1], timeParts[2] );
144                                 expireDateTime.setDate(expireDateTime.getDate() + numDays);
145                         }
146                         var difference = expireDateTime.getTime() - currentDateTime.getTime();
147                         var daysDifference, hoursDifference, minutesDifference;
148
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;
155
156                     if (expireDateTime.getTime() < currentDateTime.getTime()) {
157                         return '0m';
158                     }
159
160                         return daysDifference > 0
161                           ? daysDifference + 'd, ' + hoursDifference + 'h, ' + minutesDifference + 'm'
162                           : hoursDifference + 'h, ' + minutesDifference + 'm';
163                 },
164                 
165                 calculateTimeLeftHours : function ( value, numDays )
166                 {
167                         var dateTime = value.split(' '),
168                                 date     = dateTime[0],
169                                 time     = dateTime[1],
170                                 dateParts = date.split('-').map(function(part){
171                                         return parseInt(part, 10);
172                                 }),
173                                 timeParts = time.split(':').map(function(part){
174                                         return parseInt(part, 10);
175                                 });
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] );
179                         
180                         var addSeconds = expireDateTime.setSeconds(expireDateTime.getSeconds() +  numDays * 86400);
181                         expireDateTime = new Date(expireDateTime .getSeconds() + addSeconds);
182                         //console.log('expireDateTime2',expireDateTime2 ) ;
183                         
184                         
185                         var difference = expireDateTime.getTime() - currentDateTime.getTime();
186                         var daysDifference, hoursDifference, minutesDifference;
187
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;
194
195                     if (expireDateTime.getTime() < currentDateTime.getTime()) {
196                         return '0m';
197                     }
198
199                         return daysDifference > 0
200                           ? daysDifference + 'd, ' + hoursDifference + 'h, ' + minutesDifference + 'm'
201                           : hoursDifference + 'h, ' + minutesDifference + 'm';
202                 },
203
204                 updateClock : function ()
205                 {
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);
217                 },
218
219                 setCookie : function (name, value, days)
220                 {
221                         if (days) {
222                         var date = new Date();
223                         date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
224                         var expires = "; expires=" + date.toGMTString();
225                     } else {
226                         var expires = "";
227                     }
228                     document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";
229                 },
230
231                 getCookie : function (name, defaultValue)
232                 {
233                         var nameEQ = escape(name) + "=";
234                     var ca = document.cookie.split(';');
235                     for (var i = 0; i < ca.length; i++) {
236                         var c = ca[i];
237                         while (c.charAt(0) == ' ') {
238                                 c = c.substring(1, c.length);
239                         }
240                         if (c.indexOf(nameEQ) == 0) {
241                                 return unescape(c.substring(nameEQ.length, c.length));
242                         }
243                     }
244                     return undefined == defaultValue
245                         ? null
246                         : defaultValue;
247                 }
248
249         };
250
251         String.prototype.replaceAll = function(str1, str2, ignore)
252         {
253                 return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2);
254         };
255
256         jQuery.validator.addMethod("notNull", function(value, element, params) {
257                  return this.optional(element) || value != null;
258                 }, "Please select a value."
259         );
260
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."
264         );
265
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."
269         );
270
271         $.validator.setDefaults({
272                 ignore: [],
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);
278                     } else {
279                         error.insertAfter(element);
280                     }
281                 },
282             unhighlight: function(element, errorClass, validClass) {
283                 if ($(element).hasClass('selectpicker')) {
284                         $('button[data-id=' + $(element).attr("name") + ']').removeClass(errorClass).addClass(validClass);
285                 } else {
286                         $(element).removeClass(errorClass).addClass(validClass);
287                 }
288                     $(element.form).find("label[for=" + element.id + "]." + errorClass)
289                       .remove();//.removeClass(errorClass);
290                 }
291         });
292
293
294 })();
295
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);
304       range.select();
305     }
306 };