var slider_timer = false;
var permenant_stop = false;
var current_slice_id = 0;
var this_transition = false;


var forward = 1;
var backward = 2;

function transition_home_screen(screen_id, direction)
{
  remove_video();
  
  var sh = $("screen-holder");
  sh.select(".screen").each(function(scr){   
    var new_index = (parseInt(scr.getStyle("zIndex")) || 2)-1;
    scr.setStyle({"zIndex":new_index});
  });
  var selected = $("screen"+screen_id);
  
  selected.setStyle({ "zIndex":3, top:-selected.getHeight()+"px", display:"block"});
  new Effect.Morph(selected, {style:{top:"0px"}, duration:2});
  
  try
  {
    var button_holder = $("screen-buttons");
    button_holder.select("a").invoke("removeClassName", "selected");
    button_holder.select("a")[screen_id].addClassName("selected");
  }
  catch(err){}
  
  var title = selected.down(".screen-title").innerHTML;
  var main_title = $("screen-holder-title");
  main_title.update("");
  main_title.setStyle({opacity:0.1});
  setTimeout(function(){ 
    main_title.update(title); 
    new Effect.Appear(main_title);
  }, 1000);
  
  current_slice_id = screen_id;
}

function transition_theatre_screen(screen_id, direction)
{
  remove_video();
  
  var sh = $("screen-holder");
  sh.select(".screen").each(function(scr){   scr.setStyle({"zIndex":1})   });
  var selected = $("screen"+screen_id);
  var selected_static = selected.down(".static");
  var selected_img = selected_static.down("img");

  if(direction == forward)
  {
    selected.setStyle({"zIndex":2});
    selected_img.setStyle({"float":"left"});
    selected_static.setStyle({left:"0px", width:"0px", right:"auto", "text-align":"left"});
    new Effect.Morph(selected_static, {style:{width:selected_img.getWidth()+"px"}, duration:2});
  }
  else
  {
    selected.setStyle({"zIndex":2});
    selected_img.setStyle({"float":"right"});
    selected_static.setStyle({right:"0px", width:"0px", left:"auto", "text-align":"right", "zIndex":2});
    new Effect.Morph(selected_static, {style:{width:selected_img.getWidth()+"px"}, duration:2});
  }

  current_slice_id = screen_id;
}




function next_slide(){
  try
  {
    if($("screen"+(current_slice_id+1)))
      this_transition(current_slice_id+1, forward);
    else
      this_transition(0, forward);
  }
  catch(err){alert(err)}
}

function previous_slide(){
  try
  {
    if($("screen"+(current_slice_id-1)))
      this_transition(current_slice_id-1, backward);
    else
    {
      var last_id = parseInt($$(".screen").last().id.replace(/screen/, ""));
      this_transition(last_id, backward);
    }
  }
  catch(err){alert(err)}
}


function stateChangeCallback(info){
  if(info.newstate=="PAUSED" || info.newstate=="IDLE")
  {
    $("screen-holder").insert("<a href='#' onclick='remove_video(); return false;' id='video-close-button'>Close Video</a>");
  }
  else if(info.newstate=="PLAYING")
  {
    $('video-close-button').remove();
  }
}

var player;
function playerReadyCallback(obj) {
  player = document.getElementById(obj['id']);
  player.addModelListener('STATE', 'stateChangeCallback');
};

function place_video(screen_id, video_url)
{
  permenant_stop = true;
  clearInterval(slider_timer);
  var scr = $('screen'+screen_id);
  
  var height = parseInt(scr.down("img").getHeight());
  var width = parseInt(scr.down("img").getWidth());
  scr.down(".static").hide();
  
  var dyn = scr.down(".dynamic");
  dyn.update("<div id='vidlocation'>You do not appear to have flash installed.<br/>To view this content you must <a href='http://www.adobe.com/products/flashplayer/'>download Adobe Flash Player</a>.</div>")

  var flashvars = {
    file: encodeURIComponent(video_url),
    autostart: true,
    skin: "/video_skins/modieus.swf",
    playerready: "playerReadyCallback",
    controlbar: "over"
  };

  var params ={
    allowfullscreen: 'true',
    allowscriptaccess: 'always',
    wmode : 'transparent'
  };

  var attributes = {
    id: 'vidlocation',
    name: 'vidlocation'
  };

  swfobject.embedSWF("/player-viral.swf", "vidlocation", width, height, "9.0.0","expressInstall.swf", flashvars, params, attributes);
}

function remove_video(){
  if($('video-close-button'))
    $('video-close-button').remove();
  
  $$(".screen .dynamic").invoke("update", "");
  
  $$(".screen .static").invoke("show");
  permenant_stop = false;
}

document.observe("dom:loaded", function(){
  if($$(".home").length>0)
  {
    this_transition = transition_home_screen;
    
    var sh = $('screen-holder');
    sh.observe("mouseover", function(){
      clearInterval(slider_timer);
    });
  
    sh.observe("mouseout", function(){
      clearInterval(slider_timer);
      if(!permenant_stop)
        slider_timer = setInterval(next_slide, 6500);
    });
  
    if(!permenant_stop)
      slider_timer = setInterval(next_slide, 6500);
  }
  else if($$(".template3").length>0)
  {
    this_transition = transition_theatre_screen;
  }
})



/* ----------------------- */



function show_alt()
{
  var class_name = ""
  $(this).classNames().each(function(cl){
    if(!cl.include("activator"))
      class_name = cl;
  });
  
  var new_screen = $$("."+class_name+" .tv-alt")[0];
  new_screen.show();
}

function hide_alt()
{
  var class_name = ""
   $(this).classNames().each(function(cl){
     if(!cl.include("activator"))
       class_name = cl;
   });
  $$("."+class_name+" .tv-alt").invoke("hide");
}

document.observe("dom:loaded", function(){
  $$(".tv-activator").each(function(act){
    act.observe("mouseover", show_alt);
    act.observe("mouseout", hide_alt);
  });
});

/* ----------------------- */

function show_profile_pic(pic_id,elm)
{
  $("picture-frame").select(".panoramic").invoke("setStyle", {zIndex:1});
  $(pic_id).setStyle({zIndex:2, display:'none'}); 
  $(pic_id).appear();
  
  $$("#picture-changer .selected").invoke("removeClassName", "selected");
  $(elm).addClassName("selected");
}