/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/*
    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, minversion){
    try{
      $(container+' '+removetext).remove();
      var pluginVer = this.getSWFObject().getFlashPlayerVersion();
      var msg = (pluginVer.major != 0 || pluginVer.minor != 0 || pluginVer.release != 0)
        ? " in der Version "+ minversion +" oder h&ouml;her. Sie haben den Adobe&reg; Flashplayer in der Version " + pluginVer.major + "." + pluginVer.minor + "." + pluginVer.release + ". Bitte aktualisieren Sie ihn."
        : " in der Version "+ minversion +" oder h&ouml;her. Sie haben keinen Adobe&reg; Flashplayer installiert oder er ist deaktiviert.";
      $(container+' '+errortext).html(msg);
    }catch(err){
      //alert(err);
    }

  },  /* writeErrorMessage */

    /* + + + + + + + + + + + + + + + + */
  /* writeOptionsMessage */
  writeOptionsMessage: function(container, mmtype){
    var msg = 'Es ist ein Fehler aufgetreten.<br> '+mmtype+' kann derzeit leider nicht angezeigt werden.';
    try{
      $('#'+container+' p').remove();
      $('#'+container).append('<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 = {
  audio: {

    'width': '338',
    'height': '24',
    'version': '9.0.124',

    flashparams: {
      'scale': 'noscale',
      'menu': 'false',
      'wmode': 'transparent',
      'transparentpagebg': 'yes'
    },

    flashattr: {
    },

    flashvars: {
      'initialvolume': '100',
      'animation': 'no',
      'bg': 'b6d8e2', 
      'leftbg': '2D758B',
      'lefticon': 'FFFFFF',
      'voltrack': 'B6D8E2',
      'volslider': 'FFFFFF',
      'rightbg': '2D758B',
      'rightbghover': 'B6D8E2',
      'righticon': 'FFFFFF',
      'righticonhover': '2D758B',
      'loader': '2D758B',
      'track': 'FFFFFF',
      'tracker': 'B6D8E2',
      'border': 'B6D8E2'
    }

  },
  youtube: {
    'width': '338',
    'height': '279',
    'version': '9.0.124',

    flashparams: {
      'allowfullscreen': 'true',
      'quality': 'high',
      'bgcolor': '#FFF'
    },

    flashattr: {
    },

    flashvars: {
    }

  }
};/* f2n.playerOptions */



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

f2n.Player = function() {

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


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

    var tmp = $.extend(true, {}, f2n.playerOptions.youtube, options); 
    if( tmp && tmp.version && 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{
        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, 'Das Video');
        //alert('main param is missing');
        return false;
    }

  };


  /* + + + + + + + + + + + + + + + + */
  /* this.loadaudio */
  this.loadaudio = function(options){ 
    var tmp = $.extend(true, {}, f2n.playerOptions.audio, options);
    if( tmp && tmp.version && tmp.player && tmp.pid && tmp.flashvars && tmp.flashattr && tmp.flashparams && tmp.flashvars.soundFile ){
      
      if(!f2n.Utils.has_regVersion( tmp.version )) {
        f2n.Utils.writeErrorMessage(tmp.pid, '.nonscript', '.errortxt');
        //alert('wrong flash version');
        return false;
      }else{
        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, 'Die Audiodatei');
        //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();
