var myVars = {
	isIE : ((!window.opera) && (navigator.userAgent.indexOf('MSIE') != -1)),
	isIECSSCompat : ((document.compatMode && document.compatMode.indexOf('CSS1') >= 0) ? true : false),
	allPreloadImages : {},
	req : null,
	wrapperTop : 0,
	wrapperHeight : 0,
	allImages : null,
	allDivs : null,
	allLinks : null,
	theImage : null,
	theDiv : null,
	theLink : null,
	theMenu : '',
	content : null,
	isFading : false,
	fadeInterval : null,
	theSesImage : '',
	emailAnneMarie : '',
	varAt : '@',
	theMonth : new Date().getMonth() + 1,
	theDeal : true,
	i : 0,
	j : 0,
	popup : {
		elem : null,
		step : 10,
		delay : 4,
		topdimension : 0,
		tp : 0,
		leftdimension : 0,
		lt : 0,
		rightdimension : 0,
		rt : 0,
		bottomdimension : 0,
		bt : 0,
		intervalID : null
	}
};


function aBlurListener() {
	var el = ascendDOM(this, 'a');
	if (el == null) return;
	el.blur();
}

function addEvent(elemRef, event, listener, useCapture) {
	var elem = getEl(elemRef);
	useCapture = (useCapture) ? useCapture : false;
	if (elem.addEventListener) { // W3C
		elem.addEventListener(event, listener, useCapture);
		return true;
	} else if (elem.attachEvent) { // IE; function addon to make IE understand 'this'
		var r = elem.attachEvent('on' + event, function(){listener.call(elem)});
		return r;
	} else {
		// for IE/Mac, NN4, and older
		elem['on' + event] = listener;
	}
}

function ascendDOM(elemRef, target) {
	var elem = getEl(elemRef);
	while ((elem.nodeName.toLowerCase() != target) && (elem.nodeName.toLowerCase() != 'html'))
		elem = elem.parentNode;
	return (elem.nodeName.toLowerCase() == 'html') ? null : elem;
}

function attVal(element, attName) {
	return parseInt(element.getAttribute(attName));
}

function boxIn() {
	if ((myVars.popup.bt - myVars.popup.tp) >= (myVars.popup.rt - myVars.popup.lt)) {
		myVars.popup.tp += myVars.popup.step;
		myVars.popup.bt -= myVars.popup.step;
	}
	if ((myVars.popup.rt - myVars.popup.lt) >= (myVars.popup.bt - myVars.popup.tp)) {
		myVars.popup.lt += myVars.popup.step;
		myVars.popup.rt -= myVars.popup.step;
	}
	if ((myVars.popup.rt <= (myVars.popup.lt - 6)) || (myVars.popup.tp >= (myVars.popup.bt + 6))) {
		if (myVars.popup.intervalID)
			clearInterval(myVars.popup.intervalID);
		myVars.popup.tp = myVars.popup.bt = (myVars.popup.bottomdimension / 2);
		myVars.popup.rt = myVars.popup.lt = (myVars.popup.rightdimension / 2);
		setClip(myVars.popup.tp, myVars.popup.rt, myVars.popup.bt, myVars.popup.lt);
		if (typeof document != 'undefined') {
			if (document.getElementById('divPopup'))
				document.body.removeChild(document.getElementById('divPopup'));
		}
	} else
		setClip(myVars.popup.tp, myVars.popup.rt, myVars.popup.bt, myVars.popup.lt);
}

function boxOut() {
	if (myVars.popup.tp > myVars.popup.topdimension) myVars.popup.tp -= myVars.popup.step;
	if (myVars.popup.bt < myVars.popup.bottomdimension) myVars.popup.bt += myVars.popup.step;
	if (myVars.popup.rt < myVars.popup.rightdimension) myVars.popup.rt += myVars.popup.step;
	if (myVars.popup.lt > myVars.popup.leftdimension) myVars.popup.lt -= myVars.popup.step;
	if ((myVars.popup.rt >= myVars.popup.rightdimension) && (myVars.popup.lt <= myVars.popup.leftdimension) && (myVars.popup.tp <= myVars.popup.topdimension) && (myVars.popup.bt >= myVars.popup.bottomdimension)) {
		if (myVars.popup.intervalID)
			clearInterval(myVars.popup.intervalID);
		setClip(myVars.popup.topdimension, myVars.popup.rightdimension, myVars.popup.bottomdimension, myVars.popup.leftdimension);
	} else
		setClip(myVars.popup.tp, myVars.popup.rt, myVars.popup.bt, myVars.popup.lt);
}

function checkEmail(email) { // validateForm
	var emailExp;
	emailExp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if(emailExp.test(email) == false)
		return false;
	else
		return true;
}

function fadeImageListener(ev) {
	var e = window.event ? window.event : ev;
	var t = e.target ? e.target : e.srcElement;
	if (e.type == 'mouseover') {
		if (!myVars.isFading) {
			myVars.isFading = true;
			myVars.fadeInterval = setInterval(fadeImages, 20);
		}
		if (t.state != 'full') {
			t.state = 'showing';
			if (t.fadeImage == 'off') {
				t.src = t.getAttribute('overSrc');
				t.fadeImage = 'on';
			}
		}
	} else if (e.type == 'mouseout') {
		if (t.state != 'none')
			t.state = 'hiding';
	}
}

function fadeImages() {
	var isFadingHere = false;
	var opacStep = myVars.isIE ? 8 : 6;
	myVars.allImages = document.getElementsByTagName('img');
	for (myVars.i = 0; myVars.i < myVars.allImages.length; myVars.i++) {
		myVars.theImage = myVars.allImages[myVars.i];
		if (myVars.theImage.className == 'fadeImage') {
			var state = myVars.theImage.state;
			if (state == 'full')
				isFadingHere = true;
			if ((state == 'showing') || (state == 'hiding')) {
				isFadingHere = true;
				if (state == 'showing')
					myVars.theImage.index += opacStep;
				else if (state == 'hiding')
					myVars.theImage.index -= opacStep;

				if (myVars.theImage.index > 100) {
					myVars.theImage.index = 100;
					myVars.theImage.state = 'full';
				} else if (myVars.theImage.index < 0) {
					myVars.theImage.index = 0;
					myVars.theImage.state = 'none';
					myVars.theImage.fadeImage = 'off';
				}

				if (myVars.theImage.filters) // IE
					myVars.theImage.style.filter = 'alpha(opacity=' + myVars.theImage.index + ')';
				else // W3C
					myVars.theImage.style.opacity = myVars.theImage.index/101;
			}
		}
	}
	myVars.isFading = isFadingHere;
	if (!myVars.isFading)
		clearTimeout(myVars.fadeInterval);
}

function findPosX(elemRef) {
	var elem = getEl(elemRef);
	var curLeft = 0;
	if (elem.offsetParent) {
		do {
			curLeft += elem.offsetLeft;
		} while (elem = elem.offsetParent);
	}
	else if (elem.x) {
		curLeft += elem.x;
	}
	return curLeft;
}

function findPosY(elemRef) {
	var elem = getEl(elemRef);
	var curTop = 0;
	if (elem.offsetParent) {
		do {
			curTop += elem.offsetTop;
		} while (elem = elem.offsetParent);
	}
	else if (elem.y) {
		curTop += elem.y;
	}
	return curTop;
}

function getEl(elemRef) {
	if (typeof elemRef == 'string') {
		if (document.getElementById)
			return document.getElementById(elemRef);
		else if (document.all)
			return document.all(elemRef);
	}
	else
		return elemRef;
}

function getElementHeight(elemRef) {
	var result = null;
	var elem = getEl(elemRef);
	if (elem) {
		result = parseInt(getElementStyle(elemRef, 'height'));
		if (result == null || isNaN(parseInt(result))) {
			if (elem.offsetHeight) {
				if (elem.scrollHeight && (elem.offsetHeight != elem.scrollHeight)) {
					result = elem.scrollHeight;
				} else {
					result = elem.offsetHeight;
				}
			return parseInt(result);
			}
		}
	}
	return result;
}

function getElementStyle(elemRef, CSSStyleProp) { // both are string values
	var elem = getEl(elemRef);
	var styleValue, camel;
	if (elem) {
		if (document.defaultView) {
			// W3C DOM version
			var compStyle = document.defaultView.getComputedStyle(elem, '');
			styleValue = compStyle.getPropertyValue(CSSStyleProp);
		} else if (elem.currentStyle) {
			// make IE style property camelCase name from CSS version
			var IEStyleProp = CSSStyleProp;
			var re = /-\D/;
			while (re.test(IEStyleProp)) {
				camel = IEStyleProp.match(re)[0].charAt(1).toUpperCase( );
				IEStyleProp = IEStyleProp.replace(re, camel);
			}
			styleValue = elem.currentStyle[IEStyleProp];
		}
	}
	return (styleValue) ? styleValue : null;
}

function getScrollPosIE() {
	var xPos = 0;
	var yPos = 0;

	if (document.body && document.body.scrollLeft)
		xPos = document.body.scrollLeft;
	else if (document.documentElement && document.documentElement.scrollLeft)
		xPos = document.documentElement.scrollLeft;

	if (document.body && document.body.scrollTop)
		yPos = document.body.scrollTop;
	else if (document.documentElement && document.documentElement.scrollTop)
		yPos = document.documentElement.scrollTop;

	return {x: xPos, y: yPos};
}

function handleScrollPopUp(e) {
	var e = e || window.event;
	var t = e.target || e.srcElement;
	popupImage(getMiddle(t.style.backgroundImage, 'url(', ')'));
	// Cancel bubbling and default actions
	if (window.event) {
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if (e && e.stopPropagation && e.preventDefault) {
		e.stopPropagation();
		e.preventDefault();
	}
}

function hyperText(e) {
	var theHyperDiv = null;
	theHyperDiv = getEl('hyperDiv');
	if (theHyperDiv)
		document.body.removeChild(theHyperDiv);

	var e = e || window.event;
	var t = e.target || e.srcElement;

	theHyperDiv = null;
	theHyperDiv = getEl('hyperDiv');
	if (theHyperDiv)
		document.body.removeChild(theHyperDiv);
	var theDivTop = findPosY(t);

	if (e.type == 'mouseover') {
		theDiv = document.createElement('div');
		theDiv.id = 'hyperDiv'; // To get to the element later, it must have an id!
		theDiv.style.position = 'absolute';
		theDiv.style.left = (findPosX('wrapper') + 721) + 'px';
		theDiv.style.top = (theDivTop - 82) + 'px';
		document.body.appendChild(theDiv);
		var theInsideDiv = document.createElement('div');
		theInsideDiv.className = 'hyperTextBox';
		theDiv.appendChild(theInsideDiv);
		theInsideDiv.innerHTML = "For at åbne brochuren:<br />Brug venstre-klik.<br /><br style='line-height: 6px;' />For at downloade brochuren:<br />Brug højre-klik og vælg<br />'Save Target As...'.";
		document.body.appendChild(theDiv);
	} else if (e.type == 'mouseout') {
		theHyperDiv = getEl('hyperDiv');
		if (theHyperDiv)
			document.body.removeChild(theHyperDiv);
	}
}

function moveListener(e) {
	var e = e || window.event;
	var xPos, yPos;
	if (e.pageX && e.pageY) {
		xPos = e.pageX;
		yPos = e.pageY;
	} else {
		xPos = e.clientX;
		yPos = e.clientY;
		if (myVars.isIE) {
			var pos = getScrollPosIE();
			xPos += pos.x;
			yPos += pos.y;
		}
	}
	return {x: xPos, y: yPos};
}

function popupImage(img) {
	var e = window.event;
	if (document.getElementById('divPopup'))
		document.body.removeChild(document.getElementById('divPopup'));
	var popImage = new Image();
	popImage.onload = function() {
		var winW = winWidth();
		var winH = winHeight();
		var imgWidth = popImage.width;
		var imgHeight = popImage.height;
		myVars.popup.rightdimension = imgWidth + 4;
		myVars.popup.bottomdimension = imgHeight + 4;
		myVars.popup.tp = myVars.popup.bt = (myVars.popup.bottomdimension / 2);
		myVars.popup.rt = myVars.popup.lt = (myVars.popup.rightdimension / 2);
		var theY = (imgHeight > winH) ? 0 : parseInt((winH - imgHeight)/3);
		myVars.popup.elem = document.createElement('div');
		myVars.popup.elem.style.position = 'absolute';
		myVars.popup.elem.style.left = (((winW - 24) / 2) - (imgWidth/2)) + 'px';
		myVars.popup.elem.style.top = theY + 'px';
		myVars.popup.elem.style.width = imgWidth + 12 + 'px';
		myVars.popup.elem.style.height = imgHeight + 5 + 'px';
		myVars.popup.elem.id = 'divPopup';
		myVars.popup.elem.title = 'Klik for at fjerne denne popup';
		myVars.popup.elem.style.paddingTop = '1px';
		myVars.popup.elem.style.paddingLeft = '1px';
		myVars.popup.elem.style.backgroundColor = '#000';
		myVars.popup.elem.style.zIndex = 100;
		myVars.popup.elem.style.cursor = 'pointer';
		myVars.popup.elem.onclick = function() {
			if (imgHeight >= 620) {
				if (typeof document != 'undefined') {
					if (document.getElementById('divPopup'))
						document.body.removeChild(document.getElementById('divPopup'));
				}
			} else {
				if (myVars.popup.intervalID)
					clearInterval(myVars.popup.intervalID);
				myVars.popup.intervalID = setInterval(boxIn, myVars.popup.delay);
				return false;
			}
		};
		var theImage = document.createElement('img');
		theImage.src = img;
		theImage.width = imgWidth;
		theImage.height = imgHeight;
		theImage.style.border = '1px solid #fff';
		myVars.popup.elem.appendChild(theImage);
		if (imgHeight < 620) {
			setClip(myVars.popup.tp, myVars.popup.rt, myVars.popup.bt, myVars.popup.lt); // Forbered clip. Skjul myVars.popup.elem
			myVars.popup.intervalID = setInterval(boxOut, myVars.popup.delay);
		}
		document.body.appendChild(myVars.popup.elem);
	};
	popImage.src = img;
}

function preloadImage(strURL, iWidth, iHeight) {
	myVars.allPreloadImages[strURL] = new Image(iWidth, iHeight);
	myVars.allPreloadImages[strURL].src = strURL;
}

function printPage() {
	window.print();
}

function rollImageListener(ev) {
	var e = window.event ? window.event : ev;
	var t = e.target ? e.target : e.srcElement;
	if (e.type == 'mouseover') {
		t.src = t.getAttribute('overSrc');
	} else if (e.type == 'mouseout') {
		if (t.getAttribute('overSrc') != myVars.theSesImage)
			t.src = t.getAttribute('base');
	} else if (e.type == 'mousedown') {
		myVars.j = myVars.allImages.length;
		for (myVars.i =  0; myVars.i < myVars.j; myVars.i++) {
			myVars.theImage = myVars.allImages[myVars.i];
			if (myVars.theImage.className == 'sesLink') {
				myVars.theImage.src = myVars.theImage.getAttribute('base');
				myVars.theImage.style.cursor = 'pointer';
			}
		}
		t.src = t.getAttribute('overSrc');
		t.style.cursor = 'default';
		myVars.theSesImage = t.getAttribute('overSrc');
		getEl('Goal').style.display = 'none';
		getEl('Access').style.display = 'none';
		getEl('Forankring').style.display = 'none';
		getEl('Process').style.display = 'none';
		if (isInMainstring(t.src, 'Ses1'))
			getEl('Goal').style.display = 'block';
		else if (isInMainstring(t.src, 'Ses2'))
			getEl('Access').style.display = 'block';
		else if (isInMainstring(t.src, 'Ses3'))
			getEl('Forankring').style.display = 'block';
		else if (isInMainstring(t.src, 'Ses4'))
			getEl('Process').style.display = 'block';
	}
}

function setClip(tp, rt, bt, lt) {
	myVars.popup.elem.style.clip = 'rect(' + tp + 'px,' + rt + 'px,' + bt + 'px,' + lt + 'px)';
}

function scrollImageListener(e) {
	var e = e || window.event;
	var t = e.target || e.srcElement;
	var xPos, yPos;
	var pos = moveListener(e);
	xPos = pos.x - findPosX(t);
	yPos = pos.y - findPosY(t);

	if (t.nodeName.toLowerCase() == 'img')
		t = t.parentNode;
	if (t.nodeName.toLowerCase() == 'a') {
		var scaleFactorY = ((attVal(t, 'mainy') - attVal(t, 'thumby')) / attVal(t, 'thumby') * 0.985);
		var scaleFactorX = ((attVal(t, 'mainx') - attVal(t, 'thumbx')) / attVal(t, 'thumbx') * 0.985);
		t.style.backgroundPosition = (-parseInt(xPos * scaleFactorX)) + 'px ' + (-parseInt(yPos * scaleFactorY)) + 'px';
	}
}

function validateForm06(doc) { // 06MailForm.php
	var msg = '';
	if(doc.userName.value == "")
		msg += "Navn er ikke udfyldt.\n";
	if(doc.phone.value == "")
		msg += "Tlf. er ikke udfyldt.\n";
	if (doc.email.value == '')
		msg += "E-mail er ikke udfyldt.\n";
	else if(!checkEmail(doc.email.value))
		msg += "E-mail er ugyldig.\n";
	if(msg != "") {
		alert(msg);
		return false;
	}
	getEl('submitInput6').value = 'Wait...';
	getEl('submitInput6').disabled = 'true';
	getEl('submitInput6').style.cursor = 'default';
	return true;
}

function validateForm09(doc) { // 09MailForm.php
	var msg = '';
	if(doc.recipientName.value == "")
		msg += "Modtagers navn er ikke udfyldt.\n";
	if (doc.recipientEmail.value == '')
		msg += "Modtagers e-mail er ikke udfyldt.\n";
	if(doc.senderName.value == "")
		msg += "Dit navn er ikke udfyldt.\n";
	if (doc.senderEmail.value == '')
		msg += "Din e-mail er ikke udfyldt.\n";
	else if(!checkEmail(doc.recipientEmail.value))
		msg += "Modtagers e-mail er ugyldig.\n";
	else if(!checkEmail(doc.senderEmail.value))
		msg += "Din e-mail er ugyldig.\n";
	if(msg != "") {
		alert(msg);
		return false;
	}
	getEl('submitInput9').value = 'Wait...';
	getEl('submitInput9').disabled = 'true';
	getEl('submitInput9').style.cursor = 'default';
	return true;
}

function validateFormCD09(doc) { // 09CDMailForm.php
	var msg = '';
	if(doc.antalCD.value == "")
		msg += "Anfør venligst antal.\n";
	if (doc.userNameCD.value == '')
		msg += "Anfør venligst navn.\n";
	if (doc.emailCD.value == '')
		msg += "Anfør venligst e-mailadresse.\n";
	else if(!checkEmail(doc.emailCD.value))
		msg += "Anfør venligst en gyldig e-mailadresse.\n";
	if (doc.phoneCD.value == '')
		msg += "Anfør venligst tlf. nr.\n";
	if (doc.gadeCD.value == '')
		msg += "Anfør venligst gadenavn.\n";
	if (doc.nrCD.value == '')
		msg += "Anfør venligst gade-nr.\n";
	if (doc.postnrCD.value == '')
		msg += "Anfør venligst postnummer.\n";
	if (doc.byCD.value == '')
		msg += "Anfør venligst bynavn.\n";

	if(msg != "") {
		alert(msg);
		doc.antalCD.focus();
		return false;
	}
	getEl('submitCDInput9').value = 'Wait...';
	getEl('submitCDInput9').disabled = 'true';
	getEl('submitCDInput9').style.cursor = 'default';
	return true;
}

function validateFormGavekort11(doc) { // 11BesGavekort.php
	var msg = '';
	if(doc.antalGavekort.value == "")
		msg += "Anfør venligst antal.\n";
	if (doc.userNameGavekort.value == '')
		msg += "Anfør venligst navn.\n";
	if (doc.emailGavekort.value == '')
		msg += "Anfør venligst e-mailadresse.\n";
	else if(!checkEmail(doc.emailGavekort.value))
		msg += "Anfør venligst en gyldig e-mailadresse.\n";
	if (doc.phoneGavekort.value == '')
		msg += "Anfør venligst tlf. nr.\n";
	if (doc.gadeGavekort.value == '')
		msg += "Anfør venligst gadenavn.\n";
	if (doc.nrGavekort.value == '')
		msg += "Anfør venligst gade-nr.\n";
	if (doc.postnrGavekort.value == '')
		msg += "Anfør venligst postnummer.\n";
	if (doc.byGavekort.value == '')
		msg += "Anfør venligst bynavn.\n";

	if(msg != "") {
		alert(msg);
		doc.antalGavekort.focus();
		return false;
	}
	getEl('submitGavekortInput11').value = 'Wait...';
	getEl('submitGavekortInput11').disabled = 'true';
	getEl('submitGavekortInput11').style.cursor = 'default';
	return true;
}

function winHeight() {
	var wH = 0;
	if (window.innerHeight) { // Mozilla
		wH = window.innerHeight;
	} else if (myVars.isIECSSCompat) { // IE7
		wH = document.body.parentElement.clientHeight;
	} else if (document.documentElement.clientHeight) {
		wH = document.documentElement.clientHeight;
	} else if (document.body.clientHeight) {
		wH = document.body.clientHeight;
	} else if (screen.availHeight) {
		wH = screen.availHeight;
	}
	return wH;
}

function winWidth() {
	var wW = 0;
	if (window.innerWidth) { // Mozilla
		wW = window.innerWidth;
	} else if (myVars.isIECSSCompat) { // IE7
		wW = document.body.parentElement.clientWidth;
	} else if (document.documentElement.clientWidth) {
		wW = document.documentElement.clientWidth;
	} else if (document.body.clientWidth) {
		wW = document.body.clientWidth;
	} else if (screen.availWidth) {
		wW = screen.availWidth;
	}
	return wW;
}

if (myVars.theMonth > 9)
	myVars.theDeal = false;

// String Handling *******
// extract front part of string prior to searchString
function getFront(mainStr, searchStr) {
	var foundOffset = mainStr.indexOf(searchStr);
	if (foundOffset == -1) return null;
	return mainStr.substring(0,foundOffset);
}

// extract back end of string after searchString
function getEnd(mainStr, searchStr) {
	var foundOffset = mainStr.indexOf(searchStr);
	if (foundOffset == -1) return null;
	return mainStr.substring(foundOffset+searchStr.length,mainStr.length);
}

// extract middle part of string between strFront and strEnd
function getMiddle(mainStr, strFront,strEnd) {
	var front = getEnd(mainStr,strFront);
	if (front != null) return getFront(front,strEnd);
	return null;
}

// globally replace searchString with replaceString
function replaceString(mainStr, searchStr, replaceStr) {
	var re = new RegExp(searchStr, 'g');
	return mainStr.replace(re, replaceStr);
}

// test if searchString is contained in mainString
function isInMainstring(mainStr, searchStr) {
	var re = new RegExp(searchStr, 'g');
	return mainStr.match(re) ? true : false;
}

// Cookie Stuff Begins
function getExpDate(days, hours, minutes) {
	var expDate = new Date();
	if (typeof days == "number" && typeof hours == "number" && typeof hours == "number") {
		expDate.setDate(expDate.getDate() + parseInt(days));
		expDate.setHours(expDate.getHours() + parseInt(hours));
		expDate.setMinutes(expDate.getMinutes() + parseInt(minutes));
	return expDate.toGMTString();
	}
}

function getCookieVal(offset) {
	var endstr = window.document.cookie.indexOf (";", offset);
	if (endstr == -1) {
		endstr = window.document.cookie.length;
	}
	return unescape(window.document.cookie.substring(offset, endstr));
}

function getCookie(name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = window.document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (window.document.cookie.substring(i, j) == arg) {
			return getCookieVal(j);
		}
		i = window.document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}

function setCookie(name, value, expires, path, domain, secure) {
	window.document.cookie = name + "=" + escape (value) +
 ((expires) ? "; expires=" + expires : "") +
 ((path) ? "; path=" + path : "") +
 ((domain) ? "; domain=" + domain : "") +
 ((secure) ? "; secure" : "");
}

function deleteCookie(name,path,domain) {
	if (getCookie(name)) {
		window.document.cookie = name + "=" +
 ((path) ? "; path=" + path : "") +
 ((domain) ? "; domain=" + domain : "") +
 "; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

// Cookie Stuff Ends

