// array degli oggetti mobili
var movObj = new Array("sfumo", "news", "pintado", "sat_audio", "sat_video", "sat_links", "sat_guestbook", "sat_motodia");

// oggetto PmovObj[i]:
// obj = riferimento al puntatore dell'oggetto
// objId = nome dell'oggetto
// run = indica lo stato dell'oggetto:
// 0 fermo
// 1 va verso home
// 2 moto normale
// 3 fine moto verso home, appare il testo, passa allo stato 0
// cont = contatore posizione
// page = url pagina da visualizzare
var PmovObj = new Array();

var res_x=0;  // risultato funzione posizione
var res_y=0;  // risultato funzione posizione
var org_x=0;
var org_y=0;

var run_sfumo = 1;  // 1 = sfumo avviato
var run_move = 1;  // 1 = moto avviato

var centro_x = 0;
var centro_y = 260;
var opacity=0;

var spazio;

// contatore del movimento dei satelliti verso home
// -1 fermo
// 0..9 moto
// 10 arrivo
var cont_sat_gohome=-1;
var cont_fade=0;
var timeout_move=500;

// imposta lo stato dell'oggetto
// se qualcuno sta gia' andando verso home o se qualcuno e' gia' arrivato, torna tutto al centro
function setObjectRun(objId, run) {
  if (cont_sat_gohome == -1) {
    for (i in PmovObj) {
      if (PmovObj[i].objId == objId) {
        PmovObj[i].run = run;
        break;
      }
    }
  } else {
    resetAll();
  }
}

function initPolka() {
  layerStyleRef="layer.";
  layerRef="document.all";
  styleSwitch="";

  spazio = document.getElementById('spazio');
  setOpacity(spazio,95);

  // crea l'array di puntatori agli oggetti in movimento
  for (objId in movObj) {
    tmpObj = new Object();
    tmpObj.objId = movObj[objId];
    tmpObj.obj = document.getElementById(movObj[objId]);
    tmpObj.run = 2;
    switch (movObj[objId]) {
      case "sfumo" :
        tmpObj.cont = 0;
        tmpObj.page = "";
        setOpacity(tmpObj.obj, 0);
        tmpObj.obj.style.visibility = 'visible';
      case "news" :
        tmpObj.cont = 0;
        tmpObj.page = "";
        setOpacity(tmpObj.obj, 80);
      case "pintado" :
        tmpObj.cont = Math.PI;
        tmpObj.page = "";
        break;
      case "sat_audio" :
        tmpObj.cont = (Math.PI*3)/2;
        tmpObj.page = "sat_audio.htm";
        break;
      case "sat_video" :
        tmpObj.cont = Math.PI/2;
        tmpObj.page = "sat_video.htm";
        break;
      case "sat_links" :
        tmpObj.cont = 0;
        tmpObj.page = "sat_links.htm";
        break;
      case "sat_guestbook" :
        tmpObj.cont = Math.PI;
        tmpObj.page = "phpbook/index.html";
        break;
      case "sat_motodia" :
        tmpObj.cont = Math.PI+0.7;
        tmpObj.page = "phpbook/motodia-index.html";
        break;
      default :
        tmpObj.cont = 0;
        tmpObj.page = "";
    }
    PmovObj[objId] = tmpObj;
  }

  // gira la polka!
  moveObject();
}

function resetAll() {
  hideObj('spazio');
  for (i in PmovObj) {
    PmovObj[i].run = 2;
  }
  cont_sat_gohome=-1;
  timeout_move=500;
}

function fun1(p) {
  res_x = Math.cos(p)*20;
  res_y = Math.abs(Math.sin(p)*10);
}

function fun2(p) {
  res_x = Math.cos(p)*300;
  res_y = Math.sin(p)*190;
}

function funHome(obj, cont_gohome) {
  if (cont_gohome==-1) {
    cont_gohome=1;  // avvia contatore
    org_x = parseInt(obj.style.left);
    org_y = parseInt(obj.style.top);
    inc_x = org_x/9;
    inc_y = org_y/9;
    org_x += 5;
    org_y += 5;
  }
  if (cont_gohome<10) {
    obj.style.left = org_x-(inc_x*cont_gohome);
    obj.style.top = org_y-(inc_y*cont_gohome);
    cont_gohome += 1;
  }
  return cont_gohome;
}

function moveObjectPintado(i) {
  PmovObj[i].cont-=0.2;
  if (PmovObj[i].cont<0) {PmovObj[i].cont = 2*Math.PI};

  if (PmovObj[i].run > 0) {
    fun1(PmovObj[i].cont);
    PmovObj[i].obj.style.left = ((850-300)/2+res_x);
    PmovObj[i].obj.style.top = centro_y+res_y;
  }
}

function moveObjectSat(i) {
  obj = PmovObj[i].obj;
  run = PmovObj[i].run;
  if (run == 0) {
  } else if (run == 1) {
    if (cont_sat_gohome<10) {
      cont_sat_gohome = funHome(obj, cont_sat_gohome);
      timeout_move = 100;
    } else {
      PmovObj[i].run = 3;
      showObj('spazio');
    }
  } else if (run == 2) {
    fun2(PmovObj[i].cont);
    obj.style.left = ((850-100)/2+res_x);
    obj.style.top = centro_y+60+res_y;
  }
}

function moveObject(){
  if (run_move == 1) {
    if(!document.getElementById) return;

    for (i in PmovObj) {
      obj = PmovObj[i].obj;
      run = PmovObj[i].run;
      cont = PmovObj[i].cont;
      switch (PmovObj[i].objId) {
        case "sfumo" :
          cont_fade++;
          if (cont_fade > 20) {
            cont_fade = 0;

            opacity += 10;
            if (opacity <= 100){
              setOpacity(obj,opacity);
            } else if (opacity <= 200) {
              setOpacity(obj,200-opacity);
            } else {
              opacity = 0;
            }
          }
          break;

        case "news" : break;

        case "pintado" :
          moveObjectPintado(i);
          break;

        default:
          PmovObj[i].cont+=Math.random()/100;
          if (PmovObj[i].cont>2*Math.PI) {PmovObj[i].cont = 0};

          if (run>0) {
            moveObjectSat(i);
          }
          if (run==3) {
            PmovObj[i].run=0;
            // carica pagina audio
            spazio.src=PmovObj[i].page;
            spazio.reload;
            timeout_move=3000;
          }
          break;
      }

    }
    window.setTimeout("moveObject()", timeout_move);
  }
}

function setOpacity(obj,opacity){
  opacity=(opacity==100) ? 99.999 : opacity;
  obj.style.filter = "alpha(opacity:"+opacity+")";  // IE/Win
  obj.style.KHTMLOpacity = opacity/100; // Safari<1.2, Konqueror
  obj.style.MozOpacity = opacity/100;   // Older Mozilla and Firefox
  obj.style.opacity = opacity/100;      // Safari 1.2, newer Firefox and Mozilla, CSS3
}

function showObj(objName){
  obj = document.getElementById(objName);
  obj.style.visibility = "visible";
}

function hideObj(objName){
  obj = document.getElementById(objName);
  obj.style.visibility = "hidden";
}

  /*
  if (navigator.appName == "Netscape") {
    layerStyleRef="layer.";
    layerRef="document.all";
    styleSwitch="";
  } else {
    layerStyleRef="layer.style.";
    layerRef="document.all";  //
    styleSwitch=".style";
  }
  */


