// SITE JavaScript

// ################################ ROLLOVERS ################################

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];}}
}

function MM_findObj(n, d) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); 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];}
}


// ################################ PRINT PAGE ################################
function printLink () { 
	if(window.print) { 
   		document.write('<a href="javascript:window.print()">[click to print]<\/a>');
   		}
	}	


// ################################ BOOKMARK TOOL ################################

function bookmarksite(title,url){
	if (window.sidebar) // firefox
		window.sidebar.addPanel(title, url, "");
	else if(window.opera && window.print){ // opera
		var elem = document.createElement('a');
		elem.setAttribute('href',url);
		elem.setAttribute('title',title);
		elem.setAttribute('rel','sidebar');
		elem.click();
	} 
	else if(document.all)// ie
		window.external.AddFavorite(url, title);
}


// ################################ FORM VALIDATION ################################

function validateForm(form) { 
		// Validate
		if (isEmpty( form.txtName, "Please enter your name.")) { return false; }
		if (emailValidator( form.txtEmail, "Invalid E-mail address. Please ensure e-mail address is formatted correctly, name@domain.xxx .")) { return false; }
		if (isPhoneNumber( form.txtPhone, "Invalid Phone number. Please ensure Phone number is formatted correctly, XXX-XXX-XXXX.")) { return false; }
		if (isEmpty( form.txtDescription, "Please enter a message.")) { return false; }
		
	}

// If the length of the element's string is 0 then display helper message
function isEmpty(elem, helperMsg){
		if(elem.value.length == 0){
			alert(helperMsg);
			elem.focus(); // set the focus to this input
			return true;
		}
		return false;
	}

// E-Mail address validation
function emailValidator(elem, helperMsg){
		var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
		if(elem.value.match(emailExp)){
			return false;
		}else{
			alert(helperMsg);
			elem.focus();
			return true;
		}
	}

// Phone number validation
function isPhoneNumber(elem, helperMsg) {
		var phoneExp = /\d{3}\-\d{3}\-\d{4}/;
		if(elem.value.match(phoneExp)){
			return false;
		}else{
			alert(helperMsg);
			elem.focus();
			return true;
		}
	}


// Format Phone number
function formatePhone(userInput) {
	// XXXXXXXXXX
	if (userInput.value.length == 10) {
		/* Format a 10 digit number */ 
		_return = "";
		var ini = userInput.value.substring(0,3);
		_return+=ini+"-";
		var st = userInput.value.substring(3,6);
		_return+=st+"-";
		var end = userInput.value.substring(6,10);
		_return+=end;
		
		formattedPhone = _return;
		userInput.value = formattedPhone;
	
	  }
		// (XXX)XXX-XXX)  
	 if (userInput.value.length == 13) {
		/* Format a 10 digit number */ 
		_return = "";
		var ini = userInput.value.substring(1,4);
		_return+=ini+"-";
		var st = userInput.value.substring(5,8);
		_return+=st+"-";
		var end = userInput.value.substring(9,13);
		_return+=end;
		
		formattedPhone = _return;
		userInput.value = formattedPhone;
	
	  } 

}