//==============================================================================
function PREF_GETENUM(inStr, isIndex, array)
{
   
    if(isStringNumber(inStr))
	{
		var index = parseInt(inStr);
		if(isIndex)
		{
			return index;
		}
		else
		{ 
            var val = array[index];
           // alert(val);
			return val;
		}
	}
	else
	{
		if(isIndex)
		{
			var index = 0;
			while(array[index])
			{
				if(array[index++] == inStr)
					return index-1;
			}
			return 0;
		}
		else
			return inStr;
	}
}

function PREF_GetContainerFormat(inStr, isIndex)
{
    return PREF_GETENUM(inStr, isIndex, CF_ENUM_STR);
}

function PREF_GetMuxer(inStr, isIndex)
{
    return PREF_GETENUM(inStr, isIndex, MUXER_ENUM_STR);	
}

function PREF_GetMuxerByFormat(inStr)
{
    var format = PREF_GetContainerFormat(inStr);
    return CF_STR_2_MUXER_STR[format]?CF_STR_2_MUXER_STR[format]:CF_STR_2_MUXER_STR["NONE"];
}

function PREF_GetMuxNameByMuxer(inStr)
{
    var index = PREF_GetMuxer(inStr,true);
    return MUXER_INDEX_2_MUX_STR[index];
}

function PREF_GetMuxNameByFormat(inStr)
{
    var index = PREF_GetMuxerByFormat(inStr);
	index = PREF_GetMuxer(index,true);
    return MUXER_INDEX_2_MUX_STR[index];
}
//******************************************************************************
function PREF_GetAudioFormat(inStr, isIndex)
{
    return PREF_GETENUM(inStr, isIndex, AF_ENUM_STR);
}

function PREF_GetAudioEncoder(inStr, isIndex)
{
    return PREF_GETENUM(inStr, isIndex, AE_ENUM_STR);	
}

function PREF_GetAudioEncoderByFormat(inStr, isIndex)
{
    var format = PREF_GetAudioFormat(inStr);
    return PREF_GetAudioEncoder(AF_STR_2_AE_STR[format]?AF_STR_2_AE_STR[format]:AF_STR_2_AE_STR["NONE"], isIndex);
}

function PREF_GetAudioEncNameByEncoder(inStr)
{
    var encoder = PREF_GetAudioEncoder(inStr,true);
    return AE_INDEX_2_AENC_STR[encoder];
}

function PREF_GetAudioEncNameByFormat(inStr)
{
    return PREF_GetAudioEncNameByEncoder(PREF_GetAudioEncoderByFormat(inStr));
}
//******************************************************************************
function PREF_GetVideoFormat(inStr, isIndex)
{
    return PREF_GETENUM(inStr, isIndex, VF_ENUM_STR);
}

function PREF_GetVideoEncoder(inStr, isIndex)
{
    return PREF_GETENUM(inStr, isIndex, VE_ENUM_STR);	
}

function PREF_GetVideoEncoderByFormat(inStr, isIndex)
{
    var format = PREF_GetVideoFormat(inStr);
    return PREF_GetVideoEncoder(VF_STR_2_VE_STR[format]?VF_STR_2_VE_STR[format]:VF_STR_2_VE_STR["NONE"], isIndex);
}

function PREF_GetVideoEncNameByEncoder(inStr)
{
    var encoder = PREF_GetVideoEncoder(inStr,true);
    return VE_INDEX_2_VENC_STR[encoder];
}

function PREF_GetVideoEncNameByFormat(inStr)
{
    return PREF_GetVideoEncNameByEncoder(PREF_GetVideoEncoderByFormat(inStr));
}