/**********************
-------function to run on window load-------
---set all global page variables and run onload functions---
***********************/
window.onload = function setPage(){
	//setExternalLinks();

	hrefString = strip(document.location.href);
	topNavItems = document.getElementById("topnav").getElementsByTagName("A");
	
	
/*****************************************************************
these are exceptions we will remove once new pages are published
******************************************************************/	
	// until home page is re-done;
	if(document.getElementById("homenav") != null){
		document.getElementById("sw_searchbox").style.position = "";
	}
	//alert(hrefString);
	//if(hrefString.match(/.*?\/\/.*?\/pubs_and_bulls\/publications\/ 
/*****************************************************************	
******************************************************************/	


	if(document.getElementById("topnav") != null)
		//setMenu(topNavItems, hrefString, 0);
	
	if (document.getElementById("leftnav") != null){
		leftNavItems = document.getElementById("leftnav").getElementsByTagName("A");
		leftNavExItems = compact(document.getElementById("leftnav").getElementsByTagName("UL")[0].getElementsByTagName("LI"));
		closeMenu(leftNavExItems);
		setMenu(leftNavItems, hrefString, 1);
	}
		
	if(document.getElementById("portalImage") != null){
		setSlideShow();
	}
	
	// open state search in new window
	document.getElementById("sw_searchbox").target = "_blank";
	// open footer web survey in new window
	if(document.getElementById("f_survey") != null)
		document.getElementById("f_survey").target = "_blank";
}

/**********************
-------function to run when user clicks document-------
---calls two functions, leftnav toggle and 
image slideshow if on portal page---
***********************/
document.onclick = function check(e){
	target = (e && e.target) || (event && event.srcElement);
		
	// this replaces inline script from state banner
	if(target == document.getElementById('searchgraphic')){
		document.getElementById('searchgraphic').style.display = 'none';
		document.getElementById('sw_searchbox').style.display= 'block';
		document.getElementById('searchbox').focus();
		return false;
	}
	
	if(document.getElementById("leftnav") != null)
		var r = toggleMenu(leftNavExItems, target);
		
	if(document.getElementById("portalImage") != null)
		var x = runSlideShow(target);

	if(r == 0 || x == 0)
		return false;
}

/**********************
---chops url to top nav root bucket and returns bucket---
***********************/
function chop(b){
	// check if we're in evta folder
	if(b.match(/.*?\/\/.*?\/evta\/.*/))
		b = b.replace(/(.*?\/\/.*?\/.*?\/.*?\/).*/, "$1");
	else
		b = b.replace(/(.*?\/\/.*?\/.*?\/).*/, "$1");
	return b;
}

/**********************
---users with javascript enabled will load a closed menu---
---users with javascript disabled will always see an open menu---
***********************/
function closeMenu(elem){
	for(var i=0; i < elem.length; i++){
		swap(elem[i], 0);
	}
}

/**********************
---find and return only expand/collapsable leftnav list items---
***********************/
function compact(li){
	var c = [], i;
	for (i = 0; i < li.length; i++){
		if(li[i].getElementsByTagName("UL")[0] != null)
			c.push(li[i]);
	}	return c;
}

/**********************
---find the current index of the slideshow---
***********************/
function curIndex(c){
	for(var i = 0; i < iL2.length; i++){
		if(iL2[i].className == "selected")
			return i;
	}
}

/**********************
---remove previous and next button indexes from slideshow because they are never selected---
***********************/
function removeEnds(aTags){
	var c = [], i;
	for (i = 0; i < aTags.length; i++){
		c.push(aTags[i]);
	}	
	c.shift();
	c.pop();
	return c;
}

/**********************
---pages shouldnt have links pointing to themselves (current page)---
---remove the current page link and replace with highlighted div---
***********************/
function replaceElement(elem){
	var newElem = document.createElement("SPAN");
	newElem.innerHTML = elem.innerHTML;
	elem.parentNode.replaceChild(newElem, elem);
}

/**********************
---find all external links within content area and add a title attribute to them---
***********************/
function setExternalLinks(){
	if(document.getElementById("mainContent") == null)
		return;
	
	var links = document.getElementById("mainContent").getElementsByTagName("a");	
	for(var i = 0; i < links.length; i++){
		var exLink = links[i].toString().match(/.*?\/\/(www.tax.ny.gov|albiwprod01|albiwdev01|tax_qa|iwdev_qa|nystax.custhelp.com|tax.custhelp.com)\/.*?/);
    	if (!exLink){
    		if(links[i].getElementsByTagName("IMG")[0] != null){
    			links[i].className = "noImg";
    		}
    		else
    			links[i].setAttribute('title', 'You are leaving the tax dept web site.');
    	}
	}
}

/**********************
---compare page url with left nav items and top nav buckets---
---if page url matches top nav bucket, highlight item---
---if page url matches item or bucket, remove link and replace highlighted div---
***********************/
function setMenu(a, cur, n){
		if(n == 0){
			for (var i = 0; i < a.length; i++){
				if(a[i] == cur){
					replaceElement(a[i]);
					return;
				}
				var t = chop(a[i].href);
				var b = chop(cur);

				if(t == b){
					a[i].className = "selected";
					return;	
				}
			}
				
		}
		else{
			for (var i = 0; i < a.length; i++){
				if(a[i] == cur){
					if(a[i].parentNode.className != null)
						swap(a[i].parentNode.parentNode.parentNode, 1);
				
					replaceElement(a[i]);
					return;
			}
		}		
	}
}

/**********************
---set up slideshow variables---
***********************/
function setSlideShow(){
	if(document.getElementById("switch") == null)
		return;
	iL = document.getElementById("switch").getElementsByTagName("A");
	iL2 = removeEnds(iL);
	iS = document.getElementById("graphic").getElementsByTagName("DIV");
	iT = document.getElementById("text").getElementsByTagName("DIV");
}

/**********************
---set slideshow items and indexes on click---
***********************/
function runSlideShow(t){
	if(document.getElementById("switch") == null)
		return;
		
	var s, i;
	for(i = 0; i < iL.length; i++){
		if(t == iL[i]){	
			var x = curIndex();

			swap(iL2[x], 0);
			swap(iS[x], 0);
			swap(iT[x], 0);

			if(i == 0){
				if(x == 0)	
					x = iL2.length - 1;
				else	
					x--;
			}
			else if(i == iL.length - 1){
				if(x == iL2.length - 1)	
					x = 0;
				else	
					x++;
			}
			else
				x = i - 1;
			
			swap(iL2[x], 1);
			swap(iS[x], 1);
			swap(iT[x], 1);
			return 0;
		}
	}
}

/**********************
---strip extraneous url parts so it will work everywhere and return url---
***********************/
function strip(url){ 
	url = url.replace(/\/iw-mount\/default\/main\/.*?\/WORKAREA\/Work/,"");
	url = url.replace(/default.htm/,"");
	return url;
}

/**********************
---switch leftnav submenu between opened/closed---
***********************/
function swap(e, oc){
	if(oc == 0)
		e.className = "closed";
	else if(oc == 1)
		e.className = "selected";
	else{
		if(e.className == "closed")
			e.className = "selected";
		else
			e.className = "closed";
	}		
}

/***********************
---loop through left nav clickable submenu items and determine if one was clicked---
---if one was, open/close that submenu and close all other submenus---
***********************/
function toggleMenu(e, t){
	var ex = [], co = [], i;
	for (i = 0; i < e.length; i++){
		if(t == e[i].getElementsByTagName("A")[0])
			ex.push(e[i]);
		else
			co.push(e[i]);
	}
	if(ex.length == 0)
		return 1;
	else{
		swap(ex[0], 2);
		for(i = 0; i < co.length; i++){
			swap(co[i], 0);
		}
		return 0;
	}
}
