var XHTMLNS = "http://www.w3.org/1999/xhtml";

var ie = false;

function createElement(element) {
	if(typeof document.createElementNS != 'undefined') {
		return document.createElementNS(XHTMLNS, element)
	}
	else if (typeof document.createElement != 'undefined') {
		return document.createElement(element)
	}
	else {
		return false;
	}
}

function cancelDefault(e) {
	if(e.cancelable) {
		e.preventDefault()
	}
	else if(document.all) {
		event.returnValue = false
	}
	else {
		alert('not cancelable')
	}
}

function getTarget(e) {
	if(window.event && window.event.srcElement) {
		r = window.event.srcElement
	}
	else if (e && e.target) {
		r = e.target
	}

	return r
}

function addEvent(obj,evType,fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType,fn,false)
		return true
	}
	else if (obj.attachEvent) {
		var r = obj.attachEvent('on'+evType, fn)
		
		ie = true;
		
		if(!r) {
			alert('cannot add event!');
		}
		
		return r
	}
	else {
		alert('cannot add event!')
		return false
	}
}

function removeEvent(obj,evType,fn) {
	if (obj.removeEventListener) {
		obj.removeEventListener(evType,fn,false)
		return true
	}
	else if (obj.detachEvent) {
		var r = obj.detachEvent('on'+evType, fn)
		return r
	}
	else {
		return false
	}
}

document.getElementsByClassName = function(class_name) {
	var all_obj, ret_obj = new Array(), j = 0, strict = 0, a = 1

	if (document.getElementsByClassName.arguments.length > 1)
		strict = ( document.getElementsByClassName.arguments[1] ? 1 : 0 )

	if (document.all) {
		all_obj = document.all
	}
	else if (document.getElementsByTagName && !document.all) {
		all_obj = document.getElementsByTagName("*")
	}

	for (i = 0; i < all_obj.length; i++) {
		if (
			(' ' + all_obj[i].className + ' ').toLowerCase().match(
				new RegExp (( strict ? '^ ' + class_name + ' $' : '^.* ' + class_name + ' .*$').toLowerCase(),'g' )
			)
		 ) {
			ret_obj[j++] = all_obj[i]
		}
	}

	return ret_obj
}

function getParent(el, pTagName) {
	if(el == null) {
        	return null;
	}
	else if (el.nodeType == 1 && elementCompare(el.tagName,pTagName)) {
		return el;
	}
	else {
		return getParent(el.parentNode, pTagName);
	}
}

function elementCompare(a,b) {
	a = a.toLowerCase() // Gecko bug, supposed to be uppercase
	b = b.toLowerCase()

	if((a == b) || (a == "html:" + b)) { // opera has html: in front of elements
		return true
	}
	else {
		return false
	}
}

function goBack(e) {
	cancelDefault(e);
	
	if(document.getElementById('popup')) {
		if(document.getElementById('popup').className == 'visible') {
			document.getElementById('popup').className = 'hidden';
			return;
		}
	}
	
	history.back();
}

function createBack() {
	if(document.getElementById('headline') && history.length > 1) {
		back = createElement('a');
		back.setAttribute('id', 'back');
		back.setAttribute('href', '#');
		back.appendChild(document.createTextNode('Back'));
		addEvent(back, 'click', goBack);
		
		if(document.getElementById('commands')) {
			document.getElementById('commands').appendChild(back);
		}
		else {
			document.getElementById('headline').appendChild(back);
		}
	}
}

domReady(createBack);

var position;
var photoCount;

function albumPrevious(e) {
	if(document.getElementById('album')) {
		if(photoCount > 4) {
			if(position != 1) {
				position = position - 1
				
				for(n = 1; n <= photoCount; n++) {
					name = 'albumItem'+n;
					
					if((position) <= n && (position + 3) >= n) {
						document.getElementById(name).style.display = 'block';
					}
					else {
						document.getElementById(name).style.display = 'none';
					}
				}
				
				re = /^(\/([a-z_]+))?\/([a-z]+)\/((([0-9]+)(\-[a-z_]+)?)|([a-z_]+))$/i;
				
				result = document.location.pathname.match(re);
				
				if(result[3] == 'personalities') {
					re2 = /^talent([0-9]+)$/i;
					result2 = document.getElementsByTagName('h3')[0].getAttribute('id').match(re2);
					
					loadXMLDoc('/setOffset?talent=' + result2[1] + '&division=personalities&offset=' + position);
				}
				else {
					loadXMLDoc('/setOffset?talent=' + result[6] + '&division=' + result[2] + '&offset=' + position);
				}
			}
			
			if(position == 1) {
				document.getElementById('albumFlow').removeChild(document.getElementById('albumFlowPrevious'));
			}
			
			if(position > 1) {
				if(!document.getElementById('albumFlowPrevious')) {
					flowItem = createElement('li');
					flowItem.className = 'previous';
					flowItem.setAttribute('id', 'albumFlowPrevious');
					
					flowItemLink = createElement('a');
					flowItemLink.setAttribute('href', '#previous');
					flowItemLink.appendChild(document.createTextNode('Previous'));
					
					addEvent(flowItemLink, 'click', albumPrevious);
					
					flowItem.appendChild(flowItemLink);
					
					document.getElementById('albumFlow').insertBefore(flowItem, document.getElementById('albumFlowNext'));
				}
			}
			
			if((photoCount - position) >= 4) {
				if(!document.getElementById('albumFlowNext')) {
					flowItem = createElement('li');
					flowItem.className = 'next';
					flowItem.setAttribute('id', 'albumFlowNext');
					
					flowItemLink = createElement('a');
					flowItemLink.setAttribute('href', '#next');
					flowItemLink.appendChild(document.createTextNode('Next'));
					
					addEvent(flowItemLink, 'click', albumNext);
					
					flowItem.appendChild(flowItemLink);
					
					document.getElementById('albumFlow').appendChild(flowItem);
				}
			}
		}
	}
	
	cancelDefault(e);
}

function albumNext(e) {
	if(document.getElementById('album')) {
		if(photoCount > 4) {
			if((photoCount - position) >= 4) {
				position = position + 1
				
				for(n = 1; n <= photoCount; n++) {
					name = 'albumItem'+n;
					
					if((position) <= n && (position + 3) >= n) {
						document.getElementById(name).style.display = 'block';
					}
					else {
						document.getElementById(name).style.display = 'none';
					}
				}
				
				re = /^(\/([a-z_]+))?\/([a-z]+)\/((([0-9]+)(\-[a-z_]+)?)|([a-z_]+))$/i;
				
				result = document.location.pathname.match(re);
				
				if(result[3] == 'personalities') {
					re2 = /^talent([0-9]+)$/i;
					result2 = document.getElementsByTagName('h3')[0].getAttribute('id').match(re2);
					
					loadXMLDoc('/setOffset?talent=' + result2[1] + '&division=personalities&offset=' + position);
				}
				else {
					loadXMLDoc('/setOffset?talent=' + result[6] + '&division=' + result[2] + '&offset=' + position);
				}
			}
			
			if((photoCount - position) == 3) {
				document.getElementById('albumFlow').removeChild(document.getElementById('albumFlowNext'));
			}
			
			if(position > 1) {
				if(!document.getElementById('albumFlowPrevious')) {
					flowItem = createElement('li');
					flowItem.className = 'previous';
					flowItem.setAttribute('id', 'albumFlowPrevious');
					
					flowItemLink = createElement('a');
					flowItemLink.setAttribute('href', '#previous');
					flowItemLink.appendChild(document.createTextNode('Previous'));
					
					addEvent(flowItemLink, 'click', albumPrevious);
					
					flowItem.appendChild(flowItemLink);
					
					document.getElementById('albumFlow').insertBefore(flowItem, document.getElementById('albumFlowNext'));
				}
			}
		}
	}
	
	cancelDefault(e);
}

function changeAlbum(e) {
	link = getTarget(e);
	
	link = getParent(link, 'a');
	
	cancelDefault(e);
	
	linkPath = link.href;
	
	re = /^http:\/\/[a-z\.]+(\/(([a-z_]{5})([a-z_]+)))?\/([a-z]+)\/(([0-9]+)(\-[a-z_]+)?)\?photograph=([0-9]+)$/i;
	
	result = linkPath.match(re);
	
	if(result != null) {
		loadXMLDoc('/switchPhotograph?talent=' + result[7] + '&division=' + result[2] + '&photograph=' + result[9]);
		
		document.getElementById('album').removeChild(document.getElementById('album').getElementsByTagName('a')[0]);
		
		photographLink = createElement('a');
		photographLink.setAttribute('href', '/media/supplements/talentPhotographs/' + result[7] + '/' + (result[4] == 's' ? result[3] : (result[2] == 'models_and_actors' ? 'model_and_actor' : result[2])) + '?width=532&height=798&perfect=true&wrap=true&position=' + result[9]);
		photographLink.className = 'mainEnlarge';
		
		photograph = createElement('img');
		photograph.setAttribute('src', '/media/supplements/talentPhotographs/' + result[7] + '/' + (result[4] == 's' ? result[3] : (result[2] == 'models_and_actors' ? 'model_and_actor' : result[2])) + '?width=266&height=399&perfect=true&position=' + result[9]);
		photograph.setAttribute('height', '399');
		photograph.setAttribute('width', '266');
		photograph.setAttribute('alt', '');
		photograph.className = 'main';
		
		photographLink.appendChild(photograph);
		
		document.getElementById('album').insertBefore(photographLink, document.getElementById('album').getElementsByTagName('ul')[0]);
		
		addEvent(document.getElementById('album').getElementsByTagName('a')[0], 'click', loadAlbumExternal);
	}
	else {
		rePersonality = /^.*\/([a-z_]+)\?photograph=([0-9]+)$/i;
		resultPersonality = linkPath.match(rePersonality);
		
		if(resultPersonality != null) {
			re2 = /^talent([0-9]+)$/i;
			result2 = document.getElementsByTagName('h3')[0].getAttribute('id').match(re2);
			
			loadXMLDoc('/switchPhotograph?talent=' + result2[1] + '&division=personalities&photograph=' + resultPersonality[2]);
			
			document.getElementById('album').removeChild(document.getElementById('album').getElementsByTagName('a')[0]);
			
			photographLink = createElement('a');
			photographLink.setAttribute('href', '/media/supplements/talentPhotographs/' + resultPersonality[1] + '/personality?width=532&height=798&perfect=true&wrap=true&position=' + resultPersonality[2]);
			photographLink.className = 'mainEnlarge';
			
			photograph = createElement('img');
			photograph.setAttribute('src', '/media/supplements/talentPhotographs/' + resultPersonality[1] + '/personality?width=266&height=399&perfect=true&position=' + resultPersonality[2]);
			photograph.setAttribute('height', '399');
			photograph.setAttribute('width', '266');
			photograph.setAttribute('alt', '');
			photograph.className = 'main';
			
			photographLink.appendChild(photograph);
			
			document.getElementById('album').insertBefore(photographLink, document.getElementById('album').getElementsByTagName('ul')[0]);
			
			addEvent(document.getElementsByClassName('mainEnlarge')[0], 'click', loadAlbumExternal);
		}
	}
	
	cancelDefault(e);
}

function createAlbum() {
	if(document.getElementById('album')) {
		photoCount = document.getElementById('album').getElementsByTagName('li').length;
		
		for(n = 1; n <= photoCount; n++) {
			addEvent(document.getElementById('albumItem' + n + 'link'), 'click', changeAlbum);
			
			if(!position) {
				if(document.getElementById('albumItem' + n).className == 'active') {
					position = n;
				}
			}
		}
		
		if(photoCount > 4) {
			flow = createElement('ul');
			flow.className = 'flow';
			flow.setAttribute('id', 'albumFlow');
			
			if(position > 1) {
				flowItemPrevious = createElement('li');
				flowItemPrevious.className = 'previous';
				flowItemPrevious.setAttribute('id', 'albumFlowPrevious');
				
				flowItemPreviousLink = createElement('a');
				flowItemPreviousLink.setAttribute('href', '#previous');
				flowItemPreviousLink.appendChild(document.createTextNode('Previous'));
				
				addEvent(flowItemPreviousLink, 'click', albumPrevious);
				
				flowItemPrevious.appendChild(flowItemPreviousLink);
				
				flow.appendChild(flowItemPrevious);
			}
			
			if((photoCount - position) > 3) {
				flowItem = createElement('li');
				flowItem.className = 'next';
				flowItem.setAttribute('id', 'albumFlowNext');
				
				flowItemLink = createElement('a');
				flowItemLink.setAttribute('href', '#next');
				flowItemLink.appendChild(document.createTextNode('Next'));
				addEvent(flowItemLink, 'click', albumNext);
				
				flowItem.appendChild(flowItemLink);
				
				flow.appendChild(flowItem);
			}
			
			document.getElementById('album').insertBefore(flow, document.getElementById('album').getElementsByTagName('ul')[0].nextSibling);
		}
	}
}

domReady(createAlbum);

function loadExternal(e) {
	link = getTarget(e);
	
	linkParent = getParent(link, 'a');
	
	window.open(linkParent.href);
	
	cancelDefault(e);
}

function createExternals() {
	externalsCount = document.getElementsByClassName('external').length;
	externals = document.getElementsByClassName('external');
	
	if(externalsCount > 0) {
		for(n = 0; n < externalsCount; n++) {
			addEvent(externals[n], 'click', loadExternal);
		}
	}
}

domReady(createExternals);

function loadAlbumExternal(e) {
	link = getTarget(e);
	
	linkParent = getParent(link, 'a');
	
	topDimension = ((window.screen.height - 798) / 2);
	
	if(topDimension < 0) {
		topDimension = 0;
	}
	
	leftDimension = ((window.screen.width - 532) / 2);
	
	if(leftDimension < 0) {
		leftDimension = 0;
	}
	
	window.open(linkParent.href, 'talentphotograph', "top=" + topDimension + ",left=" + leftDimension + ",width=532,height=798,menubar=no,location=no,resizable=yes,scrollbars=no,status=yes");
	
	cancelDefault(e);
}

function createAlbumExternal() {
	countItems = document.getElementsByClassName('mainEnlarge').length;
	
	if(countItems > 0) {
		for(n = 0; n < countItems; n++) {
			addEvent(document.getElementsByClassName('mainEnlarge')[n], 'click', loadAlbumExternal);
		}
	}
}

domReady(createAlbumExternal);

function loadSupplementExternal(e) {
	link = getTarget(e);
	
	linkParent = getParent(link, 'a');
	
	topDimension = ((window.screen.height - 532) / 2);
	
	if(topDimension < 0) {
		topDimension = 0;
	}
	
	leftDimension = ((window.screen.width - 798) / 2);
	
	if(leftDimension < 0) {
		leftDimension = 0;
	}
	
	window.open(linkParent.href, 'talentsupplement', "top=" + topDimension + ",left=" + leftDimension + ",width=798,height=532,menubar=no,location=no,resizable=yes,scrollbars=no,status=yes");
	
	cancelDefault(e);
}

function createSupplementExternal() {
	countItems = document.getElementsByClassName('supplement').length;
	
	if(countItems > 0) {
		for(n = 0; n < countItems; n++) {
			addEvent(document.getElementsByClassName('supplement')[n], 'click', loadSupplementExternal);
		}
	}
}

domReady(createSupplementExternal);

function loadPrint(e) {
	link = getTarget(e);
	
	linkParent = getParent(link, 'a');
	
	topDimension = ((window.screen.height - 500) / 2);
	
	if(topDimension < 0) {
		topDimension = 0;
	}
	
	leftDimension = ((window.screen.width - 700) / 2);
	
	if(leftDimension < 0) {
		leftDimension = 0;
	}
	
	window.open(linkParent.href, 'talentprint', "top=" + topDimension + ",left=" + leftDimension + ",width=700,height=500,menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes");
	
	cancelDefault(e);
}

function createPrint() {
	if(document.getElementById('print')) {
		addEvent(document.getElementById('print'), 'click', loadPrint);
	}
}

domReady(createPrint);

function getOpacity(element) {
	if(ie) {
		if(element.style.filter) {
			re = /^alpha\(opacity=([0-9]+)\)$/i;
			
			result = element.style.filter.match(re);
			
			if(result) {
				return result[1] / 100;
			}
			else {
				alert('Fade failure!');
			}
		}
		else {
			return parseFloat(1.00);
		}
	}
	else {
		return element.style.opacity;
	}
}

function setOpacity(element, value) {
	if(ie) {
		if(value == null) {
			element.style.filter = '';
		}
		else {
			element.style.filter = 'alpha(opacity=' + Math.round(value * 100) + ')';
		}
	}
	else {
		if(value == null) {
			element.style.opacity = '';
		}
		else {
			element.style.opacity = value;
		}
	}
}

var fadeOutInterval = new Array();
var fadeInInterval = new Array();

function continueFadeOut(elementClass) {
	commenceFadeOut(document.getElementsByClassName(elementClass)[0], 0);
}

function commenceFadeOut(element, start) {
	stylingElement = element.getElementsByTagName('a')[0];
	
	if(start) {
		cha = element.className.substring(14);
		cha = cha.split(' ')
		
		//alert(cha[0]);
		
		cha[1] = cha[1].split('_');
		
		//alert(cha[1][1]);
		
		nextClass = 'fade_bar_item_' + (parseInt(cha[0]) + 1) + ' cycle_' + cha[1][1];
		
		if(document.getElementsByClassName(nextClass).length == 0) {
			nextClass = 'fade_bar_item_1 cycle_' + cha[1][1];
		}
		
		//alert(nextClass)
		
		/*
		if(cha == 'p') {
			nextClass = 'fade_bar_item_secondary cycle_' + element.className.substring(28, 29);
		}
		
		if(cha == 's') {
			nextClass = 'fade_bar_item_tertiary cycle_' + element.className.substring(30, 31);
		}
		
		if(cha == 't') {
			nextClass = 'fade_bar_item_primary cycle_' + element.className.substring(29, 30);
		}
		*/
		commenceFadeIn(document.getElementsByClassName(nextClass)[0]);
		
		setOpacity(stylingElement, 0.40);
		fadeOutInterval[element.className.substring(element.className.length - 1, element.className.length)] = window.setInterval("continueFadeOut('" + element.className + "')", 50);
	}
	
	opacity = getOpacity(stylingElement);
	
	if(opacity > 0) {
		if(Math.round(opacity * 100) == 5) {
			element.style.display = 'none';
			
			setOpacity(stylingElement, 0);
			
			position = element.className.substring(element.className.length - 1, element.className.length)
			
			clearInterval(fadeOutInterval[position]);
			
			fadeOutInterval[position] = null;
		}
		else {
			setOpacity(stylingElement, opacity - 0.05);
		}
	}
}

function continueFadeIn(elementClass) {
	element = document.getElementsByClassName(elementClass)[0];
	
	stylingElementB = element.getElementsByTagName('a')[0];
	
	opacity = getOpacity(stylingElementB);
	
	if(opacity < 0.4) {
		setOpacity(stylingElementB, (parseFloat(opacity) + 0.05));
	}
	else {
		setOpacity(stylingElementB, null);
		
		position = element.className.substring(element.className.length - 1, element.className.length);
		
		clearInterval(fadeInInterval[position]);
		
		fadeInInterval[position] = null;
		
		hold[position] = false;
		
		addEvent(element, 'mouseout', changeFadeBar);
	}
}

function commenceFadeIn(element) {
	stylingElementB = element.getElementsByTagName('a')[0];
	
	setOpacity(stylingElementB, 0.05);
	
	element.style.display = 'block';
	element.style.visibility = 'visible';
	
	fadeInInterval[element.className.substring(element.className.length - 1, element.className.length)] = window.setInterval("continueFadeIn('" + element.className + "')", 50);
}

var hold = new Array();

hold[1] = false;
hold[2] = false;
hold[3] = false;
hold[4] = false;
hold[5] = false;
hold[6] = false;

function changeFadeBar(e) {
	link = getTarget(e);
	
	/*if(link.tagName == 'IMG') {
		link = link.parentNode;
		
		if(link.tagName == 'A') {
			listItem = link.parentNode;
		}
	}*/
	
	link = getParent(link, 'a');
	listItem = getParent(link, 'li');
	
	position = listItem.className.substring(listItem.className.length - 1, listItem.className.length);
	
	if(hold[position] == true) {
		return;
	}
	
	hold[position] = true;
	
	listItem.onmouseout = function() {}
	
	commenceFadeOut(listItem, 1);
}

function createFadeBar() {
	if(document.getElementById('fadebar')) {
		fadebarItems = document.getElementById('fadebar').getElementsByTagName('li');
		
		finalChild = fadebarItems[fadebarItems.length - 1].className;
		finalChild = finalChild.split(' ');
		finalChild = finalChild[1].split('_');
		finalChild = parseInt(finalChild[1]);
		
		for(n = 0; n < finalChild; n++) {
			addEvent(document.getElementsByClassName('fade_bar_item_1')[n], 'mouseout', changeFadeBar);
			//alert(n + ' of ' + finalChild);
		}
	}
}

domReady(createFadeBar);

function unitSwitch(e) {
	if(document.getElementById('metric').tagName.toLowerCase() == 'strong') {
		loadXMLDoc('/setUnits?units=imperial');
		
		document.getElementById('particulars').getElementsByTagName('dl')[0].className = 'particulars imperial';
		
		metricLink = createElement('a');
		metricLink.setAttribute('href', '?units=metric');
		metricLink.setAttribute('id', 'newMetric');
		metricLink.appendChild(document.createTextNode('Metric'));
		
		document.getElementsByClassName('units')[0].insertBefore(metricLink, document.getElementById('metric'));
		document.getElementsByClassName('units')[0].removeChild(document.getElementById('metric'));
		
		document.getElementById('newMetric').setAttribute('id', 'metric');
		
		addEvent(document.getElementById('metric'), 'click', unitSwitch);
		
		imperialBlob = createElement('strong');
		imperialBlob.setAttribute('id', 'newImperial');
		imperialBlob.appendChild(document.createTextNode('Imperial'));
		
		document.getElementsByClassName('units')[0].insertBefore(imperialBlob, document.getElementById('imperial'));
		document.getElementsByClassName('units')[0].removeChild(document.getElementById('imperial'));
		
		document.getElementById('newImperial').setAttribute('id', 'imperial');
	}
	else {
		loadXMLDoc('/setUnits?units=metric');
		
		document.getElementById('particulars').getElementsByTagName('dl')[0].className = 'particulars metric';
		
		imperialLink = createElement('a');
		imperialLink.setAttribute('href', '?units=imperial');
		imperialLink.setAttribute('id', 'newImperial');
		imperialLink.appendChild(document.createTextNode('Imperial'));
		
		document.getElementsByClassName('units')[0].insertBefore(imperialLink, document.getElementById('imperial'));
		document.getElementsByClassName('units')[0].removeChild(document.getElementById('imperial'));
		
		document.getElementById('newImperial').setAttribute('id', 'imperial');
		
		addEvent(document.getElementById('imperial'), 'click', unitSwitch);
		
		metricBlob = createElement('strong');
		metricBlob.setAttribute('id', 'newMetric');
		metricBlob.appendChild(document.createTextNode('Metric'));
		
		document.getElementsByClassName('units')[0].insertBefore(metricBlob, document.getElementById('metric'));
		document.getElementsByClassName('units')[0].removeChild(document.getElementById('metric'));
		
		document.getElementById('newMetric').setAttribute('id', 'metric');
	}
	
	cancelDefault(e);
}

function createUnitSwitch() {
	if(document.getElementById('particulars')) {
		if(document.getElementsByClassName('units').length > 0) {
			if(document.getElementById('metric').tagName.toLowerCase() == 'strong') {
				addEvent(document.getElementById('imperial'), 'click', unitSwitch);
			}
			else {
				addEvent(document.getElementById('metric'), 'click', unitSwitch);
			}
		}
	}
}

domReady(createUnitSwitch);

var req;

function loadXMLDoc(url) {
	url = 'http://' + document.location.hostname + url;
	
	req = false;
	
	// branch for native XMLHttpRequest object
	
	if(window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		}
		catch(e) {
			req = false;
		}
	// branch for IE/Windows ActiveX version
	}
	else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
				req = false;
			}
		}
	}
	
	if(req) {
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send("");
	}
	else {
		alert("No req");
	}
}

function processReqChange() {
	if(req.readyState == 4) {
	       	if (req.status == 200 && req.responseText) {
			//alert(req.responseText)
		}
	}
	//else if(req.status == 400) {
		//alert('Dang!');
	//}
}

/*window.onbeforeunload = function() {
	if(document.location.search == '?print') {
		window.close();
	}
}*/











































var posterInterval = null;
var posterOutInterval = null;
var posterInInterval = null;
var posterCount;
var posterCurrent = 1;

function continuePosterOut(elementId) {
	commencePosterOut(document.getElementById(elementId), 0);
}

function commencePosterOut(element, start) {
	//stylingElement = element.getElementsByTagName('a')[0];
	
	if(start) {
		if(posterCurrent == posterCount) {
			nextPoster = 1;
		}
		else {
			nextPoster = posterCurrent + 1;
		}
		commencePosterIn(document.getElementById('poster_' + nextPoster));
		
		setOpacity(element, 1.00);
		
		posterOutInterval = window.setInterval("continuePosterOut('" + element.id + "')", 50);
	}
	
	opacity = getOpacity(element);
	
	if(opacity > 0) {
		if(Math.round(opacity * 100) == 5) {
			element.style.display = 'none';
			
			setOpacity(element, 0);
			
			clearInterval(posterOutInterval);
			
			posterOutInterval = null;
		}
		else {
			setOpacity(element, opacity - 0.05);
		}
	}
}

function continuePosterIn(elementId) {
	element = document.getElementById(elementId);
	
	//stylingElementB = element.getElementsByTagName('a')[0];
	
	opacity = getOpacity(element);
	
	if(opacity < 1.00) {
		setOpacity(element, (parseFloat(opacity) + 0.05));
	}
	else {
		setOpacity(element, null);
		
		//position = element.className.substring(element.className.length - 1, element.className.length);
		
		clearInterval(posterInInterval);
		
		posterInInterval = null;
		
		holdPoster = false;
		
		if(posterCurrent == posterCount) {
			posterCurrent = 1
		}
		else {
			posterCurrent++;
		}
		//addEvent(element, 'mouseout', changePosterBar);
	}
}

function commencePosterIn(element) {
	setOpacity(element, 0.05);
	
	element.style.display = 'block';
	element.style.visibility = 'visible';
	
	posterInInterval = window.setInterval("continuePosterIn('" + element.id + "')", 50);
}

var holdPoster = false;

function changePoster() {
	if(holdPoster == true) {
		return;
	}
	
	holdPoster = true;
	
	commencePosterOut(document.getElementById('poster_' + posterCurrent), 1);
}

function pausePosters() {
	clearInterval(posterInterval);
	
	posterInterval = null;
}

function resumePosters() {
	posterInterval = setInterval(changePoster, 8000);
}

function createPosterBar() {
	if(document.getElementById('posters')) {
		posterCount = document.getElementById('posters').getElementsByTagName('li').length;
		
		for(n = 1; n <= posterCount; n++) {
			addEvent(document.getElementById('poster_' + n), 'mouseover', pausePosters);
			addEvent(document.getElementById('poster_' + n), 'mouseout', resumePosters);
		}
		
		posterInterval = setInterval(changePoster, 8000);
	}
}

domReady(createPosterBar);

function showMap(e) {
	if(document.getElementById('map')) {
		document.getElementById('map').style.visibility = 'visible';
		document.getElementById('toggle').style.visibility = 'visible';
		
		cancelDefault(e);
	}
}

function hideMap(e) {
	if(document.getElementById('map')) {
		document.getElementById('map').style.visibility = 'hidden';
		document.getElementById('toggle').style.visibility = 'hidden';
		
		cancelDefault(e);
	}
}

function createMap() {
	if(document.getElementById('map')) {
		addEvent(document.getElementById('streetAddress'), 'click', showMap);
		addEvent(document.getElementById('toggle'), 'click', hideMap);
	}
}

domReady(createMap);

function showPopup(e) {
	if(document.getElementById('popup')) {
		document.getElementById('popup').className = 'visible';
		
		//window.location.hash = '#email'
		
		cancelDefault(e);
	}
}

function createPopupLaunch() {
	if(document.getElementById('popup_launch')) {
		addEvent(document.getElementById('popup_launch'), 'click', showPopup);
	}
}

domReady(createPopupLaunch);

function closePopup(e) {
	if(document.getElementById('popup')) {
		document.getElementById('popup').className = 'hidden';
		
		//window.location.hash = ''
		
		cancelDefault(e);
	}
}

function createPopupClose() {
	if(document.getElementById('popup_close')) {
		addEvent(document.getElementById('popup_close'), 'click', closePopup);
	}
	
	if(document.getElementById('form_field_cancel')) {
		addEvent(document.getElementById('form_field_cancel'), 'click', closePopup);
	}
}

domReady(createPopupClose);

function mailingList() {
	if(document.getElementsByClassName('mailing_list').length > 0) {
		why = null;
		notAppropriateCompanyRepresentative = null;
		
		for(n = 0; n < document.forms[0].why.length; n++) {
			if(document.forms[0].why[n].checked) {
				why = document.forms[0].why[n].value;
			}
		}
		
		for(n = 0; n < document.forms[0].not_appropriate_company_representative.length; n++) {
			if(document.forms[0].not_appropriate_company_representative[n].checked) {
				notAppropriateCompanyRepresentative = document.forms[0].not_appropriate_company_representative[n].value;
			}
		}
		
		if(why !== 'not_appropriate_company_representative') {
			document.getElementById('form_fieldset_not_appropriate_company_representative').style.display = 'none';
		}
		
		if(why !== 'too_large') {
			document.getElementById('form_fieldset_opt').style.display = 'none';
		}
		
		if(why !== 'Other') {
			document.getElementById('form_label_form_field_other').style.display = 'none';
		}
		
		if(notAppropriateCompanyRepresentative !== 'supply_an_alternative_contact') {
			document.getElementById('form_fieldset_not_appropriate_company_representative').getElementsByTagName('fieldset')[0].style.display = 'none';
		}
		
		inputs = document.getElementById('form_fieldset_why').getElementsByTagName('input');
		
		for(n = 0; n < inputs.length; n++) {
			if(inputs[n].type == 'radio') {
				if(ie) {
					addEvent(inputs[n], 'click', changeMailingList);
				}
				else {
					addEvent(inputs[n], 'change', changeMailingList);
				}
			}
		}
	}
}

function changeMailingList(e) {
	source = getTarget(e);
	
	if(source.name == 'why') {
		if(source.value == 'not_appropriate_company_representative') {
			document.getElementById('form_fieldset_not_appropriate_company_representative').style.display = 'block';
		}
		else {
			document.getElementById('form_fieldset_not_appropriate_company_representative').style.display = 'none';
		}
		
		if(source.value == 'too_large') {
			document.getElementById('form_fieldset_opt').style.display = 'block';
		}
		else {
			document.getElementById('form_fieldset_opt').style.display = 'none';
		}
		
		if(source.value == 'Other') {
			document.getElementById('form_label_form_field_other').style.display = 'block';
		}
		else {
			document.getElementById('form_label_form_field_other').style.display = 'none';
		}
	}
	
	if(source.name == 'not_appropriate_company_representative') {
		if(source.value == 'supply_an_alternative_contact') {
			document.getElementById('form_fieldset_not_appropriate_company_representative').getElementsByTagName('fieldset')[0].style.display = 'block';
		}
		else {
			document.getElementById('form_fieldset_not_appropriate_company_representative').getElementsByTagName('fieldset')[0].style.display = 'none';
		}
	}
}

domReady(mailingList);

function coursesListDo(e) {
	source = getTarget(e);
	source = getParent(source, 'div');
	
	re = /courseItem/i;
	
	if(!source.className.match(re)) {
		source = source.parentNode;
	}
	
	document.location = source.getElementsByTagName('a')[0].href;
}

function coursesListHighlight(e) {
	source = getTarget(e);
	source = getParent(source, 'div');
	
	re = /courseItem/;
	
	if(!source.className.match(re)) {
		source = source.parentNode;
	}
	
	source.className = source.className + ' hover'
}

function coursesListLowlight(e) {
	source = getTarget(e);
	source = getParent(source, 'div');
	
	re = /courseItem/;
	
	if(!source.className.match(re)) {
		source = source.parentNode;
	}
	
	re = / hover/i;
	
	source.className = source.className.replace(re, '');
}

function createCoursesList() {
	items = document.getElementsByClassName('courseItem');
	
	if(items.length > 0) {
		for(n = 0; n < items.length; n++) {
			addEvent(items[n], 'click', coursesListDo);
			addEvent(items[n], 'mouseover', coursesListHighlight);
			addEvent(items[n], 'mouseout', coursesListLowlight);
		}
	}
}

domReady(createCoursesList);

