// JavaScript Format Phone
// All rights reseved - AAC 2007 - for use with SPRY

// some req'd functions from MM DW
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 stripChars( theFilter, theString) {
	var strOut,i,curChar
	
	//alert("In stripChars()\n" + theFilter + "\n" + theString);
	strOut = "";
	for (i=0;i < theString.length; i++) {		
		curChar = theString.charAt(i);
		if (theFilter.indexOf(curChar) < 0)	// if it's not in the filter, send it thru
			strOut += curChar;	
	}	
	return strOut;
}

// --- Check if Email address entered - No? Demand Phone #
var emailGood	= false;
function emailPresence( emailElement, phoneObj, defArea){
	if( emailElement != "" ) {
		var emailObj = MM_findObj( emailElement );
		
		if( emailObj.length > 7 ) {	// is this possibly and email
			emailGood = true;
		} else {
			emailGood = false;
		}
		
	}
	if( phoneObj != null ) {
		return formatPhone( phoneObj, defArea );
	} else {
		alert("Fail in emailPresence()");
	}
		
}
	  

// --- Format phone number and flash error messages
function formatPhone( element, defaultArea ) {
	// defaultArea = 760 (number)
	var FormElement = MM_findObj( element);
	var elmValeLen	= FormElement.length;
	var tempString	= FormElement.value;
	var msg;
	
	//alert("Started");
	
	if( elmValeLen <= 0 ){
		alert( "Phone number is required.");
		//FormElement.focus();
		return false;
	}
	
	if( defaultArea <= 0) {
		defaultArea = 704;
		alert("Usinf default area.");
	}
	
	tempString = stripChars("*() -./_\n\r",tempString);
	elmValeLen	= tempString.length;
	
	
	if( elmValeLen <= 6 ){
		if( emailGood ) {
			msg	= "Phone Number field:\nInvalid format - Use:(###) ###-####\nNot enough numbers.\nEnter a phone number.";
		} else {
			msg	= "Phone Number field:\nInvalid format - Use:(###) ###-####\nNot enough numbers.\nYou must enter a phone number.";
		}
		alert( msg );
		return false;	
	}
	if( elmValeLen == 7 ){
		FormElement.value = "(" + defaultArea + ") " + tempString.substr(0,3) + "-" + tempString.substr(3);
		if( emailGood ) {
			msg	= "Phone Number Field:\nPlease verify the Area code.";
		} else {
			msg	= "Phone Number Field:\nPlease verify the Area code.\nWe need a phone number for a quick response.";
		}
		alert( msg );
		return false;	
	}
	if( elmValeLen == 10 ){
		FormElement.value = "(" + tempString.substr(0,3) + ") " + tempString.substr(3,3) + "-" + tempString.substr(6);
		return true;	
	}	
	if( elmValeLen == 11 ){
		FormElement.value = "(" + tempString.substr(1,3) + ") " + tempString.substr(4,3) + "-" + tempString.substr(7);
		return true;	
	}	
	if( elmValeLen > 11 ){
		if( emailGood ) {
			msg	= "Phone Number Field:\nToo many numbers.";
		} else {
			msg	= "Phone Number Field:\nToo many numbers.\nWe need a phone number for a quick response.";
		}
		alert( msg );
		return false;
	}
	if( emailGood ) {
		msg	= "Phone Number Field:\nUnknown problem...\nTry entering as (###) ###-####";
	} else {
		msg	= "Phone Number Field:\nUnknown problem...\nTry entering as (###) ###-####\nWe need a phone for an qick response.";
	}
	alert( msg );
}

