/**
 *  DanishKnowledge.com
 *
 *  dkFlash v 0.5.0 beta
 *
**/

var dkFlashCount        = 0;


function dkFlash(dkFlashSettings, dkFlashContainer, dkFlashOverwrite) {

      dkFlashCount++;

  var dkFlashAttributes = new Object();
      dkFlashAttributes['id']                 = dkFlashSettings['id'] ? dkFlashSettings['id'] : 'flash-object-' + dkFlashCount;
      dkFlashAttributes['type']               = 'application/x-shockwave-flash';
      dkFlashAttributes['data']               = dkFlashSettings['file'] ? dkFlashSettings['file'] : null;
      dkFlashAttributes['width']              = dkFlashSettings['width'] ? dkFlashSettings['width'] : null;
      dkFlashAttributes['height']             = dkFlashSettings['height'] ? dkFlashSettings['height'] : null;
      dkFlashAttributes['wmode']              = dkFlashSettings['wmode'] ? dkFlashSettings['wmode'] : null;

  var dkFlashParameters = new Object();
      dkFlashParameters['movie']              = null;
      dkFlashParameters['allowfullscreen']    = 'false';
      dkFlashParameters['allowscriptaccess']  = 'always';
      dkFlashParameters['flashvars']          = null;
      dkFlashParameters['wmode']              = null;


  if( typeof(dkFlashSettings) == 'object' ) {

    var dkFlashObject   = document.getElementById(dkFlashSettings['id']);

    if( !dkFlashObject ) {

      var dkFlashAttributeHTML  = new String();
      var dkFlashParameterHTML  = new String();
      var dkFlashAttribute      = new String();
      var dkFlashParameter      = new String();

      var dkFlashThisAttribute  = new Object();
      var dkFlashThisParameter  = new Object();


      // Create the flash object
      var dkFlashObject = document.createElement('object');


      // Rename all the setting aliases to their actual names (for parameters)
      dkFlashSettings['movie']  = dkFlashSettings['file'];


      // Setup the object
      for(dkFlashAttribute in dkFlashAttributes) {

        // dkFlashObject.setAttribute(dkFlashAttribute, dkFlashAttributes[dkFlashAttribute]);

        // Also make an HTML version of the object attributes
        dkFlashAttributeHTML += ' ' + dkFlashAttribute + '="' + dkFlashAttributes[dkFlashAttribute] + '"';

      } // ! attributes


      // Setup the parameters
      for(dkFlashParameter in dkFlashParameters) {

            dkFlashSettings[dkFlashParameter] = dkFlashSettings[dkFlashParameter] == undefined ?
                                                  dkFlashParameters[dkFlashParameter]
                                                : dkFlashSettings[dkFlashParameter];

            dkFlashThisParameter  = document.createElement('param');
            dkFlashThisParameter.setAttribute('name',   dkFlashParameter);
            dkFlashThisParameter.setAttribute('value',  dkFlashSettings[dkFlashParameter]);

        // Also make an HTML version of the parameters
        dkFlashParameterHTML  += '<param name="' + dkFlashParameter + '" value="' + dkFlashSettings[dkFlashParameter] + '" />' + "\n";

        // dkFlashObject.appendChild(dkFlashThisParameter);

      } // ! parameters?



      // Generate the entire HTML string that can be inserted with innerHTML
      var dkFlashHTML   = new String();
          dkFlashHTML   = '<object' + dkFlashAttributeHTML + '>' + "\n"
                        + dkFlashParameterHTML
                        + '</object>' + "\n";


      // Check if a container has been specified
      dkFlashContainer  = dkFlashContainer ? document.getElementById(dkFlashContainer) : false;

      if( dkFlashContainer ) {

        if( dkFlashOverwrite == true ) {
          dkFlashContainer.innerHTML = '';
        }

        // dkFlashContainer.appendChild(dkFlashObject);

        dkFlashContainer.innerHTML = dkFlashHTML;

      }

      return dkFlashHTML;

    } // ! flash object?

  } // ! settings?

  return false;

} // ! dkFlash()