Simple but frustrating

ok i have this very simple code in my button

on (press) {  	
_root.content_box.morph(this.the_state, this.the_content);  

the trace gives me the result i need, but when i plug this.the_state into the
function morph, it does not respond at all…also if i do this:

on (press) { 
 _root.content_box.morph("full", this.the_content);  

it works perfectly the way it needs to…am i doing something wrong that is very obvious in the first code block?
This is frustrating me because it seems so simple and straightforward, since that trace lets me know im inputting the right kind of value…

We can’t help until you show us the morph function…

sorry, here it is:

function morph(requested_state, content_sent) { 
trace(requested_state); //this gives the correct result
trace(current_state);  	//this gives teh correct result
content = content_sent;  	
if (current_state != requested_state) {  		
if ((current_state == "lefthalf") && (requested_state == "full")) {  			gotoAndPlay(2);  		
} else if ((current_state == "full") && (requested_state == "righthalf")) 
{  			gotoAndPlay(11);  		
} else if ((current_state == "righthalf") && (requested_state == "full")) {  			gotoAndPlay(21);  		
} else if ((current_state == "righthalf") && (requested_state == "lefthalf")) {  			gotoAndPlay(21);  		
} else if ((current_state == "lefthalf") && (requested_state == "righthalf")) {  			gotoAndPlay(40);  		
} else if ((current_state == "full") && (requested_state == "lefthalf")) {  			gotoAndPlay(52);  		}  
} else {  		

function get_content(state) {
	tellTarget (_root.content_box.contentText) {
	_root.content_box.contentText.scrollerText.htmlText = content;

as i commented, the traces in teh above code give the expected result

here is a link:

click through the testbuttons to see how morph works
(testbuttons states from left to right are: “lefthalf”, “full” and “righthalf”)

so here is what i am trying to do…im getting alll the content for teh site thru xml, and from this xml content i dynamically create all teh buttons i need and then display the content…to do this i duplicate a movie clip and then assign it variables like so:["button"+n].title = title; 
// where title is from my xml i sent to flash["button"+n].the_state= state; 

where teh title is the title of the button…as u can see that all works and i can get whatever content i need too – but i need to assign one more variable and here is where the problem comes in…i need to assign each new movie clip a ‘state’ also so that white content box can ‘morph’…i wrote the function and it all works fine if i dont send the state variable through the xml and hard code it in like i described earlier

as soon as i do this:

on (press) {    
 _root.content_box.morph(this.the_state, this.the_content);

it all stops working

if i trace this.the_state right before i use the morph function, it prints
"lefthalf", “full” or “righthalf” respectively


ok after some tracing, I figured out that the main if-loop in the function function does not work

if ((this.current_state == "lefthalf") && (requested_state == "full")) {  trace("--1---");  			
} else if ((this.current_state == "full") && (requested_state == "righthalf")) {  trace("--2---");...

It doesnt print anything even with the correct values for requested_state and current_state … only if i call morph like:

morph("full", this.content)