
/////////////////////////
// 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 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('frm_name_'+theForm).value;
	name_label =  document.getElementById('frm_name_label_'+theForm);
	
	phone = document.getElementById('frm_phone_'+theForm);
	phone_label = document.getElementById('frm_phone_label_'+theForm);
	
	email =  document.getElementById('frm_email_'+theForm).value;
	email_label =  document.getElementById('frm_email_label_'+theForm);
	//alert (email);
	comments = document.getElementById('frm_comments_'+theForm).value;

	if (name == '') {
	  name_label.style.color = '#ff0000';
	  
	  alert ('Please enter your name.');
	  document.getElementById('frm_name_'+theForm).focus();
	  return false; 
	  } else {
	    name_label.style.color = '#ffffff';
	  //  if ((isPhoneNumber (phone)) ) {
	
	var Phone=phone;
	
	if (((Phone.value==null)||(Phone.value=="")) && ((email == null) || (email == ""))){
		alert("Please Enter your Phone Number or Email");
		phone_label.style.color = '#ff0000';
		email_label.style.color = '#ff0000';
		Phone.focus();
		return false;
	}
	if (((email == null) || (email == "")) && (checkInternationalPhone(Phone.value)==false)){
		alert("Please Enter a Valid Phone Number (555) 555-1234");
		phone_label.style.color = '#ff0000';
		Phone.select();
		Phone.focus();
		return false;
	}
	else { phone_label.style.color = '#ffffff'; 
	
  	
	        if (((Phone.value != null) || (Phone.value != "")) || (echeck(email, theForm))) {
		  // a bit of clean up, I think echeck is changing the variable email from the value created earlier and the actual object reference
	       	  email = email.value;
		//	alert (email);
		  str = "_submit_ajax=1";
		  str += "&form="+urlencode (theForm);
		  str += "&div="+urlencode (theDiv);
		  str += "&name="+urlencode (name);
		  str += "&phone=";
		  str += phone.value;
		  str += "&email="+urlencode (email)+"&comments="+ urlencode (comments);
		//alert (str);
		  processajax (serverPage, theDiv, 'post', str);
		} else { return false; }
	     }
	    //} 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('frm_email_label_'+theForm);
		email = document.getElementById('frm_email_'+theForm);
		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){
		   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(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    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,(lat+1))!=-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.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		   email_label.style.color = '#ff0000';
		   email.focus();
		   email.select();
		    alert("Invalid Email address");
		    return false;
		 }

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

///////////////////////////////
// blinking text
function changeColour1() {
	var interval = 1000;
    	var class1 = 'blink';
    	var class2 = 'blink2';
	var element = document.getElementById("blink1");

	if (element.className == class2) {
	  element.style.color = '#ffcc00';
	  element.className = class2;
	}
	else { element.style.color = '#ff0000'; element.className = class1; }

	var element = document.getElementById("blink2");
	if (element.className == class2) {
	  element.style.color = '#ffcc00';
	  element.className = class2;
	}
	else { element.style.color = '#ff0000'; element.className = class1; }
	       setTimeout("changeColour1()", interval);
}
function changeColour(elementId) {
    var interval = 1000;
    var class1 = 'blink';
    var class2 = 'blink2';
//  alert('');
      var element = document.getElementById("blink2");
//	alert('blink2: '+element.className);
	if (element.className == class1) {
	  element.className = class2;
	}
	else { element.className = class1 }
//	alert('blink2: '+element.className);

      var element = document.getElementById("blink1");
//	alert('blink1: '+element.className);
	if (element.className == class1) {
	  element.className = class2;
	}
	else { element.className = class1; }
//	alert('blink1: '+element.className);
//    if (document.getElementById(elementId).getAttribute('class') == class1) { // 
//	element.setAttribute('class', class2);
//	}
  // else { element.setAttribute('class', class1); }
       setTimeout("changeColour('" + elementId + "')", interval);
  
} // end of function
