;(function(){
_App.Util = function()
{
this.initialize();
};
_App.Util.prototype =
{
startupTime: 0,
initialize : function()
{
this.startupTime = this.unixTimestamp();
},
unixTimestamp : function()
{
return Math.round((new Date().getTime() / 1000));
},
getUrlParam : function(name)
{
hashLoc = window.location.hash.split("?");
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(hashLoc[1])||[,null])[1]
);
},
ie : (function()
{
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '',
all[0]
);
return v > 4
? v
: undef;
}()),
updateCheckboxStyle : function ( $_checkbox )
{
if ($_checkbox.hasClass('no-mod'))
{
return;
}
var label = $_checkbox.parent('label');
if (label.length) {
$(label).addClass('checkbox');
} else {
$_checkbox.wrap('');
}
$('').insertAfter($_checkbox);
if ( !!this.ie && this.ie < 9){
$_checkbox.set_checked = function() {
if (this.checked) {
form.find('input[name="'+this.name+'"] + span').removeClass('checked');
$(this).next('span').addClass('checked').blur();
}
};
$_checkbox.set_checked();
$_checkbox.bind('change', function() {
this.set_checked();
});
}
if($_checkbox.value == 'on'){ $_checkbox.value = true; }
},
updateCheckboxStyles : function ( form )
{
var $$_checkboxes = form.find('input[type=checkbox]');
$.each($$_checkboxes, function(i, checkbox){
var $_checkbox = $(checkbox);
if ($_checkbox.hasClass('no-mod'))
{
return;
}
var label = $_checkbox.parent('label');
if(label.length){
$(label).addClass('checkbox');
}else{
$_checkbox.wrap('');
}
$('').insertAfter($_checkbox);
if( !!this.ie && this.ie < 9){
checkbox.set_checked = function(){
if(this.checked){
form.find('input[name="'+this.name+'"] + span').removeClass('checked');
$(this).next('span').addClass('checked').blur();
}
};
checkbox.set_checked();
$_checkbox.bind('change', function(){
this.set_checked();
});
}
if(checkbox.value == 'on'){ checkbox.value = true; }
});
},
calculateTimeLeft : function ( value, numDays, endDate )
{
var dateTime = value.split(' '),
date = dateTime[0],
time = dateTime[1],
dateParts = date.split('-').map(function(part){
return parseInt(part, 10);
}),
timeParts = time.split(':').map(function(part){
return parseInt(part, 10);
});
var timeObject = new Date();
var currentDateTime = new Date( timeObject.getTime() - (1000 * App.timeDiff) );
if (endDate)
{
var dateTime = endDate.split(' '),
date = dateTime[0],
time = dateTime[1],
dateParts = date.split('-').map(function(part){
return parseInt(part, 10);
}),
timeParts = time.split(':').map(function(part){
return parseInt(part, 10);
});
var expireDateTime = new Date(dateParts[0], dateParts[1]-1, dateParts[2], timeParts[0], timeParts[1], timeParts[2] );
}
else
{
var dateTime = value.split(' '),
date = dateTime[0],
time = dateTime[1],
dateParts = date.split('-').map(function(part){
return parseInt(part, 10);
}),
timeParts = time.split(':').map(function(part){
return parseInt(part, 10);
});
var expireDateTime = new Date(dateParts[0], dateParts[1]-1, dateParts[2], timeParts[0], timeParts[1], timeParts[2] );
expireDateTime.setDate(expireDateTime.getDate() + numDays);
}
var difference = expireDateTime.getTime() - currentDateTime.getTime();
var daysDifference, hoursDifference, minutesDifference;
daysDifference = Math.floor(difference/1000/60/60/24);
difference -= daysDifference*1000*60*60*24;
hoursDifference = Math.floor(difference/1000/60/60);
difference -= hoursDifference*1000*60*60;
minutesDifference = Math.floor(difference/1000/60);
difference -= minutesDifference*1000*60;
if (expireDateTime.getTime() < currentDateTime.getTime()) {
return '0m';
}
return daysDifference > 0
? daysDifference + 'd, ' + hoursDifference + 'h, ' + minutesDifference + 'm'
: hoursDifference + 'h, ' + minutesDifference + 'm';
},
calculateTimeLeftHours : function ( value, numDays )
{
var dateTime = value.split(' '),
date = dateTime[0],
time = dateTime[1],
dateParts = date.split('-').map(function(part){
return parseInt(part, 10);
}),
timeParts = time.split(':').map(function(part){
return parseInt(part, 10);
});
var timeObject = new Date();
var currentDateTime = new Date( timeObject.getTime() - (1000 * App.timeDiff) );
var expireDateTime = new Date(dateParts[0], dateParts[1]-1, dateParts[2], timeParts[0], timeParts[1], timeParts[2] );
var addSeconds = expireDateTime.setSeconds(expireDateTime.getSeconds() + numDays * 86400);
expireDateTime = new Date(expireDateTime .getSeconds() + addSeconds);
//console.log('expireDateTime2',expireDateTime2 ) ;
var difference = expireDateTime.getTime() - currentDateTime.getTime();
var daysDifference, hoursDifference, minutesDifference;
daysDifference = Math.floor(difference/1000/60/60/24);
difference -= daysDifference*1000*60*60*24;
hoursDifference = Math.floor(difference/1000/60/60);
difference -= hoursDifference*1000*60*60;
minutesDifference = Math.floor(difference/1000/60);
difference -= minutesDifference*1000*60;
if (expireDateTime.getTime() < currentDateTime.getTime()) {
return '0m';
}
return daysDifference > 0
? daysDifference + 'd, ' + hoursDifference + 'h, ' + minutesDifference + 'm'
: hoursDifference + 'h, ' + minutesDifference + 'm';
},
updateClock : function ()
{
var timeObject = new Date();
var currentTime = new Date( timeObject.getTime() - (1000 * App.timeDiff) );
var currentHours = currentTime.getHours ( );
var currentMinutes = currentTime.getMinutes ( );
var currentSeconds = currentTime.getSeconds ( );
currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;
currentHours = ( currentHours == 0 ) ? 12 : currentHours;
var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds;
$("#clock").html(currentTimeString);
$("#clockmobi").html(currentTimeString);
},
setCookie : function (name, value, days)
{
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
} else {
var expires = "";
}
document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";
},
getCookie : function (name, defaultValue)
{
var nameEQ = escape(name) + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1, c.length);
}
if (c.indexOf(nameEQ) == 0) {
return unescape(c.substring(nameEQ.length, c.length));
}
}
return undefined == defaultValue
? null
: defaultValue;
}
};
String.prototype.replaceAll = function(str1, str2, ignore)
{
return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2);
};
jQuery.validator.addMethod("notNull", function(value, element, params) {
return this.optional(element) || value != null;
}, "Please select a value."
);
jQuery.validator.addMethod("mobile", function(value, element, params) {
return this.optional(element) || value.match(/^[0-9]\d{8}$/) != null;
}, "Must be a valid mobile number."
);
jQuery.validator.addMethod("companyReg", function(value, element, params) {
return this.optional(element) || value.match(/^\d{4}\/\d{6}\/\d{2}$/) != null;
}, "Incorrect format."
);
$.validator.setDefaults({
ignore: [],
errorPlacement: function(error, element) {
if (element.hasClass('selectpicker')) {
var elem = $('button[data-id=' + element.attr("name") + ']');
elem.addClass('error');
error.insertAfter(elem);
} else {
error.insertAfter(element);
}
},
unhighlight: function(element, errorClass, validClass) {
if ($(element).hasClass('selectpicker')) {
$('button[data-id=' + $(element).attr("name") + ']').removeClass(errorClass).addClass(validClass);
} else {
$(element).removeClass(errorClass).addClass(validClass);
}
$(element.form).find("label[for=" + element.id + "]." + errorClass)
.remove();//.removeClass(errorClass);
}
});
})();
$.fn.setCursorPosition = function(pos) {
if ($(this).get(0).setSelectionRange) {
$(this).get(0).setSelectionRange(pos, pos);
} else if ($(this).get(0).createTextRange) {
var range = $(this).get(0).createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
};