/**
 * author:JOsH Lindsay
 * email:jlindsay@crazyreds.com
 * http://www.crazyreds.com
 * ©2007 crazyreds. All Rights Reserved.
 * Software shall be used for Good, not Evil.
 * Javascript
 */

if( typeof com == "undefined" )
{
	var com = new Object();
}

if( typeof com.v3 == "undefined" )
{
	com.v3 = new Object();
}

if( typeof com.v3.apps == "undefined" )
{
	com.v3.apps = new Object();
}

com.v3.apps.FDOM = function()
{
	var self = this;
	
	var _swfPath;// = PROTOCALL + HOST + DIR + FILE;
	var _isDevelopment;
	var _isProduction;
//	var _isFileSystem;
	/**
 	 * cons is a method used to retrive const variables, 
 	 * without allowing access to set the cons varables.
 	 */
	var cons = function(name)
	{
		var constants = { PROTOCALL	: "http://",
						  HOST	: "dev.crazyreds.com",	
						  DIR 	: "/widget/flash/",
	 					  FILE	: "as3.swf",
						  DEFAULT_WIDTH : '100%',
						  DEFAULT_HEIGHT : '100%',
						  DEFAULT_MIN_WIDTH : '200',
						  DEFAULT_MIN_HEIGHT : '200',
						  DEFAULT_BACKGROUND_COLOR : "#ffffff",
						  DEVELOPMENT_DOMAIN: "dev.crazyreds.com",
						  PRODUCTION_DOMAIN: "www.crazyreds.com"}
	
		return constants[name];
	}
	
	var _swfPath = "";
	
	/**
	 * foo constructor
	 */
	var Main = function()
	{
		_isDevelopment = ( window.location.href.toString() == cons( "DEVELOPMENT_DOMAIN" ) )? true : false ;
		_isProduction  = ( window.location.href.toString() != cons( "PRODUCTION_DOMAIN" ) )? true : false ;
//		_isFileSystem	   = ( window.location.href.toString() != "c://" )? true : false ;
		setSwfPath();
	}
	
	var getHTML = function( swfPath, data )
	{
		var flashVars = "";

		if( data != "undefined" )
		{
			for( prop in data)
			{
				if( prop != "width" && prop != "height" )
				{
					if(flashVars != "" )
					{
						flashVars += "&";
					}
					flashVars +=  prop +"="+ data[prop];			
				}
			}
		}

		var width 			= ( data.width ) ? data.width : cons( "DEFAULT_WIDTH")
		var height 			= ( data.height ) ? data.height : cons( "DEFAULT_HEIGHT" );
		var min_width 		= ( data.min_width ) ? data.min_width : cons("DEFAULT_MIN_WIDTH");
		var min_height 		= ( data.min_height ) ? data.min_height : cons("DEFAULT_MIN_HEIGHT");
		var background_color = ( data.background_color )? data.background_color : cons("DEFAULT_BACKGROUND_COLOR");

		var HTML = "";
			HTML += '<div style="width:' + width + ';height:' + height + ';min-width:' + min_width + ';min-height:' + min_height + ';background:' + background_color + ';">';
			HTML += '   <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" '
			HTML += '   id="fdom" name="fdom" width="100%" height="100%" align="middle" >';
			HTML += '      <param name="allowScriptAccess" value="sameDomain" />';
    		HTML += '      <param name="allowFullScreen" value="false" />';
    		HTML += '      <param name="movie" value="'+ _swfPath +'" />';
    		HTML += '      <param name="quality" value="high" />';
    		HTML += '      <param name="bgcolor" value="' + background_color + '" />';
			HTML += '      <param name="wmode" value="transparent"/> ';
    		HTML += '      <param name="flashVars" value="' + flashVars + '" />';
    		HTML += '      <embed src="' + _swfPath + '" flashVars="'+ flashVars + '" ';
			HTML += '             width="100%" ';
			HTML += '             height="100%" ';
			HTML += '             align="middle" ';
			HTML += '             quality="high" ';
			HTML += '             bgcolor="' + background_color + '" '; 
			HTML += '             name="fdom" ';
			HTML += '	      	  wmode="transparent" ';
			HTML += '             allowScriptAccess="sameDomain" ';
			HTML += '             allowFullScreen="false"  ';
			HTML += '             type="application/x-shockwave-flash" ';
			HTML += '             pluginspage="http://www.macromedia.com/go/getflashplayer" />';
			HTML += '   </object>';
			HTML += '</div>';
		return HTML;
	}
	
	var setSwfPath = function()
	{
		var host = (_isProduction)? cons("PRODUCTION_DOMAIN") : cons("DEVELOPMENT_DOMAIN");
		_swfPath = cons("PROTOCALL") + host + cons("DIR") + cons("FILE");
	}
		
	var create = function( wid, data )
	{
		data['wid'] = wid;
		document.write( getHTML( _swfPath, data ) );	
	}
	
	var insert = function( eid, wid, data )
	{
			data['wid'] = wid;
		var elm = document.getElementById(eid);
			elm.innerHTML = getHTML( _swfPath , data );
	}
	
	/**
 	 * public interface
 	 */
	self.cons = cons;
	self.create = create;
	self.insert = insert;
	
	Main();
}