<script language="JavaScript" src="/js/Kribi3DPlayer.js" type="text/javascript"></script>

    <script language="JavaScript" src="/js/gFunct.js" type="text/javascript"></script>

    <script language="JavaScript" type="text/javascript">

 

        var controlCount = 3;

        var loadedControls = 0;

        var opening = false;

        var opened = false;

        var instanceCurrent = -1;

        var instanceVersion = -1;

        var startObjectIndex = -1;

 

        /* ------------------------------------------------------------ */

        /* This function is invoked every time the player sends a message to the

        * browser, we use it to intercept the Ready event which is sent when

        * the player is ready to accept commands and the ModelOpened event which is

        * sent when the model has been loaded. */

        function KribiPlayer_Tell(msg) {

            var player = document.getElementById("KribiPlayer");

            if (msg == "Ready") {

                // The player is ready to accept commands.

            } else if (msg == "ModelOpened") {

                // The model has been opened, initialize the camera and the page controls.

                opened = true;

                startObjectIndex = player.Do('Object GetCurrent');

                DefaultView_init();

            } else if (msg == "Refresh") {

                if ((loadedControls == controlCount) && !opening) {

                    // Wait for all the controls to be opened, make sure that this will run only once.

                    opening = true;

                    player.Do("Model OpenAsync '" + FullModelsPath() + "Stage_SourceLightV04EX_OP.kmo'");

                    if (instanceCurrent != '-1') {

                        searchLightSource();

                    }

                } else if (opened) {

                    // If the model has already been opened do a normal refresh.

                    if (player.Do("Instance GetCurrent") != 'null') {

                        var version;

                        var current;

                        current = player.Do("Instance GetCurrent");

                        version = player.Do("Instance GetVersion");

                        if ((version != instanceVersion) || (current != instanceCurrent)) {

                            //search if the right object has a LightSource

                            instanceCurrent = current;

                            instanceVersion = version;

                            searchLightSource();

                        }

                    }

                }

            }

        }

 

        /* ------------------------------------------------------------ */

        // Set default

        function DefaultView_init() {

            var player = document.getElementById("KribiPlayer");

            // Set the camera to its initial position.

            player.Do("Camera Position -1474.74,-2651.62,2470.09");

            player.Do("Camera Orientation -479.566,26.6425,0");

            player.Do("Camera FieldOfView 71.00");

            // Enable realistic rendering.

            player.Do("Renderer Shading Realistic");

            //starting reflector

            if (player.Do("Instance GetCurrent") == 'null') {

                instanceCurrent = player.Do("Instance SetCurrent 'reflector'");

            } else {

                instanceCurrent = player.Do("Instance GetCurrent");

            }

            // Set tool

            InstanceHorizontalPlaneMove();

        }

 

        /* ----------------------------------------------------------- */

        function Default_init() {

            var player = document.getElementById("KribiPlayer");

            player.Do("Model OpenAsync '" + FullModelsPath() + "Stage_SourceLightV04EX_OP.kmo'");

            DefaultView_init();

        }

 

        /* ------------------------------------------------------------ */

        function searchLightSource() {

            var player = document.getElementById("KribiPlayer");

            var indexObj = player.Do("Instance[" + instanceCurrent + "] Object");

            if (indexObj != "") {

                //verify that the object is one of the projectors

                var nameObject = player.Do("Object[" + indexObj + "] Name");

                if ((nameObject == 'HeaD') || (nameObject == 'HeaD1')) {

                    //save IstanceCurrent

                    var iCurr = player.Do('Instance GetCurrent ');

                    //disable player's refresh

                    player.Do("Player RefreshDisplay 0");

                    //SetCurrent projector object

                    player.Do("Object SetCurrent " + indexObj);

                    //cycle all instance inside the object to search LightSource

                    var count = player.Do("Instance GetCount");

                    for (var i = 0; i < count; i++) {

                        var index_o = player.Do("Instance[" + i + "] Object");

                        var index_light = player.Do("Object[" + index_o + "] Light");

                        if (index_light != 'null') {

                            loadLightSourceParameter(index_light);

                        }

                    }

                    //SetCurrent start object

                    player.Do("Object SetCurrent " + startObjectIndex);

                    //reselect instance of the projectors

                    player.Do("Instance SetCurrent " + iCurr);

                    //enable player's refresh

                    player.Do("Player RefreshDisplay 1");

                }

            }

        }

        /* ------------------------------------------------------------ */

        function loadLightSourceParameter(index_light) {

            var player = document.getElementById("KribiPlayer");

            player.Do("LightSource SetCurrent " + index_light);

            //LightSource: set Enabled

            if (player.Do("LightSource Enabled") == 1) {

                document.getElementById("cb_ls_enabled").checked = true

            } else {

                document.getElementById("cb_ls_enabled").checked = false

            }

            //LightSource: set Aperture

            $find("<%= slider_ls_aperture.ClientID %>").set_value(parseInt(player.Do("LightSource Aperture")));

            document.getElementById("txt_ls_aperture").value = player.Do("LightSource Aperture");

            //LightSource: set Cast shadow

            if (player.Do("LightSource CastShadows") == 1) {

                document.getElementById("cb_ls_Castshadows").checked = true

            } else {

                document.getElementById("cb_ls_Castshadows").checked = false

            }

            //LightSource: set Softening

            $find("<%= slider_ls_Softening.ClientID %>").set_value(parseInt(player.Do("LightSource Softening") * 100));

            document.getElementById("txt_ls_Softening").value = player.Do("LightSource Softening") * 100;

            //LightSource: set Intensity

            $find("<%= slider_ls_intensity.ClientID %>").set_value(parseInt(player.Do("LightSource Intensity") * 10));

            document.getElementById("txt_ls_intensity").value = player.Do("LightSource Intensity") * 10;

        }

 

        /* ------------------------------------------------------------ */

        // Event handlers.

        /* Increase the count of the 'loaded' global variable, this is used to

        * check when all the Telerik controls have been loaded before sending

        * commands to the player. */

        function HandleClientLoad() {

            loadedControls++;

        }

        /* ------------------------------------------------------------ */

        /* Change the LightSource Enabled  */

        function HandleValueChange_Enabled(sender, arg) {

            var player = document.getElementById("KribiPlayer");

            if (document.getElementById("cb_ls_enabled").checked) {

                player.Do("LightSource Enabled 1");

            } else {

                player.Do("LightSource Enabled 0");

            }

        }

        /* ------------------------------------------------------------ */

        /* Change the LightSource Aperture  */

        function HandleValueChange_Aperture(sender, arg) {

            var player = document.getElementById("KribiPlayer");

            player.Do("LightSource Aperture " + sender.get_value());

            document.getElementById("txt_ls_aperture").value = sender.get_value();

        }

        /* ------------------------------------------------------------ */

        /* Change the LightSource Cast Shadow  */

        function HandleValueChange_CastShadows(sender, arg) {

            var player = document.getElementById("KribiPlayer");

            if (document.getElementById("cb_ls_Castshadows").checked) {

                player.Do("LightSource CastShadows 1");

            } else {

                player.Do("LightSource CastShadows 0");

            }

        }

        /* ------------------------------------------------------------ */

        /* Change the LightSource Softening  */

        function HandleValueChange_Softening(sender, arg) {

            var player = document.getElementById("KribiPlayer");

            player.Do("LightSource Softening " + (sender.get_value() / 100));

            document.getElementById("txt_ls_Softening").value = sender.get_value();

        }

        /* ------------------------------------------------------------ */

        /* Change the LightSource Intensity  */

        function HandleValueChange_Intensity(sender, arg) {

            var player = document.getElementById("KribiPlayer");

            player.Do("LightSource Intensity " + sender.get_value() / 10);

            document.getElementById("txt_ls_intensity").value = sender.get_value();

        }

        /* ------------------------------------------------------------ */

        /* Change the LightSource Color  */

        function SetLightSourceColor(var_color) {

            var player = document.getElementById("KribiPlayer");

            var indexLightSource = player.Do("LightSource GetCurrent ");

            if (indexLightSource != 'null') {

                player.Do("LightSource Color '" + var_color + "'");

            } else {

                alert("No LightSource selected!");

            }

        }

 

        /* ------------------------------------------------------------ */

        // Tools

        function CameraOrbit() {

            // Make the camera orbit around the scene center.

            var player = document.getElementById("KribiPlayer");

            player.Do("Tool SetCurrent 'CameraOrbit'");

            player.Do("ToolsPreferences OrbitMode ObjectCenter");

        }

        /* ------------------------------------------------------------ */

        function InstanceHorizontalPlaneMove() {

            // Set Tool InstanceHorizontalPlaneMove

            var player = document.getElementById("KribiPlayer");

            player.Do("Tool SetCurrent 'InstanceHorizontalPlaneMove'");

            player.Do("View SelectionStyle None");

        }

        /* ------------------------------------------------------------ */

        function InstanceVerticalRotate() {

            // Set Tool InstanceVerticalRotate

            var player = document.getElementById("KribiPlayer");

            player.Do("Tool SetCurrent 'InstanceVerticalRotate'");

            player.Do("View SelectionStyle None");

        }

 

        /* ------------------------------------------------------------ */

        // Render

        function render_Wireframe() {

            // Renderer Shading Wireframe

            var player = document.getElementById("KribiPlayer");

            player.Do("Renderer Shading Wireframe");

        }

        /* ------------------------------------------------------------ */

        function render_Flat() {

            // Renderer Shading Flat

            var player = document.getElementById("KribiPlayer");

            player.Do("Renderer Shading Flat");

        }

        /* ------------------------------------------------------------ */

        function render_Textured() {

            // Renderer Shading Textured

            var player = document.getElementById("KribiPlayer");

            player.Do("Renderer Shading Textured");

        }

        /* ------------------------------------------------------------ */

        function render_Realistic() {

            // Renderer Shading Realistic

            var player = document.getElementById("KribiPlayer");

            player.Do("Renderer Shading Realistic");

        }

 

        /* ------------------------------------------------------------ */

        // Roll over

        /* ------------------------------------------------------------ */

        // Roll over images

        function MouseInImages(id, image) {

            var hidden_id = 'HI_' + id;

            if (window.document.getElementById(hidden_id).value == 0) {

                window.document.images.namedItem(id).src = image;

            }

        }

        /* ------------------------------------------------------------ */

        //Roll out images

        function MouseOutImages(id, image) {

            var hidden_id = 'HI_' + id;

            if (window.document.getElementById(hidden_id).value == 0) {

                window.document.images.namedItem(id).src = image;

            }

        }

 

        /* ------------------------------------------------------------ */

        // rendering - active Image

        function changeImagesCube(id, images) {

            var hidden_id = 'HI_' + id;

            //set that image was been clicked

            window.document.getElementById(hidden_id).value = 1;

            window.document.images.namedItem(id).src = images;

            for (i = 1; i < 5; i++) {

                var cycle_id = 'Cube_img' + i;

                if (cycle_id != id) {

                    var hidden_id_cycle = 'HI_' + cycle_id;

                    switch (cycle_id) {

                        case 'Cube_img1':

                            window.document.images.namedItem(cycle_id).src = '/Products/Kribi 3D Player/FeaturesLab/page_example/images/ShadingMode_Wireframe.png';

                            window.document.getElementById(hidden_id_cycle).value = 0;

                            break;

                        case 'Cube_img2':

                            window.document.images.namedItem(cycle_id).src = '/Products/Kribi 3D Player/FeaturesLab/page_example/images/ShadingMode_Flat.png';

                            window.document.getElementById(hidden_id_cycle).value = 0;

                            break;

                        case 'Cube_img3':

                            window.document.images.namedItem(cycle_id).src = '/Products/Kribi 3D Player/FeaturesLab/page_example/images/ShadingMode_Textured.png';

                            window.document.getElementById(hidden_id_cycle).value = 0;

                            break;

                        case 'Cube_img4':

                            window.document.images.namedItem(cycle_id).src = '/Products/Kribi 3D Player/FeaturesLab/page_example/images/ShadingMode_Realistic.png';

                            window.document.getElementById(hidden_id_cycle).value = 0;

                            break;

                    }

                }

            }

        }

 

        /* ------------------------------------------------------------ */

        // camera - active image

        function changeImagesCamera(id, image) {

            var hidden_id = 'HI_' + id;

            //set that image was been clicked

            window.document.getElementById(hidden_id).value = 1;

            window.document.images.namedItem(id).src = image;

            for (i = 1; i < 4; i++) {

                var cycle_id = 'Camera_img' + i;

                if (cycle_id != id) {

                    var hidden_id_cycle = 'HI_' + cycle_id;

                    switch (cycle_id) {

                        case 'Camera_img1':

                            window.document.images.namedItem(cycle_id).src = '/Products/Kribi 3D Player/FeaturesLab/page_example/images/Camera_CameraOrbit.png';

                            window.document.getElementById(hidden_id_cycle).value = 0;

                            break;

                        case 'Camera_img2':

                            window.document.images.namedItem(cycle_id).src = '/Products/Kribi 3D Player/FeaturesLab/page_example/images/Instance_MoveHorizontalPlane.png';

                            window.document.getElementById(hidden_id_cycle).value = 0;

                            break;

                        case 'Camera_img3':

                            window.document.images.namedItem(cycle_id).src = '/Products/Kribi 3D Player/FeaturesLab/page_example/images/Instance_RotateUD.png';

                            window.document.getElementById(hidden_id_cycle).value = 0;

                            break;

                    }

                }

            }

        }

 

     </script>