﻿// FLASH GLOBALS
var VM = 9, VN = 0, VR = 45; // VERSION MINIMUM!!!
var ExpressInstall = '/Scripts/swfobject/expressinstall.swf';

// FLASH LOADER
function swfload(div, swfname, swf, width, height, flashvars, params) {
	try {
		if (!div && !swf && !width && !height) return;
		swfname = (swfname == '' || swfname == null)? div+'Movie': swfname;
		var Fv = null, fv = '';
		var v = VM+"."+VN+"."+VR;
		var vx = VM+","+VN+","+VR+",0";
		var varStr = '', paramStr = '', swfhtml = '';

		if (document.all)
			ExpressInstall = null;

		if (!document.all)
		$(div).setStyle('overflow', 'hidden');

		for (var flashvar in flashvars)
			varStr += flashvar +'='+ flashvars[flashvar];
		for (var param in params)
			paramStr += '<param name="'+ param +'" value="'+ params[param] +'">';
		paramStr += '<param name="flashvars" value="'+ varStr +'">';
		if (window.deconcept != null && !window.swfobject) { // SWFOBJECT 1.5 && NOT 2.0

			Fv = deconcept.SWFObjectUtil.getPlayerVersion();
			fv = Fv['major']+'.'+Fv['minor']+'.'+Fv['rev'];

			var flashobj = new SWFObject(swf, swfname, width.toString(), height.toString(), fv, params[bgcolor]? params[bgcolor]: "#FFFFFF");
			window[swfname] = new Object();
			if (!document.all)
				flashobj.useExpressInstall(ExpressInstall);

			for (var flashvar in flashvars) 
				flashobj.addVariable(flashvar, flashvars[flashvar]);
			for (var param in params)
				flashobj.addParam(param, params[param]);
			flashobj.write(div);

		} else if (window.swfobject != null)  { // SWFOBJECT 2+

			Fv = swfobject.getFlashPlayerVersion();
			fv = Fv.major+'.'+Fv.minor+'.'+Fv.release;
			varStr = ''
			paramStr = ''
			params = params? params: {}; ///{ name: div, wmode: "transparent", allowScriptAccess: "always", bgcolor: "#FFFFFF" };
			flashvars = flashvars? flashvars: {};

			for (var param in params)
			{ paramStr += '<param name="' + param + '" value="' + params[param] + '">'; }
			for (var flashvar in flashvars)
			{ varStr += '&' + flashvar + '=' + flashvars[flashvar]; }
			paramStr += '<param name="flashvars" value="' + varStr + '">';
			if (navigator.appVersion.indexOf('AppleWebKit') > 0 && meetsFlashVer(Fv, 8, 0, 22)) { // Safari 3 believes that it's flash is 8.0.22, so only choice is create object without swfobject
				flashTopNav = div; // override from TopNav.js
				v = '7.0.21';
				swfhtml = '<object style="visibility:visible;height:1000px;background:transparent;" id="topNavBarMovie" data="/flash/topnavbar.swf" type="application/x-shockwave-flash" height="100" width="980">' + paramStr + '</object>';
				$(div).innerHTML = '';
				$(div).innerHTML = swfhtml;

				$(div).setStyle('height', height +'px');  // seems to be a padding of 40 for some reason???
				$(div).setStyle('background', 'transparent none');

			} else if (document.all && meetsFlashVer(Fv, VM, VN, VR)) {
				if (window.deconcept) {
					Fv = deconcept.SWFObjectUtil.getPlayerVersion();
					fv = Fv['major']+'.'+Fv['minor']+'.'+Fv['rev'];

					var flashobj = new SWFObject(swf, swfname, width.toString(), height.toString(), fv, params['bgcolor']? params[bgcolor]: "#FFFFFF");
					window[swfname] = new Object();
					if (!document.all)
						flashobj.useExpressInstall(ExpressInstall);

					for (var flashvar in flashvars)
						flashobj.addVariable(flashvar, flashvars[flashvar]);
					for (var param in params)
						flashobj.addParam(param, params[param]);
					flashobj.write(div);
				} else if (window.swfobject) {
					window[swfname] = new Object();
					swfhtml =  '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+ vx +'" type="application/x-shockwave-flash" data="'+ swf +'" width="'+ width +'" height="'+ height +'" id="'+ swfname +'"><param name="movie" value="'+ swf +'" /><param name="quality" value="high" /><embed src="'+ swf +'" quality="high" width="'+ width +'" height="'+ height +'" name="'+ swfname +'" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>'+ paramStr +'</object>'+'<span></span>'
					$(div).innerHTML = '';
					$(div).innerHTML = swfhtml;			
				}
			} else if (meetsFlashVer(Fv, VM, VN, VR)) {
				swfobject.embedSWF(swf, swfname, width, height, v, ExpressInstall, flashvars, params);
			} else {
				swfobject.embedSWF(swf, swfname, width, height < 140? 140: height, v, ExpressInstall); // need to set minimum height for express install
			}
		} // ?SWFOBJECT
	} catch (e) { }
} //: swfload()

function meetsFlashVer(Fv, vm, vn, vr) {
	if (Fv.major < vm)
		return false;
	else if (Fv.major >= vm && Fv.minor < vn)
		return false;
	else if (Fv.major >= vm && Fv.minor >= vn && Fv.release < vr)
		return false;
	return true;
} //: meetsFlashVer()

// UTILS
function setCookie(name, value, days) {
	var expires = (days? expires = "; expires="+ (new Date().getTime() + (days*24*60*60*1000)).toGMTString(): expires = "");
	document.cookie = name +"="+ value+expires +"; path=/";
} //: setCookie()

function getCookie(name) {
	var x = new RegExp("\\b" + name + "=([^;]*)");
	var value = x.exec(document.cookie);
	return (value) ? unescape(value[1]) : "";
} //: getCookie()

function delCookie(name) { setCookie(name, "", 0); } //: delCookie()

// dbg(): provides on screen debugging strings
// usage: $().dbg(STRING|OBJECT: WHAT_TO_PRINT, BOOLEAN: PRINT_AS_HTML_OR_TEXT, BOOLEAN: TO_CLEAR_PREVIOUS_MESSAGES);
// displays text or objects into a dbg field on the page
_dbgCounter = 0;
function dbg(message, asHTML, clear) {
	if (typeof(message) == 'object') {
		string = '{';
		$each(message, function(key, value) {
			string += key + ': ' + value + ', ';
		});
		message = string + '}';
	} else if (message+'' == 'undefined')
		message = message+'';

	var $dbg = $('dbg');
	if ($dbg == null) {
		$x = new Element('div', {
			'id': 'dbg'
		});
		$x.inject(document.body, 'top');
		$dbg = $('dbg');
		$dbg.setAttribute('style', 'position: absolute; z-index: 99999999999; background: transparent none; color: #006; right: 0; top: 0; text-align: right;');
	}

	if (clear != null && clear == true) $dbg.set('html', '');
	var d = new Element('div', {
		'class': 'log-message'+ (_dbgCounter++ % 2? ' log-altcolor': '')
	});

	d.inject($dbg, 'bottom');
	
	message = '<span style="background: #e9e9e9 none;">'+ message +'</span>';
	
	if (asHTML != null) d.innerHTML = message;
		else d.innerHTML = message;
}; //: dbg()