function siteInit(){

	initOBSLauncher();

	initLightBox();

	initSwitcher();

	if(elm("product-overview")){
		initCollapsible('open','closed','trigger','target','smooth',1000);
	}
	
	if(elm("clinic-finder-map")){
		StartClinicFinder();
	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; domain=freedombackclinics.com; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function enableStylesheet(title){
	var sheet = findStylesheet(title);
	if(sheet){
	sheet.disabled = "";
	}
}

function disableStylesheet(title){
	var sheet = findStylesheet(title);
	
	if(sheet){
	sheet.disabled = "true";
	}
}

function findStylesheet(title){

	var x = document.getElementsByTagName("link");

	for(i=0;i<x.length;i++){
		
		if(x[i].getAttribute("title")==title){
	
			return x[i];
			break;
		}
		
	}

}

function elm (id) {
	return document.getElementById(id);
};
		
function addClass(elm, className) {
	var currentClass = elm.className;
	if (!new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i").test(currentClass)) {
		elm.className = currentClass + (currentClass.length? " " : "") + className;
	}
};
		
function removeClass(elm, className) {
	var classToRemove = new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i");
	elm.className = elm.className.replace(classToRemove, function (match) {
		var retVal = "";
		if (new RegExp("^\\s+.*\\s+$").test(match)) {
			retVal = match.replace(/(\s+).+/, "$1");
		}
		return retVal;
	}).replace(/^\s+|\s+$/g, "");
};



function switchStyle(){

	if(this.getAttribute('title').match(/normal/)){
		disableStylesheet("font-medium");
		enableStylesheet("font-normal");
		createCookie("fbc-font","normal",365);
		
		
			
	}else if(this.getAttribute('title').match(/medium/)){
		//disableStylesheet("font-normal");
		disableStylesheet("font-normal");
		enableStylesheet("font-medium");
		createCookie("fbc-font","large",365);


	}
	
	switchIcons();
	
	return false;

}

function switchIcons(){
	
	var cookie = readCookie('fbc-font');
	
	if(cookie=="large"){
			
		elm("font-switch-normal").style.backgroundImage =  "url(/images/button-small-text.gif)";
		elm("font-switch-large").style.backgroundImage = "url(/images/button-large-text-selected.gif)";

	
	}else{
	
		elm("font-switch-normal").style.backgroundImage = "url(/images/button-small-text-selected.gif)";
		elm("font-switch-large").style.backgroundImage = "url(/images/button-large-text.gif)";
	
	}

}

function initSwitcher(){

	elm("font-switch-normal").onclick=switchStyle;
	elm("font-switch-large").onclick=switchStyle;
	
	switchIcons();
}

disableStylesheet("font-medium");
disableStylesheet("font-normal");

var cookie = readCookie("fbc-font");

if(!cookie){

	disableStylesheet("font-medium");
	enableStylesheet("font-normal");
	
	createCookie("fbc-font","normal",365);

}else if(cookie=="normal"){

	disableStylesheet("font-medium");
	enableStylesheet("font-normal");
	
}else if(cookie=="large"){

	disableStylesheet("font-normal");
	enableStylesheet("font-medium");


}
var Loader = function () {
	var isIE = /*@cc_on!@*/false;
	var DOMLoaded = false;
	var DOMLoadTimer = null;
	var functionsToCall = [];
	var addedStrings = {};
	var execFunctions = function () {
		for (var i=0, il=functionsToCall.length; i<il; i++) {
			try {
				functionsToCall[i]();
			}
			catch (e) {
				
				
				
				// Prevent possible reference errors
			}
		}
		functionsToCall = [];
	};
	var DOMHasLoaded = function () {
		if (DOMLoaded) {
			return;
		}
		DOMLoaded = true;
		execFunctions();
	};
	
	return {
		init : function () {

			window.DOMReady = window.DOMReady || this.DOMReady;
			window.loadCSS = window.loadCSS || this.loadCSS;
			window.addBustCache = window.addBustCache || this.addBustCache;
			
			if (document.addEventListener) {
				document.addEventListener("DOMContentLoaded", DOMHasLoaded, false);
			}
			if (isIE) {
				if (document.getElementById) {
					document.write("<script id=\"ieScriptLoad\" defer src=\"//:\"><\/script>");
					document.getElementById("ieScriptLoad").onreadystatechange = function() {
						if (this.readyState === "complete") {
							DOMHasLoaded.call(this);
						}
					};
				}
			}
			if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) {
				DOMLoadTimer = setInterval(function () {
					if (/loaded|complete/i.test(document.readyState)) {
						DOMHasLoaded.call(this);
						clearInterval(DOMLoadTimer);
					}
				}, 10);
			}
			window.onload = DOMHasLoaded;
			
		},
		
		addBustCache: function(url){

			var Temp = new Date();
	
			BustCache="bustcache=" + URLEncode(Temp.getTime());

			if(url.search(/\?/)==-1)
			{
				
				url = url+"?"+BustCache
			
				
			}else{
			
				url = url+"&"+BustCache
				
			}
		
			//url = SiteURL+"/"+url;
			
			return url;
		
		},
		
		loadCSS : function(filename, disabled, title, media){
		
			var fileref=document.createElement("link")			
			fileref.setAttribute("rel", "stylesheet")			
			fileref.setAttribute("type", "text/css")			
			fileref.setAttribute("href", filename)
			fileref.setAttribute("title", title)
			fileref.setAttribute("media",media)
			fileref.disabled = disabled;
		
			if (typeof fileref!="undefined"){
		
					document.getElementsByTagName("head")[0].appendChild(fileref)
					
		
			}
		
		},
		
		DOMReady : function () {
			for (var i=0, il=arguments.length, funcRef; i<il; i++) {
				funcRef = arguments[i];
				if (!funcRef.DOMReady && !addedStrings[funcRef]) {
					if (typeof funcRef === "string") {
						addedStrings[funcRef] = true;
						funcRef = new Function(funcRef);
					}
					funcRef.DOMReady = true;
					functionsToCall.push(funcRef);
				}
			}
			if (DOMLoaded) {
				execFunctions();
			}
		}
	};
}();
Loader.init();

var jVIT = function () {
	var uniqueHandlerId = 0;
	return {
		init : function () {
			window.elm = window.elm || this.elm;
			window.elmsByClass = window.elmsByClass || this.elmsByClass;
			window.addClass = window.addClass || this.addClass;
			window.removeClass = window.removeClass || this.removeClass;
			window.addEvent = window.addEvent || this.addEvent;
			window.removeEvent = window.removeEvent || this.removeEvent;
			window.stopDefault = window.stopDefault || this.stopDefault;
			window.cancelBubbling = window.cancelBubbling || this.cancelBubbling;
		
		},
		
		elm : function (id) {
			return document.getElementById(id);
		},
		
		elmsByClass : function (className, tag, elm){
			if (document.getElementsByClassName) {
				this.elmsByClass = function (className, tag, elm) {
					elm = elm || document;
					var elements = elm.getElementsByClassName(className),
						nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
						returnElements = [],
						current;
					for(var i=0, il=elements.length; i<il; i+=1){
						current = elements[i];
						if(!nodeName || nodeName.test(current.nodeName)) {
							returnElements.push(current);
						}
					}
					return returnElements;
				};
			}
			else if (document.evaluate) {
				this.elmsByClass = function (className, tag, elm) {
					tag = tag || "*";
					elm = elm || document;
					var classes = className.split(" "),
						classesToCheck = "",
						xhtmlNamespace = "http://www.w3.org/1999/xhtml",
						namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
						returnElements = [],
						elements,
						node;
					for(var j=0, jl=classes.length; j<jl; j+=1){
						classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
					}
					try	{
						elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
					}
					catch (e) {
						elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
					}
					while ((node = elements.iterateNext())) {
						returnElements.push(node);
					}
					return returnElements;
				};
			}
			else {
				this.elmsByClass = function (className, tag, elm) {
					tag = tag || "*";
					elm = elm || document;
					var classes = className.split(" "),
						classesToCheck = [],
						elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
						current,
						returnElements = [],
						match;
					for(var k=0, kl=classes.length; k<kl; k+=1){
						classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
					}
					for(var l=0, ll=elements.length; l<ll; l+=1){
						current = elements[l];
						match = false;
						for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
							match = classesToCheck[m].test(current.className);
							if (!match) {
								break;
							}
						}
						if (match) {
							returnElements.push(current);
						}
					}
					return returnElements;
				};
			}
			return this.elmsByClass(className, tag, elm);
		},
		
		addClass : function (elm, className) {
			var currentClass = elm.className;
			if (!new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i").test(currentClass)) {
				elm.className = currentClass + (currentClass.length? " " : "") + className;
			}
		},

		removeClass : function (elm, className) {
			var classToRemove = new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i");
			elm.className = elm.className.replace(classToRemove, function (match) {
				var retVal = "";
				if (new RegExp("^\\s+.*\\s+$").test(match)) {
					retVal = match.replace(/(\s+).+/, "$1");
				}
				return retVal;
			}).replace(/^\s+|\s+$/g, "");
		},
		
		addEvent : function (elm, evt, func) {
			if (document.addEventListener) {
				this.addEvent = function (elm, evt, func) {
					elm.addEventListener(evt, func, false);
				};
			}
			else {
				this.addEvent = function (elm, evt, func) {
					if (!elm.uniqueHandlerId) {
						elm.uniqueHandlerId = uniqueHandlerId++;
					}
					
					var alreadyExists = false;
					if (func.attachedElements && func.attachedElements[evt + elm.uniqueHandlerId]) {
						alreadyExists = true;
					}
					if (!alreadyExists) {
						if (!elm.events) {
							elm.events = {};
						}
						if (!elm.events[evt]) {
							elm.events[evt] = [];
							var existingEvent = elm["on" + evt];
							if (existingEvent) {
								elm.events[evt].push(existingEvent);
							}
						}
						elm.events[evt].push(func);
						elm["on" + evt] = jVIT.handleEvent;
						
						if (!func.attachedElements) {
							func.attachedElements = {};
						}
						func.attachedElements[evt + elm.uniqueHandlerId] = true;
					}
				};
			}
			return this.addEvent(elm, evt, func);
		},
		
		handleEvent : function (evt) {
			var currentEvt = evt || event;
			var currentTarget = currentEvt.target || currentEvt.srcElement || document;
			while (currentTarget.nodeType !== 1 && currentTarget.parentNode) {
				currentTarget = currentTarget.parentNode;
			}			
			currentEvt.eventTarget = currentTarget;
			var eventColl = this.events[currentEvt.type].slice(0);
			var eventCollLength = eventColl.length - 1;
			if (eventCollLength !== -1) {
				for (var i=0; i<eventCollLength; i++) {
					eventColl[i].call(this, currentEvt);
				}
				return eventColl[i].call(this, currentEvt);
			}
		},
		
		removeEvent : function (elm, evt, func) {
			if (document.addEventListener) {
				this.removeEvent = function (elm, evt, func) {
					elm.removeEventListener(evt, func, false);
				};
			}
			else {
				this.removeEvent = function (elm, evt, func) {
					if (elm.events) {
						var eventColl = elm.events[evt];
						if (eventColl) {
							for (var i=0; i<eventColl.length; i++) {
								if (eventColl[i] === func) {
									delete eventColl[i];
									eventColl.splice(i, 1);
								}
							}
						}
						func.attachedElements[evt + elm.uniqueHandlerId] = null;
					}
				};
			}
			return this.removeEvent(elm, evt, func);
		},
		
		stopDefault : function (evt) {
			evt.returnValue = false;
			if (evt.preventDefault) {
				evt.preventDefault();
			}
		},
		
		cancelBubbling : function (evt) {
			evt.cancelBubble = true;
			if (evt.stopPropagation) {
				evt.stopPropagation();
			}
		}
	};
}();
jVIT.init();
function Animation(){

	this.Curves = 0;
	this.StartTime = 0;
	this.EndTime = 0;
	this.TotalTime = 0;
	this.getElapsedPercent = function ()
	{
		
		temp = new Date();
		var CurrentTime = new Number(temp.getTime());
			
		var ElapsedTime = CurrentTime - this.StartTime;
		//alert(ElapsedTime+" "+CurrentTime+" "+this.StartTime+" "+this.TotalTime)
		return ((ElapsedTime / (this.TotalTime / 100)) / 100)
		
	}
	this.ElapsedMilliseconds = 0; 
			
}
	
function BezierCurves(n_EndVal,n_StartVal){
		
				this.P1 = new coord(n_StartVal,n_StartVal);
				this.P2 = new coord(n_StartVal,n_StartVal);
				this.P3 = new coord(n_StartVal,n_StartVal);
				this.P4 = new coord(n_EndVal,n_StartVal);
		}
		


coord = function (x,y) 
{ 
	if(!x) var x=0; 
	if(!y) var y=0;
	
	return {x: x, y: y}; 
}

B1 = function(t)
{ 
	return (t*t*t); 
}

B2 = function(t)
{ 
	return (3*t*t*(1-t));
} 

B3 = function(t) 
{
	return (3*t*(1-t)*(1-t)); 
}

B4 = function(t) 
{ 
	return ((1-t)*(1-t)*(1-t));
}
		
function get1DBezier(percent,o_Curve) {

	var C1 = o_Curve.P1;
	var C2 = o_Curve.P2;
	var C3 = o_Curve.P3;
	var C4 = o_Curve.P4;
	
	var pos = new coord();
	
	pos.x = C1.x * B1(percent) + C2.x * B2(percent) +C3.x * B3(percent) + C4.x * B4(percent);
	
	return Math.round(pos.x) 
}


function CollapsibleBox(){
	this.InitHeight = 0;
	this.State = 0;
	this.TargetHeight = 0;
	this.CurrentHeight = 0;
	this.StartHeight = 0;

	this.init = function(trigger,target,openClass,closedClass,transitionMode,speed){
		// Measure Initial Height
		this.Trigger = trigger;
		this.Target = target;
		this.Mode = transitionMode;
		this.TransitionTime = speed;
		this.OpenClass = openClass;
		this.ClosedClass = closedClass;
		
	

		this.InitHeight = this.Target.clientHeight;
		this.Target.style.overflow="hidden";
		this.Target.style.height="0px";
		this.Trigger.className = this.ClosedClass;
		
		addEvent(elm(this.Trigger.id),"click",cBoxes[this.Trigger.id].clickHandler);

	}
	
	this.ani = new Animation;
	
	this.initAnimation = function (){
		
	
			this.ani.Curve = new BezierCurves(this.CurrentHeight,this.TargetHeight);
			var temp = new Date();
			var tempTime = new Number(temp.getTime());
			this.ani.StartTime = tempTime; 

			this.ani.EndTime = tempTime+=this.TransitionTime;
			this.ani.TotalTime = tempTime - (tempTime-this.TransitionTime);
	}

	this.clickHandler = function(){
		var x = cBoxes[this.id];

		if(x.State==0){ // 0 = Closed

			x.State=2; // 2 = Open In Progress
			
			x.CurrentHeight = 0;
			x.StartHeight = x.CurrentHeight;
			x.TargetHeight = x.InitHeight;
			
			//PRIVATE METHOD, DEBUG ONLY
			if(x.Mode=='instant'){
			
				x.setHeight(x.TargetHeight);
				x.Trigger.className = x.OpenClass;
				
			}else if(x.Mode=='smooth'){
			
				x.Trigger.className = x.OpenClass;
				
				x.initAnimation();
				//var func = cBoxes[this.id].Transition
				x.timeoutID = setTimeout("cBoxes['"+this.id+"'].Transition()",0);
				//alert(x.CurrentHeight+" "+x.StartHeight+" "+x.TargetHeight);
			}
			
			x.State=1; // Transition Complete, status set to 1 (Open)
			
		}else if(x.State==1){ // 1 = Open
		
			x.State=3; // 3 = Close In Progress

			x.CurrentHeight = x.InitHeight;
			x.StartHeight = x.CurrentHeight;
			x.TargetHeight = 0;

			
			if(x.Mode=='instant'){
				
				x.Trigger.className = x.ClosedClass;
				x.setHeight(x.TargetHeight);
				x.State=0; // Transition Complete, status set to 0 (Closed)
			
			}else if(x.Mode=='smooth'){
				x.Trigger.className = x.ClosedClass;
				x.initAnimation();
				
				x.timeoutID = setTimeout("cBoxes['"+this.id+"'].Transition()",0);
			
			}
		
		}else{
		
			//Handle all none 0/1 states
		
		}
	}
	
	this.setHeight= function(pixels){
	
		this.Target.style.height=pixels+"px";
		this.CurrentHeight = pixels;
	
	}
	
	this.Transition = function(){
		//alert(this.ani.getElapsedPercent);
		// Difference between TargetHeight and CurrentHeight = this.TargetHeight - this.CurrentHeight
	//alert(this.ani.getElapsedPercent)
	var temp = this.ani.getElapsedPercent();

	if(temp > 1){
			
		temp = 1;
				
	}
		
	this.setHeight(get1DBezier(temp,this.ani.Curve));

	
		if(temp < 1){
					
			this.TimeoutID = setTimeout("cBoxes['"+this.Trigger.id+"'].Transition()",10);		
			
		}else{
		
			if(this.State==2){ //Opening
				//this.Trigger.className = this.OpenClass;
				this.State=1;
			
			}else if(this.State==3){// Closing
				//this.Trigger.className = this.CloseClass;
				this.State=0;
			}
					
						
			if(this.TimeoutID == -1)
			{
			
			clearTimeout(this.TimeoutID);			
			
			}
			
			
				
		}

	
	}

}

function getPercent(Top,Bottom,Current){
		
	Width = (Top-Bottom);
	Current = (Current-Bottom);
	Top = (Top-Bottom);
			
	return Math.round(Current/(Width / 100));
		
}

function initCollapsible(className,altClassName,triggerPrefix,targetPrefix,transitionMode,speed){
	
	window.cBoxes = new Array;
	
	var x=window.elmsByClass(className, "h3", elm("product-overview"));

	
	for (y in x){
		
		var target = elm(targetPrefix+"-"+x[y].id.replace(triggerPrefix+"-",""));
		
		cBoxes[x[y].id] = new CollapsibleBox();
		cBoxes[x[y].id].init(x[y],target,className,altClassName,transitionMode,speed);
	}
	/*
	for(i=0;i<j;i++){
	
		target = elm(targetPrefix+"-"+x[i].id.replace(triggerPrefix+"-",""));
		cBoxes[x[i].id] = new CollapsibleBox();
		cBoxes[x[i].id].init(x[i],target,className,altClassName,transitionMode,speed);
	
	}
	*/
}


/////////OBS LAUNCHER

var obsLaunchData = {
	normal:"/vites/rf/load_obs_widget?target=obs-box&mode=full-obs",
	ics:"/vites/rf/load_obs_widget?target=obs-box&mode=freedom",
	spinal:"/vites/rf/load_obs_widget?target=obs-box&mode=full-obs&appointment_type=spinal&visitor_stage=2"
}

//DOMReady(initOBSLauncher);

function initOBSLauncher(){

	var x = document.getElementsByTagName('BODY');
	body = x[0];
	
	var newDiv=document.createElement('DIV');
	
	newDiv.id='obs-background-shade';
	newDiv.style.display="none";
	
	body.appendChild(newDiv);

	newDiv=document.createElement('DIV');	
	
	newDiv.id='obs-box';
	newDiv.style.display="none";
		
	body.appendChild(newDiv);

	var a = document.getElementsByTagName('a');
			
	for(i=0, il=a.length;i<il;i++){
	
		if(a[i].getAttribute('href')){
		
			if(a[i].getAttribute('href').match(/book_an_appointment/)){
				
				a[i].onclick = launchOBS;
			
			}else if(a[i].getAttribute('href').match(/book_free_spinal_screening/)){
				
				a[i].onclick =  launchOBS;
			
			}else if(a[i].getAttribute('href').match(/ics_obs/)){
				
				a[i].onclick =  launchOBS;
			
			};
		
		};
	
	}

	loadCSS("/GOBS/css/basic.css", true, "gobs-basic","screen");
	loadCSS("/GOBS/css/print.css", true, "gobs-print","print");
	
	if(/msie|MSIE 6/.test(navigator.userAgent)){
		loadCSS("/GOBS/css/ie6.css",false,"gobs-ie6","screen");
	}
		
	try{
	
		if(autorunOBS==true){
			launchOBS.call(document.getElementById("launch-obs-link"));
		}
	
	}catch(e){
	
	}
	
	return true;	
	
}

function launchOBS(event){

	window.elm('obs-background-shade').style.display="block";
	window.elm('obs-box').style.display="block"

	CSSRules.add("#obs-background-shade","background:#000000;opacity:0.5;filter:alpha(opacity=50);position:absolute;top:0;z-index:999;");

	var href = ""

	if(this.getAttribute('href')){
		
		if(this.getAttribute('href').match(/book_an_appointment/)){

			href = obsLaunchData.normal;

		}else if(this.getAttribute('href').match(/book_free_spinal_screening/)){

			href = obsLaunchData.spinal;
		
		}else if(this.getAttribute('href').match(/ics_obs/)){
			
			href = obsLaunchData.ics;
		
		};
		
	};

	ResizeOBSBackground();
	
	enableStylesheet("gobs-basic");
	enableStylesheet("gobs-print");	
	disableStylesheet("main-print");
	
	var fileref=document.createElement('script');				
	fileref.setAttribute("type","text/javascript");				
	fileref.setAttribute("src", addBustCache(href));			
	document.getElementsByTagName("head")[0].appendChild(fileref);

	//event.returnValue = false;
	//if (event.preventDefault) {
	//	event.preventDefault();
	//}
		
	window.scroll(0,0);
	
	return false;
}

onresize = ResizeOBSBackground;

function ResizeOBSBackground(){

	if(document.getElementById("obs-background-shade"))
	{
	
		y=document.getElementById("obs-background-shade");
		
		var page_size=___getPageSize();

		y.style.width=page_size[0]+"px";
		y.style.height=(page_size[1])+"px";
		
	}

	if(document.getElementById("obs-box"))
	{
	
		x=document.getElementById("obs-box");

		var left_offset=(page_size[0]-630)/2;
		var top_offset=54;
		
		x.style.top=top_offset+"px";
		x.style.left=left_offset+"px";
	}
	
};

var CSSRules = function() {

	var headElement = document.getElementsByTagName("head")[0],
	styleElement = document.createElement("style");
	styleElement.type = "text/css";
	headElement.appendChild(styleElement);
	
	var add = function() {
	
		if (styleElement.styleSheet) {
	
			return function(selector, rule) {
	
		    	if (styleElement.styleSheet.cssText == '') {
		
		     		styleElement.styleSheet.cssText = '';
		
		   		}
		
		   		styleElement.styleSheet.cssText += selector + " { " + rule + " }";
	
			}	
	
	  	} else {
	
	   		return function(selector, rule) {
	
	    		styleElement.appendChild(document.createTextNode(selector + " { " + rule + " }"));
	
	   		}
	
	 	}
	
	}();
	
	return {
	
	  add : add
	
	}

}();




function ___getPageSize(){

	var xScroll,yScroll;
	
	if(window.innerHeight&&window.scrollMaxY)
	{
		
		xScroll=window.innerWidth+window.scrollMaxX;
		yScroll=window.innerHeight+window.scrollMaxY;
		
	}else if(document.body.scrollHeight>document.body.offsetHeight){
	
		xScroll=document.body.scrollWidth;
		yScroll=document.body.scrollHeight;
		
	}else{
	
		xScroll=document.body.offsetWidth;
		yScroll=document.body.offsetHeight;
		
	}

	var windowWidth,windowHeight;
	
	if(self.innerHeight){
	
		if(document.documentElement.clientWidth){
		
			windowWidth=document.documentElement.clientWidth;
			
		}else{
		
			windowWidth=self.innerWidth;
			
		}

	windowHeight=self.innerHeight;
	
	}else if(document.documentElement&&document.documentElement.clientHeight){
	
		windowWidth=document.documentElement.clientWidth;
		
		windowHeight=document.documentElement.clientHeight;
		
	}else if(document.body){
	
		windowWidth=document.body.clientWidth;
		windowHeight=document.body.clientHeight;
		
	}

	if(yScroll<windowHeight){
	
		pageHeight=windowHeight;
		
	}else{
	
		pageHeight=yScroll;
		
	}

	if(xScroll<windowWidth){
	
		pageWidth=xScroll;
		
	}else{
	
		pageWidth=windowWidth;
		
	}

	arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
	
};


function Tabber(x){
	
	document.getElementById("social-bookmarks-content").style.display="none";
	document.getElementById("email-a-friend-content").style.display="none";

	
	document.getElementById("social-bookmarks-tab").className = "";
	document.getElementById("email-a-friend-tab").className = "";
			
	document.getElementById(x+"-content").style.display="block";
	document.getElementById(x+"-tab").className="selected";
	
	return false;
		
}

var dragObj = new Object();
var browser = new Browser();

function dragStart(event, id) {
		
			var el;
			var x;
		
		
			
			dragObj.elNode = g(id);
			dragObj.id = id;
	
			
			if (event.target)
			{
				targ=event.target;
			}
			else if (event.srcElement)
			{
				targ=event.srcElement;
			}
			
	
			if (document.documentElement.scrollLeft) {
			
			x = window.event.clientX + document.documentElement.scrollLeft
			  + document.body.scrollLeft;
			
			}else if(window.scrollX){
				
				x = event.clientX + window.scrollX;
		
			}
		
			dragObj.cursorStartX = x;
		
			dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
		
			if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
		

		
			if (browser.isIE) {
				
					document.attachEvent("onmousemove", dragGo);
					document.attachEvent("onmouseup",   dragStop);
					window.event.cancelBubble = true;
					window.event.returnValue = false;
				}
			  
				if (browser.isNS) {
					
					document.addEventListener("mousemove", dragGo,   true);
					document.addEventListener("mouseup",   dragStop, true);
					event.preventDefault();
			  
			}

		
		}
		
		
		function dragGo(event) {
		
			var x; 
			
			
			if (browser.isIE) {
				
				x = (window.event.clientX + document.documentElement.scrollLeft
				  + document.body.scrollLeft )- g("slideArena").offsetLeft- g("widget").offsetLeft;
				y = (window.event.clientY + document.documentElement.scrollTop
				  + document.body.scrollTop) - g("slideArena").offsetTop - g("widget").offsetTop;
				
				
				}
				
				if (browser.isNS) {
					
					x = event.clientX + window.scrollX - g("slideArena").offsetLeft - g("widget").offsetLeft;;
					y = event.clientY + window.scrollY - g("slideArena").offsetTop - g("widget").offsetTop;;
			
			}

		
		
			MoveBox(x,y);
		
		
			if (browser.isIE) {
			
				window.event.cancelBubble = true;
				window.event.returnValue = false;
				
			}
				if (browser.isNS)
				
				event.preventDefault();

					
		}
		
		
		function dragStop(event) {
		
			if(document.detachEvent){
			
				document.detachEvent("onmousemove", dragGo);
				document.detachEvent("onmouseup",   dragStop);
			
			}else if(document.removeEventListener){
			
				document.removeEventListener("mousemove", dragGo,   true);
				document.removeEventListener("mouseup",   dragStop, true);
			
			}
		
		
		}
		
		function Browser() {
		
			var ua, s, i;
		
			this.isIE		  = false;
			this.isNS		  = false;
			this.isAW		  = false;
			this.isWin2000    = false;
			this.version	  = null;
		
			ua = navigator.userAgent;
		
			s = "MSIE";
			
			if ((i = ua.indexOf(s)) >= 0) {
		  
				this.isIE = true;
				this.version = parseFloat(ua.substr(i + s.length));
			}
		
			s = "Netscape6/";
		 
			if ((i = ua.indexOf(s)) >= 0) {
			
				this.isNS = true;
				this.version = parseFloat(ua.substr(i + s.length));
		  
			}
		
			s = "Gecko";
			
			if ((i = ua.indexOf(s)) >= 0) {
			
				this.isNS = true;
				this.version = 6.1;			
			}

			s = "AppleWebKit";
			
			if ((i = ua.indexOf(s)) >= 0) {
			
				this.isAW = true;
				this.version = 6.1;			
			}

			s = "Windows NT 5.0";
			
			if ((i = ua.indexOf(s)) >= 0) {
			
				this.isWin2000 = true;			
			}

			return;
		
		}

		
		function g(DOMId){
		
			return document.getElementById(DOMId);
		
		}
		
		function MoveBox(x,y){
	
		
		slider[dragObj.id].Move(x,y);
	
		}
		
		function WriteDebug(x,y){
			//g("debug").innerHTML= x+" "+y;
		}
		
		function Slider(){
		
		this.HandleX = 0;
		this.HandleY = 0;
		this.Axis;
		this.dragObj = new Object();
		this.Bottom = 0;
		this.Top = 0;
		this.DOMId;
		
		this.HandleWidth = 0;
		this.HandleWidth = 0;
		this.HandleCSS = 0;

		this.Init = function(StartX,StartY,Width,Axis,DOMId,HandleWidth,HandleHeight,HandleCSS,callback,inputId){
		
							g("pain_is_mild").value="1";
				g("pain_is_moderate").value="0";
				g("pain_is_intense").value="0";
			

			this.HandleX = StartX;
			this.HandleY = StartY;
			this.Axis = Axis;
			this.DOMId = DOMId;
			this.Callback = callback;
			this.InputId = inputId;
			
			this.HandleWidth = HandleWidth;
			this.HandleHeight = HandleHeight;
			this.HandleCSS = HandleCSS;
			
			if(this.Axis=="x"){ 
			
				this.Bottom = this.HandleX; 
				this.Top = this.HandleX+Width;
				
				
			}else{ 
			
				this.Bottom = this.HandleY; 
				this.Top = this.HandleY+Width;
				
			
				
				
			}
			

			
		
			
			g('slideArena').innerHTML+='<div id="'+DOMId+'" style="position:absolute;top:'+this.HandleY+'px;left:'+this.HandleX+'px;width:'+this.HandleWidth+'px;height:'+this.HandleHeight+'px;background:url('+this.HandleCSS+')" onmousedown="dragStart(event,this.id)" ></div>';
			/* Magic Vites Stuff */
			
						
			if(browser.isIE && browser.version < 7)
			{
				 g(DOMId).style.background="none";
				 g(DOMId).style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='"+this.HandleCSS+"', sizingMethod='scale')";
			}
			
			if(this.Axis=="x"){ 
			
				if(g(this.InputId).value!=""){
				this.Move( ((g(this.InputId).value / 100) * (Width)+(this.Bottom+this.HandleHeight/2)),this.HandleY);
				}else{
					g(this.InputId).value = 0;
				}
			}else{ 
				if(g(this.InputId).value!=""){
				this.Move(this.HandleX,((g(this.InputId).value / 100) * (Width)+(this.Bottom+this.HandleWidth/2)));
				}else{
					g(this.InputId).value = 0;
				}
			}
		}
		
		this.Move = function(x,y){
	
			
			if(this.Axis=="x"){
			
				x-=this.HandleWidth/2;
			
				if(x<this.Bottom){
					this.HandleX = this.Bottom;
				}else if(x>this.Top){
					this.HandleX = this.Top;
				}else{
					this.HandleX = x;
				}
				
				this.SliderValue= getPercent(this.Top,this.Bottom,this.HandleX);
	

			
			}else if(this.Axis=="y"){
			
				y-=this.HandleHeight/2;
			
				if(y<this.Bottom){
					this.HandleY = this.Bottom;
				}else if(y>this.Top){
					this.HandleY = this.Top;
				}else{
					this.HandleY = y;
				}
				
				this.SliderValue= getPercent(this.Top,this.Bottom,this.HandleY);
			
			}

			g(this.DOMId).style.left =((this.HandleX))+"px";
			g(this.DOMId).style.top  =((this.HandleY))+"px";
				
			this.Callback(this.SliderValue,this.InputId);
		
			}
		
		}
		
		function WherePain(SliderValue,InputId){
		
			//WriteDebug("Where is Pain?",SliderValue);
			
			g("pain-location-indicator").style.top = Math.round(50+1.8*SliderValue)+"px";
			g("pain-location-indicator").style.backgroundPosition = "0 -" + (parseInt(g("pain-location-indicator").style.top)-50)+"px";
			g(InputId).value = SliderValue;
		
		}
		
		function HowMuchPain(SliderValue,InputId){
		
			//WriteDebug("How Much Pain?",SliderValue);
			g("pain-intensity-indicator").style.width = Math.round(10+1.4*SliderValue)+"px";
			g(InputId).value = SliderValue;
			
			
			if(SliderValue < 33){
			

			
				g("pain_is_mild").value="1";
				g("pain_is_moderate").value="0";
				g("pain_is_intense").value="0";
			
			}else if((SliderValue >= 33) && (SliderValue < 66)){
			

			
				g("pain_is_mild").value="0";
				g("pain_is_moderate").value="1";
				g("pain_is_intense").value="0";
			
			}else{
			

			
				g("pain_is_mild").value="0";
				g("pain_is_moderate").value="0";
				g("pain_is_intense").value="1";
			
			}
			
			SliderValue = (SliderValue/2)+50;
			if(browser.isIE){
				if(browser.version > 6){
				g("pain-location-indicator").style.filter="alpha(opacity="+SliderValue+")";
				}
			}else{
				g("pain-location-indicator").style.opacity=(SliderValue/100);
			}

			
		
		}
		
		function getPercent(Top,Bottom,Current){
		
			Width = (Top-Bottom);
			Current = (Current-Bottom);
			Top = (Top-Bottom);
			
			return Math.round(Current/(Width / 100));
		
		}
		
		
		var slider = new Array();


DOMReady(siteInit);



