function GetAlignment(field)
{
     if (HasValue(field))
     {
          return field.Value(1);
     }
     return "middle";
}

function RenderFlash(image, imgAlignment, additionParams)
{
var strReturn = "";
     var imageField = null;
     if (image == null) return " "; // return nothing if no image defined


     if (imgAlignment == null || imgAlignment == "") imgAlignment = "middle";
     if (additionParams == null) additionParams = "";

     if (image.Value == null)
          imageField = image;
     else 
          imageField = image.Value(1);


     var data = new TridionEntity(imageField);

     var result = new Array();


     if (imgAlignment.toLowerCase() == "middle")
          result.push("<center>");

     if (imageField.Schema.Title == "schemaFuldaFlashUsingPlayer")
     {

          var flashPlayerPath = Component.Publication.PublicationURL + "Images/flashPlayer.swf?videofile=";
          var flashPath= PublishBinary(imageField);


          var replacementImg = new TridionEntity(data.ReplacementImage[0]);
          var parameters = new Array();

          AddPlayerParameter(parameters, "Autoplay", data, "yes");
          AddPlayerParameter(parameters, "Timer", data, "yes");
          AddPlayerParameter(parameters, "RewindButton", data, "yes");
          AddPlayerParameter(parameters, "PlayButton", data, "yes");
          AddPlayerParameter(parameters, "FastForwardButton", data, "yes");
          AddPlayerParameter(parameters, "PauseButton", data, "yes");
          AddPlayerParameter(parameters, "StopButton", data, "yes");
          AddPlayerParameter(parameters, "VolumeButton", data, "yes");
          AddPlayerParameter(parameters, "ShowSlider", data, "yes");
          AddPlayerParameter(parameters, "ShowTimeLine", data, "yes");
          AddPlayerParameter(parameters, "Progresscolor", data, "0xD35386");
          AddPlayerParameter(parameters, "Buttoncolornormal", data, "0xCED2D6");
          AddPlayerParameter(parameters, "Buttoncolorhigh", data, "0x7F7F7F");
          AddPlayerParameter(parameters, "Downloadprogresscolor", data, "0x7F7F7F");
          AddPlayerOptionalParameter(parameters, "VideoBorder", data);
          AddPlayerOptionalParameter(parameters, "VideoBorderColor", data);
          AddPlayerOptionalParameter(parameters, "videox", data);
          AddPlayerOptionalParameter(parameters, "videoy", data);
          AddPlayerOptionalParameter(parameters, "VideoWidth", data);
          AddPlayerOptionalParameter(parameters, "VideoHeight", data);

          if (data.BackgroundFile != null && data.BackgroundFile != "")
          {
               var backFileLink = GetBinaryPath(imageField.MetadataFields("BackgroundFile").Value(1));
               parameters.push("backgroundfile=" + backFileLink);
          }


          var fullPath = flashPlayerPath + flashPath + "&" + parameters.join("&");
   
        //  var imageLink = GetBinaryPath(imageField.MetadataFields("ReplacementImage").Value(1));

          var imageLink = PublishBinary(imageField.MetadataFields.Item("ReplacementImage").Value(1));

          result.push("<SCRIPT LANGUAGE=\"JavaScript\">");
          result.push("if (IsFlashAvailable())");
          result.push("{ document.open();");

          result.push("document.write('<span align=\"", imgAlignment, "\" style=\"float:", imgAlignment, ";\">');");
          result.push("var flashMovie = new flashObj();");
          result.push( "flashMovie.attrList.CLASSID=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\";");
          result.push( "flashMovie.attrList.CODEBASE=\"http://active.macromedia.com/flash/cabs/swflash.cab#version=3,0,0,11\";");
          result.push( "flashMovie.attrList.WIDTH=\"" + data.width + "\";");
          result.push( "flashMovie.attrList.HEIGHT=\"" + data.height + "\";");
          result.push( "flashMovie.paramList.Movie=\"" + fullPath + "\";");
          result.push( "flashMovie.paramList.quality=\"high\";");
          result.push( "flashMovie.paramList.Loop=\"true\";");
          result.push( "flashMovie.paramList.play=\"true\";");
          result.push( "flashMovie.paramList.wmode=\"transparent\";");
          result.push( "flashMovie.emAttrList.SRC=\"" + fullPath + "\";");
          result.push( "flashMovie.emAttrList.WIDTH=\"" + data.width + "\";");
          result.push( "flashMovie.emAttrList.HEIGHT=\"" + data.height + "\";");
          result.push( "flashMovie.emAttrList.LOOP=\"true\";");
          result.push( "flashMovie.emAttrList.QUALITY=\"high\";");
          result.push( "flashMovie.emAttrList.wmode=\"transparent\";");
          result.push("flashMovie.renderFlashMovie();");
          result.push("document.write('</span>');");

          result.push("document.close();");
          result.push("} else { document.open(); ");
          result.push("document.write('<span align=\"" + imgAlignment + "\" style=\"float:" + imgAlignment + ";\"><IMG SRC=\"" + imageLink + "\" WIDTH=\"" + data.width + "\" HEIGHT=\"" + data.height + "\" align=\"" + imgAlignment + "\"> </span>');");
          result.push("document.close(); } </SCRIPT>");
     }

     if (imgAlignment.toLowerCase() == "middle")
          result.push("</center>");

     return result.join("");
}

function AddPlayerParameter(params, name, dataSource, defVal)
{
     if (dataSource[name] == null || dataSource[name] == "") dataSource[name] = defVal;
     params.push(name.toLowerCase() + "=" + dataSource[name]);
}

function AddPlayerOptionalParameter(params, name, dataSource)
{
     if (dataSource[name] == null || dataSource[name] == "") return;
     params.push(name.toLowerCase() + "=" + dataSource[name]);
}

function IsFlashAvailable()
{
	try { if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash") != null) return true; } catch(e){}
	try { if (navigator.plugins && navigator.plugins["Shockwave Flash"]) return true; } catch(e){}
	return false;
}

function listObj(before_all, before, between, after, after_all, sep)
{
    this.toString=function()
    {
//        alert("list rendering");
        var result = new Array();
        result.push(before_all);
        for(var field in this)
        {
            if (typeof(this[field]) == 'function') continue;
//            alert(field+":"+this[field]);
	      result.push(before+field+between+this[field]+after);
        }
        result.push(after_all);
        return result.join(sep);
    }

}

function flashObj()
{
    this.attrList = new listObj("", "", "='", "'", "", " ");
    this.paramList = new listObj("", "<PARAM NAME='", "' VALUE='", "'>", "", "\n");
    this.emAttrList = new listObj("<EMBED ", "", "='", "'", ">", " ");

    this.toHTMLString = function()
        {
		 return "<OBJECT "+this.attrList+">\n"+this.paramList+this.emAttrList+"\n</OBJECT>";
        }

    this.renderFlashMovie = function()
    {
        document.write(this.toHTMLString());
    }
}
