function modulePromo() {
	var $canvas = $(".module-promo");
	if (!$canvas.length) {
		return;
	}
	// set up
	$canvas.data("conf", confData);
	$canvas.data("current", 0);
	var $pager = $canvas.next("div.pager");
	$canvas.data("pager", $pager.length ? $pager : null);
	
	var promo = function(){
		this.$canvas = $canvas;
		this.$pager = $pager; 
		
		this._getCurrentIndex = function(){
			return parseInt(this.$canvas.data("current"), 10);
		};
		this._getCurrentItem = function(){
			this.item = this.$canvas.data("conf").images[this._getCurrentIndex()];
		};
		
		this._getAltText = function(){
			return this.item.altText;
		};
		this._getSrc = function(){
			return this.item.image;
		};
		
		this._setAutoChange = function(bState){
			confData.autoChange = bState;
			if (!bState) {
				clearTimeout(this.timeout);
			}
		};
		
		var t = this;
		this._prevItem = function(){
			if (t !== this) {
				// click event
				t._setAutoChange(false);
			}
			var index = t._getCurrentIndex();
			index--;
			if (index < 0) {
				index = t.$canvas.data("conf").images.length - 1;
			}
			t._setCurrent(index);
		};
		this._nextItem = function(){
			if (t !== this) {
				// click event
				t._setAutoChange(false);
			}
			var index = t._getCurrentIndex();
			index++;
			if (index >= t.$canvas.data("conf").images.length) {
				index = 0;
			}
			t._setCurrent(index);
		};
		this._setCurrent = function(index) {
			if (undefined !== index) {
				this.$canvas.data("current", index);
			}
			this._getCurrentItem();
			var img = "<img alt=\"" + this._getAltText() + "\" src=\"" + this._getSrc() + "\" \/>";
			this.$canvas.html(img);
			this._updatePager();
			this._invokeAutoChange();
		};
		
		this._invokeAutoChange = function() {
			if (!confData.autoChange) {
				return;
			}
			var speed = this.$canvas.data("conf").autoChangeSpeed;
			if (isNaN(speed) || speed < 50) {
				speed = 5000;
			}
			this.timeout = setTimeout(this._nextItem, speed);
		};
		
		this._updatePager = function() {
			if (!this.$pager) {
				return;
			}
			var current = this._getCurrentIndex() + 1;
			var total = this.$canvas.data("conf").images.length;
			this.$pagerIndicator.html(current + "/" + total);
		}
		
		this._openLink = function(){
			var target = t.item.linkTarget;
			var url = t.item.hyperlink.replace(/&amp;/g, "&");
			//console.debug("openLink:", t.item.hyperlink, "window:", t.item.linkTarget);
			if (undefined != target && target !== "_self") {
				var w = window.open(url);
				w.focus();
			} else {
				location = url;
			}
		};
		$canvas.click(this._openLink);
		
		if (this.$pager) {
			$("a.prev", $pager).click(this._prevItem);
			$("a.next", $pager).click(this._nextItem);
			this.$pagerIndicator = $("p", $pager);
		}
		
		this._setCurrent();
	}();
}



function initModules() {
	modulePromo();
}



function initPopupLayers() {
	$.blockUI.defaults.css = {};
	$.blockUI.defaults.overlayCSS.opacity = 0.75;
	
	var popupLayerContent = "";
	//popupLayerContent += "<a href=\"prev.html\" class=\"prev-button\"><\/a>";
	popupLayerContent += "<a href=\"" + location + "\" class=\"close-popup-layer\" title=\"Close\">Close<\/a>";
	popupLayerContent += "<div class=\"popupContent\">${content}<\/div>";
	//popupLayerContent += "<a href=\"next.html\" class=\"next-button\"><\/a>";
	
	var socialTools = $('<p>').append( $(".social-tools").eq(0).clone() ).html();
	popupLayerContent += socialTools;
	
	var ajaxLoadingClassName = "ajax-loading";
	$("a.popup-layer").click(function(evt){
		var a = evt.currentTarget;
		
		// $.blockUI({message:"<div class='loader'><\/div>"});

		$.get(a.href, function(content){
			
			$.blockUI({message:"<div class='loader'><\/div>"});
			
			$.blockUI({
				centerY: true,
				message : popupLayerContent.replace("${content}", content)
			});
		});
		return false;
	});
	$(".close-popup-layer").live("click", function(evt){
		$.unblockUI();
		return false;
	});
	$(document).keyup(function(evt){
		if (27 == evt.keyCode) {
			$.unblockUI();
		}
	});
}



function initCufon() {
	if (document.all && /MSIE 6\./.test(navigator.appVersion)) {
		return false;
	}
	Cufon.replace("h2");
	$("#nav ul").css({"margin-top" : -15});
	$("#nav li a").css({"font-size": 25, "line-height" : "50px"});
	Cufon.replace("#nav li a");
	Cufon.replace("#what-is-digicomics");
}



function fixHeight() {
	alert("fixHeight - I am disabled");return false;
	var viewportHeight = $(window).height();
	var bodyHeight = $("#wrapper").height();
	if (bodyHeight >= viewportHeight) {
		return;
	}
	$("#content").height(viewportHeight - 181 - 260);
}

function initBookmark() {

	if (window.sidebar) {
		// For Mozilla Firefox Bookmark
	} else if( (window.external || document.all) && navigator.userAgent.toLowerCase().indexOf('chrome') < -1) { // but not Chrome
		// For IE Favorite
	} else if(window.opera) {
		// For Opera Browsers
	} else {
		$("#bookmarkPage").hide();
	}
	$("a.bookmark").live("click", function(e){
		var bookmarkUrl = this.href;
		var bookmarkTitle = this.title;
	 
		if (window.sidebar) { // For Mozilla Firefox Bookmark
			e.preventDefault();
			window.sidebar.addPanel(bookmarkTitle, bookmarkUrl,"");
		} else if( window.external || document.all) { // For IE Favorite
			e.preventDefault();
			window.external.AddFavorite( bookmarkUrl, bookmarkTitle);
		} else if(window.opera) { // For Opera Browsers
			$("a.bookmark").attr("href",bookmarkUrl);
			$("a.bookmark").attr("title",bookmarkTitle);
			$("a.bookmark").attr("rel","sidebar");
		}
	});
}

$(function(){
	initCufon();
	//fixHeight();
	initPopupLayers();
	initModules();
	initBookmark();
	dateGuide();
});

function selectLocale(url) {
    top.location.href = url;
    return true;
}

function dateGuide() {
	$("#release-date").focus(function () {
		$(this).attr('value', '');
	});
}
