//Settings
var ratio=25;
var border=6;
var spacing=450;
var stepping=100;
var big_mover='mover';
var small_mover='smallmover';
var big_holder='holder';
var small_holder='smallholder';
var mover_controls = new Array('controls','smallholder','smallholder_arrow');
var big_limit;
var small_limit;

var moverUpdate=function(){
  if($(big_mover)){
  	//Init
  	$(big_mover).style.left='60px';
  	$(big_mover).style.top='0px';
  	//$(big_holder).onselectstart = function () { return false; } // ie disble select
  	//$(big_holder).onmousedown = function () { return false; } // mozilla disble select
  	var b_bx=($(big_holder).offsetWidth-$(big_mover).offsetWidth)-spacing;
  	var b_by=($(big_holder).offsetHeight-$(big_mover).offsetHeight)-spacing;
  	var b_ex=0+spacing;
  	var b_ey=0+spacing;
  	big_limit = new Array(b_bx,b_by,b_ex,b_ey);
  	new Draggable(big_mover, {  handle: big_mover,change:function(){limitContainer( $(big_mover),big_limit);updateSmallMover(); }  } ) ;
  }
  if($(small_mover)){
  	//Calc small nav window size
  	$(small_mover).style.left='0px';
  	$(small_mover).style.top='0px';
  	$(small_mover).onselectstart = function () { return false; } // ie disble textselect
  	$(small_mover).onmousedown = function () { return false; } // mozilla disble textselect
  	var x=$(big_mover).offsetWidth-$(big_holder).offsetWidth;
  	var hx=$(big_holder).offsetWidth/ratio;
  	var mx=$(big_mover).offsetWidth/ratio;
  	var sx=x/ratio;
  	var hy=$(big_holder).offsetHeight/ratio;
  	var my=$(big_mover).offsetHeight/ratio;
  	var y=$(big_mover).offsetHeight-$(big_holder).offsetHeight;
  	var sy=y/ratio;
  	$(small_holder).style.width=(mx)+'px';
  	$(small_holder).style.height=(my)+'px';
  	$(small_mover).style.width=(hx-border)+'px';
  	$(small_mover).style.height=(hy-border)+'px';
  	var s_bx=0-(spacing/ratio);
  	var s_by=0-(spacing/ratio);
  	var s_ex=sx+(spacing/ratio);
  	var s_ey=sy+(spacing/ratio);
  	small_limit = new Array(s_bx,s_by,s_ex,s_ey);
  	new Draggable(small_mover, {  handle: small_mover,change:function(){limitContainer( $(small_mover),small_limit);updateBigMover(); } } ) ;
  }
  if($('content_0_1') && firstLoad){
    gotoObjectMover( $('content_0_1'));
    firstLoad=false;
  }
  updateSmallMover();
}


//Array(bx,by,ex,ey)
var limitContainer=function(o,limit){
	if(o.offsetLeft<limit[0]){ o.style.left=limit[0]+"px";}
	if(o.offsetTop<limit[1]){ o.style.top=limit[1]+"px";}
	if(o.offsetLeft>limit[2]){ o.style.left=limit[2]+"px";}
	if(exactPixels(o.style.top)>limit[3]){ o.style.top=limit[3]+"px";} //Fix for topmove past limit when holding mousedown
	if(o.offsetTop>limit[3]){ o.style.top=limit[3]+"px";}
}
var exactPixels= function(v){
	return parseInt(v.substring(0,v.indexOf("px")));
}
var updateBigMover = function(){
      if($(big_mover)){
	$(big_mover).style.left = (0-(exactPixels($(small_mover).style.left)*ratio))+"px"; 
	$(big_mover).style.top = (0-(exactPixels($(small_mover).style.top)*ratio))+"px";
      }
}
var updateSmallMover = function(){
      if($(small_mover)){
	$(small_mover).style.left = (0-(exactPixels($(big_mover).style.left)/ratio))+"px";
	$(small_mover).style.top = (0-(exactPixels($(big_mover).style.top)/ratio))+"px";
      }
}
var moveMover = function(dir){
	if(dir=='Left'){ gotoMover(exactPixels($(big_mover).style.left)+stepping,exactPixels($(big_mover).style.top)) }
	if(dir=='Right'){ gotoMover(exactPixels($(big_mover).style.left)-stepping,exactPixels($(big_mover).style.top)); }
	if(dir=='Up'){ gotoMover(exactPixels($(big_mover).style.left),exactPixels($(big_mover).style.top)+stepping); }
	if(dir=='Down'){ gotoMover(exactPixels($(big_mover).style.left),exactPixels($(big_mover).style.top)-stepping); }
}
var gotoMover = function(x,y){
  new Effect.Move (big_mover,{ x: x, y: y, mode: 'absolute',duration: 1.0,afterFinish:function(){	limitContainer($(big_mover),big_limit);updateSmallMover();}});
/*	$(big_mover).style.left=x+"px";
	$(big_mover).style.top=y+"px";	
	limitContainer($(big_mover),big_limit);
	updateSmallMover();
*/
}
var gotoObjectMover = function(o){
	//gotoMover(200-(o.offsetLeft),30-(o.offsetTop));
	gotoMover((($('holder').offsetWidth-430)/2)-(o.offsetLeft),(($('holder').offsetHeight/6)/2)-(o.offsetTop));
//        new Effect.Move (big_mover,{ x: (200-(o.offsetLeft)), y: (130-(o.offsetTop)), mode: 'absolute',duration: 1.0,afterFinish:function(){updateSmallMover();}});
}
var disableControls = function(){
 for(var i=0;i<mover_controls.length;i++){
   new Effect.Fade($(mover_controls[i]), { duration: 0.1});
 }
}
var enableControls = function(){
 for(var i=0;i<mover_controls.length;i++){
   new Effect.Appear($(mover_controls[i]), { duration: 0.1});
 }
}
var moverenableSelect =  function(){
	/*$(big_holder).onselectstart = function () { return true;  } // ie disble select
	$(big_holder).onmousedown = function () {return true; } // mozilla disble select
	$(small_mover).onselectstart = function () { return true;  } // ie disble select
	$(small_mover).onmousedown = function () {return true; } // mozilla disble select
*/
}
var moverdisableSelect=function(){
	/*$(big_holder).onselectstart = function () { return false; } // ie disble select
	$(big_holder).onmousedown = function () { return false; } // mozilla disble select
	$(small_mover).onselectstart = function () { return false; } // ie disble select
	$(small_mover).onmousedown = function () { return false; } // mozilla disble select*/
}
