/*CVS Add-ins*/
/*
$Revision: 1.4 $
$RCSfile: flashbehaviour.js,v $
author: JDE
*/
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/*
    flashbehaviour.js
    26.01.2009  JDE
*/
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/*Copyright (c) A&B FACE2NET GmbH*/


if ('undefined' == typeof(f2n)) { var f2n = new Object(); }
if ('undefined' == typeof(f2n.Player)) { f2n.Player = new Object(); }
if ('undefined' == typeof(f2n.playerOptions)) { f2n.playerOptions = new Object(); }
var options_error = false;

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/* Utils*/
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */

f2n.Utils = {

    /* + + + + + + + + + + + + + + + + */
    /* hasRequiredFlashVersion */
    has_regVersion: function(reqVer){

    var pluginVer = this.getSWFObject().getFlashPlayerVersion();
    if ('string' == typeof(reqVer)) { reqVer = reqVer.split('.'); }

    reqVer.major = reqVer[0] != null ? parseInt(reqVer[0]) : 0;
    if (pluginVer.major < reqVer.major) { return false; }
    if (pluginVer.major > reqVer.major) { return true;  }

    reqVer.minor = reqVer[1] != null ? parseInt(reqVer[1]) : 0;
    if (pluginVer.minor < reqVer.minor) { return false; }
    if (pluginVer.minor > reqVer.minor) { return true;  }

    reqVer.release = reqVer[2] != null ? parseInt(reqVer[2]) : 0;
    if (pluginVer.release < reqVer.release) { return false; }

    return true;
  },  /* has_regVersion */


  /* + + + + + + + + + + + + + + + + */
  /* getSWFObject */
  getSWFObject: function(){
    if ('object' == typeof(f2n.HELPER) || 'function' == typeof(f2n.HELPER)) { 
      return f2n.HELPER;
    }
    return ('object' == typeof(swfobject) || 'function' == typeof(swfobject)) ? swfobject : null;
  },  /* getSWFObject */


  /* + + + + + + + + + + + + + + + + */
  /* flashVersionError */
  writeErrorMessage: function(container, removetext, errortext){
    try{
      $(container).down(removetext).remove();
      var pluginVer = this.getSWFObject().getFlashPlayerVersion();
      var msg = (pluginVer.major != 0 || pluginVer.minor != 0 || pluginVer.release != 0)
        ? " Sie haben den Adobe&reg; Flashplayer in der Version " + pluginVer.major + "." + pluginVer.minor + "." + pluginVer.release + ". Bitte aktualisieren Sie ihn."
        : " Sie haben keinen Adobe&reg; Flashplayer installiert oder er ist deaktiviert.";
      $(container).down(errortext).replace(msg);
    }catch(err){
      //alert(err);
    }

  },  /* writeErrorMessage */

    /* + + + + + + + + + + + + + + + + */
  /* writeOptionsMessage */
  writeOptionsMessage: function(container){
    var msg = 'Es ist ein Fehler aufgetreten.<br> Das Video kann derzeit leider nicht angezeigt werden.';
    try{
      $$('#'+container+' p').each(function(item,index){
        $(item).remove();
      });
      $(container).insert({bottom: '<p>'+msg+'</p>'});
    }catch(err){
      //alert(err);
    }
  },  /* writeOptionsMessage */

  /* + + + + + + + + + + + + + + + + */
  /* getVideoOptions */
    getOptions: function(key, options, is_basic){
      var result = null;
      if ('object' == typeof(options)) {
        result = options[key];
      }/* if */
      if (!result) {
        if(is_basic) options_error = true;
        return "";
      }
        return result;
    }  /* getVideoOption */


}; /* f2n.Utils */

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/* Options*/
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */

f2n.playerOptions = {
    'lang': 'de',
    'width': '470',
    'height': '300',
    'version': '9.0.124',
    flashparams: {
      'allowfullscreen': 'true',
      'allowscriptaccess': 'always',
      'scale': 'scale',
      'quality': 'high',
      'bgcolor': '#FFF'
    },
    flashattr: {
    },
    flashvars: {
      'mute': 'false',
      'volume': '60',
      'screencolor': 'FFF',
      'stretching': 'uniform',
      'autostart': 'false',
      'skin': '/fileadmin/templates/mm/technikum.zip'
    }
};/* f2n.playerOptions */

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/* f2n.Player*/
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */

f2n.Player = function() {

  var helper = f2n.Utils.getSWFObject();
  if (!helper){
    alert("SWFObject HELPER is " + typeof(helper)); return;
  }//if


  /* + + + + + + + + + + + + + + + + */
  /* this.getVideoplayer */
  this.loadvideo = function(options){ 

    var tmp = Object.extend(f2n.playerOptions, options); 
    if( tmp && tmp.version && tmp.video && tmp.player && tmp.pid && tmp.flashvars && tmp.flashattr && tmp.flashparams ){
      if(!f2n.Utils.has_regVersion( tmp.version )) {
        f2n.Utils.writeErrorMessage(tmp.pid, '.nonscript', '.errortxt');
        //alert('wrong flash version');
        return false;
      }else{
        if(tmp.still) {
          tmp.flashvars.image = tmp.still;
        }
        tmp.flashvars.file = tmp.video;
        tmp.flashvars.id = tmp.objid;
        tmp.flashattr.name = tmp.objid;
        tmp.flashattr.id = tmp.objid;
        this.embedPlayer(helper, tmp);
      }
    }else{
        f2n.Utils.writeOptionsMessage(tmp.pid);
        //alert('main param is missing');
        return false;
    }

  };

  /* + + + + + + + + + + + + + + + + */
  /* this.embedFlash */
  this.embedPlayer = function(helper, tmp){
    helper.embedSWF(
      f2n.Utils.getOptions('player', tmp, true),
      f2n.Utils.getOptions('pid', tmp, true), 
      f2n.Utils.getOptions('width', tmp, true), 
      f2n.Utils.getOptions('height', tmp, true), 
      f2n.Utils.getOptions('version', tmp, true),
      false, 
      f2n.Utils.getOptions('flashvars', tmp, true), 
      f2n.Utils.getOptions('flashparams', tmp, true), 
      f2n.Utils.getOptions('flashattr', tmp, true)
    )
  };

};//flashplayer

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/* instanzierung*/
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */

var flashPlayer = new f2n.Player();
