var siteroot = (typeof(fullsiteroot) == "function") && (typeof(sitehost) == "function") ? fullsiteroot().replace(sitehost(), "") : "/";
var lang = location.href.indexOf("/en/") > - 1 ? "en" : "fr";

var openModal = function(el, title, contentPath, options){
	if(title == "") var title = el.title;
	var html;
	if (!$("modaldialog")) {
		html = document.createElement("div");
		document.body.appendChild(html);
		html = $(html);
		html.id = "modaldialog";
	}
	else html = $("modaldialog");
	html.innerHTML = "\
		<div class='hidden modal-container'>\
			<div class='modal-mask'>" +
				//@cc_on "<iframe frameborder='0' src='javascript:document.write(\"<html><body></body></html>\");document.close();'></iframe>" +
			"</div>\
			<div class='modal-content'>\
				<h1><a class='modal-closer' href='javascript:;'>" + (lang == "en" ? "Close" : "Fermer") + "</a><span class='modal-title'></span></h1>\
				<div class='modal-body'></div>\
			</div>\
		</div>\
	";
	var container = html.down("div.modal-container");
	var formToSubmit = options.form;
	var postBody = "";
	if (formToSubmit && formToSubmit.elements) {
		for (var i=0;i<formToSubmit.elements.length;i++) {
			postBody+=(postBody.length==0 ? "" : "&")+formToSubmit.elements[i].name+"="+escape(formToSubmit.elements[i].value);
		}
	}
	var method = postBody.length == 0 ? "GET" : "POST"
	new Ajax.Updater(html.select(".modal-body")[0], siteroot + contentPath, {method:method, postBody:postBody, evalScripts : true, onComplete : function() {
		container.removeClassName("hidden");
		html.down("span.modal-title").innerHTML = title + "&nbsp;";
		var body = html.down("div.modal-content");
		if (typeof(options.width) != "undefined") body.style.width = (parseInt(options.width) || 500) + "px";
		if (typeof(options.height) != "undefined") body.style.height = (parseInt(options.height) || 500) + "px";
		if (typeof(options.padding) != "undefined") $$("div.modal-body").invoke("setStyle", {padding: parseInt(options.padding) + "px"});
		var y = window.pageYOffset || document.documentElement.scrollTop;
		html.select(".modal-mask,.modal-mask iframe").invoke("setStyle", {
			height : document.documentElement.scrollHeight + document.documentElement.scrollTop + "px",
			width : document.body.offsetWidth + "px"
		});
		var scroll = document.body.scrollTop || document.documentElement.scrollTop;
		var centered = ((document.viewport.getHeight() / 2) - (body.offsetHeight / 2));
		html.select(".modal-content").invoke("setStyle", {
			top : (centered < 0 ? 20 : centered) + scroll + "px",
			left : ((document.viewport.getWidth() / 2) - (body.offsetWidth / 2)) + "px"
		});
		$$(".klick-popup-closer").each(function(close){
			close.observe("click", function(e){
				e.stop();
				$(this).up("div.modal-container").addClassName("hidden");
			});
		})
		$$(".klick-confirm-leaving").each(function(link) {
			link.observe("click", function(e) {
				//e.stop();
				$(this).up("div.modal-container").addClassName("hidden");
				this.href = el.href;
				//var newWindow = window.open(el.href, '_blank');
				//newWindow.focus();
			})
		})
	}});

	html.down("a.modal-closer").observe("click", function() {
		$(this.up(".modal-content")).down(".modal-body").innerHTML = "";
		$(this.up(".modal-container").parentNode).remove();
	});
}

Event.observe(window, "load", function()
{
	$$(".whatiswidget").each(function(el)
	{
		el.observe("click", function(e)
		{
			Event.stop(e)
			openModal(this, "What is a widget", "elements/widgets/champixquit/what")
		});
	});

	// add GA to links
	$$("a, area").each(function(el)
	{
		var href = el.href.toString().toLowerCase() || "";
		var text = el.innerText || el.textContent;
		var language = location.href.indexOf("/en/") > -1 ? "en" : "fr";

		if (href.startsWith("mailto:"))
			el.observe("click", function() { pageTracker._trackEvent("Mail To", "Mailto", href.substr(7)); });
		else if (href.startsWith("http"))
		{
			if (href.match(/^https?:\/\/(\w+(?:\.\w+)*)/)[1] != window.location.host.toLowerCase())
			{
				el.observe("click", function(e)
				{
					Event.stop(e);
					showPopup(siteroot + language + "/learn_more/_leaving/",
						{ title: language == "en" ? "Leaving Champix.com" : "Quitter Champix.com", url: href, linktext: text });
				});
			}
			else if (href.match(/\w+\.\w+$/))
			{
				var path = window.location.pathname;
				path += path.endsWith("/") ? "download/" : "/download/";
				el.observe("click", function() { pageTracker._trackPageview(path + href.split("/").last()); });
			}
		}
	})
});

var downloadWidget = function() {
	//location.href = "http://" + location.host + siteroot + "local/files/finalwidget_" + lang + ".zip"
	location.href = "http://" + location.host + siteroot + "local/files/download?filename=finalwidget_" + lang + ".zip"
}

var nav1 = function(){
	location.href = "http://" + location.host + siteroot + lang + "/quit_clicker/";
}
var nav2 = function(){
	location.href = "http://" + location.host + siteroot + lang + "/handy_helpers/";
}
var nav3 = function(){
	location.href = "http://" + location.host + siteroot + lang + "/temptation_tracker/";
}
var nav4 = function(){
	location.href = "http://" + location.host + siteroot + lang + "/support_network/";
}

var closeIt = function() {
	if ($("modaldialog")) {
		$("modaldialog").down(".modal-body").innerHTML = "";
		$("modaldialog").remove();
	}
}

var openAccordion = function(el) {
	$(el).up().up().select("h3").invoke("removeClassName", "expanded")
	$(el).up().up().select("div.section").invoke("addClassName", "hidden");
	$(el).up().addClassName("expanded").next().removeClassName("hidden");
}

var showPopup = function(url, options)
{
	options = options || {}
	var popup = $("popup")
	var modal = popup.down(".modal")
	var body = modal.down(".body");
	var mask = popup.down(".mask")
	var title = popup.down("h3")
	popup.removeClassName("hidden");
	var scrollTop = document.body.scrollTop || document.documentElement.scrollTop
	body.innerHTML = ""
	new Ajax.Updater(body, url, {
		evalScripts: true,
		onComplete: function()
		{
			title.innerHTML = options.title || "";
			var width = document.body.offsetWidth;
			var height = Math.max(document.body.offsetHeight + document.body.scrollHeight, document.documentElement.offsetHeight + document.documentElement.scrollHeight);
			var top = scrollTop;
			var left = Math.round((width - modal.offsetWidth) / 2);
			modal.setStyle({ top: top + "px", left: left + "px" });
			mask.setStyle({ width: width + "px", height: height + "px" });

			$$(".continue").each(function(el)
			{
				el.observe("click", function()
				{
					setTimeout(function() {pageTracker._trackEvent("Exit Links", options.linktext || "", options.url);}, 0)
					setTimeout(function() { open(options.url); }, 500);
					hidePopup();
				});
			});

			$$(".cancel").each(function(el) { el.observe("click", hidePopup); });
		}
	});
}
var showForgotPopup = function() {
	var language = location.href.indexOf("/en/") > -1 ? "en" : "fr"
	showPopup(siteroot + language + "/login/forgot_pass/",{title: language == "en" ? "Forgot your password?" : "Vous avez oubli&eacute; votre mot de passe?"});
}
var showPrivacyPopup = function() {
	var language = location.href.indexOf("/en/") > -1 ? "en" : "fr"
	showPopup(siteroot + language + "/privacy/_popup/",{title: language == "en" ? "Privacy statement" : "Politique de confidentialit&eacute;"});
}
var showDisclaimerPopup = function() {
	var language = location.href.indexOf("/en/") > -1 ? "en" : "fr"
	showPopup(siteroot + language + "/disclaimer/_popup/",{title: language == "en" ? "Disclaimer" : "Avis de non-responsabilit&eacute;"});
}
var showVideoPopup = function() {
	var language = location.href.indexOf("/en/") > -1 ? "en" : "fr"
	showPopup(siteroot + language + "/login/_video/", {title: language == "en" ? "I did it!" : "J'ai r&eacute;ussi!"});
	pageTracker._trackPageview(siteroot + language + "/login/video/" + (language == "en" ? "I_did_it!" : "J'ai_réussi!"));
}
var hidePopup = function() {
	$("popup").addClassName("hidden")
	$("popup").down(".body").innerHTML = ""
}

var showDemo = function(el) {
	if (deconcept.SWFObjectUtil.getPlayerVersion().major) openModal(el, 'Demo', lang + '/demo/', {width:1003, height:630, padding:0})
	else location.href = "Champix_Demo_" + lang + ".mp4";
}
