//
//June 28, 2007 - Stephen Scholtz
//Added new functions to support homepage functionality (like swapClass() ) and modified the paths for the nav rollovers

var domainName = "";
//Uncomment this next line when the site goes live.
/*domainName = "../nichesites/business/";*/

function filter (imagename, objectsrc) {
	if (document.images) {
	document.images[imagename].src=eval(objectsrc+".src")
	}
}

//Nav
nav_markets = new Image;
nav_markets_on = new Image;

nav_careers = new Image;
nav_careers_on = new Image;

nav_managing = new Image;
nav_managing_on = new Image;

nav_technology = new Image;
nav_technology_on = new Image;

nav_entrepreneur = new Image;
nav_entrepreneur_on = new Image;

nav_myMoney = new Image;
nav_myMoney_on = new Image;

nav_afterHours = new Image;
nav_afterHours_on = new Image;

nav_listsmore = new Image;
nav_listsmore_on = new Image;

nav_markets.src = domainName + "../nichesites/business/images/frame-v2/nav_markets_off.gif";
nav_markets_on.src = domainName + "../nichesites/business/images/frame-v2/nav_markets_on.gif";

nav_managing.src = domainName + "../nichesites/business/images/frame-v2/nav_managing_off.gif";
nav_managing_on.src = domainName + "../nichesites/business/images/frame-v2/nav_managing_on.gif";

nav_careers.src = domainName + "../nichesites/business/images/frame-v2/nav_careers_off.gif";
nav_careers_on.src = domainName + "../nichesites/business/images/frame-v2/nav_careers_on.gif";

nav_technology.src = domainName + "../nichesites/business/images/frame-v2/nav_technology_off.gif";
nav_technology_on.src = domainName + "../nichesites/business/images/frame-v2/nav_technology_on.gif";

nav_entrepreneur.src = domainName + "../nichesites/business/images/frame-v2/nav_entrepreneur_off.gif";
nav_entrepreneur_on.src = domainName + "../nichesites/business/images/frame-v2/nav_entrepreneur_on.gif";

nav_myMoney.src = domainName + "../nichesites/business/images/frame-v2/nav_myMoney_off.gif";
nav_myMoney_on.src = domainName + "../nichesites/business/images/frame-v2/nav_myMoney_on.gif";

nav_afterHours.src = domainName + "../nichesites/business/images/frame-v2/nav_afterHours_off.gif";
nav_afterHours_on.src = domainName + "../nichesites/business/images/frame-v2/nav_afterHours_on.gif";

nav_listsmore.src = domainName + "../nichesites/business/images/frame-v2/nav_listsmore_off.gif";
nav_listsmore_on.src = domainName + "../nichesites/business/images/frame-v2/nav_listsmore_on.gif";

//Reset nav images
function resetRest(imageHighlight) {
	//imageArray = new Array('navNewsEvents','navOurPublications','nav
	//alert(document.images.length);
	for (i=0; i < document.images.length; i++) {
		if ((document.images[i].name.indexOf('nav_') >= 0) && (document.images[i].name != imageHighlight)) {
			document.images[i].src = domainName + "../nichesites/business/images/frame-v2/" + document.images[i].name + "_off.gif";
		}
	}
}



//Change an element's class from one thing to another; used by the tab system on the homepage
function swapClass(item, oldClass, newClass) {
	var myItem = document.getElementById(item);
	if (!myItem) {
		// DEBUG
		//alert("Can't find Element!");
	} else {
		myItem.className = myItem.className.replace(oldClass, newClass);
	}
	return false;
}



function dayOfWeek(day,month,year) {
    var a = Math.floor((14 - month)/12);
	if (year > 1900) {
		year = year - 1900;
	}
    var y = year - a;
    var m = month + 12*a - 2;
    var d = (day + y + Math.floor(y/4) - Math.floor(y/100) +
             Math.floor(y/400) + Math.floor((31*m)/12)) % 7;
    return d + 1;
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    } 
  }
return null
}

// Returns the current DateTimeStamp
function curDateStamp() {
	var monthArray = new Array("January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var daysOfTheWeek = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
	var myDate = new Date();
	var myYear = myDate.getYear();
	if (myYear < 1900) {
		myYear = myYear + 1900;
	}
	var myMonth = myDate.getMonth();
	var myDayDate = myDate.getDate();
	var myDay = myDate.getDay();
	var myHour = myDate.getHours();
	var myMeridian = '';
	
	//determine am or pm
    if(myHour >= 12){
	myMeridian = "p.m.";
	} else {
	myMeridian = "a.m.";
	}
	//fake 12hr time
	if (myHour > 12) {
		myHour = myHour - 12;
	}
	//fake 12am
	if (myHour == 0) {
	   myHour = 12;
	}
	//end fake
	
	var myMins = myDate.getMinutes();
	var myMinsString = myMins + "";
	if (myMins < 10) {
		myMinsString = "0" + myMinsString;
	}
	//Old output, used day of the week function
	//var myFormattedDate = daysOfTheWeek[dayOfWeek(myDay,myMonth,myYear)] + ", " + monthArray[myMonth] + " " + myDay + ", " + myYear + " " + myHour + ":" + myMins + " " + myMeridian;

	//New output - uses myDate.getDay()
	var myFormattedDate = daysOfTheWeek[myDay] + ", " + monthArray[myMonth] + " " + myDayDate + ", " + myYear + " " + myHour + ":" + myMinsString + " " + myMeridian;

	return myFormattedDate;
}

// Returns the current DateStamp, no time
function curDate() {
	var monthArray = new Array("January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var daysOfTheWeek = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
	var myDate = new Date();
	var myYear = myDate.getYear();
	if (myYear < 1900) {
		myYear = myYear + 1900;
	}
	var myMonth = myDate.getMonth();
	var myDayDate = myDate.getDate();
	var myDay = myDate.getDay();

	//New output - uses myDate.getDay()
	var myFormattedDate = daysOfTheWeek[myDay] + ", " + monthArray[myMonth] + " " + myDayDate + ", " + myYear;

	return myFormattedDate;
}


// Handles friendly formatting of article publilcation dates ("YYYY-MM-DD" into "Month DD, YYYY")
function formatPubDate(myDate) {
	var monthArray = new Array("January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var myDateObj = new Date();
	myDateObj.setYear(myDate.substr(0,4));
	var myYear = myDateObj.getYear();
	// non-IE browser year bug work around
	if (myYear < 1900) {
		myYear = myYear + 1900;
	}
	var myMonthTweak = myDate.substr(5,2);
	if (myMonthTweak.indexOf('0')==0) {
		myMonthTweak = parseInt(myMonthTweak.substr(1,1)) - 1;
	} else {
		myMonthTweak = parseInt(myMonthTweak) - 1;
	}

	myDateObj.setMonth(myMonthTweak);
	myDateObj.setDate(myDate.substr(8,2));
	var myFormattedDate = monthArray[myDateObj.getMonth()] + " " + myDateObj.getDate() + ", " + myYear;
	return myFormattedDate;
}
	


//Handles writing the feature archive link
function writeFeatureLink() {
	if (document.location.href.indexOf('feature_archive.jsp')<0) {
		document.write('<div class="previousLink"><a href="http://www.canadianbusiness.com/feature_archive.jsp">Previously &gt;&gt;&gt;</a></div>')
	 }
}

//Handles writing the columnist archive link
function writeColumnistLink(columnist) {
	var path = document.location.href;
	var columnistArchive = columnist + "/index.jsp";

	if (path.indexOf(columnistArchive) == -1) {
		if (path.indexOf('/entrepreneur/') != -1) {
			document.write('<div class="columnistArchiveLink"><a href="http://www.canadianbusiness.com/entrepreneur/columnists/' + columnist + '/index.jsp">Archive <img src="../nichesites/business/images/btn_3arrows_wht.gif" alt="" style="border: 0px"></a></div>');
		} else if (path.indexOf('/my_money/') != -1) {
			document.write('<div class="columnistArchiveLink"><a href="http://www.canadianbusiness.com/my_money/columnists/' + columnist + '/index.jsp">Archive <img src="../nichesites/business/images/btn_3arrows_wht.gif" alt="" style="border: 0px"></a></div>');
		} else if (path.indexOf('/columnists/') != -1) {
			document.write('<div class="columnistArchiveLink"><a href="http://www.canadianbusiness.com/columnists/' + columnist + '/index.jsp">Archive <img src="../nichesites/business/images/btn_3arrows_wht.gif" alt="" style="border: 0px"></a></div>');
		} else if (document.location.href.indexOf('article') > 1) {
		document.write('<div class="columnistArchiveLink"><a href="http://www.canadianbusiness.com/columnists/' + columnist + '/index.jsp">Archive <img src="../nichesites/business/images/btn_3arrows_wht.gif" alt="" style="border: 0px"></a></div>');
		}
	}


	
}

//Handles writing the columnist feature HTML
function showCFeature(authorVar,author,myTitle,dcr,content) {
	if (authorVar != "") {
		var output = '<div class="columnistModule">';
		output += '<table class="columnistModuleHdr" cellspacing="0" cellpadding="0" border="0">';
		output += '<tr>';
		output += '<td><img src="../nichesites/business/images/columnists/moduleHdrs/' + authorVar + '.gif" alt="' + author + '"></td>';
		output += '<td style="text-align: right"><img src="../nichesites/business/images/img_moduleHdrLines.gif"></td>';
		output += '</tr>';
		output += '</table>';
		output += '<div class="columnistModulePad"><table border="0" cellspacing="0" cellpadding="0">';
		output += '<tr>';
		output += '<td><img src="../nichesites/business/images/columnists/smHeadshots/' + authorVar + '.gif" style="border: 1px solid #000000"></td>';
		output += '	<td class="columnistModuleContent"><p><span class="normalTitle"><a href="article.jsp?content=' + dcr + '">' + myTitle + '</a></span><br/>';
		output += '	' + content + '</p>';
		output += '<div class="moreLink"><a href="article.jsp?content=' + dcr + '">More Info</a> <img src="../nichesites/business/images/btn_3arrows_wht.gif"></div></td>';
		output += '	</tr>';
		output += '</table>';
		output += '</div></div>';
		document.write(output);
	}
}

//Handles writing out the current year for the footer
function writeCurrentYear() {
	myDate = new Date();
	myYear = myDate.getYear();
	if (myYear < 1900) {
		myYear = myYear + 1900;
	}
	document.write(myYear);
}


// breadcrumb HTML
var bcHeader = "";
bcHeader += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"650\">";
bcHeader += "<tr>";
bcHeader += "<td id=\"breadcrumbs\">";

var loc = window.location+"";
var bcFooter = "";
bcFooter += "</td>";
bcFooter += "<td id=\"currentDate\" align=\"right\">";
if (loc.indexOf('article.jsp')<0) {
	bcFooter += curDateStamp();
} else {
	if (document.getElementById("articleAdZone")) {
		bcFooter += document.getElementById("articleAdZone").innerHTML;
	}
}
bcFooter += "</td>";
bcFooter += "</tr>";
bcFooter += "</table>";

function resetThis(idName) {
	if (document.getElementById(idName)) {
		if ((document.getElementById(idName).value=="Enter Email Address") || (document.getElementById(idName).value=="Enter Password")) {
			document.getElementById(idName).value = "";
			if (idName=="loginPwd") {
				document.getElementById(idName).style.display="none";
				document.getElementById(idName+"Use").style.display="block";
				document.getElementById(idName+"Use").focus();
			}
		}
	}	
}

function validateForm(v)
{
  email = v;

  if ( (email == '') || (email.indexOf('.') < 1) ||
       (email.indexOf('@') < 1) ) {
    alert('To log in, please enter a valid email address.\nYour email address must contain the @ symbol.\nExample: yourname@domain.com');
    return(false);
  }

  return(true);
}

// Used to handle links from selection drop-downs found on entrepreneur pages
function jumpToArticle(formObj){
	gotoURL=formObj.options[formObj.selectedIndex].value;
	if(gotoURL != "#"){
		document.location=gotoURL;
	}
}


function runSearch(query) {
	document.location.href = 'http://www.canadianbusiness.com/CBOSearch.do?Qp=c&Ntt='+query+'&Qt=endeca&btn_go=Go&Qo=5&Ne=&Nf=&N=0&Ns=';
}


function getQuote(ticker, view) {
	var newURL = 'http://www.canadianbusiness.com/stock_lookup.jsp?symbol='+ticker;
	
	if (view == 'adv') {
		newURL += '&subnav=advanced';
	}
	
	else if (view == 'rnews') {
		newURL += '&relatednews=yes';
	}
	
	document.location.href = newURL;
}

function fundQuote(ticker) {
	var newURL = 'http://www.canadianbusiness.com/fund_lookup.jsp?item=snapshot&fundkey='+ticker;
	document.location.href = newURL;
}

function getQuoteList(ticker, view) {
	var newURL = 'http://www.canadianbusiness.com/markets/stock_lookup.jsp?symbol='+ticker;
	
	if (view == 'adv') {
		newURL += '&subnav=advanced';
	}
	
	else if (view == 'rnews') {
		newURL += '&relatednews=yes';
	}
	
	document.location.href = newURL;
}

function addListener(element, event, listener, bubble) {
        if(element.addEventListener) {
          if(typeof(bubble) == "undefined") bubble = false;
          element.addEventListener(event, listener, bubble);
        } else if(this.attachEvent) {
          element.attachEvent("on" + event, listener);
        }
      }

// Multimedia Page Tabs 
// Ties a set of tabs and content id's together, and switches between them
// <div id='tab_1'> and <div id="content_1"> for example
// Usage: tabswitch(1, 4, 'tab', 'panel') would switch on tab_1 and panel_1

function tabSwitch_2(active, number, tab_prefix, content_prefix) {
	
	for (var i=1; i < number+1; i++) {
	  document.getElementById(content_prefix+i).style.display = 'none';
	  document.getElementById(tab_prefix+i).className = '';
	}
	document.getElementById(content_prefix+active).style.display = 'block';
	document.getElementById(tab_prefix+active).className = 'active';	
	
}