function moveE(a, sourceId, trText, resText){
  var b = document.getElementById(a);
  var source = document.getElementById(sourceId);
  if(!b || source == null) return;

  if(b.innerHTML == trText && source.__getWrapper != null)return;
  if(b.innerHTML == resText && source.__getWrapper == null){b.innerHTML = trText;return};


  
   
  if(source.__getWrapper == null){
    b.innerHTML = resText;
    MoveElement(source);      
  }
  else {    
    b.innerHTML = trText;    
    source.__getWrapper().restore();    
  }
}

function moveC(a, source, trText, resText){

  var b=document.getElementById(a);
  if(!b || source == null) return;
      
  if(source.__getWrapperContainer == null){
    MoveContainer(source,true);        
    b.innerHTML = resText;
  }
  else{
    source.__getWrapperContainer().restore();
    b.innerHTML = trText;            
  } 
}
var screenSaverHandler;
var screenSaverElements;


function screenQuake(){  
  if(screenSaverElements.length){    
    for(var i=0;i<screenSaverElements.length;i++){
      var e=screenSaverElements[i];
      var plusx = parseInt(Math.random()*10)%2?1:-1;
      var plusy = parseInt(Math.random()*10)%2?1:-1;
      var deltax = parseInt(Math.random()*20)*plusx;
      var deltay = parseInt(Math.random()*20)*plusy;
      var l= e.id.offsetLeft;
      var t = e.id.offsetTop;      
      e.id.style.left = l + deltax < 0?l - deltax:l + deltax + 'px';
      e.id.style.top = t + deltay<0?t - deltay:t + deltay + 'px';
    }
    setTimeout("screenQuake()", 70);
  }
}

var Int = function(src){
    var val = parseInt(new String(src).split('p')[0]);
    if(isNaN(val)) return 0;
    else return val;
  }

  var Px = function(val){
    return val + 'px';
  }

var slideType=-1;
function screenSlide(){  
  if(slideType == -1){
    slideType = new Date().getTime() % 3;    
  }
  if(screenSaverElements.length){    
    for(var i=0;i<screenSaverElements.length;i++){
      var e=screenSaverElements[i];      
      var jump=2 + 3*Getter.browserType;
      if(slideType == 0 || slideType == 1)        
        if(e.id.offsetTop + e.id.offsetHeight >=0) {
          e.id.style.top = e.id.offsetTop - jump + 'px';
        }
      if( slideType == 0 || slideType == 2 )
        if(e.id.offsetLeft +e.id.offsetWidth >= 0){        
          e.id.style.left = e.id.offsetLeft - jump + 'px';
        }      
    }
    setTimeout("screenSlide()", 30);    
  }
  else
    slideType = -1;
}

function screenGravity(){
  if(screenSaverElements.length){    
    setTimeout("screenGravity()",20);
  }
}
var followX = -1;
var followY = -1;




function screenWorshipers(){
  if(screenSaverElements.length){
    for(var i=0;i<screenSaverElements.length;i++){
      var e=screenSaverElements[i];      
      var speed=1+i%9;
      var jumpY=((e.id.offsetTop - followY)/Math.abs(e.id.offsetTop - followY))*speed;
      var jumpX=((e.id.offsetLeft - followX)/Math.abs(e.id.offsetLeft - followX))*speed;
      e.id.style.zIndex=10;
      if(Math.abs(e.id.offsetTop - followY) >= speed)
              e.id.style.top = Px(e.id.offsetTop - jumpY);
      
      if(Math.abs(e.id.offsetLeft - followX) >= speed)
              e.id.style.left = Px(e.id.offsetLeft - jumpX);                 
    }
    setTimeout("screenWorshipers()",10);
  }
}

function screenFollow(){
  this.oldmove = document.onmousemove;
  var self=this;
  document.onmousemove=function(ev){
    if(!screenSaverElements.length){
      document.onmousemove=self.oldmove;      
      return;
    }
    if(!ev) var ev=event;
    followX = ev.clientX;
    followY = ev.clientY;    
  }

  screenWorshipers();
}

var demos=new Array();
demos[0] = screenQuake;
demos[1] = screenSlide;
demos[2] = screenGravity;
demos[3] = screenFollow;

function screenDemo(body, demoNo){
  //alert('|'+document.body.clientWidth+'|'+ document.body.clientHeight+ '|' + document.body.offsetWidth+'|'+ document.body.offsetHeight);
  screenSaverHandler = new MoveContainer(body, false, true);
  screenSaverElements = screenSaverHandler.getElements();
  setTimeout("screenSaverHandler.restore(); refreshIframe()", 14000);  
  demos[demoNo]();
}


/*function screenQuake(body){
  screenSaverHandler = new MoveContainer(body);
  screenSaverElements = screenSaverHandler.getElements();
  setTimeout("screenSaverHandler.restore(); refreshIframe()", 20000);  
  quake();
}

function screenGravity(body){
  screenSaverHandler = new MoveContainer(body);
  screenSaverElements = screenSaverHandler.getElements();
  setTimeout("screenSaverHandler.restore(); refreshIframe()", 20000);  
  gravity();
  }*/