// ================================================================================================
// browser check:
var agent = navigator.userAgent.toLowerCase();
var isIE = (agent.indexOf('msie') != -1);
var isOpera	= (agent.indexOf('opera') != -1);
var isSafari = (agent.indexOf('safari') != -1);
// ================================================================================================
function $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);
        if (arguments.length == 1)
            return element;
        elements.push(element);
    }
    return elements;
}
// ================================================================================================
var addEvent;
if (document.addEventListener) {
    addEvent = function(element, type, handler) {
        element.addEventListener(type, handler, null);
    };
} else if (document.attachEvent) {
    addEvent = function(element, type, handler) {
        element.attachEvent("on" + type, handler);
    };
} else {
    addEvent = new Function; // not supported
}
// ================================================================================================
function getElementsByClassName(parentNode,node,classname) {
	var a = [];
	var re = new RegExp('(^| )'+classname+'( |$)');
if ((parentNode!=null)&&(node!=null)) {
	var els = parentNode.getElementsByTagName(node);
	for(var i=0,j=els.length; i<j; i++){
		if(re.test(els[i].className))a.push(els[i]);
	}
}
	return a;
}
// ================================================================================================
function findPosition(element) {
	if(element.offsetParent) {
		var posWidth = element.offsetWidth;
		var posHeight = element.offsetHeight;
		for(var posX = 0, posY = 0; element.offsetParent; element = element.offsetParent) {
			if(element.tagName.toLowerCase() !== "body"){ 
				posX += element.offsetLeft;
				posY += element.offsetTop;
			}
		}
		return { x: posX, y: posY, width: posWidth, height: posHeight };
	} else {
		return { x: element.x, y: element.y, width: element.offsetWidth, height: element.offsetHeight };
	}
}
// ================================================================================================
/*
addEvent(window,'load',function() { // resize investor iframe
	var f = $("investorContent");
	function resize() {
		var h = "";
		var w = "";
		if (f.contentDocument) {
			h = f.contentDocument.documentElement.offsetHeight + 20 + "px";
		} else if (f.contentWindow) {
			h = f.contentWindow.document.body.scrollHeight + 5 + "px";
		} else {
			return;
		}
		f.setAttribute("height",h);
		f.parentNode.setAttribute("height",h);
		f.style.height = h;
		addBottomBorder();
	}
	if(f){
		if (window.addEventListener) {
			f.onload = resize;
		} else if (f.attachEvent) {
			f.attachEvent("onload", resize);
		} else {
			return;
		}
		resize();
	}
});
*/
// ================================================================================================
addEvent(window,'load',initRollovers);
function initRollovers() {
	if (!document.getElementById) return
	
	var sTempSrc;
	var aPreLoad = new Array();
	var aImages = document.getElementsByTagName('img')
	for (var i = 0; i < aImages.length; i++) {		
		if (aImages[i].className == 'nav') {
			var src = aImages[i].getAttribute('src');
			var hsrc = src.replace('off', 'on');
			aImages[i].setAttribute('hsrc', hsrc);
			// ===== Preload =====
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			// ===== Set onMouse(over|out) =====
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('on','off');
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}
// ================================================================================================
addEvent(window,'load',initMenuList);
function initMenuList(){
	var menu = getElementsByClassName(document,"dl","expandable");
	if(menu.length > 0){
		for(var dl=0;dl<menu.length;dl++){
			// ===== Make Definition Term clickable ===== 
			var menuDT= menu[dl].getElementsByTagName("dt");
			for(var dt=0;dt<menuDT.length;dt++){
				menuDT[dt].className = "menuBtnOpen";
				menuDT[dt].onclick = function(){
					var nextSib = this.nextSibling; 
					while (nextSib!= null){ 
						if(nextSib.nodeType==1){ //Mozilla includes #text nodes in sibling list 
							if(nextSib.nodeName.toLowerCase()=="dd"){ 
								nextSib.style.display = (nextSib.style.display == "none")? "block" : "none";
								this.className = (nextSib.style.display == "none")? "menuBtnOpen" : "menuBtnClose";
							} else{ 
								break; 
							} 
						} 
						nextSib = nextSib.nextSibling; 
					}
					addBottomBorder(); /* update rightColumn */
				} 
			}
			
			// ===== Hide Definition Description ===== 
			var menuDD = menu[dl].getElementsByTagName("dd");
			for(var dd=0;dd<menuDD.length;dd++){
				menuDD[dd].style.display = "none";
			}
		}
	}
}
// ================================================================================================
addEvent(window,'load',addBottomBorder);
function addBottomBorder(){
	var contentHeight = $("rightColumn");
	if(contentHeight){
		if($("container").offsetHeight > ($("rightColumn").offsetHeight+102+24)){ // margin-top:102px + borders:24px;
			$("rightColumn").style.borderBottom = "12px solid #3F3D0D";
		} else { 
			$("rightColumn").style.borderBottom = "0px";
		}
	}
}
// ================================================================================================
function displayCosiLocator(){
	var thePath = "";
	var domain = document.location.href;
	if(domain.indexOf("getcosi.com")==-1 || domain.indexOf("63.76.74.160")==-1){
		thePath = "http://www.getCosi.com/";
	}
	// ========== Create Dynamic Content ==========
	if(!$("locator")){
		var container = document.createElement("div");
			container.setAttribute("id","locator");
			document.body.appendChild(container);
		var mapDiv = document.createElement("div");
			mapDiv.setAttribute("id","cosiMap");
			container.appendChild(mapDiv);
		var flashMap = "<object type='application/x-shockwave-flash' data='"+thePath+"flash/cosi_locator.swf' width='860' height='490'><param name='movie' value='"+thePath+"flash/cosi_locator.swf' /></object>"
		$("cosiMap").innerHTML = flashMap;
	} else {
		document.body.removeChild($("locator"))
	}
}
// ================================================================================================
addEvent(window,'load',initPrototype);
function initPrototype(){
	if($("prototype")){
		var thumb = getElementsByClassName($("prototype"),"div","thumb");
		for(var th=0;th<thumb.length;th++){
			thumb[th].style.cursor = "pointer";
			thumb[th].onclick = function(){ changePrototype(this); }
		}
		// init first thumbnail;
		var firstThumb = thumb[0].getElementsByTagName("img");
		firstThumb[0].style.opacity = ".50";
		firstThumb[0].style.filter = "alpha(opacity:50)";
		firstThumb[1].style.display = "none";
	}
}
function changePrototype(active){
	var thumb = getElementsByClassName($("prototype"),"div","thumb");
	for(var th=0;th<thumb.length;th++){
		var resetPhoto = thumb[th].getElementsByTagName("img")[0];
		resetPhoto.style.opacity = ".99";
		resetPhoto.style.filter = "alpha(opacity:100)";
		thumb[th].getElementsByTagName("img")[1].style.display = "";
	}
	var photo = $("prototype").getElementsByTagName("img")[0];
	var preview = active.getElementsByTagName("img")[0];
	var caption = getElementsByClassName($("prototype"),"div","caption")[0];
	photo.src = preview.src.replace("sm","lg");
	caption.innerHTML = preview.alt;
	preview.style.opacity = ".50";
	preview.style.filter = "alpha(opacity:50)";
	active.getElementsByTagName("img")[1].style.display = "none";
}
// ================================================================================================
var oTop
var oLeft;
addEvent(window,'load',initPopups);
function initPopups(){
	if($("showcase")){
		var popups = getElementsByClassName($("showcase"),"div","popup");
		for(var p=0;p<popups.length;p++){
			popups[p].onmouseover = showPopup;
			popups[p].onmouseout = clearPopup;
		}
		// adjusting for margin:25px; IE.. no idea.
		oTop = (isSafari)? 25 : (isOpera)? 25 : (isIE)? 0 : 0;
		oLeft = (isSafari)? 25 : (isOpera)? 25 : (isIE)? 0 : 0;
	}
}
function showPopup(){
	var info = getElementsByClassName(this,"div","info");
	/* ===== create container element - if unavailable ===== */
	if(!$("popupEmployeeInfo")){
		var divContainer = document.createElement("div");
		divContainer.setAttribute("id","popupEmployeeInfo");
		document.body.appendChild(divContainer);
	/* ===== position and display form ===== */
		var oPOS = findPosition(this);
		$("popupEmployeeInfo").style.top = (oPOS.y + oPOS.height + 8) + oTop + "px";
		$("popupEmployeeInfo").style.left = oPOS.x + oLeft + "px";
		$("popupEmployeeInfo").style.display = "block";
		$("popupEmployeeInfo").innerHTML = info[0].innerHTML;
	}
}
function clearPopup(){
	document.body.removeChild($("popupEmployeeInfo"))
}
// ================================================================================================

	document.write("<script type='text/javascript' src='http://www.getcosi.com/js/JavaScriptFlashGateway.js'></script>");

// ================================================================================================