	function balanceFullName( Input , theContainingSpanObject , displayFullName , displayCompanyName ){
		this.theContainingSpanObject = theContainingSpanObject;
		this.displayFullName = displayFullName;
		this.displayCompanyName = displayCompanyName;

		if(this.theContainingSpanObject.parentNode.id!=''){
			this.motherContainer = this.theContainingSpanObject.parentNode;
		}else{
			this.motherContainer = this.theContainingSpanObject.parentNode.parentNode;
		}

		this.Input = nextAdjacentSibling(this.motherContainer).getElementsByTagName('TEXTAREA')[0];
	
		if(this.displayFullName && this.displayCompanyName){
			this.nameSelector=this.theContainingSpanObject.getElementsByTagName('SELECT')[0];
		}else{
			this.nameSelector=false;
		}
		
		
		this.CompanyName=this.theContainingSpanObject.getElementsByTagName('INPUT')[0];
		
		if(this.displayFullName){
			this.FirstName=this.theContainingSpanObject.getElementsByTagName('INPUT')[1];
			this.MiddleName=this.theContainingSpanObject.getElementsByTagName('INPUT')[2];
			this.LastName=this.theContainingSpanObject.getElementsByTagName('INPUT')[3];
		}else{
			this.FirstName=false;
			this.MiddleName=false;
			this.LastName=false;
		}
	}

	balanceFullName.prototype.focus = function(){
		if( this.displayCompanyName && this.theContainingSpanObject.getElementsByTagName('INPUT')[0].style.display=='' ){
			this.theContainingSpanObject.getElementsByTagName('INPUT')[0].focus();
		}else{
			this.theContainingSpanObject.getElementsByTagName('INPUT')[1].focus();
		}
	}

	balanceFullName.prototype.CompanyNameCheckBLUR=function(){
		if(this.CompanyName.value.length==0 || this.CompanyName.value=='Company Name'){
			this.CompanyName.value='Company Name';
			this.CompanyName.style.color='999999';
		} else if(this.CompanyName.value!='Company Name'){
			this.CompanyName.style.color='000000';
		}
	}
	balanceFullName.prototype.CompanyNameCheckFOCUS=function(){
		if(this.CompanyName.value=='Company Name'){
			this.CompanyName.style.color='000000';
			this.CompanyName.value='';
			this.buildInputValue();
		}
	}

	balanceFullName.prototype.FirstNameCheckBLUR = function(){
		if(this.FirstName.value.length==0 || this.FirstName.value=='First Name'){
			this.FirstName.value='First Name';
			this.FirstName.style.color='999999';
		} else if(this.FirstName.value!='First Name'){
			this.FirstName.style.color='000000';
		}
	}
	balanceFullName.prototype.FirstNameCheckFOCUS=function(){
		if(this.FirstName.value=='First Name'){
			this.FirstName.style.color='000000';
			this.FirstName.value='';
			this.buildInputValue();
		}
	}

	balanceFullName.prototype.LastNameCheckBLUR=function(){
		if(this.LastName.value.length==0 || this.LastName.value=='Last Name'){
			this.LastName.value='Last Name';
			this.LastName.style.color='999999';
		} else if(this.LastName.value!='Last Name'){
			this.LastName.style.color='000000';
		}
	}
	balanceFullName.prototype.LastNameCheckFOCUS=function(){
		if(this.LastName.value=='Last Name'){
			this.LastName.style.color='000000';
			this.LastName.value='';
			this.buildInputValue();
		}
	}

	
	balanceFullName.prototype.calculateDisplay=function(){						
		if(this.displayFullName && this.displayCompanyName){
			if(this.nameSelector.selectedIndex==0){

				this.CompanyName.style.display='none';
				this.FirstName.style.display='';
				this.MiddleName.style.display='';
				this.LastName.style.display='';
			}else{
				this.FirstName.style.display='none';
				this.MiddleName.style.display='none';
				this.LastName.style.display='none';
				this.CompanyName.style.display='';
			}
		}
	}
	
	balanceFullName.prototype.buildInputValue=function(){

		spanish=this.motherContainer.getElementsByTagName('SPAN');
		var loopNum=spanish.length;
		var newValue='';

		for(var i=0; i < loopNum; ++i){
			var foundValue=0; var prepValue='';
			if(spanish[i].id){
				if(this.displayCompanyName && (CompanyName=spanish[i].getElementsByTagName('INPUT')[0]) && CompanyName.style.display==''){
					if(this.displayFullName && this.displayCompanyName){
						if(CompanyName.value!='Company Name'){
							newValue+=CompanyName.value+'{c}';
						}
					}else{
						if(CompanyName.value!='Company Name'){
							newValue+=CompanyName.value;
						}
					}
				}else if(this.displayFullName && (FirstName=spanish[i].getElementsByTagName('INPUT')[1]) && (MiddleName=spanish[i].getElementsByTagName('INPUT')[2]) && (LastName=spanish[i].getElementsByTagName('INPUT')[3])){
					
					if(FirstName.value!='First Name'){ prepValue+=FirstName.value+' '; foundValue=1; }else{ prepValue+=FirstName.value+' '; }
					if(MiddleName.value!=''){ prepValue+=MiddleName.value+' '; foundValue=1; }else{ prepValue+=MiddleName.value+' '; }
					if(LastName.value!='Last Name' && LastName.value!=''){ prepValue+=LastName.value; foundValue=1; }else{ prepValue+=LastName.value+' '; }

					if(nameSelector=spanish[i].getElementsByTagName('SELECT') && this.displayFullName && this.displayCompanyName){
						if(foundValue==1){
							newValue+=prepValue+'{f}';
						}
					}else{
						if(foundValue==1){
							newValue+=prepValue;
						}
					}
				}
				if( i < (loopNum-1) ){ newValue+='\n' }
			}
		}
		this.Input.value=newValue;
	}
	
	function fullnameClone(button,Input,displayFullName,displayCompanyName){
		var output=button.parentNode.getElementsByTagName('DIV')[0].innerHTML;
		button.parentNode.getElementsByTagName('DIV')[1].innerHTML=output.replace(/replaceThisStringIcon/g,fullnameIDcount);
		var theObject=button.parentNode.parentNode.getElementsByTagName('SPAN')[0];
		
		cloneContent( theObject , button.parentNode.getElementsByTagName('DIV')[1] );
		
		var newSpan=theObject.getElementsByTagName('SPAN')[theObject.getElementsByTagName('SPAN').length-1];
		
		button.parentNode.getElementsByTagName('DIV')[1].innerHTML='';
		theObject=theObject.getElementsByTagName('SPAN')[theObject.getElementsByTagName('SPAN').length-1];
		eval("myFullName"+fullnameIDcount+"=new balanceFullName(Input,newSpan,displayFullName,displayCompanyName)");
		
		eval("myFullName"+fullnameIDcount+".calculateDisplay()");
		if(displayCompanyName){
			eval("myFullName"+fullnameIDcount+".CompanyNameCheckBLUR()");
		}
		if(displayFullName){
			eval("myFullName"+fullnameIDcount+".FirstNameCheckBLUR()");
			eval("myFullName"+fullnameIDcount+".LastNameCheckBLUR()");
		}
		++fullnameIDcount;

	}