// site.js - cross-site javascript function file
// @author: cn

/** GLOBAL VARIABLES **/
var egr_phoneEnabled=1;

/**
 * phoneNumberFormat: takes numbers being entered in by user and reformats them (note: should be called by onkeyup event)
 * @author cn
 * @param element(this)
 * @return none
 */
function phoneNumberFormat(element,e)
{
  if(e){
          e = e
     } else {
          e = window.event
     }

     if(e.which){
          var keycode = e.which
     } else {
          var keycode = e.keyCode
     }

	if(keycode=='8' || keycode=='46'){
		return;
	}
	
	var formatted='';
	var valid=0;
	var string = document.getElementById(element.id).value;
	var length = string.length;
	
	string=string.replace('(','');
	string=string.replace(')','');
	string=string.replace('-','');
	string=string.replace('-','');
	string=string.replace('.','');
	string=string.replace('.','');
	string=string.replace(' ','');
	string=string.replace(' ','');
	string=string.replace(' ','');
	
	if(length>=1 && egr_phoneEnabled==1)
	{
		if(length>2){
			formatted='('+string.charAt(0)+string.charAt(1)+string.charAt(2)+') ';
			formatted+=string.charAt(3)+string.charAt(4)+string.charAt(5);
			
			if(length>8){
				formatted+='-'+string.charAt(6)+string.charAt(7)+string.charAt(8)+string.charAt(9);
			}
		}
		
		if(formatted.length>0){
			document.getElementById(element.id).value=formatted;
		}
	}
}

/**
 * keyListener: listens for keypress events
 * @author cn
 * @param event
 * @return none
 */
function keyListener(evt)
{
	var evt  = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);

	if (node.type == "text")
	{
		egr_phoneEnabled=1;
		switch(node.id)
		{
			case 'phone':
				if(evt.keyCode==8) egr_phoneEnabled=0;
				else if(evt.keyCode==46) egr_phoneEnabled=0;
				phoneNumberFormat(node);
				break;
			case 'cell_phone':
				if(evt.keyCode==8) egr_phoneEnabled=0;
				else if(evt.keyCode==46) egr_phoneEnabled=0;
				phoneNumberFormat(node);
				break;
		}
	}
}

/**
* checkAll: check all elements in a form
* @author cn
* @param form (this.form)
* @return none
*/
function checkAll(f)
{
	var length=f.elements.length;
	for(var i=0;i<length;i++){
		f.elements[i].checked=true;
	}	
}

/**
* uncheckAll: uncheck all elements in a form
* @author cn
* @param form (this.form)
* @return none
*/
function uncheckAll(f)
{
	var length=f.elements.length;
	for(var i=0;i<length;i++){
		f.elements[i].checked=false;
	}	
}

/**
* resetForm: resets each value in a form
* @author cn
* @param form (this.form)
* @return none
*/
function resetForm(f)
{
	var length=f.elements.length;
	for(var i=0;i<length;i++){
		
		if(f.elements[i].type=='text'){
			f.elements[i].value='';
		}
		else if(f.elements[i].type=='checkbox' || f.elements[i].type=='radio'){
			f.elements[i].checked=false;
		}
		
	}
}