var browserIsIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var osIsWindows = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var serverAddress = GetServerAddress();
var debugMode = GetParam("debug");
var swfClassID = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
function GetServerAddress(){
	loc = window.top.document.location + "";
	prevpos = 0;
	pos = loc.indexOf("/");
	webaddress = "";

	while (pos >= 0)
	{
		webaddress = webaddress + loc.substring(prevpos, (prevpos+pos+1));
		prevpos += pos+1;
		pos = loc.substring(prevpos).indexOf("/");
	}
	return webaddress;
}

function GetParam(key_string){
	search_string = key_string + "=";
	loc = window.top.document.location + "";
	startpos = loc.indexOf(search_string);
	paramValue = "";

	if (startpos >= 0)
	{
		endpos = loc.substring(startpos + search_string.length).indexOf("&");

		if (endpos >= 0)
		{
			paramValue = loc.substring((startpos + search_string.length), (startpos + search_string.length + endpos));
		}
		else
		{
			paramValue = loc.substring((startpos + search_string.length));
		}
	}
	return paramValue;
}

function GetRandomString(random_length){
	var availchars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var randomstring = '';
	for (var i=0; i<random_length; i++) {
		var cindex = Math.floor(Math.random() * availchars.length);
		randomstring += availchars.substring(cindex,cindex+1);
	}
	return randomstring;
}

function CheckFlashVersion(reqFlashMajor, reqFlashMinor, reqFlashRevision){
	var flashVersion = GetFlashVersion();
	if (flashVersion == -1){
		return false;
	} else {
		var vInfo      = flashVersion.split(".");
		var flashMajor = vInfo[0];
		var flashMinor = vInfo[1];
		var flashRevision = vInfo[2];

		if (flashMajor > parseFloat(reqFlashMajor)) {
			return true;
		} else if (flashMajor == parseFloat(reqFlashMajor)) {
			if (flashMinor > parseFloat(reqFlashMinor))
				return true;
			else if (flashMinor == parseFloat(reqFlashMinor)) {
				if (flashRevision >= parseFloat(reqFlashRevision))
					return true;
			}
		}
		return false;
	}
}

function GetFlashVersion(){
	var flashVersion = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVersion = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	} else if ( browserIsIE && osIsWindows) {
		var ieFlashVersion = -1;
		try {
			//7 or greater
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
			ieFlashVersion = axo.GetVariable("$version");			
			tempArray = ieFlashVersion.split(" ");
			tempString = tempArray[1];
			versionInfo = tempString.split(",");
			flashVersion = versionInfo[0] + "." + versionInfo[1] + "." + versionInfo[2];
		} catch (e) {
			flashVersion = -1;
		}
	}
	return flashVersion;
}

function CreateSwfHtml() {
	var objectTags = new Object();
	var embedTags = new Object();
	var paramTags = new Object();

	for (var x=0; x < arguments.length; x=x+3) {
		var attrName = arguments[x];
		var attrValue = arguments[x+1];
		var tagType = arguments[x+2].toLowerCase();

		switch (tagType){
		  case "object":
			tagCheck = attrName;
			if (tagCheck == "width" || tagCheck == "height" || tagCheck == "align" || 
				tagCheck == "vspace" || tagCheck == "hspace" || tagCheck == "class" || 
				tagCheck == "id" || tagCheck == "tabindex"){
				objectTags[attrName] = attrValue;
			} else {
				paramTags[attrName] = attrValue;
			}
			break;
		  case "embed":
			embedTags[attrName] = attrValue;
			break;
		  case "both":
			tagCheck = attrName;
			if (tagCheck == "width" || tagCheck == "height" || tagCheck == "align" || 
				tagCheck == "vspace" || tagCheck == "hspace" || tagCheck == "class" || 
				tagCheck == "id" || tagCheck == "tabindex"){
				objectTags[attrName] = attrValue;
			} else {
				paramTags[attrName] = attrValue;
			}
			embedTags[attrName] = attrValue;
			break;
		  default:
		}
	}
	objectTags["classid"] = swfClassID;

	var swfHtml = '';
	
	swfHtml += '<object ';
	for (var objectX in objectTags){
	  swfHtml += objectX + '="' + objectTags[objectX] + '" ';
	}
	swfHtml += '>';
	
	for (var paramX in paramTags){
	  swfHtml += '<param name="' + paramX + '" value="' + paramTags[paramX] + '" /> ';
	}
	
	swfHtml += '<embed ';
	for (var embedX in embedTags){
	  swfHtml += embedX + '="' + embedTags[embedX] + '" ';
	}
	swfHtml += '> </embed>';
	
	swfHtml += '</object><br />';
	
	document.write(swfHtml);
	
}

function createLargePlayer(igpath, flashWidth, flashHeight){
	var moviePath = igpath;
	var passInfo = "&fver=" + GetFlashVersion();
	passInfo += "&sheight=" + screen.height + "&swidth=" + screen.width;
	passInfo += "&smaxheight=" + screen.availHeight + "&smaxwidth=" + screen.availWidth;
	passInfo += "&trackDataPage=" + serverAddress + "track_data.seam";
	var hasRightVersion = CheckFlashVersion(8, 0, 0);
	if(hasRightVersion){
		CreateSwfHtml(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0', 'object',
			'width', flashWidth, 'both',
			'height', flashHeight, 'both',
			'src', 'igc_player/igc_shell_1024.swf', 'embed',
			'quality', 'high', 'both',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'both',
			'align', 'middle', 'both',
			'play', 'true', 'both',
			'loop', 'true', 'both',
			'scale', 'showAll', 'both',
			'wmode', 'window', 'both',
			'devicefont', 'false', 'both',
			'id', 'igc_controller', 'object',
			'bgcolor', '#000000', 'both',
			'name', 'igc_controller', 'embed',
			'menu', 'true', 'both',
			'allowFullScreen', 'true', 'both',
			'allowScriptAccess','sameDomain', 'both',
			'movie', 'igc_player/igc_shell_1024.swf', 'both',
			'flashVars', 'fileDataPage=' + serverAddress + 'datapipe.seam&pathInfo=' + moviePath + '&playerPathInfo=igc_player/' + passInfo + '&startFullMode=true', 'both',
			'salign', '', 'both'
		);
	} else {
		var alternateContent = '<p class="messageError">Ignitecast.com requires Flash Player 8 or higher </p>'
			+ '<p class="messageInfo">Ignitecast.com recommends Flash Player 9.0.45 or higher</p>'
			+ '<br/>'
			+ '<a href=http://www.macromedia.com/go/getflash/><image src="img/download_flash.jpg" /></a>';
		document.write(alternateContent);
	}
}

function createPlayer(igpath){
	var moviePath = igpath;
	var commId = GetRandomString(10);
	var passInfo = "&fver=" + GetFlashVersion();
	passInfo += "&sheight=" + screen.height + "&swidth=" + screen.width;
	passInfo += "&smaxheight=" + screen.availHeight + "&smaxwidth=" + screen.availWidth;
	passInfo += "&localcommid=" + commId + "&trackDataPage=" + serverAddress + "track_data.seam" + "&debug=" + debugMode;
	var hasRightVersion = CheckFlashVersion(8, 0, 0);
	if(hasRightVersion){
		CreateSwfHtml(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0', 'object',
			'width', '480', 'both',
			'height', '415', 'both',
			'src', 'igc_player/igc_shell_1024.swf',  'embed',
			'quality', 'high', 'both',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'embed',
			'align', 'middle', 'both',
			'play', 'true', 'both',
			'loop', 'true', 'both',
			'scale', 'default', 'both',
			'wmode', 'window', 'both',
			'devicefont', 'false', 'both',
			'id', 'igc_controller', 'object',
			'bgcolor', '#000000', 'both',
			'name', 'igc_controller', 'embed',
			'menu', 'true', 'both',
			'allowFullScreen', 'true', 'both',
			'allowScriptAccess','sameDomain', 'both',
			'movie', 'igc_player/igc_shell_1024.swf', 'object', 
			'flashVars', 'fileDataPage=' + serverAddress + 'datapipe.seam&pathInfo=' + moviePath + '&playerPathInfo=igc_player/' + passInfo,  'both',
			'salign', '', 'both'
		);
		
	} else {
		var alternateContent = '<p class="messageError">Ignitecast.com requires Flash Player 8 or higher </p>'
			+ '<p class="messageInfo">Ignitecast.com recommends Flash Player 9.0.28 or higher</p>'
			+ '<br/>'
			+ '<p align="center"><a href=http://www.macromedia.com/go/getflash/><image src="img/download_flash.jpg" /></a></p>';
		document.write(alternateContent);
	}
}

function createClientPlayer(igpath, mdpath, playerpath, clientFromSlide){
	var moviePath = igpath;
	var commId = GetRandomString(10);
	var passInfo = "&fver=" + GetFlashVersion();
	passInfo += "&sheight=" + screen.height + "&swidth=" + screen.width;
	passInfo += "&smaxheight=" + screen.availHeight + "&smaxwidth=" + screen.availWidth;
	passInfo += "&localcommid=" + commId + "&debug=" + debugMode;
	passInfo += "&clientJumpTo=" + clientFromSlide;
	passInfo += "&clientLoad=" + "true";
	var hasRightVersion = CheckFlashVersion(8, 0, 0);
	if(hasRightVersion){
		CreateSwfHtml(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0', 'object',
			'width', '480', 'both',
			'height', '415', 'both',
			'src', playerpath + 'igc_shell_1024.swf',  'embed',
			'quality', 'high', 'both',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'embed',
			'align', 'middle', 'both',
			'play', 'true', 'both',
			'loop', 'true', 'both',
			'scale', 'default', 'both',
			'wmode', 'window', 'both',
			'devicefont', 'false', 'both',
			'id', 'igc_controller', 'object',
			'bgcolor', '#000000', 'both',
			'name', 'igc_controller', 'embed',
			'menu', 'true', 'both',
			'allowFullScreen', 'true', 'both',
			'allowScriptAccess','sameDomain', 'both',
			'movie', playerpath + 'igc_shell_1024.swf', 'object', 
			'flashVars', 'masterDataPathInfo=' + mdpath + '&pathInfo=' + moviePath + '&playerPathInfo=' + playerpath  + passInfo,  'both',
			'salign', '', 'both'
		);
	} else {
		var alternateContent = '<p class="messageError">Ignitecast.com requires Flash Player 8 or higher </p>'
			+ '<p class="messageInfo">Ignitecast.com recommends Flash Player 9.0.28 or higher</p>'
			+ '<br/>'
			+ '<p align="center"><a href=http://www.macromedia.com/go/getflash/><image src="img/download_flash.jpg" /></a></p>';
		document.write(alternateContent);
	}
}

function createAd(){
	CreateSwfHtml(
		'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0', 'object',
		'width', '291', 'both',
		'height', '186', 'both',
		'src', 'ad_show.swf', 'embed',
		'quality', 'high', 'both',
		'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'both',
		'align', 'middle', 'both',
		'play', 'true', 'both',
		'loop', 'true', 'both',
		'scale', 'default', 'both',
		'wmode', 'transparent', 'both',
		'devicefont', 'false', 'both',
		'id', 'ic_ad', 'object',
		'bgcolor', '#FFFFFF', 'both',
		'name', 'ignitecast', 'embed',
		'menu', 'true', 'both',
		'allowFullScreen', 'false', 'both',
		'allowScriptAccess','sameDomain', 'both',
		'movie', 'ad_show.swf', 'object',
		'salign', '', 'both'
	);
}