XML - Am I screwed?

I think I might be unless someone brilliant can help.
I’m working with a flash template that loads external images and text using an xml file.
Everything works well the only problem is I’ve promised a client that as well as a “title” and “description” I will also include a clickable URL link. I can edit the flash to a certain extent but I am having a nightmare of a time including a clickable url. Is there anyone out there who can help?

“photo_description”, “photo_title” and “photo_url” are the names of the dynamic text fields.
Here is the AS…

// Copyright © flashmo.com
// Developed by Min Thu
// Tweener
// http://code.google.com/p/tweener/
import caurina.transitions.;
var folder:String = “photos/”;
var follow_mouse:Boolean = true; // true OR false
var tween_duration:Number = 0.5;
var default_tn_scale:Number = 0.8;
var default_pic_alpha:Number = 0.25;
var new_scale:Number;
var tn_border:Number = 5;
var speed:Number = 12; // from 1 to 20
var i:Number;
var j:Number;
var tn:Number = 0;
var tn_distance:Number;
var current_no:Number = 0;
var total:Number;
var flashmo_xml:XML;
var flashmo_photo_list = new Array();
var current_mc:MovieClip = new MovieClip();
var flashmo_pic:MovieClip = new MovieClip();
var thumbnail_group:MovieClip = new MovieClip();
this.addChild(flashmo_pic);
this.addChild(thumbnail_group);
this.addChild(flashmo_text_info);
flashmo_pic.alpha = default_pic_alpha;
flashmo_pic.x = flashmo_photo_area.x;
flashmo_pic.y = flashmo_photo_area.y;
flashmo_pic.mask = flashmo_photo_area;
thumbnail_group.x = 100;
thumbnail_group.y = flashmo_thumbnail_area.y;
thumbnail_group.mask = flashmo_thumbnail_area;
loading_info.text = “”;
thumbnail_info.text = “”;
flashmo_photo_title.text = “”;
flashmo_text_info.alpha = 0;
flashmo_text_info.photo_title.text = “”;
flashmo_text_info.photo_description.text = “”;
if( Math.abs(speed) > 20 ) speed = 10;
speed = Math.abs(speed);
function load_gallery(xml_file:String):void
{
var xml_loader:URLLoader = new URLLoader();
xml_loader.load( new URLRequest( xml_file ) );
xml_loader.addEventListener(Event.COMPLETE, create_thumbnail);
}
function create_thumbnail(e:Event):void
{
flashmo_xml = new XML(e.target.data);
total = flashmo_xml.photo.length();
for( i = 0; i < total; i++ )
{
flashmo_photo_list.push( {
thumbnail: flashmo_xml.photo
.thumbnail.toString(),
filename: flashmo_xml.photo*.filename.toString(),
title: flashmo_xml.photo*.title.toString(),
description: flashmo_xml.photo*.description.toString()
} );
}
load_photo();
load_tn();
}
function load_photo():void
{
var pic_request:URLRequest = new URLRequest( folder + flashmo_photo_list[current_no].filename );
var pic_loader:Loader = new Loader();
pic_loader.load(pic_request);
pic_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, on_photo_progress);
pic_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,on_photo_loaded);

flashmo_text_info.photo_title.text = flashmo_photo_list[current_no].title;
flashmo_text_info.photo_description.text = flashmo_photo_list[current_no].description;
flashmo_pic.alpha = 0;
}
function unload_photo():void
{
flashmo_pic.removeChildAt(0);
load_photo();
}
function on_photo_progress(e:ProgressEvent):void
{
var percent:Number = Math.round(e.bytesLoaded / e.bytesTotal * 100);
loading_info.text = "Loading Image… " + percent + “%”;
}
function on_photo_loaded(e:Event):void
{
loading_info.text = “”;
flashmo_pic.addChild( Bitmap(e.target.content) );
flashmo_pic.addEventListener( MouseEvent.MOUSE_OVER, pic_over );
flashmo_pic.addEventListener( MouseEvent.MOUSE_OUT, pic_out );
Tweener.addTween( flashmo_pic, { alpha: default_pic_alpha, time: tween_duration, transition: “easeOutQuart” } );
thumbnail_group.addEventListener( MouseEvent.MOUSE_OVER, pic_over );
}
function load_tn():void
{
var pic_request:URLRequest = new URLRequest( folder + flashmo_photo_list[tn].thumbnail );
var pic_loader:Loader = new Loader();
pic_loader.load(pic_request);
pic_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, on_thumbnail_loaded);
tn++;
thumbnail_info.text = "Loading Thumbnail " + tn + " of " + total;

if( tn == 8 )
thumbnail_group.addEventListener( Event.ENTER_FRAME, fisheye_thumbnails );
}
function on_thumbnail_loaded(e:Event):void
{
var flashmo_tn_bm:Bitmap = new Bitmap();
var flashmo_tn_mc:MovieClip = new MovieClip();
flashmo_tn_bm = Bitmap(e.target.content);
flashmo_tn_bm.x = - flashmo_tn_bm.width * 0.5;
flashmo_tn_bm.y = - flashmo_tn_bm.height;
flashmo_tn_bm.smoothing = true;

var bg_width:Number = flashmo_tn_bm.width + tn_border * 2;
var bg_height:Number = flashmo_tn_bm.height + tn_border * 2;
flashmo_tn_mc.graphics.beginFill(0xFFFFFF);
flashmo_tn_mc.graphics.drawRect( - bg_width * 0.5, - bg_height + tn_border, bg_width, bg_height );
flashmo_tn_mc.graphics.endFill();
flashmo_tn_mc.addChild(flashmo_tn_bm);

flashmo_tn_mc.buttonMode = true;
flashmo_tn_mc.addEventListener( MouseEvent.MOUSE_OVER, tn_over );
flashmo_tn_mc.addEventListener( MouseEvent.MOUSE_OUT, tn_out );
flashmo_tn_mc.addEventListener( MouseEvent.CLICK, tn_click );

flashmo_tn_mc.name = “flashmo_” + thumbnail_group.numChildren;
flashmo_tn_mc.x = thumbnail_group.numChildren * 80;
flashmo_tn_mc.y = 110;
flashmo_tn_mc.scaleX = flashmo_tn_mc.scaleY = default_tn_scale;
thumbnail_group.addChild(flashmo_tn_mc);

if( tn < total )
load_tn();
else
thumbnail_info.text = “”;
}
function tn_over(e:MouseEvent):void
{
var mc:MovieClip = MovieClip(e.target);
var s_no:Number = parseInt(mc.name.slice(8,10));

if( s_no > 1 )
thumbnail_group.addChild( thumbnail_group.getChildByName(“flashmo_” + (s_no-2) ) );
if( s_no > 0 )
thumbnail_group.addChild( thumbnail_group.getChildByName(“flashmo_” + (s_no-1) ) );
if( s_no < thumbnail_group.numChildren - 2 )
thumbnail_group.addChild( thumbnail_group.getChildByName(“flashmo_” + (s_no+2) ) );
if( s_no < thumbnail_group.numChildren - 1 )
thumbnail_group.addChild( thumbnail_group.getChildByName(“flashmo_” + (s_no+1) ) );

thumbnail_group.addChild(mc);
flashmo_photo_title.text = flashmo_photo_list[s_no].title;
}
function tn_out(e:MouseEvent):void
{
var mc:MovieClip = MovieClip(e.target);
thumbnail_group.addChild(mc);
flashmo_photo_title.text = “”;
}
function tn_click(e:MouseEvent):void
{
var mc:MovieClip = MovieClip(e.target);
current_no = parseInt(mc.name.slice(8,10));
Tweener.addTween( flashmo_pic, { alpha: 0, time: tween_duration,
transition: “easeInQuart”, onComplete: unload_photo } );
flashmo_pic.removeEventListener( MouseEvent.MOUSE_OVER, pic_over );
flashmo_pic.removeEventListener( MouseEvent.MOUSE_OUT, pic_out );
thumbnail_group.removeEventListener( MouseEvent.MOUSE_OVER, pic_over );
}
flashmo_text_info.addEventListener( MouseEvent.MOUSE_OVER, info_over );
flashmo_text_info.addEventListener( MouseEvent.MOUSE_OUT, info_out );
function pic_over(e:MouseEvent):void
{
Tweener.addTween( flashmo_pic, { alpha: default_pic_alpha, time: tween_duration, transition: “easeIn” } );
Tweener.addTween( thumbnail_group, { alpha: 1, time: tween_duration, transition: “easeOut” } );
}
function pic_out(e:MouseEvent):void
{
Tweener.addTween( flashmo_pic, { alpha: 1, time: tween_duration, transition: “easeOut” } );
Tweener.addTween( thumbnail_group, { alpha: 0, time: tween_duration, transition: “easeIn” } );
}
function info_over(e:MouseEvent):void
{
Tweener.addTween( flashmo_pic, { alpha: 1, time: tween_duration, transition: “easeOut” } );
Tweener.addTween( thumbnail_group, { alpha: 0, time: tween_duration, transition: “easeIn” } );
Tweener.addTween( flashmo_text_info, { alpha: 1, time: tween_duration, transition: “easeIn” } );
}
function info_out(e:MouseEvent):void
{
Tweener.addTween( flashmo_text_info, { alpha: 0, time: tween_duration, transition: “easeOut” } );
}
function fisheye_thumbnails(e:Event):void
{
thumbnail_group.x -= ( mouseX - flashmo_thumbnail_area.width * 0.5 ) * 0.005 * speed;

if( thumbnail_group.x > flashmo_thumbnail_area.x + 100 )
{
thumbnail_group.x = flashmo_thumbnail_area.x + 100;
}
else if( thumbnail_group.x < flashmo_thumbnail_area.x - thumbnail_group.width + flashmo_thumbnail_area.width )
{
thumbnail_group.x = flashmo_thumbnail_area.x - thumbnail_group.width + flashmo_thumbnail_area.width;
}

if( mouseY > flashmo_thumbnail_area.y && mouseY < flashmo_thumbnail_area.y + flashmo_thumbnail_area.height )
{
for( j = 0; j < thumbnail_group.numChildren; j++ )
{
current_mc = MovieClip(thumbnail_group.getChildAt(j));
tn_distance = Math.sqrt(
Math.pow( Math.abs( mouseX - (current_mc.x + thumbnail_group.x) ) , 2)

  • Math.pow( Math.abs( mouseY - (current_mc.y + thumbnail_group.y) ) , 2)
    );
    new_scale = 1.1 - ( tn_distance * 0.002 );
    current_mc.scaleX += (new_scale - current_mc.scaleX) * 0.2;
    current_mc.scaleY += (new_scale - current_mc.scaleY) * 0.2;
    if( current_mc.scaleX < default_tn_scale )
    current_mc.scaleX = current_mc.scaleY = default_tn_scale;
    }
    }
    else
    {
    for( j = 0; j < thumbnail_group.numChildren; j++ )
    {
    current_mc = MovieClip(thumbnail_group.getChildAt(j));
    current_mc.scaleX += (default_tn_scale - current_mc.scaleX) * 0.2;
    current_mc.scaleY += (default_tn_scale - current_mc.scaleY) * 0.2;
    }
    }
    }