﻿function TestX3D(){

if (detectX3D()) {     
    // nothing happens ..                
} else {        
    // detection lang code                                     
    var langhf = document.getElementById('hfl').value.toString();
    // question in proprer language
    var question = getLangString(langhf, 1);                
    var confirmed = window.confirm(question);
    // redirection to instalation instructions
    if (confirmed)    
        self.location.replace("../InstallX3D.aspx");                        
 }
}


function  LoadContent(){
    // path to generated x3d object
    var pathhf = document.getElementById('hf').value; // toString();
    // lang code
    var langhf = document.getElementById('hfl').value.toString();
    var pwidth = pageWidth() - 30;
    var pheight = pageHeight() - 60;
    if (detectX3D()) {                   
        document.writeln('<embed src=\"' + pathhf + '\"  width=\"' + pwidth + '\"  height=\"' + pheight + '\" ></embed>');                    
        //document.writeln('<div>ok</div>');
    } else {            
        window.alert(getLangString(langhf, 2));
        self.location.replace("./InstallX3D.aspx");             
    }    
}


function getLangString(langhf, id){

switch (langhf){
case 'en': 
        switch(id){
        case 1:
            return "It needs to be installed X3D player for a correct 3D presentation. \n Do you want to install this player now ?";   
        break;  
        case 2:
            return "A X3D player wasn't found! \n This page will be automatically redirected do the install page.";   
        break;  
        }        
break;
case 'sk':
        switch(id){
        case 1:
            return "Pre korektné zobrazenie 3D obsahu je nutné naistalovat X3D prehrávač. \n Prajete si ho nainštalovať teraz ?";   
        break;                  
        case 2:
            return "Nebol nájdený žiaden X3D prehrávač! \n Táto stránka bude automaticky presmerovaná na stránku s instalačnými pokynmi.";   
        break;  
        }        
break;
case 'cz':
        switch(id){
        case 1:
            return "Pro korektní zobrazení 3D obsahu je nutno naistalovat X3D player. \n Přejete si tuto akci provést teď ?";   
        break;
        case 2:
            return "Nebyl nájden žáden X3D prohrávač! \n Tahle stranka bude automaticky přesměrována na stránku s instalačnými pokyny.";   
        break;           
        }        
break;

default:
        switch(id){
        case 1:
            return "Pro korektní zobrazení 3D obsahu je nutno naistalovat X3D player. \n Přejete si tuto akci provést teď ?";   
        break;
        case 2:
            return "Nebyl nájden žáden X3D prohrávač! \n Tahle stranka bude automaticky přesměrována na stránku s instalačnými pokyny.";   
        break;           
        }        
break;
}

}

function InstallX3D(langhf){

switch (langhf){
case 'en':
    document.writeln('X3D plug-in NOT installed');    
    document.writeln('Click <a href=\"./InstallX3D.aspx\">here</a> to install ..');
break;
case 'sk':
    document.writeln(' Nebol nájdený žiaden X3D prehrávač! ');
    document.writeln(' Pre korektné zobrazenie 3D obsahu naistalujte prehrávač ..');
    document.write('<a href=\"./InstallX3D.aspx\">tu</a>');   
break;
case 'cz':
    document.writeln(' Nebyl nalezen žáden X3D prohrávač! ');
    document.writeln(' Pro korektní zobrazení 3D obsahu naistalujte prohrávač ..');
    document.write('<a href=\"./InstallX3D.aspx\">zde</a>');
break;
default:
    document.writeln(' Nebyl nalezen žáden X3D prohrávač! ');
    document.writeln(' Pro korektní zobrazení 3D obsahu naistalujte prohrávač ..');
    document.write('<a href=\"./InstallX3D.aspx\">zde</a>');
break;
}


}


function detectX3D(){

var nenabled  = 0;
var nenabledx = 0;

var nx3d  = 0;
var x3dok = 0;
var x3dPlugin = '';
var x3d = new Array(20);

var x3dMime = new Array(10);
x3dMime[1] = 'model/x3d';
x3dMime[2] = 'model/x3d+xml';
x3dMime[3] = 'model/x3d+vrml';
x3dMime[4] = 'model/x3d+binary';
var nx3dMime = 4;

// detect plugins in Firefox, Netscape, Mozilla, Opera, and other browser that use the navigator.plugins array
if (navigator.plugins && navigator.plugins.length > 0) {
  var numPlugins = navigator.plugins.length;

// loop over all plugins
  for (i = 0; i < numPlugins; i++) {
    var plugin = navigator.plugins[i];
    var numTypes = plugin.length;

    // look for VRML plugins by checking mimetype for 'vrml'
    for (j = 0; j < numTypes; j++) {
      mimetype = plugin[j];
      if (mimetype) {

        // look for X3D plugins by checking mimetype for 'x3d'
        if (mimetype.type.indexOf('x3d') != -1 ||
            mimetype.type.indexOf('X3D') != -1 || 
            mimetype.suffixes.indexOf('x3d') != -1 || 
            mimetype.suffixes.indexOf('x3b') != -1 || 
            mimetype.suffixes.indexOf('b3d') != -1 || 
            mimetype.suffixes.indexOf('b3z') != -1 || 
            mimetype.suffixes.indexOf('X3D') != -1) {
          enabledPlugin = mimetype.enabledPlugin;
          if (enabledPlugin && (enabledPlugin.name == plugin.name)) {
            if (plugin.name != x3dPlugin) {
              x3dPlugin = plugin.name;
              nenabledx = nenabledx + 1;
            }
            if (!x3dok) {x3dok = 1;}
          }
          ok = 1;
          for (k = 1; k <= nx3d; k++) {if (plugin.name == x3d[k]) {ok = 0;}}
          if (ok) {nx3d = nx3d + 1; x3d[nx3d] = plugin.name;}
          ok = 1;
          for (m = 1; m <= nx3dMime; m++) {if (mimetype.type == x3dMime[m]) {ok = 0;}}
          if (ok) {nx3dMime = nx3dMime + 1; x3dMime[nx3dMime] = mimetype.type;}
        }
      }
    }
  }
  
  if (nenabledx > 1) {
    x3dPlugin = 'undefined';    
  }

// *****************************************************************************
// detect VRML and X3D plugins in Microsoft Internet Explorer, only with Windows

} else if (navigator.appName == "Microsoft Internet Explorer") {
  if (navigator.appVersion.indexOf('Win') != -1) {

    //IEDetectObject is used to detect ActiveX Controls
    /*
    document.writeln('<SCRIPT LANGUAGE="VBScript">');
    document.writeln('function IEDetectObject(activeXControlName)');
    document.writeln('  On Error Resume Next');
    document.writeln('  IEDetectObject = IsObject(CreateObject(activeXControlName))');
    document.writeln('End function');
    document.writeln('</SCR' + 'IPT>');
    */      

    // detect X3D ActiveX controls
    if (IEDetectObject('bsContact.bsContact.1')) {      
      nx3d  = nx3d  + 1; x3d[nx3d]   = "BS&nbsp;Contact";
    } 
    if (IEDetectObject('ANIMA.AnimaCtrl.1')) {      
      nx3d  = nx3d  + 1; x3d[nx3d]   = "Flux&nbsp;Player";
    }
    if (IEDetectObject('OCTAGAX.OctagaXCtrl.1')) {     
      nx3d  = nx3d  + 1; x3d[nx3d]   = "Octaga&nbsp;Player";
    } else if (IEDetectObject('OctagaProX.OctagaProX.1')) {      
      nx3d  = nx3d  + 1; x3d[nx3d]   = "Octaga&nbsp;Pro";
    }
    if (nx3d > 0) {
      x3dok = 1;
      if (nx3d == 1) {
        x3dPlugin = x3d[1];
      } else {
        x3dPlugin = 'undefined';
      }
    }    
  } // Win            
} // IE


if (nx3d > 0) {
    return true;
} else {
    return false;    
}


}


function pageWidth() {
    return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
} 

function pageHeight() {
    return  window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
} 




