var waitD=3000;
var showD=1500;
var slideD=1500;

var p_mids={ p1:933, p2:908, p3:883, p4:858 };
var pbs={ p1:100, p2:75, p3:50, p4:25 };
var curP = "p1";

var pChain = new Chain();
var nextF = function(){};
var tFx = new Fx();
var aFx = new Fx();
var bFx = new Fx();

var fadePs = function(id) {
 $("p"+id+"b").set("opacity", 0);
 $("p"+id+"b").setStyle("width", 728);
 tFx.cancel();
 tFx = new Fx.Tween("p"+id+"b", { duration:showD, link:"chain" });
 tFx.start("opacity", 1);
 nextF = pChain.callChain();
};
var movePs = function(id) {
 if(curP.substr(1, curP.length-1) < id) {
  for(var p=4; p >= id; p--) {
   $("p"+p+"a").setStyle("width", 0);
   $("p"+p+"b").setStyle("width", 0);
  }
  $("p"+id+"a").setStyle("left", pbs["p"+id]);
  $("p"+id+"a").setStyle("right", "auto");
  $("p"+id+"b").setStyle("left", pbs["p"+id]);
  $("p"+id+"b").setStyle("right", "auto");
 }
 else {
  for(var p=1; p < 5; p++) {
   $("p"+p+"a").setStyle("width", 0);
   $("p"+p+"b").setStyle("width", 0);
  }
  $("p"+id+"a").setStyle("left", "auto");
  $("p"+id+"a").setStyle("right", 100-pbs["p"+id]);
  $("p"+id+"b").setStyle("left", "auto");
  $("p"+id+"b").setStyle("right", 100-pbs["p"+id]);
 }
 curP = "p"+id;
 $(curP+"b").set("opacity", 0);
 aFx.cancel();
 aFx = new Fx.Morph(curP+"a", {duration:slideD, link:"chain", transition: Fx.Transitions.Quad.easeInOut});
 aFx.start({ "width": [0, 728] });
 bFx.cancel();
 bFx = new Fx.Morph(curP+"b", {duration:slideD, link:"chain", transition: Fx.Transitions.Quad.easeInOut});
 bFx.start({ "width": [0, 728] });
 $(curP+"a").set("opacity", 1);

 for(var p=1; p < 5; p++) {
  var bar = "p" + p;
  var fx = new Fx.Morph(bar, { duration:slideD, link:"chain", transition:Fx.Transitions.Quad.easeInOut });
  if(id <= p) fx.start({ "left":p_starts[bar] });
  else fx.start({ "left":p_mids[bar] });
 }
 if(id > 1) nextF = pChain.callChain();
 else iCycle();
};

var fadeP1 = function() {fadePs(1)};
var fadeP2 = function() {fadePs(2)};
var fadeP3 = function() {fadePs(3)};
var fadeP4 = function() {fadePs(4)};
var moveP1 = function() {movePs(1)};
var moveP2 = function() {movePs(2)};
var moveP3 = function() {movePs(3)};
var moveP4 = function() {movePs(4)};

function iCycle() {
 pChain.wait(waitD).chain(fadeP1).wait(waitD).chain(moveP2);
 pChain.wait(waitD).chain(fadeP2).wait(waitD).chain(moveP3);
 pChain.wait(waitD).chain(fadeP3).wait(waitD).chain(moveP4);
 pChain.wait(waitD).chain(fadeP4).wait(waitD).chain(moveP1);
 nextF = pChain.callChain();
}
