window.onresize = resize;
function load() {
	if ( document.getElementById ) {
		var p = new Poly9.URLParser(document.location.href); // parse the url, get the fragment after '#'
		var tabGroups = collectClass('tabGroup','div');
		if ( tabGroups.length > 0 ) {
			var tabs = collectClass('tabTab','div');
			if ( tabs.length > 0 ) {
				doTabs(tabGroups,tabs);
			}
			if (p.getFragment()) {
				str = p.getFragment() + "Open";
				swapTab(str);
			}
		}
	}	
	resize();
}
function resize() {
	var collection = collectClass("columnContainer","div");
	if (collection.length > 0) {
		columns();
	}
}
function erase(element)  {
	var e = new Array(1);
	e[0] = 'Search';
  for (var r = 0; r < e.length; r++) {
		if ( element.value == e[r] ) {
  		element.value='';
		} else { }
	}
	return;
}

/////////////////////////////////////////////// 

function loadHTML(div) {
	document.getElementById(div).style.display = "block";
}
function unloadHTML(div) {
	document.getElementById(div).style.display = "none";
}

///////////////////////////////////////////////

//// TABS /////
// link array structure // newDiv, group.id, tab.id
link = new Array();
function doTabs(tabGroups, tabs) {
	link = prepareTabGroups(tabGroups,tabs); // newDiv, group.id, tab.id
	loadTabs(tabGroups,link);
	resize();
}
function isClassName(element,testName) {
	var cn = element.className;
	cnarray = cn.split(' ');
	for (var y = 0; y < cnarray.length; y++) {
	if (cnarray[y] == testName) {
			return true;
		}
	}
	return false;
}
function isLoaded(id) {
	if (document.getElementById(id)) {
		if (document.getElementById(id).style.display == 'block') {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		return false;
	}
}
function collectClass(className,elementType) {
	var classArray = new Array();
	var collection = document.getElementsByTagName(elementType);
	for (var i = 0; i < collection.length; i++) {
		var element = collection[i];
		if (isClassName(element,className)) {
			classArray.push(element);
		}
	}
	return classArray;
}
function prepareTabGroups(tabGroups,tabs) {
	var link = new Array();
	var string = "";
	for (var i = 0; i < tabGroups.length; i++) {
		tabGroups[i].className = "tabGroup clearfix";
		tabGroups[i].id = "tabGroup-" + i;
	}
	for (var z = 0; z < tabs.length; z++) {
		thisNode = tabs[z];
		stringTemp = thisNode.parentNode.getElementsByTagName('h2')[0].innerHTML + ' ' + thisNode.getElementsByTagName('h3')[0].innerHTML + "Open";
		stringTemp = stringTemp.replace(/ /g,'');
		thisNode.id = stringTemp;
		// thisNode.id = "tabTab-" + z;
		thisArray = prepareTabNavigation(thisNode,z); // newDiv, group.id, tab.id
		link.push(thisArray);
		tabs[z].className = "tabTab clearfix hide";
	}
	for (var i = 0; i < tabGroups.length; i++) {
		parentDiv = tabGroups[i];
		var newDiv = document.createElement("div");
		newDiv.style.cssText = 'clear:both;';
		sibling = parentDiv.getElementsByTagName('div');
		sibling = sibling[0];
		addElement(sibling,newDiv,parentDiv);
		buildTabNavigation(link,parentDiv);
	}
	return link;
}
function prepareTabNavigation(thisNode,z) {
	thisParent = thisNode.parentNode;
	h3s = thisNode.getElementsByTagName('h3');
	thisH3 = h3s[0];
	group = document.getElementById(thisParent.id);
	newDiv = document.createElement("div");
	newDiv.id = "tabLinkDiv-" + z;
	newDiv.className = "tabHead inactive";
  newDiv.innerHTML = '<a id="tabLink-' + z + '" href="#' + thisNode.id.replace('Open','') + '" onclick="swapTab(' + "'" + thisNode.id + "'" + ');">' + thisH3.innerHTML + '</a>';
	removeElement(thisNode,thisH3);
	thisArray = new Array();
	thisArray.push(newDiv);
	thisArray.push(thisParent.id);
	thisArray.push(thisNode.id);
	return thisArray;
}
function buildTabNavigation(tabGroupLinkArray,parent) {
	for (var z = tabGroupLinkArray.length-1 ; z >= 0 ; z--) {
		groupID = tabGroupLinkArray[z][1];
		if (parent.id == groupID) {
			element = tabGroupLinkArray[z][0];
			sibling = parent.getElementsByTagName('div');
			sibling = sibling[0];
			addElement(sibling,element,parent);
		}
	}
}
function findFirstTabInGroup(groupID,link) {
	logic = 1;
	thisReturn = new Array();
	for (var i = 0; i < link.length; i++) {
		if (link[i][1] == groupID) {
			if (logic) {
				first = Array();
				first.push(link[i][0]);
				first.push(link[i][2]);
				logic = 0;
			}
			else {
				notFirst = new Array();
				notFirst.push(link[i][0]);
				notFirst.push(link[i][2]);
				thisReturn.push(notFirst);
			}
		}
	}
	r = new Array();
	r.push(first);
	r.push(thisReturn);
	return (r);
}
function findThisTabInGroup(tabID,groupID,link) {
	logic = 1;
	thisReturn = new Array();
	for (var i = 0; i < link.length; i++) {
		if (link[i][1] == groupID) {
			if (link[i][2] == tabID) {
				if (logic) {
					thisTab = new Array();
					thisTab.push(link[i][0]); // div
					thisTab.push(link[i][2]); // tab.id
					logic = 0;
				}
			}
			else {
				notThisTab = new Array();
				notThisTab.push(link[i][0]); // div
				notThisTab.push(link[i][2]); // tab.id
				thisReturn.push(notThisTab);
			}
		}
	}
	r = new Array();
	r.push(thisTab);
	r.push(thisReturn);
	return (r);
}
function findGroup(tab,link) {
	for (var i = 0; i < link.length; i++){
		if (link[i][2] == tab.id) {
			groupID = link[i][1];
			return groupID;
		}
	}
}
function loadTabs(groups,link) {
	for (var i = 0; i < groups.length; i++) {
		all = findFirstTabInGroup(groups[i].id,link);
		load = all[0];
		load[0].className = "tabHead active";
		load[1].className = "tabTab clearfix show";
		unload = all[1];  //newDiv, groupID
		for (z = 0; z < unload.length; z ++) {
			document.getElementById(unload[z][1]).className = "hide";
		}
	}
}
function swapTab(tabID) {
	if (document.getElementById(tabID)) {
		tab = document.getElementById(tabID);
		groupID = findGroup(tab,link);
		all = findThisTabInGroup(tab.id,groupID,link);
		load = all[0];
		load[0].className = "tabHead active";
		if(document.documentElement.blur) {
			load[0].blur();
		}
		document.getElementById(load[1]).className = "tabTab clearfix show";
		unload = all[1];  //newDiv, groupID
		for (z = 0; z < unload.length; z ++) {
			unload[z][0].className = "tabHead inactive";
			document.getElementById(unload[z][1]).className = "hide";
		}
		resize();
	}
}
function addElement(sibling,element,parent) {
	parent.insertBefore(element,sibling,parent);
}
function removeElement(parent,element) {
	parent.removeChild(element);
}

//// COLUMNS ////
function columns() {
	var collection = collectClass("columnContainer","div");
	for (var i = 0; i < collection.length; i++) {
		var ele = collection[i];
		var parent = ele.parentNode;
		var w = parent.offsetWidth;
		var w = ele.offsetWidth;
//		var offset = 10;
		var offset = 0;
		var colCount = 0;
		var columns = ele.getElementsByTagName("div");
		for (var z = 0; z < columns.length; z++) {
			var col = columns[z];
			var colParent = col.parentNode;
			if (ele == colParent) {
				if (isClassName(col,"column")) {
					colCount++;
				}
				if (isClassName(col,"two")) {
					colCount++;
				}
				if (isClassName(col,"three")) {
					colCount++;
					colCount++;
				}
				if (isClassName(col,"four")) {
					colCount++;
					colCount++;
					colCount++;
				}
				if (isClassName(col,"five")) {
					colCount++;
					colCount++;
					colCount++;
					colCount++;
				}
			}
		}
		w = w/(colCount);
		w = Math.floor(w);
		w = w-offset;
		for (var z = 0; z < columns.length; z++) {
			var col = columns[z];
			var colParent = col.parentNode;
			if (ele == colParent) {
				if (isClassName(col,"column")) {
					var setW = w-1;
					if (isClassName(col,"two")) {
						setW = 2 * w-1;
					}
					if (isClassName(col,"three")) {
						setW = 3 * w-1;
					}
					if (isClassName(col,"four")) {
						setW = 4 * w-1;
					}
					if (isClassName(col,"five")) {
						setW = 5 * w-1;
					}
					col.style.width = setW + "px";
				}
			}
		}
	}
}