
//compact version of behaviour, using Ext.DomQuery as css query engine
//requires prototype 1.6 - ~/administration/layouts/javascript/1_6
//usage: see below
var Behaviour = {
	//param: Object sheet = {cssRule : callback}
	//	where cssRule is a string and callback is a function that passes a DOM element as its parameter and returns null, i.e. void callback(DOMElement element)
	register : function(sheet) {Behaviour.list.push(sheet);},
	//call apply after ajaxing stuff if you want behaviour rules to apply to ajaxed elements
	apply : function() {
		for (h = 0; sheet = Behaviour.list[h]; h++) {
			for (selector in sheet) {
				list = $$(selector);
				if (!list) continue;
				for (i = 0; element = list[i]; i++) sheet[selector](element);
			}
		}
	},
	//private
	list : new Array()
}

var gotoViewAssessment = function() {
	$("assessmentTitle", "printbutton").invoke("removeClassName", "hidden")
	$("regularTitle").addClassName("hidden");
	$("customizemenuitem").removeClassName("selected")
	$("assessmentmenuitem").addClassName("selected")
}
//behaviours
Event.observe(window, "load", function() {
	var tabs = [];
	Behaviour.register({
		//usage:
		//	<ul class="tabs">
		//		<li class="selected"><a href="#body1">Tab 1</a></li>
		//		<li><a href="#body2">Tab 1</a></li>
		//	</ul>
		//	<div id="body1">Body for tab 1</div>
		//	<div id="body2" class="hidden">Body for tab 2</div>
		"div.customtab a,div.viewtab a" : function() {
			return function(element) {
				var index = element.href.indexOf("#") + 1;
				if (index) {
					var body = document.getElementById(element.href.substring(index));
					if (body) {
						element.href = "javascript:;";
						tabs.push({tab : element.parentNode, body : body});
						Event.observe(element, "click", function() {
							for (var tab, i = 0; tab = tabs[i]; i++) {
								Element.removeClassName(tab.tab, "selectedcustomtab");
								Element.addClassName(tab.body, "hidden");
							}
							Element.addClassName(element.parentNode, "selectedcustomtab");
							Element.removeClassName(body, "hidden");
							if (this.id == "assessmenttab") gotoViewAssessment();
							else {
								$("assessmentTitle", "printbutton").invoke("addClassName", "hidden")
								$("regularTitle").removeClassName("hidden");
								$("customizemenuitem").addClassName("selected")
								$("assessmentmenuitem").removeClassName("selected")
							}
						})
					}
				}
			}
		}(),
		"#assessmentmenuitem a,.viewassessment a" : function(element) {
			Event.observe(element, "click", function(e) {
				Event.stop(e);
				if (!$(this).hasClassName("disabled")) {
					var index = element.href.indexOf("#") + 1;
					var body = document.getElementById(element.href.substring(index));
					gotoViewAssessment();
					var currentTab = $("assessmenttab").parentNode;
					for (var tab, i = 0; tab = tabs[i]; i++) {
						Element.removeClassName(tab.tab, "selectedcustomtab");
						Element.addClassName(tab.body, "hidden");
					}
					currentTab.addClassName("selectedcustomtab");
					Element.removeClassName(body, "hidden");
					scrollTo(0,0)
				}
			})
		},
		
		".remove a" : function(element) {
			Event.observe(element, "click", function(e) {
				Event.stop(e);
				var topPosition = 0;
				var leftPosition = 0;
				var el = element;
				while(el != null ) {
					topPosition += el.offsetTop;
					leftPosition += el.offsetLeft;
					el = el.offsetParent;
				}
				$("confirmbox").style.top = (topPosition - 70) + "px";
				$("confirmbox").style.left = (leftPosition - 40) + "px";
				$("confirmbox").removeClassName("hidden");
			})
		},
		
		".menubutton" : function(element) {
			Event.observe(element, "click", function(e) {
				Event.stop(e);
				var target = $(element.hash.substring(1))
				if (target) {
					Element.removeClassName(target, "hidden");
					target.style.top = 50 + (document.documentElement.scrollTop || document.body.scrollTop);
				}
			})
		},
		
		".popup .close" : function(element) {
			Event.observe(element, "click", function(e) {
				Event.stop(e);
				$(this).up(".popup").addClassName("hidden");
			})
		},
		
		".popup .tabs a" : function(element) {
			Event.observe(element, "click", function(e) {
				Event.stop(e);
				$(this).up("ul").select("li").each(function(el) {Element.removeClassName(el, "selected")});
				Element.addClassName(this.up("li"), "selected")
				var target = $(element.hash.substring(1))
				if (target) {
					$(target.parentNode).select(".tabbody").invoke("addClassName", "hidden");
					Element.removeClassName(target, "hidden");
				}
			})
		}
	});
	Behaviour.apply();	
})

var openModal = function(url){
	var frclass = top.location.href.indexOf("francais") > -1 ? "modal-closer-fr" : "" ;
	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'>\
				<a class='modal-closer " + frclass + "' href='javascript:;'></a>\
				<div class='modal-content'></div>\
			</div>\
		</div>\
	";
	var container = popup.down("div.modal-container");
	new Ajax.Updater(popup.select(".modal-content")[0], url, {method:"GET", evalScripts : true, onComplete : function() {
		container.removeClassName("hidden");
		var body = popup.down(".modal-body");
		var y = document.documentElement.scrollTop || document.body.scrollTop;
		popup.select(".modal-mask,.modal-mask iframe").invoke("setStyle", {
			height : document.documentElement.scrollHeight + y + "px",
			width : document.body.offsetWidth + "px"
		});
		var scroll = document.body.scrollTop || document.documentElement.scrollTop;
		var centered = ((document.viewport.getHeight() / 2) - (body.offsetHeight / 2));
		popup.select(".modal-body").invoke("setStyle", {
			top : (centered < 0 ? 20 : centered) + scroll + "px",
			left : ((document.viewport.getWidth() / 2) - (body.offsetWidth / 2)) + "px"
		});	
	}});
	popup.down("a.modal-closer").observe("click", function() {
		container.addClassName("hidden");
	});
}

isHomeFrench = location.href.indexOf("francais.asp") > -1;
var section = isHomeFrench ? "/francais/" : "/content/"

var Centrum = function() {location.href = section + "products/centrum.asp?section=adult&product=centrum";}
var Forte = function() {location.href = section + "products/centrumForte.asp?section=adult&product=forte";}
var Performance = function() {location.href = section + "products/centrumPerformance.asp?section=adult&product=performance";}
var Protegra = function() {location.href = section + "products/centrumProtegra.asp?section=adult&product=protegra";}
var Select50 = function() {location.href = section + "products/centrumSelect.asp?section=adult&product=select";}
var Chewables = function() {location.href = section + "products/centrumSelectChewables.asp?section=adult&product=chewables";}
var Advantage = function() {location.href = section + "products/centrumAdvantage.asp?section=adult&product=advantage";}
var Materna = function() {location.href = section + "products/materna.asp?section=prenatal";}
var Multivitamins = function() {location.href = section + "products/juniorcomplete.asp?section=childrens&product=juncomplete";}
var moreInfoJunior = function() {location.href = section + "products/juniorcomplete.asp?section=childrens&product=juncomplete";}
var cardioInfo = function() {location.href = section + "products/centrumCardio.asp?section=adult&product=cardio";}

//
var changeText = function(size) {
	$(document.body).removeClassName("small").removeClassName("medium").removeClassName("big").addClassName(size)
	window.name = size;
}
