$().ready(function($) {
	$('#media-player-test').click(function(){
		var mediainfo = $('#media-player-info').val();
		mediainfo = jQuery.trim(mediainfo);
		//var url = /^http:\/\/.*/i.exec(mediainfo);
		isPlay(mediainfo);
	});
});

function isPlay(mediainfo)
{
	var videoMessage = '';
	var audioMessage = '';
	var audio = false;
	var video = false;
	var audioFlag = false;

	//var video = /(High|Main)@L[1-4]/i.test(mediainfo);	if(!video)	{}
	var refRames = false;
	refRames = /(?:Настройки программы|Encoding settings).*?:.*?ref=(\d+)/i.exec(mediainfo);
	if(!refRames)
	{
		// старый способ
		refRames = /refRames.*?:.*?(\d+)/i.exec(mediainfo);
	}
	if(refRames)
	{
		var width = /(width|ширина).*?:.*?(\d+)/i.exec(mediainfo);
		var height = /(height|высота).*?:.*?(\d+)/i.exec(mediainfo);
		if(typeof refRames[1] != 'undefined' && width && typeof width[2] != 'undefined' && height && typeof height[2] != 'undefined')
		{
			refRames = refRames[1] * 1;
			width = width[2] * 1;
			height = height[2] * 1;
			video = (refRames * width * height <= 9216000);
			if(video)
			{
				videoMessage = 'refRames ('+refRames+') * width ('+width+') * height ('+height+') <= 9216000';
			}
			else
			{
				videoMessage = 'refRames ('+refRames+') * width ('+width+') * height ('+height+') > 9216000 (должно быть меньше)';
			}
		}
		else
		{
			videoMessage = 'Не задан или refRames или width или height';
		}
	}
	else
	{
		if(!video)
		{
			video = /(Format|Формат|Идентификатор кодека).*?:.*?(MPEG4|MPEG-4)/i.exec(mediainfo)
			if(video)
			{
				videoMessage = video[0];
			}
			else
			{
				videoMessage = 'Формат кодека не MPEG4';
			}
		}

		if(!video)
		{
			video = /(Format|Формат|Идентификатор кодека).*?:.*?AVC/i.exec(mediainfo)
			if(video)
			{
				videoMessage = video[0];
			}
			else
			{
				videoMessage = '\nФормат кодека не AVC';
			}
		}

		if(!video)
		{
			var result = /(Format|Формат|Идентификатор кодека).*?:.*?VC-1/i.exec(mediainfo);
			if(result)
			{
				videoMessage = result[0];
				video = /.*?(Interlaced|Черезстрочная|Чересстрочная)/i.exec(mediainfo);
				if(video)
				{
					videoMessage += '\n' + video[0];
				}
				else
				{
					videoMessage += '\n' + 'развёртка нужна Interlaced ("Черезстрочная")';
				}
			}
			else
			{
				videoMessage += '\nФормат кодека не VC-1';
			}
		}

	}

	var lines = mediainfo.match(/^.*$/gm)
	for(i in lines)
	{
		if(result = /^(?:Аудио|Audio).*/i.exec(lines[i]))
		{
			audioFlag = true;
			audioMessage += '\n' + result;
		}
		else if(/^(?:Chapters|Text|Видео|Video)/i.test(lines[i]))
		{
			audioFlag = false;
		}

		if(audioFlag)
		{
			result = isSupportAudio(lines[i]);
			if(result.result)
			{
				audio = true;
			}
			if(result.msg)
			{
				audioMessage += '\n' + result.msg;
			}
		}
	}

	//var dts = /(Format|Формат).*?:.*?DTS/i.test(mediainfo);

	$('#media-player-result').html(
		'<dl>\
			<dt>Видео:</dt>\
			<dd>\
				' + (video?'OK':'неподдерживаемый формат') + '\
				<pre>' + videoMessage + '</pre>\
			</dd>\
			<dt>Аудио:</dt>\
			<dd>' + (audio?'OK':'неподдерживаемый формат') + '\
				<pre>' + audioMessage + '</pre>\
			</dd>\
		</dl>'
	);
}

function isSupportAudio(line)
{
	var arr = ['DTS', 'AMR', 'OGG', 'ALAC'];
	var msg = '';
	result = /(?:Format|Формат)\s*?:\s*?(.*)/i.exec(line);
	if(result)
	{
		msg = result[0];
		var format = jQuery.trim(result[1]);
		result = jQuery.inArray(format, arr);
		if(result == -1)
		{
			result = true;
		}
		else
		{
			result = false;
		}
	}
	else
	{
		result = false;
	}
	return {'msg': msg, 'result': result};
}
