﻿/* ########################################################################

OE3.ORG DEFAULT.JS v2.0

COPYRIGHT 2007 OE3.ORG

########################################################################### */

// this should be equal to the highest number of .topnav classes in the default.css
var tnav = 5;

var sn = new Array();
sn[0] =	new Array(
	['<a href="http://www.oe3.org/contact/">Contact Us</a>'],
	['<a href="http://www.oe3.org/about/jobs/">Jobs @ Local 3</a>'],
	['<a href="http://www.oe3.org/sitemap.html">Site Map</a>'],
	['<a href="http://www.oe3.org/privacy.html">Privacy Policy</a>'],
	['<a href="http://www.oe3.org/tos.html">Terms of Use</a>'],
	['<a href="http://www.oe3.org/links.html">Links</a>']
);

sn[1] =	new Array(
	['<a href="http://www.oe3.org/about/administration/index.html">Administration >>></a>',
		'<a href="/about/administration/burns.html">Russ Burns, Business Manager</a>',
		'<a href="http://www.oe3.org/about/administration/herschbach.html">Fred Herschbach, President</a>',
		'<a href="http://www.oe3.org/about/administration/goff.html">Carl Goff, Vice President</a>',
		'<a href="http://www.oe3.org/about/administration/sullivan.html">Jim Sullivan, Rec. Corr. Secretary</a>',
		'<a href="http://www.oe3.org/about/administration/reding.html">Dan Reding, Financial Secretary</a>',
		'<a href="http://www.oe3.org/about/administration/figueiredo.html">Pete Figueiredo, Treasurer</a>',
 
	],
	['<a href="http://www.oe3.org/about/contracts.html">Contracts</a>'
	],
	['<a href="http://www.oe3.org/about/credit_union.html">Credit Union</a>'],
	['<a href="http://www.oe3.org/about/retiree.html">Retiree Association</a>'],
	['<a href="http://www.oe3.org/about/scholarship/index.html">Scholarship Program</a>'],
	['<a href="http://www.oe3.org/about/tradition.html">Tradition and History</a>'],
	['<a href="http://www.oe3.org/about/why_join.html">Why Join a Union?</a>'],
	['<a href="http://www.oe3.org/about/civi_rights.html">Compliance & Civil Rights</a>']
);

sn[2] =	new Array(
	['<a href="http://www.oe3.org/district_offices/dist_meetings.html">District Meetings Schedule</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_picnics.html">District Picnics Schedule</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_1.html">District 01, Burlingame</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_4.html">District 04, Fairfield</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_10.html">District 10, Rohnert Park</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_11.html">District 11, Reno</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_12.html">District 12, Salt Lake City, Utah</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_17.html">District 17, Hawaii</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_20.html">District 20, Oakland, CA</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_30.html">District 30, Stockton, CA</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_40.html">District 40, Eureka, CA</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_50.html">District 50, Fresno, CA</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_60.html">District 60, Yuba City, CA</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_70.html">District 70, Redding, CA</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_80.html">District 80, Sacramento, CA</a>'],
	['<a href="http://www.oe3.org/district_offices/dist_90.html">District 90, Morgan Hill, CA</a>']
);

sn[3] =	new Array(
	['<a href="http://www.oe3.org/politics/index.html">Introduction</a>'],
	['<a href="http://www.oe3.org/politics/events.html">Events</a>'],
	['<a href="http://www.oe3.org/politics/state/ca/index.html">California</a>'],
	['<a href="http://www.oe3.org/politics/state/hw/index.html">Hawaii</a>'],
	['<a href="http://www.oe3.org/politics/state/nv/index.html">Nevada</a>'],
	['<a href="http://www.oe3.org/politics/state/ut/index.html">Utah</a>'],
	['<a href="http://www.oe3.org/politics/vote/vote.html">VOTE Program</a>']
);

sn[4] =	new Array(
	['<a href="http://www.oe3.org/benefits/arp.html">Assistance &amp; Recovery Program (ARP)</a>'],
	['<a href="http://www.oe3.org/benefits/health.html">Health Insurance</a>'],
	['<a href="http://www.oe3.org/benefits/pension.html">Pension</a>']
);

sn[5] =	new Array(
	['<a href="http://www.oe3.org/public/law_enforcement.html">Law Enforcement</a>'],
	['<a href="http://www.oe3.org/public/internal_affairs.html">Internal Affairs</a>'],
	['<a href="http://www.oe3.org/public/rights.html">The Rights of Police Officers</a>'],
	['<a href="http://www.oe3.org/public/pe_links.html">Public Employee Links</a>']
);

sn[6] =	new Array(
	['<a href="http://www.oe3.org/news/eNews.html">eNews - web stories</a>'],
	['<a href="http://www.oe3.org/news/galleries.html">Photo Galleries</a>'],
	['<a href="http://www.oe3.org/news/archives.html">Archives</a>'],
	['<a href="http://www.oe3.org/news/service.html">Year Pin Recipients</a>'],
	['<a href="http://www.oe3.org/news/index.html">Download this months newsletter</a>']

);

sn[7] =	new Array(
	['<a href="http://www.oe3.org/organizing/actions.html">Job Actions</a>'],
	['<a href="http://www.oe3.org/organizing/unit12.html">Unit 12</a>']
	
);


sn[8] =	new Array(
	['<a href="http://www.oe3.org/training/apprentice.html">Apprentice Program</a>'],
	['<a href="http://www.oe3.org/training/safety.html">Safety Training</a>'],
	['<a href="http://www.oe3.org/training/california.html">California Training Center</a>'],
	['<a href="http://www.oe3.org/training/hawaii.html">Hawaii Training Center</a>'],
	['<a href="http://www.oe3.org/training/nevada.html">Nevada Training Center</a>'],
	['<a href="http://www.oe3.org/training/utah.html">Utah Training Center</a>']
);


// TOPNAV BG & JSENABLED FLAG
var edoc = document;
if (edoc.getElementsByTagName('html')[0]){
	var randumb=Math.floor(Math.random()*(tnav+1))
	addClassName(edoc.getElementsByTagName('html')[0], 'jsenabled topnav'+randumb);
	if(edoc.getElementsByTagName('html')[0].offsetWidth > 1300){
		addClassName(edoc.getElementsByTagName('html')[0],'wideload');
	}
}


function positionMenus(){
	var n = 0;
	while(document.getElementById('tnav'+n)){
		var pdum = document.getElementById('tnav'+n);
		var ptop = 0; 
		var plft = 0;
		while(pdum){
			plft = plft + pdum.offsetLeft;
			ptop = ptop + pdum.offsetTop;
			pdum = pdum.offsetParent;
		}
		document.getElementById('tnav'+n).getElementsByTagName('ul')[0].style.top=ptop+'px';
		document.getElementById('tnav'+n).getElementsByTagName('ul')[0].style.left=plft+'px';
		n++;
	}
}


//	EVENT CACHE
//	Copyright 2005 Mark Wubben
//	Provides a way for automagically removing events from nodes and thus preventing memory leakage. 
//	See <http://novemberborn.net/javascript/event-cache> for more information.
//	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
var EventCache = function(){var listEvents = [];return {listEvents : listEvents, add : function(node, sEventName, fHandler){ listEvents.push(arguments);}, flush : function(){ var i, item;	for(i = listEvents.length - 1; i >= 0; i = i - 1){ item = listEvents[i]; if(item[0].removeEventListener){ item[0].removeEventListener(item[1], item[2], item[3]); }; if(item[1].substring(0, 2) != "on"){ item[1] = "on" + item[1]; }; if(item[0].detachEvent){ item[0].detachEvent(item[1], item[2]); }; item[0][item[1]] = null; }; } }; }();
addEvent(window,'unload',EventCache.flush);

var csub = false;
var viewall = "view all";
var hideall = "hide all";
var formcache = "";

//	ONLOAD EVENTS
addEvent(window,'load',function(){
	var oDoc = document;

	if(navigator.appVersion.indexOf('MSIE')>-1){
		addClassName(oDoc.getElementsByTagName('body')[0], 'isIE');
	}

	// set up nav menus
	if(oDoc.getElementById('navlist')){
		var offdiv = elem('div',{'id':'offdiv'});		//if ie add spacer?
		addEvent(offdiv, 'mouseover', function(e){
			var tn = 0;
			while(oDoc.getElementById('tnav'+tn)){
				removeClassName(oDoc.getElementById('tnav'+tn),'showkids1');
				tn++;
			}
			if(csub){
					removeClassName(csub,'showkids2');
			}
			oDoc.getElementById('offdiv').style.display="none";
		});
		oDoc.getElementsByTagName('body')[0].appendChild(offdiv);

		var navlist = oDoc.getElementById('navlist').getElementsByTagName('li');
		for (var i = 0; i < navlist.length; i++){
			navlist[i].id = 'tnav'+i;
			addEvent(oDoc.getElementById('tnav'+i), 'mouseover', function(e){
				oDoc.getElementById('offdiv').style.display="block";
				var tn = 0;
				while(oDoc.getElementById('tnav'+tn)){
					if(this.id != 'tnav'+tn){
						removeClassName(oDoc.getElementById('tnav'+tn),'showkids1');
					}else{
						addClassName(this,'showkids1');
					}
					tn++;
				}
			});
		}
		var n = 0;
		while(sn[n]){
			var nn = 0;
			if(sn[n][nn]){
				var listOne = elem('ul',{'class':'lvl1'});
				while(sn[n][nn]){
					if(sn[n][nn][1]){
						var listTwo = elem('ul',{'class':'lvl2'} );
						var nnn = 1;
						while(sn[n][nn][nnn]){
							var li = elem('li');
							li.innerHTML = sn[n][nn][nnn];
							listTwo.appendChild(li);
							nnn++;
						}
						var li = elem('li');
						li.innerHTML = sn[n][nn][0];
						li.appendChild(listTwo);
					}else{
						var li = elem('li');
						li.innerHTML = sn[n][nn][0];
					}
					addEvent(li, 'mouseover', function(e){
						if(csub != this){
							removeClassName(csub,'showkids2');
							csub = false;
						}
					});
					if(sn[n][nn][1]){
						addClassName(li.getElementsByTagName('a')[0],'haskids');
						addEvent(li, 'mouseover', function(e){
	 						if(csub != this){
		 						removeClassName(csub,'showkids2');
 								csub = this;
							}
							addClassName(this,'showkids2');
						});
					}
					listOne.appendChild(li);
				nn++;
				}
			}
			oDoc.getElementById('tnav'+n).appendChild(listOne);
			n++;
		}
		positionMenus();
	}

	// if store page
	if(oDoc.getElementById('storeitems')){
		var d = oDoc.getElementById('storeitems').getElementsByTagName('div');
		for (var i = 0; i < d.length; i++){
			if(hasClassName(d[i],'storegroup')){
				d[i].innerHTML = '<a href="#'+d[i].id+'" class="vall">'+viewall+' </a><a href="#'+d[i].id+'" class="vall hall">'+hideall+'</a>' + d[i].innerHTML;
				addEvent(d[i].getElementsByTagName('a')[0],'click',function(e){
					var dv = oDoc.getElementById(this.href.split('#')[1]).getElementsByTagName('div');
					for (var i = 0; i < dv.length; i++){
							if(hasClassName(dv[i],'storeitem')){
								addClassName(dv[i],'fullview');
							}
					}
				cancelDefault(e);
				});
				addEvent(d[i].getElementsByTagName('a')[1],'click',function(e){
					var dv = oDoc.getElementById(this.href.split('#')[1]).getElementsByTagName('div');
					for (var i = 0; i < dv.length; i++){
							if(hasClassName(dv[i],'storeitem')){
								removeClassName(dv[i],'fullview');
							}
					}
				cancelDefault(e);
				});
			}
		}
		
		
		if(oDoc.getElementById('forminfo')){
			formcache = oDoc.getElementById('forminfo').innerHTML;
			oDoc.getElementById('forminfo').innerHTML = '<input type="submit" class="bttn" value="Check Out" onclick="si=true;document.getElementById(\'forminfo\').innerHTML = formcache;showcart()" />';
		}
		
		var a = oDoc.getElementById('storeitems').getElementsByTagName('h6');
		for (var i = 0; i < a.length; i++){
			a[i].innerHTML = a[i].innerHTML + " <b>&raquo;<\/b>";
			addEvent(a[i],'click',function(){
				var containerDiv = hasParent(this,'div','storeitem');
				if(containerDiv){
					toggleclass(containerDiv,'fullview');
				}
			});
		}

		var a = oDoc.getElementById('storeitems').getElementsByTagName('a');
		for (var i = 0; i < a.length; i++){
			if(hasClassName(a[i],'zoomImg')){
				addEvent(a[i],'click',function(e){
					oDoc.getElementById('popinbox').innerHTML = '<div><a href="#close" onclick="removeClassName(document.getElementsByTagName(\'html\')[0],\'showpopin\');return false">[x] close</a> <img src="'+this.href+'" alt="loading..."/></div>';
					addClassName(edoc.getElementsByTagName('html')[0],'showpopin');
					if(navigator.appVersion.indexOf('MSIE')>-1 && navigator.appVersion.indexOf('MSIE 6')>-1 || navigator.appVersion.indexOf('MSIE')>-1 && navigator.appVersion.indexOf('MSIE 5')>-1){
						this.href = "#popinbg";
					}else{
						cancelDefault(e);
					}
				});
			}
		}
	}
});


addEvent(window,'resize',function(){
		if(edoc.getElementsByTagName('html')[0].offsetWidth > 1300){
			addClassName(edoc.getElementsByTagName('html')[0],'wideload');
		}else{
			removeClassName(edoc.getElementsByTagName('html')[0],'wideload');
		}
		positionMenus();
});

var cartitems = new Array();
function showcart(){
	addClassName(document.getElementById('storeitems'),'cartmode');
	var d = document.getElementById('storeitems').getElementsByTagName('div');
	for (var i = 0; i < d.length; i++){
		if(hasClassName(d[i],'storeitem')){
			if(document.getElementById('q'+d[i].id.split('storeitem-')[1]).value == 0){
				addClassName(d[i],'removethis');
			}else{
				addClassName(d[i],'fullview');
				cartitems.push(d[i].id.split('storeitem-')[1]);
			}
		}
	}
}

function verifystoreform(){
var stopit = false;
	for (var i = 0; i < cartitems.length; i++){
		if(document.getElementById('options_'+cartitems[i])){
			if(document.getElementById('options_'+cartitems[i]).selectedIndex == 0){
				addClassName(document.getElementById('options_'+cartitems[i]),'formerror');
				stopit = true;
			}else{
				removeClassName(document.getElementById('options_'+cartitems[i]),'formerror');
			}
		}
	}

	var infos = document.getElementById('forminfo').getElementsByTagName('input');
	for (var i = 0; i < infos.length; i++){
		if(infos[i].value == ""){
				addClassName(infos[i],'formerror');
				stopit = true;
		}else{
				removeClassName(infos[i],'formerror');
		}
	}

	if(stopit){
		alert('Your order could not be completed, please be sure all required fields are completed and any Size or Color Menus are selected.')
		return false;
	}
}

//ADD EVENT
//	AddEvent() -- See <http://www.dustindiaz.com/rock-solid-addevent/> for more information.
//	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

// SHORTCUT FOR BUILDING ELEMENTS
function elem(name, atts, text) {
	// atts passed as obj literal {'id':'foo','class':'bar'}
	var e = document.createElement(name);
	if (atts) {
		for (key in atts) {
			// setAttribute() has shaky support, try direct methods first
			if (key == 'class') { e.className = atts[key]; }
			else if (key == 'id') { e.id = atts[key]; }
			else if (key == 'href') { e.href = atts[key]; }
			else if (key == 'action') { e.action = atts[key]; }
			else if (key == 'method') { e.method = atts[key]; }
			else if (key == 'title') { e.title = atts[key]; }
			else if (key == 'alt') { e.alt = atts[key]; }
			else if (key == 'border') { e.border = atts[key]; }
			else if (key == 'caption') { e.caption = atts[key]; }
			else if (key == 'cellspacing') { e.cellspacing = atts[key]; }
			else { e.setAttribute(key, atts[key]); }
		}
	}
	if (text) {
		e.appendChild(document.createTextNode(text));
	}
	return e;
}

// ADD CLASSES TO OBJECTS
function addClassName(element, className){
	if (hasClassName(element, className)) { return false; }
	if (!element.className) { element.className = className; }
	else { element.className += ' '+className; }
	return true;
}

// REMOVE CLASSES FROM OBJECTS
function removeClassName(element, className){
	if (!hasClassName(element, className)) { return false; }
	var classNames = element.className.split(' ');
	var newClassNames = [];
	for (var a=0; a<classNames.length; a++){
		if (classNames[a] != className) { newClassNames[newClassNames.length] = classNames[a]; }
	}
	element.className = newClassNames.join(' ');
	return true;
}

// TEST FOR CLASS NAME
function hasClassName(element, className){
	var exp = new RegExp("(^|\\s)"+className+"($|\\s)");
	return (element.className && exp.exec(element.className))?true:false;
}

// CLASS TOGGLE
function toggleclass(obj,cls){
	if (hasClassName(obj,cls)){
		removeClassName(obj,cls);
	}else if (!hasClassName(obj,cls)){
		addClassName(obj,cls);
	}
}

// GET PARENT
function hasParent(obj,tag,classname){
	var parent = obj;
	if(classname){
		while (parent = parent.parentNode) {
			if (parent.nodeName.toLowerCase() == tag && hasClassName(parent,classname) || tag == "*" && hasClassName(parent,classname)){
				return parent;
			}
		}
	}else{
		while (parent = parent.parentNode) {
			if (parent.id == tag){
				return parent;
			}
		}
	}
}

// CANCEL DEFAULT EVENT
function cancelDefault(e){
	if (navigator.appVersion.indexOf('MSIE')>-1) {
		e.returnValue=false;
	}else{
		e.preventDefault();
	}
}

