function IncludeJavaScript(jsFile)
{
  document.write('<script type="text/javascript" src="' + jsFile + '"></script>'); 
}

IncludeJavaScript('/swfobject.js');

<!-- hide this script from non-javascript-enabled browsers
function popWindow(page, width, height, win, scrollbars, resizable, toolbar, menubar)
{
	if (!height)
		height = 396;
	if (!width)
		width = 360;
	if (!win)
		win = "_new"
	var h, w, scrol, siz;
	w = "WIDTH=" + width.toString();
	h = "HEIGHT=" + height.toString();
	scrol = ",scrollbars=" + ( (scrollbars) ? "yes" : "no" );
	siz = ",resizable=" + ( (resizable) ? "yes" : "no" );
	tool = ",toolbar=" + ( (toolbar) ? "yes" : "no" );
	menu = ",menubar=" + ( (menubar) ? "yes" : "no" );
	attr = w + "," + h + scrol + siz + tool + menu;
	popupWin = window.open(page,win,attr);
	popupWin.focus();
}
function popBook(myPage)
{
	popWindow(myPage,360,396,'bookfeature');
}

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];
	}
}
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;
			};
		}
	};
}();
//eg: addEvent(window, "load", init);
//addEvent(window,'unload',EventCache.flush);


function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}
//eg: $('id');

var toggle = {
	show : function() {
		for ( i=0; i < arguments.length; i++ ) {
			$(arguments[i]).style.display = '';
		}
	},
	hide : function() {
		for ( i=0; i < arguments.length; i++ ) {
			$(arguments[i]).style.display = 'none';
		}
	},
	auto : function() {
		for ( i=0; i < arguments.length; i++ ) {
			el = $(arguments[i]);
			if(el.style.display == 'none')
				el.style.display = '';
			else
				el.style.display = 'none';
		}
	}
};
//eg: toggle.hide(id, id3);

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function selectAll(el)
{
	var boxes = el.getElementsByTagName('input');
	for(var j = 0; j < boxes.length; j++)
	{
		if(boxes[j].type == 'checkbox')
		{
			if(boxes[j].checked) continue;
			boxes[j].click();
		}
	}
}
function deselectAll(el)
{
	var boxes = el.getElementsByTagName('input');
	for(var j = 0; j < boxes.length; j++)
	{
		if(boxes[j].type == 'checkbox')
		{
			if(!boxes[j].checked) continue;
			boxes[j].click();
		}
	}
}
function zebraTable(table_rows)
{
	for(var j = 0; j < table_rows.length; j++)
	{
		if((j % 2 === 0) && j > 1)
			table_rows[j].className = 'hightlight'
	}
}

// end vantage javascript



// ajax handlers

function makeRequest(url, callback, method, queryString){

	var httpRequest;

	if(window.XMLHttpRequest){ // Mozilla, Safari, ...
		httpRequest = new XMLHttpRequest();
		if(httpRequest.overrideMimeType){
			httpRequest.overrideMimeType('text/xml');
			// See note below about this line
		}
	} 
	else if(window.ActiveXObject){ // IE
		try{
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){}
		}
	}

	if(!httpRequest){
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	httpRequest.onreadystatechange = function(){ handleRequest(httpRequest, callback); };
	httpRequest.open(method, url, true);

	if(method == 'POST'){ // set post request requirements..
	
		httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpRequest.setRequestHeader("Content-length", queryString.length);
		httpRequest.setRequestHeader("Connection", "close");
	}

	httpRequest.send(queryString);
}

function handleRequest(httpRequest, callback){

	if(httpRequest.readyState == 4){
		if(httpRequest.status == 200){
			// alert(httpRequest.responseText);
			//document.getElementById("response").innerHTML = httpRequest.responseText;
			//if(httpRequest.responseText){
				//alert("return value: " + httpRequest.responseText + " callback: " + callback);
				//response = httpRequest.responseText;
				//window.alert("response: " + httpRequest.responseText);
				callback(httpRequest.responseText);
			//}
		}else{
			alert('There was a problem with the request.');
		}
	}
}

// ajax

function setQueryString(objQuery){

	var queryString = "";
	for(var key in objQuery){
	
		if(queryString == "")
			queryString += key + "=" + encodeURI(objQuery[key]);
		else
			queryString += "&" + key + "=" + encodeURI(objQuery[key]);
	}
	return queryString;
}

// end: ajax handlers

// begin: custom site javascripts

/**
 * @param: elem -phone number in string
 * check if non-digit character has been entered
 * check if param equals to 10 digits
 */
 
function validatePhone(elem, field){// , event){
	
	//window.alert("event: " + e.type);
	if((elem.value != "") && (elem.value != 0)){
		var re = /[0-9]{3}-[0-9]{3}-[0-9]{4}/
		if(!re.test(elem.value)){
			
			window.alert("Please enter the (" + field + ") in the following format xxx-xxx-xxxx");
			//stopBubble(event);
			setTimeout(function(){ elem.focus() }, 1);		
			//stopDefault(e);
			return false;
		}
	}
	return true;
}

function stopDefault(e){
	if(e && e.preventDefault){
		e.preventDefault();
	}else{
		window.event.returnValue = false;
	}
	return false;
}

function stopBubble(e){
	
	window.alert("event: " + e);
	if(e && e.stopPropagation){ // Non-IE
		//window.alert("non ie");
		e.stopPropagation();
	}else{ // IE
		//window.alert("ie");
		window.event.cancelBubble = true;
	}
}

// end: custom site javascripts

// credit card validation
IncludeJavaScript('/scripts/creditcard.js');

function checkCard(cardTypeElemID, cardNumberElemID){
	
	var cardNumber = document.getElementById(cardNumberElemID);
	var cardType = document.getElementById(cardTypeElemID);
	//alert("card number: " + cardNumber.value + " card type: " + cardType.value);

	if (checkCreditCard(cardNumber.value, getCardType(cardType.value)) != true) {
	    window.alert(ccErrors[ccErrorNo]);
		cardType.focus();
		return false;
	}
	return true;
}

function getCardType(type){
	
	switch(type){
	
		case "Visa":
			return "Visa";
			break;
			
		case "MasterCard":
			return "MasterCard";
			break;
			
		case "Amex":
			return "AmEx";
			break;
		
		case "Discover/Novus":
			return "Discover";
			break;
			
		default:
			break;
	}
}

function move(url){
	window.location.href = url;
	return false;
}

function debug(output){
	console.log("debug: " + output);
}

function printObj(obj){
	var str = "";
	for(var prop in obj){
		str += prop + " : " + obj[prop];
	}
	window.alert("object: " + str);
}

function id(id){
	return document.getElementById(id);
}

function tag(tag){
	return document.getElementsByTagName(tag);
}