var animating = false;
var originalImage;
var originalOffset;
var nImage;

// Open links in external window for XHTML 1.0 Strict compliancy
// To make a link open in external window add the "rel" attribute to the <a> tag
// and set its value to "external" example:
//     <a href="http://www.google.com" rel="external">Google</a>
function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	var areas = document.getElementsByTagName("area");
	var forms = document.getElementsByTagName("form");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") &&
		anchor.getAttribute("rel") == "external")
		anchor.target = "_blank";
	}
	for (var x=0; x<areas.length; x++) {
		var area = areas[x];
		if (area.getAttribute("href") &&
		area.getAttribute("rel") == "external")
		area.target = "_blank";
	}
	for (var y=0; y<forms.length; y++) {
		var form = forms[y];
		if (form.getAttribute("rel") == "external")
		form.target = "_blank";
	}
}



function dropDown(menu,fa) {
	var myMenu = document.getElementById(menu);
	
	if(fa == 'appear') {
		new Effect.Appear(myMenu,{duration:0.3});
	} else if(fa == 'fade') {
		new Effect.Fade(myMenu,{duration:0.5});
	}
}



function sHover(elem,e) {
	thisId = elem.nextSibling.id.substr(7,elem.nextSibling.id.length);
	
	if(document.getElementById("sNavOn"+thisId).style.left != '10px') {
		if(e == "on") {
			elem.parentNode.style.background = "url('images/side_hover.gif') left top no-repeat";
		} else if(e == "off") {
			elem.parentNode.style.background = "";
		}
	} else {
		if(e == "on") {
			elem.style.cursor = 'default';
		} else if(e == "off") {
			elem.style.cursor = 'pointer';
		}
	}
}



function moveElem(elem,eStart,eEnd,eTime,cID,tOff) {
	
	var FPS = 30;								// Frames per second
	var numFrames = FPS*(eTime/1000);			// Frames in animation
	var timePerFrame = eTime/numFrames;			// Time per frame in ms
	var dist = (eEnd - eStart)/numFrames;	// Distance to travel (in pixels)
	
	var newDist = eStart;
	var frame = 1;
	
	function displayNextFrame() {
		if (frame > numFrames || dist == 0) {
			clearInterval(intervalId);
			document.getElementById(elem).style.top = '-'+eEnd+'px';
			if(cID == '') {
				// alert("Do Nothing!");
			} else {
				// alert("Load Content!");
				swapContent(cID,tOff);
			}
			return;
		}
		
		newDist += dist;
	
		document.getElementById(elem).style.top = '-' + newDist + 'px';
	
		frame++;
	}
	
	var intervalId = setInterval(displayNextFrame,timePerFrame);
		
}



function contentMe(cID,tOff,hOff,newImage) {
	if(cID != lastID) {
		var element = document.getElementById("content");
		document.getElementById("sNavOn"+lastID).style.left = "-5000px";
		document.getElementById("sNavOff"+lastID).style.left = "10px";
		document.getElementById("sNavOff"+cID).style.left = "-5000px";
		document.getElementById("sNavOn"+cID).style.left = "10px";
		lastID = cID;
		document.getElementById("sNavOn"+cID).parentNode.style.background = '';
		
		nImage = newImage;
	
		if(animating == false) {
			animating = true;
			if(nImage != '') {
				originalOffset == '0px';
			} else {
				originalOffset = '-'+hOff+'px';
			}
			originalImage = document.getElementById('headerImage').src;
			
			var curPos = 0;		// Starting position of element
			var timePerFrame = 5;	// Time per frame in ms
			var numFrames = 7;		// Frames in animation
			var dist = 5;			// Distance to travel (in pixels)
			
			var newPos = curPos;	
			var frame = 1;
					
			function displayNextFrame() {
				if (frame > numFrames) {
					//moveElem('header_backing',0,hOff,250,cID,tOff);
					clearInterval(intervalId);
					// alert("Done moving up!");
					curPos = newPos;
					// animating = false;
					swapContent(cID,tOff);
					return;
				}
				
				newPos = newPos - dist;
				
				element.style.marginTop = newPos + 'px';
			
				frame++;
			}
		
			var intervalId = setInterval(displayNextFrame,timePerFrame);
			
		} else {
			swapContent(cID,tOff);
		}
	}
}



function swapContent(cID,tOff) {
	var cLoad = cID;
	var tOffset = tOff;
	
	if(user_platform == "apple" && user_browser == "firefox") {
		document.getElementById('content_body').style.display = 'none';
		document.getElementById('tContainer').style.display = 'none';
	} else {
		new Effect.Fade(document.getElementById('content_body'),{duration:0.5});
		new Effect.Fade(document.getElementById('tContainer'),{duration:0.5});
	}
	
	function loadContent() {
		clearInterval(interval);
		// alert(tOff);
		document.getElementById("tContainer").style.top = "-"+tOff+"px";
		xajax_getContent(cLoad);
	}
	
	var interval = setInterval(loadContent,500);
	
}



function swapImage(newImage,hOffset) {
	if(newImage != document.getElementById('headerImage').src) {
		// alert("New image: "+newImage+"\n\nOld image: "+document.getElementById('headerImage').src);
		new Effect.Fade('headerImageContainer',{ 
						duration: 0.5,
						afterFinish: function() {
							document.getElementById('headerImage').src = "";
						}
						});
		function loadImage() {
			clearInterval(interval);
			document.getElementById('headerImage').src = newImage;
			new Effect.Appear('headerImageContainer',{ duration: 0.5 });
			moveElem('headerImage',0,hOffset,1000,'','');
		}
	
		var interval = setInterval(loadImage,750);
	}
}




function openMenu(elem,stat) {
	var menuElem = document.getElementById(elem);
	
	switch(stat) {
		case 'on':
			menuElem.style.display = 'block';
			break;
		case 'alive':
			menuElem.style.display = 'block';
			break;
		case 'off':
			menuElem.style.display = 'none';
			break;
	}
	
}



function showHideReservation() {
	var check_availability = document.getElementById('check_availability');
	if(check_availability.style.left == '-9999em') {
		check_availability.style.left = '50%';
		calendarControl.show();
		setActive('arrival');
		showCalendarControl(document.getElementById('arrival'));
	} else {
		check_availability.style.left = '-9999em';
		calendarControl.hide();
	}
}



function setActive(elem) {
	/*var arrival = document.getElementById('title_arrival');
	//var departure = document.getElementById('title_departure');
	if(elem == 'arrival') {
		if(arrival.src.indexOf('-a.gif') == -1) {
			arrival.src = arrival.src.replace('.gif','-a.gif');
			departure.src = departure.src.replace('-a.gif','.gif');
		}
		
	} else if(elem == 'departure') {
		if(departure.src.indexOf('-a.gif') == -1) {
			arrival.src = arrival.src.replace('-a.gif','.gif');
			departure.src = departure.src.replace('.gif','-a.gif');
		}
	}*/
}



function checkAvailability(theForm) {
	var formElem = document.getElementById('availability_form');
	var arrival = document.getElementById('arrival');
	var departure = document.getElementById('departure');
	var errors = 0;
	var message = "There were errors in your submission:\n\n";
	
	if(arrival.value == 'MM-DD-YY') {
		errors = 1;
		message+= "- You did not choose an arrival date\n";
	}
	if(departure.value == 'MM-DD-YY') {
		errors = 1;
		message+= "- You did not choose a departure date\n";
	}
	if(errors == 0) {
		a_month = arrival.value.split('-')[0];
		a_day = arrival.value.split('-')[1];
		a_year = arrival.value.split('-')[2];
		d_month = departure.value.split('-')[0];
		d_day = departure.value.split('-')[1];
		d_year = departure.value.split('-')[2];
		dateError = 0;
		if(a_year > d_year) {
			errors = 1;
			message+= "- Your departure date is before your arrival date\n";
		} else {
			if(a_month > d_month) {
				errors = 1;
				message+= "- Your departure date is before your arrival date\n";
			} else {
				if(a_day > d_day) {
					errors = 1;
					message+= "- Your departure date is before your arrival date\n";
				}
			}
		}
	}

	if(errors == 0) {
		alert('Passed requirements! Submitting Form!');
	} else {
		alert(message);
	}
}



function clearForm(theForm) {
	var formElem = document.getElementById('availability_form');
		formElem.reset();
		document.getElementById('arrival').focus;
		showCalendarControl(document.getElementById('arrival'));
		setActive('arrival');
}



function startup() {
	//List functions to be run on startup here:
	externalLinks();
}

var oldonload = window.onload;

if (typeof window.onload != 'function') {
	window.onload = startup;
} else {
	window.onload = function() {
		oldonload();
		startup();
	}
}