<!--
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// JavaScript Cookie Functions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	} else {
		var expires = "";
	}
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Create an XMLHttpRequest object
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function createXMLHttpRequest(){
	var A;
		var msxmlhttp = new Array(
		'Msxml2.XMLHTTP.5.0',
		'Msxml2.XMLHTTP.4.0',
		'Msxml2.XMLHTTP.3.0',
		'Msxml2.XMLHTTP',
		'Microsoft.XMLHTTP'
	);
	
	// First try the W3C compliant object first.
	try{
		A = new XMLHttpRequest();
	}catch(e){
		;
	}
	
	// Next try the Microsoft way.
	if(!A){
		for (var i = 0; i < msxmlhttp.length; i++) {
			try{
				A = new ActiveXObject(msxmlhttp[i]);
			}catch(e){
				A = null;
			}
			if (A){
				break;
			}
		}
	}
	return A;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// AJAX Execution
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function AJAXExecute(strRequestType, strBeanServerURI, anonFunction, strData){
	var xmlConnection = createXMLHttpRequest();
	
	// Open connection
	xmlConnection.open(strRequestType, strBeanServerURI , true);
	
	// Setup a call back function, if needed.
	xmlConnection.onreadystatechange = function(){
		anonFunction(xmlConnection);
	}
	
	try {
		if (strRequestType == 'POST') {
			xmlConnection.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlConnection.setRequestHeader('charset', 'utf-8');
			xmlConnection.send(strData);
		} else {
			xmlConnection.send(null);
		}
	} catch(e) {
		throw e;
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// change image functions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function setImgName(imageName) {
	imgName = imageName;
}
function ImgSwitch() {
	if(imgName.length == 0) {
		setImgName(document.getElementById('default_image').value);
	}
	dojo.lfx.html.fadeOut('wiper', 300).play();
	setTimeout('ImgSwitchIn()',250);
}
function ImgSwitchIn() {
	if(strBA == 'BEFORE'){
		strBA = 'AFTER';
		document.images['ba_head'].src = ba_head_after.src;
		document.images['ba'].src = '/images/gallery/photos/'+imgName+'_1_after.jpg';
	} else {
		strBA = 'BEFORE';
		document.images['ba_head'].src = ba_head_before.src;
		document.images['ba'].src = '/images/gallery/photos/'+imgName+'_1_before.jpg';
	}
	dojo.lfx.html.fadeIn('wiper', 300).play();
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mouse Over functions
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Validate email address format
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function isValidEmail(strEmail) {
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(strEmail)) {
		return true;
	}	else {
		return false;
	}
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Utility Function to get GET vars
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function getGetValue(getVar) {
  var qString = window.location.search.substring(1);
  var vars = qString.split("&");
  for(var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == getVar) {
      return pair[1];
    }
  } 
	return '';
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mouse Over\Out for Sub Menu
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function subMenuMouseOver(objDiv) {
	objDiv.className = 'subNavElementOver';
}
function subMenuMouseOut(objDiv) {
	objDiv.className = 'subNavElement';
}
//-->
