function GetStringPart( StringStart, StringEnd, String ) {
	StringStartLen	= StringStart.length;
	StringEndLen	= StringEnd.length;

	Pos1	= String.indexOf( StringStart);
	Pos2	= String.indexOf( StringEnd, String.substr( Pos1 + StringStartLen ));

	if( Pos1 < 0)
		return false;

	return {
		'Pos1'	: Pos1,
		'Pos2'	: Pos2,
		'Value'	: String.substr( Pos1 + StringStartLen, Pos2 - ( StringStartLen + StringEndLen - 1 ) )
	};
}

function GetMediaInfo( FormData) {
	var Fields		= new Array();
	var MediaData	= {
		'Fields':Array(),
		'Type'	:''
	};

	var ObjectTypes		= Array( 'img', 'embed');
	var MediaTagStarts	= Array( '<img', '<embed');
	var MediaTagEnds	= Array( '>', '>');

	for( var MediaInt in MediaTagStarts) {
		var StringStart		= MediaTagStarts[ MediaInt ];
		var StringEnd		= MediaTagEnds[ MediaInt ];
		var StringStartLen	= StringStart.length;
		var StringEndLen	= StringEnd.length;
		var MediaParse		= GetStringPart( StringStart, StringEnd, FormData );
		if( MediaParse) {
			var myString = new String( MediaParse['Value'] );
			var rExp = /[a-z]+="[^"\r\n]*"/gim;
			var results = myString.match(rExp);
			for( var i in results) {
				if( !(i > -1))
					continue;
				var NameValue	= new String( results[ i ] );
				var EqualMark	= NameValue.indexOf('=');
				var FieldName	= NameValue.substr( 0, EqualMark);
				var FieldValue	= NameValue.substr( EqualMark + 2, NameValue.length - ( EqualMark + 3 ) );
				Fields[ FieldName ] = FieldValue;
			}
			MediaData['Fields']	= Fields;
			MediaData['Type']	= ObjectTypes[ MediaInt ];
			return MediaData;
		}
	}

	return MediaData;
}

function MediaSave( InputValue, ParseExport, TypeExport ) {
	var ObjectValue = GetMediaInfo( InputValue );
	var FieldsString = '';
	for( var i in ObjectValue['Fields'])
		FieldsString = FieldsString + '"' + i + "'" + ObjectValue['Fields'][ i ];
	ParseExport.value	= FieldsString.substr(1);
	TypeExport.value	= ObjectValue['Type'];
}

function MediaFieldsExtract( MediaSrc, ObjectTypeID, MediaExtras ) {
	var ObjectTags = '';
	if( MediaExtras) {
		var Expl = MediaExtras.split('"');
		for( var i in Expl) {
			var Entry = Expl[ i ].split("'");
			if( Entry[0] == 'src') {
				MediaSrc = Entry[1];
				continue;
			}
			ObjectTags = ObjectTags + ' ' + Entry[0] + '="' + Entry[1] + '"';
		}
	}
	switch( ObjectTypeID) {
		case 1:
		case 'img':
			return '<img src="' + MediaSrc + '"' + ObjectTags + ' />';
		break;
		case 2:
		case 'embed':
			return '<embed src="' + MediaSrc + '"' + ObjectTags + ' />';
		break;
	}
	return '';
}

function MediaFieldsEdit( MediaSrc, ObjectTypeID, MediaExtras, ExtractExport ) {
	ExtractExport.value = MediaFieldsExtract( MediaSrc, ObjectTypeID, MediaExtras );
}

function MediaFieldsDisplay( MediaSrc, ObjectTypeID, MediaExtras ) {
	document.write( MediaFieldsExtract( MediaSrc, ObjectTypeID, MediaExtras ) );
}

function ProfileMediaPlacement( MediaNum, MediaSrc, ObjectTypeID, MediaExtras) {

	var MediaTitleID	= 'MediaLinkTitle_' + MediaNum;
	var MediaTriggerID	= 'MediaLinkTrigger_' + MediaNum;
	var MediaDisplayID	= 'MediaLink_' + MediaNum;

	var MediaTitleObj	= document.getElementById( MediaTitleID);
	var MediaTriggerObj	= document.getElementById( MediaTriggerID);
	var MediaDisplayObj	= document.getElementById( MediaDisplayID);

	if( MediaDisplayObj) {
		MediaTitleObj.removeChild( MediaDisplayObj);
		MediaTriggerObj.innerHTML = 'Open';
		return;
	}

	MediaTriggerObj.innerHTML = 'Close';
	var tmp = _tnn.AddElement( MediaTitleObj, "appendChild", "UL", { 'id':MediaDisplayID }, {} );
	var tmp = _tnn.AddElement( tmp, "appendChild", "LI", {}, {} );
	var tmp = _tnn.AddElement( tmp, "appendChild", "DIV", {}, {} );
	tmp.innerHTML = MediaFieldsExtract( MediaSrc, ObjectTypeID, MediaExtras );
}
