/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    };
  }
}
function concat_collection(obj1, obj2) {
	var i;
	var arr = new Array();
	var len1 = obj1.length;
	var len2 = obj2.length;
	for (i=0; i<len1; i++) {
		arr.push(obj1[i]);
	}
	for (i=0; i<len2; i++) {
		arr.push(obj2[i]);
	}
	return arr;
}
function visirMe() {
	var anchors = getElementsByClassName("hider");
	for (var i=0; i<anchors.length; i++) {
		anchors[i].style.display = 'inline-block';
	}
} addLoadEvent(visirMe);
function externalLinks() {
	if (!document.getElementsByTagName) return;
	var atags = document.getElementsByTagName("a");
	var areas = document.getElementsByTagName("area");
	var anchors = concat_collection(atags, areas);
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if( (anchor.rel == "externalLink") || (anchor.getAttribute("class") == "externalLink") ) {
			anchor.onclick = function(){
				if (this.href.match(/^http/i)) {
					var awr = "/cgi-bin/awredir.pl?url=";
					window.location = awr + this.href;
					return false;
				}
			}
		}
	}
} addLoadEvent(externalLinks);
function myImgApp() {
	//var cSpan = new Image();
	var cSpan = document.createElement("span");
	var theParent = document.getElementById("Swirl");
	cSpan.id = 'swirler';
	//cSpan.src = '/graphics/swirl.png';
	theParent.appendChild(cSpan);
}
function myVREnlarge() {
	var theGallery = document.getElementById("picGallery").getElementsByTagName("a");
	var theTour = document.getElementById("vrTour");
	for (var i=0; i<theGallery.length; i++) {
		theGallery[i].onclick = function(){
			//theTour[0].value = this.href;
			theTour.SetURL(this.href);
			theTour.startAutoPan('-0.1',0,1,30);
			document.getElementById("vrInfo").innerHTML = this.firstChild.alt;
			return false;
		}
	}
	//alert("GalLength: "+theGallery.length);
}
function myImageEnlarge() {
	var theGallery = document.getElementById("picGallery").getElementsByTagName("a");
	for (var i=0; i<theGallery.length; i++) {
		theGallery[i].onclick = function(){
			//var sA = split("/",this.href);
			var s = this.href;
			var sS = s.slice(s.lastIndexOf("/"));
			document.getElementById("placeHolder").firstChild.src = s.replace(sS, '/medium'+sS);
			document.getElementById("placeHolder").firstChild.alt = this.firstChild.alt;
			document.getElementById("placeHolderCaption").innerHTML = this.firstChild.alt;
			return false;
		}
	}
	//alert("GalLength: "+theGallery.length);
}
function myImagesEnlarge(a, b) {
	var theGallery = document.getElementById(a).getElementsByTagName("a");
	for (var i=0; i<theGallery.length; i++) {
		theGallery[i].onclick = function(){
			//var sA = split("/",this.href);
			var s = this.href;
			var sS = s.slice(s.lastIndexOf("/"));
			document.getElementById(b).firstChild.src = s.replace(sS, '/medium'+sS);
			document.getElementById(b).firstChild.alt = this.firstChild.alt;
			document.getElementById(b+"Caption").innerHTML = this.firstChild.alt;
			return false;
		}
	}
	//alert("GalLength: "+theGallery.length);
}
function reqField() {
	var anchors = getElementsByClassName("required");
	for (var i=0; i<anchors.length; i++) {
		anchors[i].innerHTML  = ' <img src="/shared/css/req.png" width="10" height="9" alt="REQUIRED" border="0" />';
	}
}
function cancelButton() {
	if (!document.getElementById("cancelButton")) return;
	if (!document.getElementById("contactform")) return;
	var myButton = document.getElementById("cancelButton");
	myButton.style.display = "inline-block";
	myButton.onclick = function(){
		var myForm = document.getElementById("contactform");
		if ( myForm.cancel_return.value.length > 0 )
			window.location = myForm.cancel_return.value;
		return false;
	};
}
function makeChanges() {
	if (!document.getElementById("makeChanges")) return;
	if (!document.getElementById("contactform")) return;
	var myButton = document.getElementById("makeChanges");
	myButton.onclick = function(){
		//alert('myMessage');
		var myForm = document.getElementById("contactform");
		myForm.make_changes.value = 1;
		myForm.submit();
		return false;
	};
}
function fixedHeight(a, b, vara, varb) {
	if (!document.getElementById(a)) return;
	if (!document.getElementById(b)) return;
	var maxA = document.getElementById(a).offsetHeight;
	var maxB = document.getElementById(b).offsetHeight;
	if( (maxA+varb) > maxB )
		document.getElementById(b).style.height=(maxA+varb)+'px';
}
/*
This script is copyright (c) 2006 Elliot Swan under the
Creative Commons Attribution-ShareAlike 2.5 license:
http://creativecommons.org/licenses/by-sa/2.5/
More information on this script can be found at: 
http://www.elliotswan.com/2006/04/12/move-and-copy/
Move.element('e', 'target', 'type');
*/
var Move =	{
  copy:   function(e, target, page)	{
	    var eId      = document.getElementById(e);
	    var copyE    = eId.cloneNode(true);
	    var cLength  = copyE.childNodes.length -1;
	    copyE.id     = e+'copy';

	    for(var i = 0; cLength >= i;  i++)	{
	    if(copyE.childNodes[i].id) {
	    var cNode   = copyE.childNodes[i];
	    var firstId = cNode.id;
	    cNode.id    = firstId+'copy'; }
	    }
	    if(page == 1) document.getElementById(target).appendChild(copyE);
		else prependElement(target,copyE);
	},
  element:  function(e, target, type)	{
	    var eId =  document.getElementById(e);
	    if(type == 'move') {
	       document.getElementById(target).appendChild(eId);
	    }

	    else if(type == 'copyI')	{
	       this.copy(e, target, 1);
	    }
	    else if(type == 'copy')	{
	       this.copy(e, target, 0);
	    }
	}
}
function prependElement(parentID,child) {
	// Create The Element Dynamically. Here we are creating  Div   
	//var ele=document.createElement("div");
	// Assume our Parent Element  ID is  container
	// So  function  goes like below 
	//prependElement('container',ele)
	var parent=document.getElementById(parentID);
	parent.insertBefore(child,parent.childNodes[0]);
}
function appendElement(parentID,child,content) {
	// Create The Element Dynamically. Here we are creating  Div   
	var ele=document.createElement(child);
	ele.innerHTML=content;
	// Assume our Parent Element  ID is  container
	// So  function  goes like below 
	//appendElement('container',ele)
	var parent=document.getElementById(parentID);
	parent.appendChild(ele);
}
function getCookie(c_name) {
	var i,x,y,ARRcookies=document.cookie.split(";");
	for (i=0;i<ARRcookies.length;i++) {
	  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
	  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
	  x=x.replace(/^\s+|\s+$/g,"");
	  if (x==c_name) { return unescape(y); }
	}
	return null;
}
function setCookie(c_name,value,exdays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate() + exdays);
	var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()) + "; path=/";
	document.cookie=c_name + "=" + c_value;
}
function ajaxChangeCalendar( date, t ) {
	if(t) {
		var loader = dhtmlxAjax.getSync("/" + "calendar" + ".xml?MY=" + date);
		if(loader.xmlDoc.responseXML!=null) {
			document.getElementById("availCal").innerHTML = loader.xmlDoc.responseXML.getElementsByTagName("calendar")[0].childNodes[0].nodeValue;
			//document.getElementById("holidays").innerHTML = loader.xmlDoc.responseXML.getElementsByTagName("holidays")[0].childNodes[0].nodeValue;
		}
		/*var myCalHide=getCookie("calHide");
		if(myCalHide!=1) calendarShow();*/
	} else {
		var loader = dhtmlxAjax.getSync("/" + "calendarSM" + ".xml?MY=" + date + "&ID=" + thePage);
		if(loader.xmlDoc.responseXML!=null) {
			document.getElementById("availSM").innerHTML = loader.xmlDoc.responseXML.getElementsByTagName("smallcalendar")[0].childNodes[0].nodeValue;
		}
	}
	setCookie("calDate",date,null);
	setNavigators(t);
	return false;
}
function setNavigators(t) {
	if(document.getElementById("premon")) {
		var premon = document.getElementById("premon");
		premon.onclick = function() {
			var myDate = this.rel;
			ajaxChangeCalendar( myDate, t );
			return false;
		};
	}
	if(document.getElementById("nexmon")) {
		var nexmon = document.getElementById("nexmon");
		nexmon.onclick = function() {
			var myDate = this.rel;
			ajaxChangeCalendar( myDate, t );
			return false;
		};
	}
	//if(t) calendarShow(false);
	return;
}
function checkCal(t) { 
	if (document.getElementById('availSM') || document.getElementById('availCal')) {
		var myCalDate=getCookie("calDate");
		//console.log('caldate '+myCalDate);
		if (myCalDate!=null && myCalDate!="") { 
			ajaxChangeCalendar( myCalDate, t );
		} else {
			setNavigators(t);
		}
	}
	if (document.getElementById('availCal')) {
		var myCalHide=getCookie("calHide");
		if(myCalHide!=1) calendarShow();
		else calendarHide();
		//console.log('caldH '+myCalHide);
	}
	return false;
}
function showCal() {
	setCookie("calHide",null,null);
	checkCal(true);
	return false;
}
function hideCal() {
	//setCookie("calHide",1,null);
	checkCal(true);
	return false;
}
function showNav() {
	var box = document.getElementById("picGallery");
	/*box.style.height='78px';box.style.whiteSpace='nowrap';*/
	var tit=box.getElementsByTagName("dt");
	/*box.removeChild(tit[0]);*/
	var a=document.createElement('dd'),b=document.createElement('dd');
	a.id='butL',a.title='move backward',b.id='butR',b.title='move forward',a.innerHTML='&laquo;',b.innerHTML='&raquo;';
	box.insertBefore(a,box.childNodes[0]);
	box.insertBefore(tit[0],box.childNodes[0]);
	box.appendChild(b);
	Carousel=new zxcMouseOverCarousel({
		ID:'theThumbs',
		Mode:'Horizontal',
		Direction:0,
		//AutoRotate:1,
		AddEvents:[
			['butL','Progressive','mouseover',{ToSpeed:5,Duration:2000,Direction:1}],
			['butL','Pause','mouseout'],
			['butR','Progressive','mouseover',{ToSpeed:5,Duration:2000,Direction:-1}],
			['butR','Pause','mouseout']
		]
	});
	return;
}
function calendarHide() { 
	document.getElementById("availCal").innerHTML='<p><a href="#" onclick="showCal();" id="clickCal" class="clickCal">DISPLAY AVAILABILITY CALENDAR</a></p>';
	setCookie("calHide",1,null);
	return false;
}
function calendarShow() { 
	appendElement("availCal", "p", '<a href="#" onclick="calendarHide();" class="clickCal">HIDE AVAILABILITY CALENDAR</a>');
	setCookie("calHide",null,null);
	return false;
}
