/* Home page - Operations executed when the page loads
 * 
 * University of Ottawa
 * Computing and Communications Services
 */
 
 /* require modern browser by checking for required features */
if (document.getElementById 
	&& document.getElementsByTagName 
	&& document.createElement
	&& document.createTextNode
	&& typeof window.addDOMLoadEvent == 'function') {
	
	/* add rounded corners */
    addDOMLoadEvent(addHomePageRoundedCorners);
	
	/* initialize drop-down lists */
    addDOMLoadEvent(initHomePageDropDownLists);
	
}

function addHomePageRoundedCorners() {
	if (!getElementsByClassName || !document.getElementById) return;
	
	/* Side-bar */
	if (document.getElementById(idList.secondaryContent)) {
		/* create a new div.corner inside #highlight > div.feature */
		var arrFeatures = getElementsByClassName(document.getElementById(idList.secondaryContent),"div","feature");
		for (var i = 0; i < arrFeatures.length; i++) {
/*			arrFeatures[i].appendChild(createCornerDiv());
*/			if (arrFeatures[i].nextSibling != null) {
				arrFeatures[i].parentNode.insertBefore(createCornerDiv(),arrFeatures[i].nextSibling);
			} else {
				arrFeatures[i].parentNode.appendChild(createCornerDiv());
			}
		}
		/* create a new div.corner inside #site-search */
		if (document.getElementById(idList.siteSearch)) {
			var objSiteSearch = document.getElementById(idList.siteSearch);
/*			objSiteSearch.appendChild(createCornerDiv());
*/			if (objSiteSearch.nextSibling) { 
				objSiteSearch.parentNode.insertBefore(createCornerDiv(),objSiteSearch.nextSibling);
			} else {
				objSiteSearch.parentNode.appendChild(createCornerDiv());
			}
		}
		/* create a new div.corner inside #highlight > div.grouped-features */
		var arrGroupedFeatures = getElementsByClassName(document.getElementById(idList.secondaryContent),"div","grouped-features");
		for (var i = 0; i < arrGroupedFeatures.length; i++) {
			if (arrGroupedFeatures[i].nextSibling) { 
				arrGroupedFeatures[i].parentNode.insertBefore(createCornerDiv(),arrGroupedFeatures[i].nextSibling);
			} else {
				arrGroupedFeatures[i].parentNode.appendChild(createCornerDiv());
			}
		}
	} /* Side-bar */
	
	/* wide-content pages */
	
	var objMainContainer = document.getElementById(idList.mainContainer);
	if (cssjs('check',objMainContainer,cssClasses.wideContentPage)) {
		if (document.getElementById(idList.mainContent)) {
			document.getElementById(idList.mainContent).appendChild(createCornerDiv());
		}
	}
}

function createCornerDiv() {
	var objCornerDiv = document.createElement("div");
	var objExtraSpan = document.createElement("span"); /* Required for IE */
	objCornerDiv.className = cssClasses.corner;
	objCornerDiv.appendChild(objExtraSpan);
	return objCornerDiv;
}

function initHomePageDropDownLists() {
	var objQuickPicksTool = document.getElementById(idList.quickPicksMenu);
	var objPageBody = document.getElementsByTagName('body')[0];
	if (!objQuickPicksTool) return;
	/* if javascript if enabled, display the quickpicks */
	cssjs('add',objQuickPicksTool,cssClasses.jsEnabled);
	
	/* toggle expand/collapse onclick */
	addEvent(objQuickPicksTool,'click',function() {
		if (cssjs('check',this,cssClasses.expand)) {
			cssjs('remove',this,cssClasses.expand);
		} else {
			cssjs('add',this,cssClasses.expand);
		}
	} );
	
	/* collapse onblur */
	addEvent(objPageBody,'click',function(e) { 
		/* if you click on the quickpicks tool itself, do nothing */
		if( (e.target && e.target.id == idList.quickPicksMenu)
			|| (e.srcElement && e.srcElement.id == idList.quickPicksMenu)) return;
		
		/* if you click anywhere else, collapse the tool */
		if (cssjs('check',objQuickPicksTool,cssClasses.expand)) {
			cssjs('remove',objQuickPicksTool,cssClasses.expand);
		}
	} );
	
	/* expand if tabbed into */
	
	/* except if the browser is Netscape 7.1 or lower */
	var patternNS = /Netscape\/([0-9])\.([0-9])/i;
	var matchesNS = patternNS.exec(navigator.userAgent);
	if (matchesNS 
		&& ((parseInt(matchesNS[1]) == 7 && parseInt(matchesNS[2]) < 2)
			|| parseInt(matchesNS[1]) < 7)
		) { return; }

	var arrQuickPicksLinks = objQuickPicksTool.getElementsByTagName('a');
	for (var i=0; i < arrQuickPicksLinks.length; i++) {
		addEvent(arrQuickPicksLinks[i],'focus',function() { 
			if (!cssjs('check',objQuickPicksTool,cssClasses.expand)) {
				cssjs('add',objQuickPicksTool,cssClasses.expand);
			}
		} );
		addEvent(arrQuickPicksLinks[i],'blur',function() { 
			if (cssjs('check',objQuickPicksTool,cssClasses.expand)) {
				cssjs('remove',objQuickPicksTool,cssClasses.expand);
			}
		} );
	}
	
}
