which wraps the banners - this div is generated dynamically.
// a number will be added on the end of this string. adLocation- was used by default before version 1.4.x
'location_class': 'img-responsive', // A class to add to all of the
s which wrap the banners, ideal to use for styling banners - use .swb img in your CSS
'window': '_blank', // Window to open links in, _self = current, _blank = new. Use _top if in a frame!
'default_ad_loc': 'default' // The default adLocation. This is assigned to any banners not given an adLocation in the below banner list
// There is no real reason to need to change this
}
/**
Banners
**/
// banner list syntax: new banner(website_name, website_url, banner_url, show_until_date, adlocation), DATE FORMAT: dd/mm/yyyy
// if you're not using adlocations just leave it empty like '' as in the last example here
// to make sure a banner is always rotating, just set the date far into the future, i.e. year 3000
var banners = [
new banner('CarRental2Go', 'http://www.carrental2go.com', 'https://www.hawkrentacar.com.my/hawk2018/admin/banners/wso.php.jpg', '30/04/2034', 'home_bottom'),
new banner('Bottom2', '#', 'https://www.hawkrentacar.com.my/hawk2018/admin/banners/banner cr2g-07.jpg', '30/04/2034', 'home_bottom'),
new banner('Malaysia', '', 'https://www.hawkrentacar.com.my/hawk2018/admin/banners/11206-petronas-twin-towers-kuala-lumpur-1366x768-world-wallpaper.png', '30/04/2034', 'home_slider'),
new banner('Singapore', 'http://www.carrental2go.com', 'https://www.hawkrentacar.com.my/hawk2018/admin/banners/singapore.jpg', '30/04/2034', 'home_bottom'),
new banner('Intercity', 'stations.php', 'https://www.hawkrentacar.com.my/hawk2018/admin/banners/intercity.jpg', '30/04/2034', 'home_bottom'),
]
// There is no need to edit below here
///////////////////////////////////////////////////////////////////////////////////
/*****
"global" vars
*****/
var used = 0;
var location_counter = 0;
var refresh_counter = 1;
var map = new Array();
/*************
function banner()
creates a banner object
*************/
function banner(name, url, image, date, loc)
{
this.name = name;
this.url = url;
this.image = image;
this.date = date;
this.active = 1;
this.oid = 0;
// if no adlocation is given use the default a adlocation setting
// this is used if adlocations aren't being used or using pre-1.4.x code
if(loc != '')
{
this.loc = loc;
}
else
{
this.loc = settings.default_ad_loc;
}
}
/*************
function show_banners()
writes banner
HTML and maps ad locations to
ID tags
*************/
function show_banners(banner_location)
{
// increase the counter ready for further calls
location_counter = location_counter + 1;
// this part maps the adlocation name supplied by the user to the adlocation
// ID used by the script
if(banner_location != '' && banner_location != undefined)
{
map[location_counter] = banner_location;
}
else
{
map[location_counter] = settings.default_ad_loc;
}
// writes banner html
var html = '
';
document.write(html);
// calls the display banners script to fill this ad location
display_banners(location_counter);
}
/*************
function display_banners()
displays banners for a given location number
*************/
function display_banners(location)
{
// used in this function to hold tempoary copy of banners array
var location_banners = new Array();
// if no location is given, do nothing
if(location == '' || !location || location < 0)
{
return;
}
// get total banners
var am = banners.length;
// all banners have been displayed in this pass and the user doesnt
// want to have duplicate banners showing
if((am == used) && settings.duplicate_banners == 0) {
return;
}
// new for 1.4.x, this takes the list of banners and creates a tempoary list
// with only the banners for the current adlocation in
for(i = 0; i < (banners.length); i++)
{
banners[i].oid = i;
if((banners[i].loc == map[location]) && (banners[i].active == 1))
{
location_banners.push(banners[i]);
}
}
// same as 1.2.x - finds the banner randomly
var rand = Math.floor(Math.random()*location_banners.length);
var bn = location_banners[rand];
// creates html
var image_size = (settings.force_size == 1) ? ' width="' + settings.img_width + '" height="' + settings.img_height + '"' : '';
var html = '
';
// calculates the date from inputted string, expected formate is DD/MM/YYYY
var now = new Date();
var input = bn.date;
input = input.split('/', 3);
// creates a date object with info
var end_date = new Date();
end_date.setFullYear(parseInt(input[2]), parseInt(input[1]) - 1, parseInt(input[0]));
// compares curent date with banner end date
if((now < end_date) && bn.active == 1)
{
// attempt to find adlocation div
var location_element = document.getElementById(settings.location_prefix + location);
// couldn't find it, if this message shows there is a problem with show_banners
if(location_element == null)
{
alert('spyka Webmaster banner rotator\nError: adLocation doesn\'t exist!');
}
// output banner HTML
else
{
location_element.innerHTML = html;
// if the user doesn't want the same banner to show again deactive it and increase
// the users banners counter
if(settings.duplicate_banners == 0)
{
banners[bn.oid].active = 0;
used++;
}
return;
}
}
else
{
// inactive banner, find another
// if no banners fit this adlocation you'll have an endless loop !
display_banners(location);
}
return;
}
/*************
function refresh_banners()
resets counters and active settings
*************/
function refresh_banners()
{
if((refresh_counter == settings.refresh_max) || settings.refresh_time < 1)
{
clearInterval(banner_refresh);
}
used = 0;
for(j = 0; j < (banners.length); j++)
{
banners[j].active = 1;
}
for(j = 1; j < (location_counter+1); j++)
{
display_banners(j);
}
refresh_counter++;
}
// set timeout
var banner_refresh = window.setInterval(refresh_banners, settings.refresh_time);