﻿var m_activeMaterialPlacement = 'all';
var m_activeplacements = null;
var m_configStarted = false;
var m_measureVisible = false;

var resizeTimer = null;
window.onresize = function() {
    clearTimeout( resizeTimer );
    resizeTimer = setTimeout( 'WindowResized()', 500 );
}

function GetClientParameters()
{
    var vetArea = document.getElementById( 'ViewpointArea' );
    return 'viewWidth=' + vetArea.clientWidth + ',viewHeight=' + vetArea.clientHeight;
}

function InitializeConfiguration() {
    var clientParams = GetClientParameters();
    SendMessage( 'initialize', clientParams );
}

function ShowReport()
{
    SendMessage( 'checkGarbage' );
}

function ShowMeasureSticks()
{ 
	if( vmp == null || !vetInstalled )
		return;

    if( !m_measureVisible )
    {
        var orbd = vmp.GetProperty('MTSScene','orbd');
        var rot = vmp.GetProperty('MTSScene','rot_');
        var tra = vmp.GetProperty('MTSScene','tra_');
        var pivt = vmp.GetProperty('MTSScene','pivt');
        var params = 'orbd=' + orbd + ',rot=' + rot + ',tra=' + tra + ',pivt=' + pivt;
        
        EnableGrid( false );
        SendMessage( 'showMeasurements', params );
        
        m_measureVisible = true;
    }
    else
        HideMeasures();
}

function OpenReportWindow()
{
    ExecuteSceneCapture();

    reportWin.location = "report.aspx";
	reportWin.focus();
}

function ShutdownConfiguration() {
    var clientParams = GetClientParameters();
    SendMessage( 'shutdown', clientParams );
}

function WindowResized()
{    
    var clientParams = GetClientParameters();
    SendMessage( 'setClientProperties', clientParams );
}

function LibraryCategorySelected( categoryName ) {
    if( categoryName == 'BaseElements' )
		SendMessage( 'buildStateSelected' );
    else if( categoryName == 'Materials' )
		SendMessage( 'materialStateSelected' );
	else if( categoryName == 'Accessories' )
		SendMessage( 'accessoryStateSelected' );
	else if( categoryName == 'Combinations' )
    	SendMessage( 'combinationStateSelected' );
}

function ConfirmRemoveGarbage()
{
        var agree = confirm("Raporttisivua ei voida näyttää koska kokoonpano on kesken. Jos haluat jatkaa ohjelma poistaa ylimääräiset osat.");
        if( agree ) 
            SendMessage('removeGarbage');
        else    
            reportWin.close();
}

function LibraryItemSelected( itemName ) {    
    if( selectedTab == 'combinations_tab' && m_configStarted )
    {
        var agree = confirm( confirmNewInfo );
        if( !agree ) 
            return;
    }
    
    SendMessage( 'libraryItemSelected', 'itemSelected=' + itemName );
}

function MaterialItemSelected( itemName ) {
    SendMessage( 'materialItemSelected', 'itemSelected=' + itemName );
}

function InstantiatePlacer( placerName ) {
    SendMessage( 'instantiatePlacer', 'contentSelected=' + placerName );
    m_configStarted = true;
}

function SelectElement( elementName ) {
    SendMessage( 'selectElement', 'contentSelected=' + elementName );
}

function ActivatePlacement( placementName ){
    var activePlacements = "";
    var cell= document.getElementById( 'materialplacementCell' );
    var inputs = cell.getElementsByTagName( "input" );

    for (z = 0; z < inputs.length; z++)
    {
        var child = inputs[ z ];
        if( child.getAttribute('type') == 'checkbox' )
        {
            if ( child.checked == true ) {
                activePlacements += ( child.value + "<" );
            }
        }
    }
    
    SendMessage( 'activatePlacement', 'materialPlacement=' + activePlacements );
}

function SetActivateMaterialPlacement( placementName ) {
    m_activeplacements = placementName.split( "," );
    m_activeMaterialPlacement = placementName;
}

function Clear() {
    var agree = confirm( confirmNewInfo );
    if( agree ) {
        window.location.reload( false );
    }
}

function Remove() {
    SendMessage( 'remove' );
}

function Undo() {
    SendMessage( 'undo' );
}

function Redo() {
    SendMessage( 'redo' );
}

function containsString( array, checkname )
{
	if ( array == null )
    	return false;
    for ( var xyz = 0; xyz < array.length; xyz++) {
        if ( array[ xyz ] == checkname )
            return true;
    }
    return false;
}
