/*************************************************************
 *                                                           *
 *   Created by Tamas Manhertz (PYLON)/Manhertz-Pylon Ltd.   *
 *            All rights reserved. 2007.                     *
 *                                                           *
 *************************************************************/
/*************************************************************
 *    #DEP: sy_Base3g.js@FORCE                               *
 *    #DEP: sy_ReqMgr.js@FORCE                               *
 *    #DEP: sy_CommMgr.js@FORCE                              *
 *    #DEP: sy_Component.js@FORCE                            *
 *************************************************************/
/*************************************************************
 *  JSO Object:  Initializator                               *
 *        Type:  prototype                                   *
 *                                                           *
 * Description: client side initializator for a new session  *
 *                                                           *
 *************************************************************/

function pInitializator(sName, sType)
 {
    pComponent.call(this, sName, sType);
    this._regComponentData( "_oInitData" );
 }

pInitializator.extend( 'Component', {
// ***************************************************
//                  PROPERTIES
// ***************************************************
    
        /**
         * Initializator data
         * @type Array
         */
     _oInitData : {
          _iS_ID : 0,
               /* screen and window properties */
          _iScreenWidth : 0,
          _iScreenHeight : 0,
          _iScreenDepth : 0,
          _iWindowWidth : 0,
          _iWindowHeight : 0,
               /* Basic browser properties */
          _bHasJS : true,
          _bHasCookies : null,
          _bHasAJAX : false,
               /* Browser plugins enabled or disabled */
          _bHasJava : false,
          _bHasFlash : false,
          _bHasRealPlayer : false,
          _bHasQuickTime : false,
          _bHasPDF : false
     },

// ***************************************************
//                  PRIVATE  METHODS
// ***************************************************
        /**
         * object identification string
         * @param {-} - 
         */
    _getIDString : function()
     {
        return "JSO Initializator.";
     },

        /**
         * Detecting a plugin, returns 'true' if the specified plugin exists
         * @param {sIE: IE string for detection
         *         sNs: Netscape id string} 
         */
     _detectPlugin : function(sIE, sNs)
      {
          var _sUAgent = navigator.userAgent.toLowerCase();
          var _sNav = navigator.appName.toLowerCase();
          if (_sUAgent.indexOf('msie') != -1 && (_sUAgent.indexOf('win') != -1 || _sUAgent.indexOf('32bit') != -1))
          {
              _bResult = false;
              document.write('<SCR' + 'IPT LANGUAGE="VBScript">\n on error resume next \n _bResult = IsObject(CreateObject("' + sIE + '")) \n </' + 'SCRIPT>\n');
              return (_bResult);
          }
          else if (_sNav.indexOf('netscape') != -1 || _sUAgent.indexOf('win') == -1 && _sUAgent.indexOf('32bit') == -1)
          {
              if (navigator.mimeTypes[sNs] && navigator.mimeTypes[sNs].enabledPlugin != null)
              {
                  return true;
              };
              return false;
          }
          else
          {
              return false;
          };
      },
// ***************************************************
//                   PUBLIC METHODS
// ***************************************************
    doInit : function (sSessionID, iS_ID)
     {
          // Checking cookies
        setCookie( 'CA', '3GT' );
        if (getCookie("CA")=="3GT")	var _iHasCookies = true;
        else						var _iHasCookies = false;
        deleteCookie( 'CA' );

        this._oInitData._iS_ID = iS_ID;
        this._oInitData._iScreenWidth = screen.width;
        this._oInitData._iScreenHeight = screen.height;
        this._oInitData._iScreenDepth = screen.colorDepth;
        this._oInitData._iWindowWidth = window.innerWidth | document.documentElement.clientWidth | 0;
        this._oInitData._iWindowHeight = window.innerHeight | document.documentElement.clientHeight | 0;
        this._oInitData._bHasCookies = _iHasCookies;
        this._oInitData._bHasAJAX = RequestManager.hasXHR();
        this._oInitData._bHasJava = navigator.javaEnabled();
        this._oInitData._bHasFlash = this._detectPlugin('ShockwaveFlash.ShockwaveFlash.1', 'application/x-shockwave-flash');
        this._oInitData._bHasRealPlayer = this._detectPlugin('rmocx.RealPlayer G2 Control.1', 'audio/x-pn-realaudio-plugin');
        this._oInitData._bHasQuickTime = this._detectPlugin('QuickTimeCheckObject.QuickTimeCheck.1', 'video/quicktime');
        var _bPDF = this._detectPlugin ('PDF.PdfCtrl.1', 'application/pdf');
        if (!_bPDF) _bPDF = this._detectPlugin ('PDF.PdfCtrl.5');
        if (!_bPDF) _bPDF = this._detectPlugin ('PDF.PdfCtrl.6');
        if (!_bPDF) _bPDF = this._detectPlugin ('AcroPDF.PDF.1');
        this._oInitData._bHasPDF = _bPDF;

        this._sendData();
        syLog( "Browser information data has been sent to the server.", CONSTANTS.LOG_TYPE_DEBUG_INFO );
     }
 });
syLog( "jso_Initializator proto was created.", CONSTANTS.LOG_TYPE_DEBUG_INFO );

