﻿/* Site specific
---------------------------- */
var SherWeb = SherWeb || {
	Context: {
		app_path: '',
		culture: 'fr'
	},
	Utils: {
		writeFlash: function(id, filepath, args) {

		}
	},
	BannerManager: {
		banner: null,
		timer: 0,
		_startRotation: function() {
			this.timer = setInterval('SherWeb.BannerManager.banner.scrollNext()', 10000);
		},
		_stopRotation: function() {
			clearInterval(this.timer);
			this.timer = 0;
		},
		init: function() {
			var banners = $('#banners');
			if (banners.length > 0) {
				this.banner = banners.bannerManager({
					selectedClass: 'selected',
					normalClass: 'dot',
					startPauseButton: false,
					pause: function() { SherWeb.BannerManager._stopRotation(); },
					start: function() { SherWeb.BannerManager._startRotation(); }
				}).get(0);
				if (SherWeb.BannerManager.banner.itemCount > 1)
					this._startRotation();
			}
		}
	},
	WizardManager: {
		init: function(id) {
			var w = $('#' + id);
			if (w.length > 0) {
				$.ajax({ url: SherWeb.Context.app_path + '/WizardCMS.aspx?rnd=' + Math.random(),
					success: function(content) {
						var w1 = new SherWeb.Wizard(id, SherWeb.Context.culture);
						w1.Initialize(content);
					},
					dataType: 'json'
				});
			}
		}
	}
};

SherWeb.CustomPlan = SherWeb.CustomPlan || {
	url: '',
	ajax: function(args) {
		$.ajax({
			url: this.url,
			type: 'GET',
			data: args,
			contentType: "application/json; charset=utf-8",
			success: function(data, textStatus, xhr) {
				var prices = $.parseJSON(data.d);
				alert("SetupFee = " + prices.SetupFee + ", " + "RecurFee = " + prices.RecurFee);
			},
			error: function(xhr, textStatus, error) {

			}
		});
	},
	update: function(sender, args) {
		this.ajax(args);
	},
	save: function(sender, args) {
		this.ajax(args);
	},
	remove: function(sender, args) {
		this.ajax(args);
	}
};

/* 
---------------------------- */
(function($) {
	$.fn.bannerManager = function(args) {
		var defaults = {
			culture: 'en',
			animationSpeed: 800,
			fadeOutSpeed: 800,
			width: -1,
			normalClass: '',
			selectedClass: '',
			linksMarkup: '<a></a>',
			controlsMarkup: '<div></div>',
			start: null,
			pause: null,
			startPauseButton: false
		};

		var options = $.extend(defaults, args);

		return this.each(function(i) {
			var dom = this;
			var obj = $(this);

			this.isPaused = false;
			this.itemCount = -1;
			this.currentIndex = 0;
			this.currentVirtualIndex = 0;
			this.controlBar = null;
			this.pause = function(sender) {
				if (sender == undefined)
					sender = $('.start-pause', obj).eq(0);
				sender.text(options.culture == 'en' ? 'Start' : 'Démarrer');
				this.isPaused = true;
			};
			this.start = function(sender) {
				if (sender == undefined)
					sender = $('.start-pause:eq', obj).eq(0);
				sender.text('Pause');
				this.isPaused = false;
			};
			this.scrollNext = function() { this.scrollTo(this.currentIndex + 1); };
			this.scrollPrev = function() { this.scrollTo(this.currentIndex - 1 > -1 ? this.currentIndex - 1 : this.itemCount - 1); };
			this.show = function(target) {
				dom.currentVirtualIndex = target.data('virtual_index');
				dom.currentIndex = dom.currentVirtualIndex;
				/* mettre l'indicateur de la bannière courante selected */
				$('a', dom.controlBar).removeClass(options.selectedClass).eq(dom.currentVirtualIndex).addClass(options.selectedClass);
				target.fadeOut(0).css({ 'left': '0px', 'z-index': 3 }).fadeIn(options.fadeOutSpeed, function() {
					$('.banner', obj).each(function() {
						var banner = $(this);
						if ($('.banner', obj).index($(this)) != dom.currentVirtualIndex) {
							banner.css('z-index', 1);
						} else {
							banner.css('z-index', 2);
						}
					});
				});
			};
			this.scrollTo = function(i) {

				dom.currentVirtualIndex = (typeof (i) == 'object')
					? i.data('virtual_index')
					: i >= (dom.itemCount) ? (i % dom.itemCount) : i;

				var target = (typeof (i) == 'object')
					? i : $('.banner:eq(' + dom.currentVirtualIndex + ')', this);

				dom.currentIndex = (typeof (i) == 'object')
					? i.data('virtual_index')
					: i;

				if (target.length > 0) {
					$('a', dom.controlBar).removeClass(options.selectedClass).eq(dom.currentVirtualIndex).addClass(options.selectedClass);
					target.fadeOut(0).css({ 'left': '0px', 'z-index': 3 }).fadeIn(options.fadeOutSpeed, function() {
						$('.banner', obj).each(function() {
							var banner = $(this);
							if ($('.banner', obj).index($(this)) != dom.currentVirtualIndex) {
								banner.css('z-index', 1);
							} else {
								banner.css('z-index', 2);
							}
						});
					});
				}
			};

			dom.controlBar = $(options.controlsMarkup);
			dom.controlBar.css({ 'position': 'absolute', 'z-index': 5 }).addClass('control-bar');

			var banners = $('.banner', obj);
			this.itemCount = banners.length;
			obj.data('banners', {});
			if (this.itemCount > 1) {
				banners.each(function(i) {
					var b = $(this);
					b.data('virtual_index', i);

					var d = obj.data('banners');
					d[i] = b;
					obj.data('banners', d);

					if (i == 0 && options.width < 0)
						options.width = $(this).width();

					$(options.linksMarkup)
					.attr({ 'href': 'javascript:;' })
					.text(i)
					.addClass(options.normalClass + (i == 0 ? ' ' + options.selectedClass : ''))
					.click(function() {
						if ($('.banner:animated', obj).length <= 0 && dom.currentVirtualIndex != i) {
							options.pause(); dom.pause();
							dom.show(obj.data('banners')[i]);
						}
					})
					.hover(function() { $(this).addClass(options.selectedClass); },
						   function() { if (dom.currentVirtualIndex != i) $(this).removeClass(options.selectedClass); })
					.appendTo(dom.controlBar);
				});

				if (options.startPauseButton) {
					$('<a class="start-pause"></a>')
						.attr({ 'href': 'javascript:;' })
						.text('Pause')
						.click(function() {
							if (!dom.isPaused) {
								options.pause();
								dom.pause($(this));
							} else {
								options.start();
								dom.start($(this));
							}
						})
						.appendTo(dom.controlBar);
				}
			}

			obj.prepend(dom.controlBar);

		});
	};
})(jQuery);

(function($) {
	$.fn.autoclear = function() {
		return this.each(function() {
			var o = $(this);
			o.data('defaultText', o.val());
		}).focus(function() {
			var o = $(this);
			if (o.val() == o.data('defaultText'))
				o.val('');
		}).blur(function() {
			var o = $(this);
			if (o.val() == '')
				o.val(o.data('defaultText'));
		});
	};
})(jQuery);

$(document).ready(function () {

    var $dialog = $("#chat-table-container").dialog({
        modal: true,
        draggable: false,
        resizable: false,
        height: 250,
        width: 509,
        autoOpen: false,
        title: '<h2>' + $("#chat-title").html() + '</h2>'
    });

    function handleClick() {
        $dialog.dialog('open');
        $("#chat-table-container").css("height", "209px");
        //For IE
        $(".chat-offline").css("text-align", "center");
        $(".chat-offline").css("text-align", "left");
    }


    $("#ctl00_SherwebHeader_UC_chatImage:not(.offline)").click(function (e) {
        handleClick();
    });

    var mainChatImage = $("#ctl00_SherwebHeader_UC_chatImage");
    var allOtherChatImages = $(".sales-chatButton");

    if (!mainChatImage.hasClass("sales-offline")) {
        allOtherChatImages.attr('href', mainChatImage.attr('UrlToSales'));
    }
    else {
        allOtherChatImages.addClass("offline");
        allOtherChatImages.hide();
    }


    function closeChatInvite() {
        $dialog.dialog('close');
    }

    $("#ctl00_SherwebFooter_UC_linkToSalesChat").click(function () { closeChatInvite() });
    $("#ctl00_SherwebFooter_UC_linkToSupportChat").click(function () { closeChatInvite() });
    $("#ctl00_SherwebFooter_UC_ContactUsLink").click(function () { closeChatInvite() });
    $("#ctl00_SherwebFooter_UC_PleaseCallUsImageSupport").click(function () { closeChatInvite() });
});

$(document).ready(function () {
    $(".widget-top-slider").click(function () {
        $(".widget-top-slider").css("display", "none");
        $(".widget-bottom-slider").css("display", "block");
    });
});
