var swfObjectizeArray = new Array();
var swfObjectizeWidth;
var swfObjectizeHeight;

function swfObjectizeStep1(html) {
	var start = indexOf2(html, '<object', 0);
	while (start != -1) {				
		var end = indexOf2(html, '</object>', start) + 9;
		var objectHtml = html.substring(start, end);
		swfObjectizeParseObject(objectHtml);		
		var htmlPre = html.substring(0, start);
		var htmlPost = html.substring(end, html.length);
		html = htmlPre + "<div align='center' style='width:100%; padding-bottom:10px;'><div id='swfObjectize" + (swfObjectizeArray.length - 1) + "' style='position:relative; width:" + swfObjectizeWidth + "px; height:" + swfObjectizeHeight + "px;'></div></div>" + htmlPost;
		start = indexOf2(html, '<object', 0);
	}
	return html;				
}

function swfObjectizeStep2() {
	for (var i = 0; i < swfObjectizeArray.length; i++) {
		var jsonObj = JSON.parse(swfObjectizeArray[i]);
		$j('#swfObjectize' + i).flash(jsonObj);	 
	}
}

function swfObjectizeParseObject(objectHtml) {
	var jsonString = "{ ";
	var enteredParams = false;
	var objectFound = false;
	HTMLParser(objectHtml, {
		start: function(tag, attrs, unary) {
			switch (tag) {
				case "object":
					for (var i = 0; i < attrs.length; i++) {
						switch (attrs[i].name) {
							case "data":
								jsonString += '"swf" : "' + attrs[i].escaped + '", ';
								if (attrs[i].escaped == "http://video.ted.com/assets/player/swf/EmbedPlayer.swf")
									objectFound = true;
								break;
							case "width":
								jsonString += '"width" : "' + attrs[i].escaped + '", ';
								swfObjectizeWidth = 0 + attrs[i].escaped;
								break;															
							case "height":
								jsonString += '"height" : "' + attrs[i].escaped + '", ';
								swfObjectizeHeight = 0 + attrs[i].escaped;
								break;																													
						}
					}
					break;
				case "param":
					if (!enteredParams) {
						enteredParams = true;
						jsonString += '"params" : { '
					}

					switch (attrs[0].escaped) {
						case "flashvars":
							jsonString += '"flashvars" : { ' + swfObjectizeParseFlashVars(attrs[1].escaped) + ' }, ';
							break;			
						default:
							jsonString += '"' + attrs[0].escaped + '" : "' + attrs[1].escaped + '", ';
							break;
					}
										
					break;						
			}
		}
	});
	jsonString = jsonString.substring(0, jsonString.length - 2) + " } }";
	if (objectFound)
		swfObjectizeArray.push(jsonString);
}		

function swfObjectizeParseFlashVars(flashVarsString) {		
	var jsonString = "";
	var startPos = 0;
	var equalsPos;
	var endPos = 0;
	var key;
	var value;
	
	while (endPos != -1) {
		equalsPos = indexOf2(flashVarsString, "=", startPos);
		key = flashVarsString.substring(startPos, equalsPos);
		startPos = equalsPos + 1;
		endPos = indexOf2(flashVarsString, "&amp;", startPos);
		if (endPos == -1)
			value = flashVarsString.substring(startPos, flashVarsString.length)
		else {
			value = flashVarsString.substring(startPos, endPos)
			startPos = endPos + 5;
		}
		jsonString += '"' + key + '" : "' + value + '", ';
	}
	jsonString = jsonString.substring(0, jsonString.length - 2);
	return jsonString;
}