AjaxLoader = {
_msg: '',
_errorUrl: "~/Error",
showIndicator: function (selector, message, culture) {
var self = this;
if (!message) {
message = this._msg;
}
if (!self._isBlocking) {
var item = getLoaderText(culture);
var blockOption = {
/* message: '<img style="vertical-align: middle; margin: 10px;" src="/Modules/KHI.OTA.OnlineTravelAgent/Images/ajax-loader.gif"><span style="white-space:nowrap;margin-right:5px;">' + 'test test' + '</span>',*/
message:
'<div id="popup_box_gi" style="width:400px;max-width:600px;background:#FFF;border:4px #DA2940 solid;-moz-border-radius: 5px;-webkit-border-radius:5px;border-radius:5px;"> <div id="gi_popup_header" style="height:60px;background:#fff;padding:3px;"> <table id="gi_popup_table" width="100%" border="0" cellspacing="0" cellpadding="0" style="font-size:12px;font-family:arial;color:#828282;"> <tr> <td width="17%"><img src="/Modules/KHI.OTA.OnlineTravelAgent/Images/ajax-loader.gif" /></td> <td width="83%" style="vertical-align:middle;"> <span id="gi_popup_title" style="font-family:arial;color:#737373;font-size:16px;font-weight:bold;display:block;"><span>' + item[0][2] + '</span></td> </tr> </table> </div> <div id="gi_popup_body" style="height:auto;background:#fff;padding:3px;background:#F6F6F6;"> <table id="gi_popup_table" width="100%" border="0" cellspacing="3" cellpadding="0" style="font-size:12px;font-family:arial;color:#828282;vertical-align:text-top;"> <tr style="vertical-align:text-top;"> <td width="40%" align="center" valign="top"><img src="' + item[0][1] + '" width="115" height="103" /></td> <td width="60%" valign="top" align="center" style="vertical-align:middle;"><strong style="font-size:14px;">' + item[0][0] + '</strong></td> </tr> <tr> <td> </td> </tr> </table> </div> </div>',
//'<div style="width:400px;height:300px;background:url(/Modules/KHI.OTA.OnlineTravelAgent/Images/bg.jpg) no-repeat;margin-left:auto;margin-right:auto;"><div style="padding-top:32px;padding-left:10px;"><img style="float:left;" src="/Modules/KHI.OTA.OnlineTravelAgent/Images/ajax-loader.gif" /><span style="float:left;vertical-align:middle;text-align:center;font-size:small;width:64%;">' + getLoaderText(culture) + '</span></div></div>',
css: {
/*border: 'none',
padding: '5px',
width: 'auto',
backgroundColor: '#000',
cursor: 'default'*/
'border-top-left-radius': '10px',
'border-top-right-radius': '10px',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
left: '40%',
top: '30%',
border: 'none',
'font-size': '14px',
color: '#222222',
'text-shadow': '0 1px 1px #fff',
padding: '0',
textAlign: 'center',
/*
'border-bottom':'1px solid #D3DDE2',
'border-right': '1px dashed #D3DDE2',*/
/*opacity: .9,*/
minWidth: '400px',
maxWidth:'600px',
width: '400px',
height: '183px',
background: '#feffff', /* Old browsers */
background: '- moz - linear-gradient(top, #feffff 0%, #e6f1f7 100%)', /* FF3.6+ */
background: '-webkit-gradient(linear, left top, left bottom, color-stop(0%,#feffff), color-stop(100%,#e6f1f7))', /* Chrome,Safari4+ */
background: '-webkit-linear-gradient(top, #feffff 0%,#e6f1f7 100%)', /* Chrome10+,Safari5.1+ */
background: '-o-linear-gradient(top, #feffff 0%,#e6f1f7 100%)', /* Opera 11.10+ */
background: '-ms-linear-gradient(top, #feffff 0%,#e6f1f7 100%)', /* IE10+ */
background: 'linear-gradient(top, #feffff 0%,#e6f1f7 100%)', /* W3C */
filter: 'progid:DXImageTransform.Microsoft.gradient( startColorstr="#feffff", endColorstr="#e6f1f7",GradientType=0 )' /* IE6-9 */
},
/*overlayCSS: { backgroundColor: '#ffffff', opacity: 0, cursor: 'default' },*/
baseZ: 2000
};
if (selector) {
/* $(selector).block(blockOption);*/
$(document).ajaxStop($.unblockUI);
$.blockUI(blockOption);
}
}
},
hideIndicator: function (selector) {
var self = this;
if (selector) {
$(selector).unblock();
}
},
// Register option for specific url where option is {url, selector, message}.
_options: [],
init: function (options) {
for (var i = 0; i < options.length; i++) {
this._options.push(options[i]);
}
},
_getOption: function (url) {
var option = null;
for (var i = 0; i < this._options.length; i++) {
var opt = this._options[i];
switch (opt.Operator) {
case 1: // StartWith
if (url.toLowerCase().indexOf(opt.Url) == 0) {
option = opt;
break;
}
break;
case 0:
default: // 0 - Equal
if (url.toLowerCase() == opt.Url) {
option = opt;
break;
}
break;
}
}
return option;
},
toggleLoading: function (url, visible) {
var opt = this._getOption(url);
var langCulture = url.split('/')[1];
if (opt != null) {
var $elms = $(opt.Selector);
if ($elms.length > 0) {
if (visible) {
this.showIndicator($elms, null, langCulture);
}
else {
if (!opt.IgnoreHideIndicator) {
this.hideIndicator($elms);
}
}
}
}
}
};
/*Initialize Ajax Request without cache*/
$.ajaxSetup({
cache: false,
error: function () {
window.location.assign(AjaxLoader._errorUrl);
},
beforeSend: function (xhr, arg) {
AjaxLoader.toggleLoading(arg.url, true);
},
complete: function (xhr, statusCode) {
AjaxLoader.toggleLoading(this.url, false);
}
});
/* Loader Text */
function getLoaderText(cultureSetting) {
var textList = new Array();
var imageList = new Array();
var waitTextMain = "";
if (cultureSetting == "en") {
//English culture
waitTextMain = "Please wait a moment ......";
//text
textList[0] = "Easy. Fast. Instant. Safe.</br>Diverse payment options.</br>Customer Service:</br>(+62) 021-29295757</br>";
//image
imageList[0] = "/Modules/KHI.OTA.OnlineTravelAgent/Images/LoaderImage/bb.png";
} else {
//Indonesia culture
waitTextMain = "Please wait a moment ......";
textList[0] = "Easy. Fast. Instant. Safe.</br>Diverse payment options.</br>Customer Service:</br>(+62) 021-29295757</br>";
//image
imageList[0] = "/Modules/KHI.OTA.OnlineTravelAgent/Images/LoaderImage/bb.png";
}
var randomNumber = Math.floor((Math.random() * textList.length));
var items = [[textList[randomNumber], imageList[randomNumber], waitTextMain]];
return items;
}