//smartsite site root: equivalent to ~/
var siteroot = (typeof(fullsiteroot) == "function") && (typeof(sitehost) == "function") ? fullsiteroot().replace(sitehost(), "") : "/";
//language
var lang = location.href.indexOf("/en/") > - 1 ? "en" : "fr";
//fixes double slash in URLs
var normalizePath = function(string) {return string.replace(/(\/+)|\\+/g, "/");}
//escapes <, > & and " into corresponding html entities
var escapeHTML = function(string) {return string.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");}
//rounds a number to two decimals places. Returns a string
var toCurrency = function(number) {return number.toFixed(2);}
//IE background image cache script
//@cc_on document.execCommand("BackgroundImageCache", false, true);

var callFromFlashLeaving;
var callFromFlashPopup;

Event.observe(window, "load", function() {
	//generic
	var createPopup = function(urlFn, titleFn, pluginFn, creationFn, bindFn) {
		return function(element) {
			var popup = creationFn(function() {
				var popup = document.createElement("div");
				document.body.appendChild(popup);
				popup = $(popup);
				popup.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-body'>\
							<h1><a class='modal-closer' href='javascript:;'>CLOSE</a><span class='modal-title'></span></h1>\
							<div class='modal-content'></div>\
						</div>\
					</div>\
				";
				return popup;
			})
			var container = popup.down("div.modal-container");
			var title = popup.down("span.modal-title");
			var body = popup.down("div.modal-content");
			var y = window.pageYOffset || document.documentElement.scrollTop;
			
			bindFn(element, function() {
				new Ajax.Updater(body, urlFn(element), {method : "GET", evalScripts : true, onComplete : function() {
					title.innerHTML = titleFn(element) + "&nbsp;";
					container.removeClassName("hidden");
					popup.select(".modal-mask").invoke("setStyle", {
						height : document.documentElement.scrollHeight + document.documentElement.scrollTop + 40 + "px",
						width : document.body.offsetWidth + "px"
					});
					var scroll = document.body.scrollTop || document.documentElement.scrollTop;
					var top = (document.documentElement.scrollTop || document.body.scrollTop) + 20;
					var centered = ((document.viewport.getHeight() / 2) - (body.offsetHeight / 2));
					var width;
					popup.select(".klick-leaving-container").each(function(e){
						width = e.offsetWidth + 40;
					})
					popup.select(".modal-body").invoke("setStyle", {
						top : (centered < 0 ? top : centered) + scroll + "px",
						left : ((document.viewport.getWidth() / 2) - (width / 2)) + "px",
						width : width + "px"
					});
					$$(".klick-popup-closer").each(function(el){
						el.observe("click", function(e){
							e.stop();
							$(this).up("div.modal-container").addClassName("hidden");
						});								
					})
					pluginFn(element);					
				}});				
				popup.down("a.modal-closer").observe("click", function() {
					container.addClassName("hidden");
				});
			})			
		}
	}
	$$(".klick-popup").each(createPopup(
		function(element) {return element.href;},
		function(element) {return element.title;},
		function(element) {return "";},
		function(fn) {return fn();},
		function(element, callback) {
			element.observe("click", function(e) {
				e.stop();
				callback();
			})
		}		
	))
	
	$$("a[href^='http']").each(createPopup(
		function(element) {return "leaving.html";},
		function(element) {return element.title;},
		function(element) {
			$$(".klick-confirm-leaving").each(function(link) {
				link.observe("click", function(e) {
					e.stop();
					$(this).up("div.modal-container").addClassName("hidden");
					var newWindow = window.open(element.href, '_blank');
					newWindow.focus();
				})
			})
		},
		function(fn) {return fn();},
		function(element, callback) {
			element.observe("click", function(e) {
				e.stop();
				callback();
			})
		}		
	))	
	var cache = {};
	callFromFlashLeaving = function(outsidelink) {
		var url = "leaving.html";
		createPopup(
			function(element) {return url},
			function(element) {return "You are leaving..."},
			function(element) {
				$$(".klick-confirm-leaving").each(function(link) {
					link.observe("click", function(e) {
						e.stop();
						$(this).up("div.modal-container").addClassName("hidden");
						var newWindow = window.open(outsidelink, '_blank');
						newWindow.focus();
					})
				})
			},
			function(fn) {
				if (!cache[url]) {
					cache[url] = fn();
				}
				return cache[url];
			},
			function(element, fn) {fn()}
		)(null);
	}
	
	callFromFlashPopup = function(url, title) {
		var url = normalizePath(siteroot + url)
		createPopup(
			function(element) {return url},
			function(element) {return title},
			function(element) {return ""},
			function(fn) {
				if (!cache[url]) {
					cache[url] = fn();
				}
				return cache[url];
			},
			function(element, fn) {fn()}
		)(null);
	}	
});

var openform = function(el) {
	if($('trialincluded').checked) $(el).style.display = 'block';
	else $(el).style.display = 'none';
}

var fda = function() {callFromFlashLeaving("http://www.fda.gov/medwatch/");}