
DOMLoad(DOMLoaded);

function DOMLoaded () {
	cleanupIndexedLists();
	//createDynamicAlbums();
	createContactPageEvents();
}

function createContactPageEvents () {
	var fieldsets = getElementsByClassName("MainInfoFieldset", "fieldset");
	for (var i=0; i<fieldsets.length; ++i) {
		var fieldset = fieldsets[i];
		var inputs = fieldset.getElementsByTagName("input");
		for (var j=0; j<inputs.length; ++j) {
			input = inputs[j];
			input.onblur = validateFormInput;
			input.onblur();
		}
		var textarea = fieldset.getElementsByTagName("textarea")[0];
		textarea.onblur = validateFormInput;
		textarea.onblur();
	}
}

function validateFormInput () {
	var isValid = this.value!="" && this.value!=undefined && this.value!=null;
	if (isValid) this.className = "Valid";
	else this.className = "";
}

function createDynamicAlbums () {
	var albums = getElementsByClassName("Album", "div");
	for (var i=0; i<albums.length; ++i) {
		var album = albums[i];
		var thumbnails = getElementsByClassName("Thumbnails", "div", album)[0];
		var graphic = getElementsByClassName("Graphic", "div", album)[1];
		var img = graphic.getElementsByTagName("img")[0];
		thumbnails.style.height = img.height + "px";
		var anchors = thumbnails.getElementsByTagName("a");
		for (var j=0; j<anchors.length; ++j) {
			var anchor = anchors[j];
			var img = anchor.getElementsByTagName("img")[0];
			var imgsrc = img.src;
			imgsrc = imgsrc.split("/");
			imgsrc = imgsrc.pop();
			imgsrc = imgsrc.split("-");
			imgsrc.shift();
			imgsrc.shift();
			imgsrc = imgsrc.join("-");
			anchor.href = 'javascript:loadAlbumImage("' + album.id + '", "/publish/_assets/' + imgsrc + '", ' + j + ');';
		}
		var ul = thumbnails.getElementsByTagName("ul")[0];
		ul.style.position = "absolute";
		ul.style.top = "0px";
		ul.style.left = "0px";
		thumbnails.onmouseover = scrollThumbnailView;
		thumbnails.onmouseover = function () {
			if (!this.onmousemove) this.onmousemove = scrollThumbnailView;
		}
		thumbnails.onmouseout = function () {
			this.onmousemove = undefined;
		}
	}
}

function scrollThumbnailView (event) {
	var ul = this.getElementsByTagName("ul")[0];
	var coords1 = getElementCoord(this);
	var coords2 = getCursorCoord(event);
	var xmouse = coords2[0]-coords1[0];
	var ymouse = coords2[1]-coords1[1];
	var viewable = this.offsetHeight;
	var actual = ul.offsetHeight;
	var scrollable = actual-viewable;
	var positionRatio = ymouse/viewable;
	var scrollOffset = scrollable*positionRatio;
	ul.style.top = "-" + Math.round(scrollOffset) + "px";
}

function loadAlbumImage (albumId, imgSrc, index) {
	var album = document.getElementById(albumId);
	var active = getElementsByClassName("Active", "li", album)[0];
	var classes = active.className.split(" ");
	for (var i=0; i<classes.length; ++i) {
		if (classes[i]=="Active") {
			classes.splice(i, 1);
			break;
		}
	}
	active.className = classes.join(" ");
	var thumbnails = getElementsByClassName("Thumbnails", "div", album)[0];
	var active = thumbnails.getElementsByTagName("li")[index];
	active.className += " Active";
	var photos = getElementsByClassName("Photo", "div", album);
	var photo = photos[index];
	var src = photo.getElementsByTagName("img")[0].src;
	var titleText = photo.getElementsByTagName("h1")[0].innerHTML;
	var descText = photo.getElementsByTagName("div")[0].innerHTML;
	var graphic = getElementsByClassName("Graphic", "div", album)[1];
	var title = getElementsByClassName("Title", "h1", album)[0];
	var description = getElementsByClassName("Description", "div", album)[0];
	var img = graphic.getElementsByTagName("img")[0];
	img.src = src;
	title.innerHTML = titleText;
	title.tite = titleText;
	description.innerHTML = descText;
}

function cleanupIndexedLists () {
	var indexedlists = getElementsByClassName("IndexedList", "div");
	for (var k=0; k<indexedlists.length; ++k) {
		var indexedlist = indexedlists[k];
		var indexpairs = getElementsByClassName("IndexPair", "div", indexedlist);
		if (indexpairs.length==0) {
			var indexpairs = getElementsByClassName("IndexPairs", "div", indexedlist)[0];
			var indexes = getElementsByClassName("Indexes", "div", indexedlist)[0];
			indexpairs.style.borderStyle = "none";
			indexes.style.borderStyle = "none";
		} else {
			for (var i=0; i<indexpairs.length; ++i) {
				var indexpair = indexpairs[i];
				var data = getElementsByClassName("Data", "div", indexpair)[0];//.firstChild.nodeValue;
				var dataText = data.firstChild!=null ? data.firstChild.nodeValue : "";
				var isFLV = dataText.indexOf(".flv")!=-1;
				if (isFLV) {
					var graphic = getElementsByClassName("Graphic", "div", indexpair)[0];
					var img = graphic.getElementsByTagName("img")[0];
					var activator = document.createElement("a");
					activator.className = "EmbedVideoScreen";
					activator.href = 'javascript:embedVideo("' + indexpair.id + '", "' + dataText + '", ' + img.width + ', ' + img.height + ');';
					activator.style.width = img.width + "px";
					activator.style.height = img.height + "px";
					graphic.insertBefore(activator, img);
				}
			}
			indexpair.style.borderStyle = "none";
			if (indexpairs.length==1) {
				var index = getElementsByClassName("Index", "li", indexedlist)[0];
				var anchor = index.getElementsByTagName("a")[0];
				anchor.style.borderStyle = "none";
			}
		}
	}
}

function embedVideo (indexPairId, flvSrc, width, height) {
	var indexpair = document.getElementById(indexPairId);
	var graphic = getElementsByClassName("Graphic", "div", indexpair)[0];
	var swfobj = new deconcept.SWFObject("/about/assets/movies/flvplayer.swf", indexPairId + "-flvplayer", width, height, "8");
	swfobj.addVariable("src", flvSrc);
	swfobj.write(graphic);
}

function DOMLoad (func) {
	var u = navigator.userAgent.toLowerCase();
	var ie = /*@cc_on!@*/false;
	if (/webkit/.test(u)) { // safari
		timeout = setTimeout(function(){
			if (document.readyState == "loaded" || document.readyState == "complete") func();
			else setTimeout(arguments.callee, 10);
		}, 10);
	} else if ((/mozilla/.test(u) && !/(compatible)/.test(u)) || (/opera/.test(u))) { // opera/moz
		document.addEventListener("DOMContentLoaded", func, false);
	} else if (ie) { // IE
		(function (){
			var tempNode = document.createElement('document:ready');
			try {
				tempNode.doScroll('left');
				func();
				tempNode = null;
			} catch(e) {
				setTimeout(arguments.callee, 0);
			}
		})();
	} else {
		window.onload = func;
	}
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function getCursorCoord (e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return [posx, posy];
}

function getElementCoord (obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}
