var browser = null;
var context = null;
var listener = null;
var listenersSetup = false;

// Helper to move the newly created object to a new place in the world - offsets X coordinate
// Click handler - make a new piece of X3D from an XMLHttpRequest!

function onLoad()
{
	initAjax3d("world6.wrl");
	document.getElementById('anketa').innerHTML = sendRequest("anketa.php");
} 

function createX3DFromString(str)
{
	var scene = browser.createX3DFromString(str);
 if (scene) 
	var rootnodes = scene.getRootNodes();
		
	var i;
	// Do a bit of work to deal with the quirky X3D add/remove root node paradigm
	for (i = 0; i < rootnodes.length; i++)
	{
		node = rootnodes[i];
   
		scene.removeRootNode(node);

		context.addRootNode(node);
	}
	
}

function hlasuj(i)
{  
  var anketa="ank"+i;  
  //alert("anketa");
  //document.getElementById(anketa).submit(); 
  r = sendRequest("anketa.php?ankt="+i);
 // alert(r);
  document.getElementById('anketa').innerHTML = r;
 //alert("yap");
}

function initAjax3d(filename)
{
 	browser = null;
	context = null;
	listenersSetup = false;

    browser = document.FLUX.getBrowser();

    if (browser != null)
    {
	    listener = new Object();
	    listener.browserChanged = browserChanged;
	    browser.addBrowserListener(listener);
    		
    if (filename != null){
			browser.loadUrlS (filename);
			
    } 
		else
		    context = browser.getExecutionContext();
	}
 }
 
var box_moving = false; 
var move_dir = "";
var i = 0;

var move_x = 4.5;
var move_y = 4.5;
var move_z = 6.0;
var d_y = 0.5;

function moveScale(move_dir){
  
  if (context)
    {
		var rootnodes = null;
		var field = null;
        rootnodes = context.getRootNodes();
    var top = rootnodes.length - 1;
    var rootnode = context.getRootNodes()[top];  
	  if (rootnode.getName()=="Facts"){  
       var node = rootnode.getField('children')[0]; //node Scale
       var scale = "";
       var shape = "";
       var geom = "";
    fact_num = sendRequest("getCount.php?load=fact_num");
    for (i=0; i<fact_num; i++){   
       str = node.getField('children')[i+1];
        switch (move_dir){ 
          case 'back':
            str.scale.x = str.scale.x + 0.7;
            str.scale.y = str.scale.y + 0.7;
            str.translation.y += 0.15;
           break;
           case 'for':
             str.scale.x = str.scale.x - 0.7;
             str.scale.y = str.scale.y - 0.7;
             str.translation.y -= 0.15;
           break;  
        }
	    } 
       return null;
    } else 
       alert("Cannot get node");
   }
   else alert('Cannot get context');
}

var count = 0;

function removeFacts(){
  context = browser.getExecutionContext(); 
       if (context == null)
	       {
		        alert("Couldn't get executionContext object!");
		        return;
	       }  
	 
  var rootnodes = context.getRootNodes();       
	var i;
	var top = rootnodes.length - 1;
  var node = context.getRootNodes()[top]; 
  if (node.getName()=="Facts")  
    context.removeRootNode(node);
  node = null;
  
}

function browserChanged(evt)
{
  
	if (evt == 0)		// BROWSER_INITIALIZED
	{
	    context = browser.getExecutionContext();

	    setupListeners();
	}
}

function setFactListenerObserver(fact_id,nodeName,fieldName,callback)
{
    if (context)
    {
		var rootnodes = null;
		var field = null;
        rootnodes = context.getRootNodes();
    var top = rootnodes.length - 1;
    var rootnode = context.getRootNodes()[top];  
	  if (rootnode.getName()=="Facts"){  
       var node = rootnode.getField('children')[fact_id+1];
         
       var sensor = node.getField('children')[0];
       
       if (sensor.getName() == nodeName){
			        field = sensor.getField(fieldName);
			        if (field){
				          var observer = new Object;
				          observer.readableFieldChanged = callback;
				          observer.field = field;
				          field.addFieldEventListener(observer);
				          field = null;
				          return observer;
			         }
			         sensor = null;
	     }
       return null;
    } else 
       alert("Cannot get node");
   }
   else alert('Cannot get context');
 }   

function setListenerObserver(nodeName,fieldName,callback)
{
    if (context)
    {
		var node = null;
		var field = null;
        node = context.getNode(nodeName);
		if (node)
		{
			field = node.getField(fieldName);
			if (field)
			{
				var observer = new Object;
				observer.readableFieldChanged = callback;
				observer.field = field;
				field.addFieldEventListener(observer);
				field = null;
				return observer;
			}
			node = null;
		}
		else 
		  alert("cannot find node");
	}

	return null;
}


// JavaScript Document
