	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 = OlOs.node.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];		OlOs.inputs.setDefaultValueHint( this.CompanyName , "Company Name" );
		
		if(this.displayFullName){
			this.FirstName=this.theContainingSpanObject.getElementsByTagName('INPUT')[1];
			this.MiddleName=this.theContainingSpanObject.getElementsByTagName('INPUT')[2];
			this.LastName=this.theContainingSpanObject.getElementsByTagName('INPUT')[3];			/* set value hints */				OlOs.inputs.setDefaultValueHint( this.FirstName , "First Name" );				OlOs.inputs.setDefaultValueHint( this.LastName , "Last Name" );			/* end */
		}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.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'					&&						FirstName.value.length					){						prepValue+=FirstName.value+' ';						foundValue=1;					}else{						prepValue+='	 ';					}
					if(MiddleName.value!=''){ prepValue+=MiddleName.value+' '; foundValue=1; }else{ prepValue+=MiddleName.value+' '; }
										if(						LastName.value!='Last Name'					&&						LastName.value.length					){						prepValue+=LastName.value;						foundValue=1;					}else{						prepValue+='	 ';					}

					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];
		
		OlOs.display.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()");
		++fullnameIDcount;

	}