
/////////////////////////////
// sumbit form

/////////////////////////
// creates external links
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
window.onload = externalLinks;


/////////////////////////////////////
// show/hide contact form
function show_form(form) {
  theForm = document.getElementById(form);
  theForm.style.display = "block";
}

function hide_form(form) {
  theForm = document.getElementById(form);
  theForm.style.display = "none";
}


/////////////////////////////////////
// url encode
function urlencode(str) {
return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}
//////////////////////////////////////////
function setStatus(theStatus, theObj)
	{
	obj = document.getElementById(theObj);
	if (obj)
		{
		obj.innerHTML = "<div id = \"status\" class = \"status\"><img src = \"images/loading.gif\" alt = \""+theStatus+"\" width = \"16px\" height = \"16px\" />" + theStatus + "</div>";

		}
	return;
	}
//////////////////////////////////////
// function for submitting form
function submit_form (theForm, serverPage, theDiv) {
	var str = ''
  	// element[0] = form_name
	// element[1] = form_phone
  	// element[2] = form_email
  	// element[3] = form_comments
	name =  document.getElementById('name').value;
	
	
	phone = document.getElementById('phone');
	
	email =  document.getElementById('email');
	//alert (email);
	subject = document.getElementById('subject');
	
	comments = document.getElementById('message').value;
	
	

	if ((name == '') || ((name.indexOf('Your Name:') > 0))) {
	    
	  alert ('Please enter your name.');
	  document.getElementById('name').focus();
	  return false; 
	  } else {
	   
	var Phone = phone;
	
	if ((Phone.value==null)||(Phone.value=="") || (Phone.value.indexOf('Phone Number') > 0)){
		alert("Please Enter your Phone Number (555) 555-1234");
		
		document.getElementById('phone').focus();
		document.getElementById('phone').select();
		return false;
	}
	if (checkInternationalPhone(Phone.value)==false){
		alert("Please Enter a Valid Phone Number (555) 555-1234");
		document.getElementById('phone').focus();
		document.getElementById('phone').select();
		return false;
	}
	else { 
  	
	        if (echeck(email.value)) {
			// confirm empty subject, message
			if (subject.value == '') { if (!confirm ('Do you want to send without a Subject?')) {subject.focus();return false;}
			 } else {subject.value == 'None'}
		  // a bit of clean up, I think echeck is changing the variable email from the value created earlier and the actual object reference
	       	 
		//	alert (email);
		  str = "_submit_ajax=1";
		  str += "&_submit_check=true";
		  str += "&form="+urlencode (theForm);
		  str += "&div="+urlencode (theDiv);
		  str += "&name="+urlencode (name);
		  str += "&phone=";
		  str += urlencode(phone.value);
		  str += "&email="+urlencode (email.value)+"&subject="+urlencode (subject.value)+"&message="+ urlencode (comments);
		//alert (str);
		  processajax (serverPage, theDiv, 'post', str);
		} else { return false; }
	     }


	  }
	

}



////////////////////////////
// validate phone number

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- .";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) {//alert(c+' '+i);
		return false;}
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
var bracket=3;
strPhone=trim(strPhone);
//alert (strPhone);
if(strPhone.indexOf("+")>1) {return false; }
if(strPhone.indexOf("-")!=-1){
  bracket=bracket+1; 
  theIndex = strPhone.indexOf("(");
  //alert("bracket: "+bracket+ ' theIndex: '+theIndex);
  }
if(strPhone.indexOf("(")!=-1) //{alert ("-1");} 
if ( strPhone.indexOf("(") > bracket)
 {//alert (strPhone.indexOf("(") +" > "+ bracket);
  return false;}
var brchr=strPhone.indexOf("(");
//alert ("brchr: "+brchr);
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+4)!=")")return false;
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false;
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}


function echeck(str, theForm) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		//email_label = document.getElementById('email_label');
		email = document.getElementById('email');
		if (str.indexOf(at)==-1){
		   //email_label.style.color = '#ff0000';

		   alert("Invalid Email address, please enter an email in the form of yourname@domain.com.");
		   email.focus();
		   email.select();
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		  

		   alert("Invalid Email address, please enter an email in the form of yourname@domain.com.");
		   email.focus();
		   email.select();
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    
		    alert("Invalid Email address, please enter an email in the form of yourname@domain.com.");
		   email.focus();
		   email.select();
		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid Email address, please enter an email in the form of yourname@domain.com.");
		   email.focus();
		   email.select();
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		   email.focus();
		   email.select();
		    alert("Invalid Email address");
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid Email address");
		   email.focus();
		   email.select();
		    return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid Email address");
		   email.focus();
		   email.select();
		    return false;
		 } else {
		 return true;
		}					
	}








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


