/**
 Class: Flash
 Version: 1.0f
 Autor: Александр Хрищанович (dirmax@cosmostv.by)
 Description: Класс для вставки flash на страницу, если плеер установлен в браузере и он соответствует необходимой версии
 Require: 
 	- functions.js v.1.0
*/
var Flash = function ( ) { 

	/* версия флэша у клиента */
	this.flashVerion = 0;

	/* необходимая версия флэша */
	this.needFlashVersion = 6;

	/* абсолютный путь к флэшу */
	this.srcFlash;

	/* ширина флэша */
	this.width;

	/* высота флэша */
	this.height;

	/* цвет фона флэша */
	this.background = '#FFF';

	/* прозрачность флэша */
	this.transparent = true;

	/* flashvars флэша */
	this.flashvars;

	/* блока подложки */
	this.idHTML;


	/* Вставка флэша */
	this.Insert = function ( idFlash ) {

		this.flashVerion = this.GetClientVersionFlash( );

		if ( this.needFlashVersion <= this.flashVerion ) {
			/* возвращаем флэш */
			return this.GenerateHtmlFlash( idFlash );
		}
		else {
			Events.Attach( window, 'load', this.ShowHtml.bind( this ) );
			return '';
		}

	}

	/* Показ html кода */
	this.ShowHtml = function ( ) {

		var blockNoflash = $( this.idHTML );

		if (blockNoflash) {

			blockNoflash.style.display = 'block';

		}

	}
	
	/* Метод для генерирования флэш - кода */
	this.GenerateHtmlFlash = function ( id ) {

		var flashCode = '<object ' + (id ? ('id="' + id + '"') : '') + ' classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
		flashCode += 'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version= ' + this.flashVerion + ',0,0,0"' + ' width="' + this.width + '" height="' + this.height + '" align="middle">\n';
		flashCode += '<param name="allowScriptAccess" value="always"/>\n';
		flashCode += '<param name="movie" value="' + this.srcFlash + '"/>\n';
		flashCode += '<param name="quality" value="high"/>\n';
		if ( this.base ) { flashCode += '<param name="base" value="' + this.base + '"/>\n'; }
		if ( this.background ) { flashCode += '<param name="bgcolor" value="' + this.background + '"/>\n'; } 
		if ( this.transparent ) { flashCode += '<param name="wmode" value="transparent"/>\n'; } 
		if ( this.flashvars ) { flashCode += '<param name="flashvars" value="' + this.flashvars + '"/>\n'; } 

		flashCode += '<embed ' + (id ? ('name="' + id + '"') : '') + ' quality="high" allowScriptAccess="always" type="application/x-shockwave-flash"' + ' pluginspage="http://www.macromedia.com/go/getflashplayer" ';
		flashCode += 'src="' + this.srcFlash+'" ' + '" width="' + this.width + '" height="' + this.height + '" ';
		if ( this.base ) { flashCode += ' base="' + this.base + '"'; }
		if ( this.background ) { flashCode += ' bgcolor="' + this.background + '"'; }
		if ( this.transparent ) { flashCode += ' wmode="transparent"'; }
		if ( this.flashvars ) { flashCode += ' flashvars="' + this.flashvars + '"'; }

		flashCode += '></embed>';
		flashCode += '</object>';

	    return flashCode;

	}
	
	/* Получение версии флэша у пользователя */
	this.GetClientVersionFlash = function ( ) {

		if ( navigator.plugins[ 'Shockwave Flash' ] ) {
			/* определяем есть ли у браузера plugin флэшплеера */
			matchStr = new RegExp ( '^[A-Za-z ]*(.*) .*$' );
			return parseInt( navigator.plugins[ 'Shockwave Flash' ].description.replace( matchStr, '$1' ) );;
		}
		else if ( browser.isIE ) {
			/* иначе будет создаваться ActiveX объект (IE) */
			
			for( var i = this.needFlashVersion; i < this.needFlashVersion + 10; i++ ) {
				try {
				        flashPlayer = new ActiveXObject( 'ShockwaveFlash.ShockwaveFlash.' + i );
				        return i;
				} 
				catch( e ) { 
					continue;
				}
			}
			return 0;		
		}
		else {
			return 0;
		}

	}

}