function vid_debug(s) {
	// lets us leave debugging in.
	try { debug(s); } catch (error) { }
}

function getChildByClassName(ele, argclass) {
	var i;
	var outele = null;
	for (i = 0; i < ele.childNodes.length; i++) {
	//	vid_debug('getChildById(): ' + i + ':' + ele.childNodes[i].id + ':' + ele.childNodes[i].className);
		if ( ele.childNodes[i].className == argclass ) {
			outele = ele.childNodes[i];
			break;
		}
	}
	return outele;
}

var vidScriptName = 'addvid_v2.js';
var vidCtrlHeight = 20;
var vidError = new String();
var vidWidth = 0;
var vidHeight = 0;
var vidImgSrc = '';
var vidFlvSrc = '';
var vidXmlSrc = '';
var vidFlixnIdent = '6e503764-0dee-4425-ae9c-278abf8c2f9e';

// Options Defaults
var vidDivId = 'flashvideo';
var vidCountry = 'US';
var vidCaptions = 'false';
var vidTitleOption = '';
var vidWmode = 'opaque';
var vidFlixn = 'false';
var vidFiletype = 'flv';
var vidHideText = false;

function vidGetValue ( key, str, delim ) {
	var out = ''
	var start = -1;
	var end = -1;

	start = str.indexOf(key)
	if ( start > -1 ) {
		start += (key.length + 1); // key length plus the =
		end = str.indexOf(delim, start);
		if ( end > -1 ) {
			out = str.substring(start, end);
		} else {
			out = str.substring(start);
		}
	} else {
		out = '';
	}
	return out;
}

function vidSetOptions( vidopt ) {
	// div id
 	str = vidGetValue ( 'div', vidopt, '&' );
	if ( str != '') {
		vidDivId = str;
	}
	// file type
 	str = vidGetValue ( 'filetype', vidopt, '&' );
	if ( str != '') {
		vidFiletype = str;
	}
	// country code
	str = vidGetValue ( 'country', vidopt, '&' );
	if ( str != '') {
		vidCountry = str;
	}
	// caption caption
	str = vidGetValue ( 'caption', vidopt, '&' );
	if ( str != '') {
		vidCaptions = str;
	}
	// title title
	str = vidGetValue ( 'title', vidopt, '&' );
	if ( str != '') {
		vidTitleOption = str;
	}
	// wmmode
	str = vidGetValue ( 'wmode', vidopt, '&' );
	if ( str != '') {
		vidWmode = str;
	}
	// flixn
	str = vidGetValue ( 'flixn', vidopt, '&' );
	if ( str != '') {
		vidFlixn = str;
	}
	// suppress text
	str = vidGetValue ( 'text', vidopt, '&' );
	if ( ( str == 'off') || ( str == 'false' ) ) {
		vidHideText = true;
	}

	vid_debug ("options:");
	vid_debug ("flash div = '" + vidDivId + "'");
	vid_debug ("filetype = '" + vidFiletype + "'");
	vid_debug ("country code = '" + vidCountry + "'");
	vid_debug ("caption = '" + vidCaptions + "'" );
	vid_debug ("title = '" + vidTitleOption + "'" );
	vid_debug ("wmode = '" + vidWmode + "'" );
	vid_debug ("flixn = '" + vidFlixn + "'" );
	vid_debug ("hide text = '" + vidHideText + "'" );

}

function vidGetCaptionPath( vidimgpath ) {
	var out;
	if (vidCaptions == 'true') {
		out = 'captionate0';
	} else if (vidCaptions == 'auto') {
		out = vidimgpath.substring(0, vidimgpath.lastIndexOf('.')) + '-captions-' + vidCountry + '.xml';
	} else if ( vidCaptions.match('path:') ) {
		start = vidCaptions.indexOf('path:') + 5; // 5=path:
		if ( vidCaptions.indexOf('&', start) > -1 ) {
			out = vidCaptions.substr( start, vidCaptions.indexOf('&', start) );
		} else {
			out = vidCaptions.substr( start );
		}
	}
	vid_debug("caption path: " + out);
	return out;
}

var vidScripts = document.getElementsByTagName("script");
var vidOptions = '';
for (var i = 0; i < vidScripts.length; i++) {
	if ( vidScripts[i].src.indexOf(vidScriptName) > -1 ) {
		srcurl = vidScripts[i].src;
		vid_debug("script url:" + srcurl);
		if (index = srcurl.indexOf("?")) {
			vidOptions = srcurl.substr(index+1, srcurl.length);
		}
	}
}
vid_debug ( "vidOptions='" +  vidOptions + "'" );
vidSetOptions ( vidOptions );

var vidDivDom = document.getElementById(vidDivId);
if (!vidDivDom) {
	vidError = vidError + 'Error: cannot find div id="' + vidDivDom + '"';
}

var vidimg = getChildByClassName(vidDivDom, 'vid-img');
if (vidimg) {
	// hold IEs hand with fancy attribute gets.
	vidWidth = new Number(vidimg.getAttribute("width", 2));
	vidHeight = new Number(vidimg.getAttribute("height", 2)) + vidCtrlHeight;
	vidImgSrc = new String(vidimg.src);
	vidFlvSrc = ( vidImgSrc.substring(0, vidImgSrc.lastIndexOf('.')) + '.' + vidFiletype);
	vidXmlSrc = vidGetCaptionPath(vidImgSrc);
} else {
	vidError = 'Error: Unable to find image in html. Ensure image element has class="vid-img"<br />';
}
vid_debug("Dimensions: " + vidWidth + "x" + vidHeight);
vid_debug("Img path: " + vidImgSrc);
vid_debug("Flv Path: " + vidFlvSrc);
vid_debug("XML Path: " + vidXmlSrc);

// need to save these for IE,
// when we nuke the noscript content later.
// it's garbage collector is too aggressive
var vidSaveName;
var vidSaveNameClass;
var vidName = getChildByClassName(vidDivDom, "vid-title");
if (vidName) {
	vidSaveName = new String ( vidName.innerHTML );
	vidSaveNameClass = new String ( vidName.className );
} else {
	vidError = vidError + 'Error: No title found in html. Ensure title element has class="vid-title"<br />';
	vidSaveName = new String ('Error: Title Not found.');
	vidSaveNameClass = new String ( 'vid-error' );
}

var vidSaveAlt;
var vidSaveAltClass;
var vidTitleAlt = getChildByClassName(vidDivDom, "vid-title-alt");
if (vidTitleAlt) {
	vidSaveAlt = new String ( vidTitleAlt.innerHTML );
	vidSaveAltClass = new String ( vidTitleAlt.className );
} else {
	vidSaveAlt = new String ('Error: No alt title found in html. Ensure alt title element has class="vid-title-alt" or remove alt title=alt script option');
	vidSaveAltClass = new String ( 'vid-error' );
}

var vidSaveDesc;
var vidSaveDescClass;
var vidDesc = getChildByClassName(vidDivDom, "vid-desc");
if (vidDesc) {
	vidSaveDesc = new String ( vidDesc.innerHTML );
	vidSaveDescClass = new String ( vidDesc.className );
} else {
	vidSaveDesc = new String ('Error: No description found in html. Ensure description element has class="vid-desc"');
	vidSaveDescClass = new String ( 'vid-error' );
}

var sVid = new SWFObject(cdc_cache_bust("/cdc_content_elements/flash/video-player/mediaplayer.swf"),"videoplayer", vidWidth, vidHeight,"9.0.115.0");
sVid.addParam("allowscriptaccess","always");
sVid.addParam("allowfullscreen","true");
sVid.addVariable("width", vidWidth);
sVid.addVariable("height", vidHeight);
sVid.addVariable("callback","true");
sVid.addVariable("file", vidFlvSrc);
sVid.addVariable("image", vidImgSrc);
sVid.addVariable("pagename", vidSaveName.replace('&', 'and') );

try {
	sVid.addVariable("sitearea", cdc.util.getSiteArea() );
} catch (err) {
	sVid.addVariable("sitearea", "unknown" );
}
sVid.addVariable("contentgroup","");
sVid.addVariable("pagetype","video");
sVid.addVariable("basepage", window.location.href );
sVid.addVariable("countrycode", vidCountry);
sVid.addParam("wmode", vidWmode);

vid_debug('pagename=' + vidSaveName.replace('&', 'and') );
try {
	vid_debug('sitearea=", ' + cdc.util.getSiteArea() );
} catch (err) {
	vid_debug('sitearea=unknown' );
}
vid_debug('basepage=", ' + window.location.href );

if ( vidCaptions != 'false' ) {
	vid_debug('sVid.addVariable("captions", ' + vidXmlSrc + ');');
	sVid.addVariable("captions", vidXmlSrc);
}

sVid.write(vidDivId);

vidDiv = document.getElementById(vidDivId);
if (vidError != '') {
	var ievid_error = document.createElement("h3");
	ievid_error.innerHTML = vidError;
	ievid_error.className = 'vid-error';
	vidDiv.appendChild(ievid_error);
}

// IE hand-holding, we should just be able to reuse the old no-script dom elements.
var ievid_name = document.createElement("h3");
if ( vidTitleOption == 'alt' ) {
	ievid_name.innerHTML = vidSaveAlt;
	ievid_name.className = vidSaveAltClass;
} else {
	ievid_name.innerHTML = vidSaveName;
	ievid_name.className = vidSaveNameClass;
}
var ievid_desc = document.createElement("p");
ievid_desc.innerHTML = vidSaveDesc;
ievid_desc.className = vidSaveDescClass;

vid_debug('Hide Text?: ' + vidHideText);
if ( !vidHideText ) {
	vidDiv.appendChild(ievid_name);
	vidDiv.appendChild(ievid_desc);
}

vid_debug('[end]');
vid_debug('');