/*Format Phone Numbers*/

//formats an incoming string as a phone number if valid US or Canada Number
//If not a valid US or Canada Number, returns original string
function formatPhone(inPhoneNumber){		
	//remove all spaces from the phone number
	var outPhoneNumber = inPhoneNumber.split(' ').join('');
	
	//make sure the phone number length
	//is greater than 5 characters long
	if (outPhoneNumber.length > 5) {

	    //If the phone number starts with 1- we can remove it now
	    if (outPhoneNumber.substring(0, 2) == "1-") {
	        //Phone number = everything except 1-
	        outPhoneNumber = outPhoneNumber.substring(2);
	    }

	    //Strip out all of the non numeric characters
	    var outPhoneNumber = numbersOnly(outPhoneNumber);

	    //If we have a standard US/Canada 10 digit number -- format it
	    if (outPhoneNumber.length == 10) {
	        outPhoneNumber = '(' + outPhoneNumber.substring(0, 3) + ')' + ' ' + outPhoneNumber.substring(3, 6) + '-' + outPhoneNumber.substring(6, 10);
	        return outPhoneNumber;
	    }

	    //If we have an 11 digit number and it starts with 1, remove the 1 and treat as US/Canada 10 digit number
	    else if (outPhoneNumber.length == 11 && outPhoneNumber.substring(0, 1) == "1") {
	        outPhoneNumber = outPhoneNumber.substring(1);
	        outPhoneNumber = '(' + outPhoneNumber.substring(0, 3) + ')' + ' ' + outPhoneNumber.substring(3, 6) + '-' + outPhoneNumber.substring(6, 10);
	        return outPhoneNumber;
	    }

	    //If we have something else, return it ... we don't know what it is.
	    else {
	        return numbersOnly(inPhoneNumber);
	    }
	}

	else {
	    return numbersOnly(inPhoneNumber);
	}
}	
	
//strip all non numeric characters from a string
function numbersOnly(stringSource){
	var numbersOnly = new String(stringSource); 
	numbersOnly = numbersOnly.replace(/[^0-9]/g, ''); 

	return numbersOnly;
}
