var openmenu,x,tickerStories,omniDisabled;
var ldbdAC="";
var lugAC="";
var skyRAC="";
var boxRAC="";
var b1AC="";
var b2AC="";
var b3AC="";
var b4AC="";
var d = document;
var ua = navigator.userAgent.toLowerCase();

/* NB: Get Opera version */
var isOpera = (window.opera) ? true : false;
if (isOpera) {
	var ua = navigator.userAgent.toLowerCase();
	var operaI = ua.indexOf('opera');
	var opVer = ua.substring(operaI+5, ua.length);
	opVer = parseFloat(opVer);
	if (opVer<=8) {
		var isOperaOld=true;
	}
}


/* NB: Get Gecko version */
function geckoGetRv(){
	if (navigator.product != 'Gecko'){ return -1; }
	var rvValue = 0;
	var rvStart = ua.indexOf('rv:');
	var rvEnd = ua.indexOf(')', rvStart);
	var rv = ua.substring(rvStart+3, rvEnd);
	var rvParts = rv.split('.');
	var exp = 1;
	
	for (i=0;rvParts.length>i;i++){
		var val = parseInt(rvParts[i]);
		rvValue += val / exp;
		exp *= 100;
	}
	
	return rvValue;
}

/* NB: cookies*/
function getCookie(name){  
	var the_cookie = name + "="; 
	if (d.cookie.length > 0) {     
		begin = d.cookie.indexOf(the_cookie);  
		if (begin != -1) {       
			begin += the_cookie.length;
			end = d.cookie.indexOf(";", begin);
			if (end == -1) { end = d.cookie.length; }
			return unescape(d.cookie.substring(begin, end));
		} 
	} return null;
}

function setCookie(name, value){
	var time = new Date();
	time.setTime(time.getTime() + (1000*60*60*24*365));//expires in a year
	d.cookie = name + "=" + escape(value) + "; path=/; expires=" + time.toGMTString();
}

function deleteCookie(name) {
	if(getCookie(name)) d.cookie = name + "=" + "; path=/; expires=Mon, 01 Jan 01 01:01:01 GMT";
}	

/* NB: act link a link on mouseover */
function likeLinkOver(){
	this.style.textDecoration = "underline"; 
	this.style.cursor = (d.all) ? "hand" : "pointer"; 
}

function likeLinkOut(){
	this.style.textDecoration = "none"; 
}

/* NB: yellow fade technique */
function YFTinit(x,i){ 
	var colour = ["F","E","D","C","B","A"];
	setTimeout("YFT("+x+",'"+colour[x]+"','"+i+"')", 500);
}

/* NB: windows print */
function printThis(nObj){
	var c = nObj.childNodes;
	for(x=0;c.length>x;x++){
		if(c[x].className=="print"){
			c[x].getElementsByTagName("a")[0].onclick=function(){ 
				if(d.getElementById("pagination") && location.search.indexOf("pageRequested=all")==-1){
					qmod = (location.search) ? "\u0026" : "?";
					url = location.href.replace(/pageRequested=([0-9]+)/,"");
					location.href=url+qmod+"pageRequested=all\u0026print=true";
				}	else {
					window.print(); 
				}
				return false; 
			}
			c[x].getElementsByTagName("a")[0].title="Click to print this page";
		}
	}
}

function chkPrint(){
	if(location.search.indexOf("print=true")!=-1 && window.print){
		window.print();
		if(ua.indexOf("safari")==-1) { history.go(-1); }
		else { return; }
	}
}

/* NB: pop-up window */
function _open_popup_window(w,h,url,slug,t) {

	var regex = /\W+/;
	if(regex.test(slug)) { slug = slug.replace(/\W+/, '_'); }
	/*if(w != '' && h != '') { 
		framesPopUp(url,t,slug,w,h); 
		return false;
	}
	return true; */
	
	var n = "__" + n;
	if(regex.test(n)) { n = n.replace(/\W+/, '_'); }
	if (!w) w=780;
	if (!h) h=550;
	
	var params = '';
	params += 'width=' + w;
	params += ',height=' + h;
	params += ',menubar=no,resizable=yes,toolbar=no,scrollbars=yes,location=no';
	window.open(url, n, params);
	return false;
}

function framesPopUp(filename,t,n,w,h) {
	var n = "__" + n;
	var regex = /\W+/;
	if(regex.test(n)) { n = n.replace(/\W+/, '_'); }
	params = "width="+ w +",height="+h + ",resizable";
	winExec = n +"= window.open('','"+n+"', params)";
	content = "<html lang=\"en-ca\"><html><head><title>"+t+"</title></head><frameset rows='0,*' frameborder='NO' border='0' framespacing='0'><frame name='topFrame' scrolling='NO' src='about:blank'><frame name='mainFrame' src='"+ filename +"' scrolling='auto'></frameset><title></title></title><noframes><body>This require a browser that supports frames.</body></noframes></html>"; 
	eval(winExec);
	eval(n + ".document.open()");
	eval(n + ".document.write(content)");
	eval(n + ".document.close()");
}

/* NB: set top to height of another object */
function setTop(obj1,obj2,mod){
	obj2.style.top = obj1.offsetHeight+mod+"px";
}

/* NB: get elements exact position */
function getElPos(nObj){
	var l = 0;
	var t = 0;
	if(nObj) {
		if(nObj.offsetParent) {
			while (nObj.offsetParent){
				l += nObj.offsetLeft
				t += nObj.offsetTop
				nObj = nObj.offsetParent;
			}
		}
		var el_pos = [l,t]
		return el_pos;
	}
}	

/* 
	NB: add + remove elements 
	written by Dean Edwards, 2005 with input from Tino Zijdel
	http://dean.edwards.name/weblog/2005/10/add-event/
*/ 
function addEvent(element, type, handler) {
	if (!handler.$$guid) handler.$$guid = addEvent.guid++;
	if (!element.events) element.events = {};
	var handlers = element.events[type];
	if (!handlers) {
		handlers = element.events[type] = {};
		if (element["on" + type]) {
			handlers[0] = element["on" + type];
		}
	}
	handlers[handler.$$guid] = handler;
	element["on" + type] = handleEvent;
};

addEvent.guid = 1;
	
function removeEvent(element, type, handler) {
	if (element.events && element.events[type]) {
		delete element.events[type][handler.$$guid];
	}
};

function handleEvent(event) {
	var returnValue = true;
	event = event || fixEvent(window.event);
	var handlers = this.events[event.type];
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) == false) {
			returnValue = false;
		}
	}
	return returnValue;
};

function fixEvent(event) {
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	return event;
};

fixEvent.preventDefault = function() {
	this.returnValue = false;
};

fixEvent.stopPropagation = function() {
	this.cancelBubble = true;
};

/*
	NB: Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && d.all)? document.all : 
	oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("\\b" + strClassName + "\\b");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];      
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}   
	}
	return (arrReturnElements)
}

/* NB: adjust the layout width/height as needed */
function layoutAdjust(){
	if(d.getElementById("chewy")){
		if(d.getElementById("sectionCat")) { switchStoryDisplay(d.getElementById("sectionCat")); }
		loadTicker(); 
		var chewyObj = d.getElementById("chewy");
		var w = (chewyObj.offsetWidth) ? chewyObj.offsetWidth : 404;

		/* hide wide elements */
		if(d.getElementById("sectionD")){
			if(404>w && d.getElementById("sectionD").length>1){
				d.getElementById("sectionD").getElementsByTagName("DIV")[1].style.display = "none";
			} else if(w>=404 && d.getElementById("sectionD").length>1){
				d.getElementById("sectionD").getElementsByTagName("DIV")[1].style.display = "block";
			}
		}
	}
	if(d.getElementById("sectionC")){
		var isMega = false;
		var nObj = d.getElementsByTagName("BODY")[0];
		if(nObj.className) { 
			var hubClass = nObj.className.split(" ");		
			for(var i=0; i<hubClass.length; i++) {
				if(hubClass[i]=="mega") {
					isMega = true;					
				}
			}		
		}
		if(!isMega) {
			d.getElementById("sectionB").className = "col";
		}  
		d.getElementById("sectionC").className = "col last";	
	}
	var geckoRv = geckoGetRv();
	if (geckoRv != -1) {
		if(1.0704>=geckoRv){ 
			d.getElementById("chewy").style.minHeight = "900px"; } /* Fix clearing problem in Gecko 1.7*/
	}
} 

/* NB: get hub class */
function getHub(){
	var nObj = d.getElementsByTagName("BODY")[0];
	if(nObj.className) { 
		var hubClass = nObj.className.split(" ");
		return hubClass[1];
	} else {
		return false;
	}
}

/* NB: enlarge image */
function viewBigImage(w,h,url,n,t){
	var iW;
	t = "Image from \u201C"+t+"\u201D";
	n = "__"+n;
	var regex = /\W+/;
	if(regex.test(n)) { n = n.replace(/\W+/,'_'); }
	var scrolling = false;
	try {
		if(w>screen.availWidth) {
			w = screen.availWidth;
			scrolling = true;
		}
		if(h>screen.availHeight) {
			h = screen.availHeight;
			scrolling = true;
		}
	}
	catch(e) {}
	iWw = eval(w)+20;
	var f = "width="+iWw+",height="+h;
	f += ",left=10,top=10,menubar=no,toolbar=no,status=no,screenX=0,screenY=0";
	f += (!scrolling) ? ",scrollbars=0" : ",scrollbars=1";
	(window.iW==null||iW.closed) ? iW=window.open("",n,f) : iW.location.href = ""; 
	iW.document.write("<html lang=\"en-ca\"><head><title>"+t+"</title></head><body style=\"margin:0px;padding:0px\"><div><img src=\""+url+"\" width=\""+w+"\" height=\""+h+"\" alt=\""+t+"\"></div></body></html>");
	iW.document.close(); 	
	iW.focus();
	return false;
}

/* NB: create ticker */
function loadTicker() {
	c = d.getElementById('ticker');
	if (c) { 
		m = document.createElement('MARQUEE');
		m.setAttribute('scrollDelay', 130);
		m.setAttribute('direction', 'left');
		m.setAttribute('scrollAmount', 5);
		if (tickerStories.length == 1) {
			m.setAttribute('class', 'override');	
		}	
		for (var i=0; i<tickerStories.length; i++) {
			var a = d.createElement('A');
			a.setAttribute('href', tickerStories[i][0]);
			var t = d.createTextNode(unescape(tickerStories[i][1]));
			a.appendChild(t);
			m.appendChild(a);
		}
		c.appendChild(m);
	
	} 
}

function loadAC(){
	var acSpots = ["ldbd","lug","skyR","boxR","b1","b2","b3","b4"];
	for(x=0;acSpots.length>x;x++){
		if(d.getElementById(acSpots[x]) && d.getElementById(acSpots[x]+"Holder")){
			if(4>x) { 
				placeAC(acSpots[x]);
				if(x==0) { addEvent(window,"resize",function(){ placeAC("ldbd"); }); }
				else if(x==1) { addEvent(window,"resize",function(){ placeAC("lug"); }); }
				else if(x==2) { addEvent(window,"resize",function(){ placeAC("skyR"); }); }
				else if(x==3) { addEvent(window,"resize",function(){ placeAC("boxR"); }); }
			} else if(d.getElementById(acSpots[x]))  { 
				d.getElementById(acSpots[x]).innerHTML = d.getElementById(acSpots[x]+"Holder").innerHTML;
				d.getElementsByTagName("BODY")[0].removeChild(d.getElementById(acSpots[x]+"Holder"));
			}
		}
	}
}

function placeAC(i){	
	var pos = getElPos(d.getElementById(i));
	var nObj = d.getElementById(i+"Holder");
	var mod = (d.all) ? 4 : 0;
	nObj.style.position = "absolute";
	nObj.style.top = eval(pos[1]+mod)+"px";
	nObj.style.left = eval(pos[0]+mod)+"px";
	nObj.style.display = "block";
	nObj.onmouseover = function(){ this.style.overflow = "visible"; };
	nObj.onmouseout = function(){ this.style.overflow = "hidden"; };
	if(d.getElementById(i).parentNode.id.indexOf("secondaryNav")==0 && i=="boxR") {
		if((d.all && d.compatMode && d.compatMode != "BackCompat") || !d.all) { 
			nObj.style.padding = "15px";
		}
	}
}


