////////////////////////////////////////////////////////////////////////////////
//
// media transfer AG
//
// Module:      $RCSfile: drmUserCheck.js,v $
// Type:        JavaScript
// Version:     $Revision: 2.0.0.0 $
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
// returnValues:
// 0: alles OK
// 1: kein Windows
// 2: IE < 6
// 3: FF < 1.5 oder Mozilla Suite < 1.6
// 4: Weder IE,FF,Mozilla Suite, Seamonkey
// 5: IE aber kein ActiveX aktiviert (bzw. IE7 - Informationsleiste)
// 6: FF aber kein Plugin installiert
// 7: kein Windows Media Player o. ActiveX
// 8: Windows Media Player < 8
//
////////////////////////////////////////////////////////////////////////////////

function checkSystemForCouponCode()
{
  var retVal=0;
  //----------------------------------------------------------------------------

  if( !HasWindowsOs() )
    return 1;

  //----------------------------------------------------------------------------

  var browser = BrowserCheck();
  if( browser == 1 ) return 2;
  else if( browser == 2 ) return 3;
  else if( browser == 3 ) return 4;

  //----------------------------------------------------------------------------

  var activeXretVal = CanLoadLicense();
  if( activeXretVal == 1 ) return 5;
  else if( activeXretVal == 2 ) return 6;

  //----------------------------------------------------------------------------

  var wmpVersion=GetWMPVersion();

  if( wmpVersion<0 ) return 7;
  else if( wmpVersion<8 ) return 8;

  //----------------------------------------------------------------------------

  return retVal;
}

////////////////////////////////////////////////////////////////////////////////

function HasWindowsOs() {
  var retVal=false;

  try {
    var testStr=navigator.platform.toLowerCase().substr(0,3);
    retVal = (testStr=="win");
  } catch(e) {
    retVal=false;
  }

 return retVal;
}

////////////////////////////////////////////////////////////////////////////////

function BrowserCheck() {
  var retVal = -1
  var agt = navigator.userAgent.toLowerCase();
  var appVer = navigator.appVersion.toLowerCase();
  var is_minor = parseFloat(appVer);
  var is_opera = (agt.indexOf("opera")!=-1);
  var is_safari = ((agt.indexOf('safari')!=-1));
  var is_konq = (agt.indexOf('konqueror')!=-1);
  var is_seamonkey = (agt.indexOf('seamonkey')!=-1);
  var is_khtml = (is_safari||is_konq);
  var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"));
  if (is_gecko)
  {
    var gecko_ver = agt.substring(agt.indexOf("rv:") + 3, agt.indexOf(")"));
    tmp = gecko_ver.split(".");
      gecko_ver = "";
      for ( i = 0; i < tmp.length; i++ ) {
        gecko_ver += "" + tmp[i] + "";
        if ( i == 0 ) gecko_ver += ".";
      }
  }
  var is_mozsuite = ((agt.indexOf('mozilla/5')!=-1)&&(agt.indexOf('rv:')!=-1)
        &&(agt.indexOf('spoofer')==-1)&&(parseFloat(gecko_ver) >= 1.0 && parseFloat(gecko_ver) <= 1.8)
  			&&(agt.indexOf('compatible')==-1)&& (agt.indexOf('opera')==-1)&&(agt.indexOf('firefox')==-1)
  			&&(agt.indexOf('webtv')==-1)&&(agt.indexOf('hotjava')==-1)
  			&&is_gecko&&((navigator.vendor=="")||(navigator.vendor=="Mozilla")||(navigator.vendor=="Debian")));

  var is_mozsuite16up = ( is_mozsuite && parseFloat(gecko_ver) >= 1.6 && parseFloat(gecko_ver) <= 1.8);

  var is_fx = ((agt.indexOf('mozilla/5')!=-1)&&(agt.indexOf('spoofer')==-1)
  			&&(agt.indexOf('compatible')==-1)&&(agt.indexOf('opera')==-1)
  			&&(agt.indexOf('webtv')==-1)&&(agt.indexOf('hotjava')==-1)
  			&&is_gecko&&(agt.indexOf('firefox')!=-1));

  if (is_fx) {
    var ff_ver = agt.substr(agt.indexOf('firefox') + 8 , agt.length);
    tmp = ff_ver.split(".");
    ff_ver = "";
    for ( i = 0; i < tmp.length; i++ ) {
      ff_ver += "" + tmp[i] + "";
      if ( i == 0 ) ff_ver += ".";
    }
    var is_fx15up = ( parseFloat(ff_ver) >= 1.5 );
  }

  var is_nav = ((agt.indexOf('mozilla')!=-1)&&(agt.indexOf('spoofer')==-1)
        			&&(agt.indexOf('compatible')==-1)&&(agt.indexOf('opera')==-1)
  			      &&(agt.indexOf('webtv')==-1)&&(agt.indexOf('hotjava')==-1)
        			&&(!is_khtml)&&(!is_mozsuite)&&(!is_fx));

  var is_win = ((agt.indexOf("win")!=-1)||(agt.indexOf("16bit")!=-1));
  var is_mac = (agt.indexOf("mac")!=-1);

  var iePos = appVer.indexOf('msie');
  if (iePos!=-1) {
	  if (is_mac) {
		  var iePos = agt.indexOf('msie');
		  is_minor = parseFloat(agt.substring(iePos+5,agt.indexOf(';',iePos)));
	  }
    else is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
  }

  var is_ie = ((iePos!=-1)&&(!is_opera)&&(!is_khtml));
  var is_ie4up = (is_ie&&(is_minor>=4));
  var is_ie5up = (is_ie&&(is_minor>=5));
  var is_ie6up = (is_ie&&(is_minor>=6));

  if (is_ie6up || is_fx15up || is_seamonkey || is_mozsuite16up) retVal = 0;
  else if (is_ie&&(is_minor<6)) retVal = 1;
  else if ((is_fx && !is_fx15up) || (is_mozsuite && !is_mozsuite16up)) retVal = 2;
  else retVal = 3;


  return retVal;

}

////////////////////////////////////////////////////////////////////////////////

function CanLoadLicense() {
  var netobj;
  var retVal=0;

  if(window.ActiveXObject) {
    try {
      netobj = new ActiveXObject("DRM.GetLicense");
    } catch (e) {
      retVal = 1;
    }
  }
  else if (window.GeckoActiveXObject) {
    try {
      netobj = new GeckoActiveXObject("DRM.GetLicense.1");
    } catch (err) {
      retVal = 2;
    }
  }
  return retVal;
}

////////////////////////////////////////////////////////////////////////////////

function GetWMPVersion() {
  var retVal=-1;
  var objWMPlayer7,strWMPVer;

  if(window.ActiveXObject) {
    try {
      objWMPlayer7 = new ActiveXObject("WMPlayer.Ocx.7");
      strWMPVer = objWMPlayer7.VersionInfo
      idx=strWMPVer.indexOf(".");
      retVal=strWMPVer.substr(0,idx);
    } catch (e) {
      retval = -1;
    }
  }
  else if (window.GeckoActiveXObject) {
    try {
      objWMPlayer7 = new GeckoActiveXObject("WMPlayer.Ocx.7");
      strWMPVer = objWMPlayer7.VersionInfo
      idx=strWMPVer.indexOf(".");
      retVal=strWMPVer.substr(0,idx);
    } catch (e) {
      retVal = -1;
    }
  }
  return retVal;
}

