/**
* @file
* SimpleAds JS Helper.
*/
(function ($) {
Drupal.behaviors.simpleads = {
attach: function(context) {
var ad_type = $('#edit-field-ad-type select[id^=edit-field-ad-type]').val();
var ad_text_format = $('#field-ad-text-add-more-wrapper select[id^=edit-field-ad-text]').val();
_simpelads_switch_form(ad_type, ad_text_format);
$('#edit-field-ad-type select[id^=edit-field-ad-type]').change(function(){
ad_type = $(this).val();
_simpelads_switch_form(ad_type, ad_text_format);
});
_simpelads_switch_form(ad_type, ad_text_format);
$('#field-ad-text-add-more-wrapper select[id^=edit-field-ad-text]').change(function(){
ad_text_format = $(this).val();
_simpelads_switch_form(ad_type, ad_text_format);
});
var ad_block_limit = $('form#block-admin-configure #edit-ads-limit').val();
var ad_block_rotation_type = $('form#block-admin-configure #edit-ads-rotation-type').val();
_simpelads_switch_block_settings(ad_block_limit, false);
$('form#block-admin-configure #edit-ads-limit').change(function(){
_simpelads_switch_block_settings($(this).val(), false);
});
_simpelads_switch_block_settings(ad_block_rotation_type, 'delay');
$('form#block-admin-configure #edit-ads-rotation-type').change(function(){
_simpelads_switch_block_settings($(this).val(), 'delay');
});
}
};
}(jQuery));
/**
* Show/hide form elements.
*/
function _simpelads_switch_form(ad_type, p1) {
(function ($) {
el_image = $('form#simpleads-node-form #edit-field-ad-image');
el_url = $('form#simpleads-node-form #edit-field-ad-url');
el_url_target = $('form#simpleads-node-form #edit-field-ad-url-taget');
el_flash = $('form#simpleads-node-form #edit-field-ad-flash');
el_text = $('form#simpleads-node-form #edit-field-ad-text');
if (ad_type == 'graphic') {
el_image.show();
el_url.show();
el_url_target.show();
el_flash.hide();
el_text.hide();
}
else if (ad_type == 'text') {
el_text.show();
el_image.hide();
el_url.hide();
el_flash.hide();
if (p1 == 'plain_text') {
el_url.show();
el_url_target.show();
}
else {
el_url.hide();
el_url_target.hide();
}
}
else if (ad_type == 'flash') {
el_url.show();
el_url_target.show();
el_flash.show();
el_image.hide();
el_text.hide();
}
}(jQuery));
}
/**
* Show/hide block settings.
*/
function _simpelads_switch_block_settings(ad_setting_value, setting) {
(function ($) {
if (setting == false) {
ad_rotation = $('form#block-admin-configure #ads_rotation_settings');
if (ad_setting_value != 1)
ad_rotation.show();
else
ad_rotation.hide();
}
else {
if (setting == 'delay') {
ad_rotation_delay = $('form#block-admin-configure #ads_rotation_settings .form-item-ads-rotation-delay');
if (ad_setting_value == 0)
ad_rotation_delay.hide();
else
ad_rotation_delay.show();
}
}
}(jQuery));
}
/**
* Ajax call for Ads.
* elem - Ad container
* tid - term id
* num - numer of ads to display
* img_loader - image (ad load indicator), should be HTML tag
*/
function _simpelads_load(elem, tid, num, img_loader) {
(function ($) {
basepath = Drupal.settings.basePath;
if (tid > 0 && num > 0) {
if (img_loader != '')
$(elem)(img_loader);
$.get(basepath + '?q=simpleads/load/' + tid + '/' + num, function (data) {
$(elem)(data);
});
}
}(jQuery));
}
/**
* jQuery Plugin.
* SimpleAds rotator.
*/
(function ($) {
$.simpleads_globals = {
pos: []
};
$.simpleads_rotator = function(element, options) {
this.options = {};
element.data('simpleads_rotator', this);
this.init = function (element, options) {
this.options = $.extend({}, $.simpleads_rotator.defaultOptions, options);
$.simpleads_globals.pos[options.delta] = 0;
simpleads_start(element, this.options);
};
this.init(element, options);
};
$.fn.simpleads_rotator = function(options) {
return this.each(function(){
(new $.simpleads_rotator($(this), options));
});
}
function run_rotation(element, options) {
elem_id = element.attr('id');
total_ads = $('#' + elem_id + " > div").size();
if ($.simpleads_globals.pos[options.delta] == (total_ads - 1)) {
$.simpleads_globals.pos[options.delta] = 0;
}
else {
$.simpleads_globals.pos[options.delta]++;
}
$('#' + elem_id + " div").hide();
var simpleads_elem = $('#' + elem_id + " > div:eq(" + $.simpleads_globals.pos[options.delta] + ")");
if (options.rotation_type == 1) {
simpleads_elem.show();
}
else if (options.rotation_type == 2) {
simpleads_elem.fadeIn('fast');
}
else {
simpleads_elem.show();
}
return false;
}
function simpleads_start(element, options) {
run_rotation(element, options);
setInterval(function(){run_rotation(element, options);}, options.delay);
}
$.simpleads_rotator.defaultOptions = {
rotation_type: 1,
delay: 5,
delta: 0
};
}(jQuery));