window.onload = function() {
 
   var article = $("article");
   if(article) {
      var moreLinks = article.select('a[class="more"]');
      for(var i = 0; i < moreLinks.length; i++) {
         moreLinks[i].innerHTML = '<img src="assets/more.gif">';
      }
   }
   
   swfobject.embedSWF("swf/rss_scroller.swf", "upcoming", "460", "27", "8.0.0", null, {RSSLocation:'data/upcoming_releases.php',scrollSpeed:__SCROLLSPEED}, {wmode:'transparent'})
   
   embedFLV();
   
   //Init the scrollers after the video writes so that width and height calculations include the video.
   for(var i = 0; i < __SCROLLERS.length; i++) {
      switch(__SCROLLERS[i].type) {
         case "vertical":
            initVerticalScrollerControls(__SCROLLERS[i].id);
            break;
         case "horizontal":
            initHorizontalScrollerControls(__SCROLLERS[i].id);
            break;
      }      
   }
   
   var lists = $$("ul");
   for(var i=0; i < lists.length; i++) {
      var elem = lists[i].getElementsByTagName("li");
      if(elem.length>0) elem[elem.length-1].className += " last";
   }
   
   initNewsLetter();
}

function embedFLV() {   
   if(typeof __VIDEO != "undefined") {
      if(__VIDEO.playlist!="") {
         $("embed").style.display = "block";
         var t = swfobject.embedSWF("swf/video.swf", __VIDEO.id, __VIDEO.width, __VIDEO.height, "8.0.0", null, {videoList:__VIDEO.playlist,clbkVideoStart:'updatePlayList',startIndex:__VIDEO.startIndex,boxArtURL:__VIDEO.boxArtURL,imageURL:__VIDEO.imageURL,autoStart:__VIDEO.autoStart},{wmode:'transparent'});
         
         var playList = __VIDEO.playlist.split("|");
         var vidURL = playList[__VIDEO.startIndex];        

         var embedInput = $("embedtag");
         embedInput.readOnly = true;
      }
   }
}

function updatePlayList(file) {
   var pl = $("playlist");
   if(pl) {
      var listLinks = $("playlist").select("a[rel]");
      var a;
      
      for(var i = 0; i < listLinks.length; i++) {
         a = listLinks[i];
         if(typeof a != "undefined") {
            if(a.rev == file) {
               a.className = "playing";
               
               var embedText = '';
               embedText += '<object width="'+__VIDEO.width+'" height="'+__VIDEO.height+'">';
               embedText += '<param name="movie" value="'+_S+'/player/'+a.rel+'/"></param>\n';
               embedText += '<param name="wmode" value="transparent"></param>'
               embedText += '<embed src="'+_S+'/player/'+a.rel+'/" type="application/x-shockwave-flash" wmode="transparent" width="'+__VIDEO.width+'" height="'+__VIDEO.height+'"></embed>';
               embedText += '</object>';
               
               var et = $("embedtag");
               et.value = embedText;
               $("embedlink").onclick = function() { $("embedoverlay").style.display = "block"; return false };
               $("embedclose").onclick = function() { $("embedoverlay").style.display = "none"; return false };
               
            } else {
               a.className = "";
            }
         }
      }
   } else {
      var embedText = '';
      embedText += '<object width="'+__VIDEO.width+'" height="'+__VIDEO.height+'">';
      embedText += '<param name="movie" value="'+_S+'/player/'+__VIDEO.vid+'/"></param>\n';
      embedText += '<param name="wmode" value="transparent"></param>'
      embedText += '<embed src="'+_S+'/player/'+__VIDEO.vid+'/" type="application/x-shockwave-flash" wmode="transparent" width="'+__VIDEO.width+'" height="'+__VIDEO.height+'"></embed>';
      embedText += '</object>';
      
      var et = $("embedtag");
      et.value = embedText;
      $("embedlink").onclick = function() { $("embedoverlay").style.display = "block"; return false };
      $("embedclose").onclick = function() { $("embedoverlay").style.display = "none"; return false };
   
   }
}

function initNewsLetter() {
/*
   var btnClose = $("nl_close");
   var btnSignUp = $("btn_signupnow");
   btnClose.observe("click", function() { var f=$("formbox");if(f.style.display!="none") Effect.Fade("formbox",{duration:.4}); });
   //$("nl_close").observe("click", function() { var f=$("formbox");f.style.zIndex = -1; f.style.display = "none"; });
   btnSignUp.observe("click", function() { var f=$("formbox");if(f.style.display!="block") Effect.Appear("formbox",{duration:.4}); });
   var dob = $("formbox").select('input[class="mini"]');
   for(var i = 0; i < dob.length; i++) {
      dob[i].observe("focus", function() { this.style.color = 'rgb(0,0,0)'; this.value = ""; });
      dob[i].observe("blur", 
                     function() { 
                        if(isNaN(this.value)||this.value=="") { 
                           this.style.color = '#dfb05d';
                           this.value = ""; 
                           switch(this.id) {
                              case "month":
                                 this.value = "MM";
                                 break;
                              case "day":
                                 this.value = "DD";
                                 break;
                              case "year":
                                 this.value = "YYYY";
                                 break;
                           }
                        } 
                     }
      );
   } */
}

function isDefined( variable) {
    return (typeof(window[variable]) == "undefined")?  false: true;
}

var __SCROLLERS = new Array();
function addScroller(type, id) {
   var scr = new Object();
   scr.type = type;
   scr.id = id;
   __SCROLLERS.push(scr);
}


var __NAVITEMS = new Array();

function initNav() {
   var nav = document.getElementById("nav");
   var topElements = getElementsByClass("top", nav, "li");
   
   var navcookie = readCookie("OPENEDNAV");
   
   for(var i = 0; i < topElements.length; i++) {
      var navItem = topElements[i];
      var subElements = navItem.getElementsByTagName("a");
      
      navItem.id = "nav_" + i;
      var navLink = subElements[0]; //Top level link
      navLink.id = "nav_" + i + "_link";
      subElements = navItem.getElementsByTagName("div");
      if(subElements.length > 0) {
         var sub = subElements[0]; //Sub nav
         sub.id = "nav_" + i + "_sub";
         
         if(navItem.addEventListener) {
            navLink.onclick = function() { return false; };
            navItem.addEventListener("click", navOpen, false);
         } else {
            navLink.onclick = function() { return false; };
            navItem.onclick = navOpen;
         }
         __NAVITEMS.push(navItem);
         
         if(navcookie == navItem.id) {
            navOpen(navcookie);
         }
      }
   }
}

var openedNav;
function navOpen(id2) {
   var id = this.id ? this.id : id2;
   if(openedNav != id) {
      openedNav = id;      
      for(var i = 0; i < __NAVITEMS.length; i++) {
         var sub = document.getElementById(__NAVITEMS[i].id + "_sub");
         if(__NAVITEMS[i].id == id) {
            sub.innerHTML = sub.innerHTML;
            sub.style.display = "block";
            __NAVITEMS[i].style.backgroundColor = "#bd7c25";
         } else {
            sub.style.display = "none";
            __NAVITEMS[i].style.backgroundColor = "#ce8b33";
         }
      }
      
      createCookie("OPENEDNAV", openedNav);
   }
   
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

var FF_SCROLLERS = new Array();

function initVerticalScrollerControls(ref) {
   var module = (typeof ref=="string")? $(ref) : ref;

   var controls = module.select('div[class="controls"]')[0];
   var list = module.select('ul')[0];
   var scrollbar = controls.select('div[class="scrollbar"]')[0];
   var mask = module.select('div[class="scroller_content"]')[0];
   var grabber = controls.select('div[class="grabber"]')[0];   
   var titles = list.select('li');

   var uarrow = controls.select('a[class="uarrow"]')[0];
   var darrow = controls.select('a[class="darrow"]')[0];
   var headers = module.select('h3[id]');
   var headerHeight = 0;

   var contentHeight = $("article").getHeight();
   
   if(titles.length == 0) {
      $("article").style.width = "100%";
      module.style.display = "none";
      return;
   }
   
   for(var i = 0; i < headers.length; i++) {
      headerHeight += headers[i].getHeight();
   }
   
   if(listHeight < contentHeight) {
      for(var i = 0; i < titles.length; i++) {
         titles[i].style.height = maskHeight / titles.length + "px";
      }
   }
   
   var minheight = titles[0].getHeight() * 3;   
   var maskHeight = ((minheight > contentHeight) ? minheight:(contentHeight - headerHeight));
   var listHeight = titles.length * titles[0].getHeight();
   if(listHeight > maskHeight) {
      scrollbar.style.height = (maskHeight - uarrow.getHeight() - darrow.getHeight()) + "px";   
      mask.style.height = maskHeight + "px";
      list.style.height = listHeight + "px";

      if(listHeight > contentHeight - headerHeight) {
         var slider = new Control.Slider(grabber, scrollbar, {
            onSlide: function(v) { var l=list;var height=listHeight-maskHeight;l.style.top=(0-(height*v))+"px"; },
            onChange: function(v) { this.onSlide(v) },
            axis: 'vertical'
         });
         // mozilla
         module.observe('DOMMouseScroll', function(e) { wheel(e, slider, titles.length); });
         // IE/Opera
         module.observe('mousewheel', function(e) { wheel(e, slider, titles.length); });
      
         uarrow.observe('click', function (e) { handle(1, slider, titles.length); });
         darrow.observe('click', function (e) { handle(-1, slider, titles.length); });
         uarrow.onclick = darrow.onclick = function() { return false; };
      }
   } else {
      var contentHeight = $("article").getHeight();

      mask.style.height = contentHeight - headerHeight + "px"; 
      mask.style.width = "100%";
      for(var i = 0; i < titles.length; i++) {
         titles[i].style.height = (contentHeight-headerHeight)/ titles.length + "px";
      }      
      controls.style.display = "none";
   } 
}

/** Initializes horizontal title scrollers, including element resizing. */
function initHorizontalScrollerControls(ref) {
   var module = (typeof ref=="string")? $(ref) : ref;

   var controls = module.select('div[class="controls"]')[0];
   var header = module.select('h3[id]')[0];
   var list = module.select('ul')[0];
   var scrollbar = controls.select('div[class="scrollbar"]')[0];
   var mask = module.select('div[class="scroller_content"]')[0];
   var grabber = controls.select('div[class="grabber"]')[0];   
   var larrow = controls.select('a[class="larrow"]')[0];
   var rarrow = controls.select('a[class="rarrow"]')[0];
   
   var titles = list.select("li");

   if(titles.length == 0) {
      module.style.display = "none";
      return;
   }
   
   scrollbar.style.width = (module.getWidth() - header.getWidth() - larrow.getWidth() - rarrow.getWidth()) + "px";
   
   if(titles.length > 4) {
      list.style.width = (titles.length * titles[0].getWidth()) + "px";

      var slider = new Control.Slider(grabber, scrollbar, {
         onSlide: function(v) { var l=list;var width=l.getWidth()-mask.getWidth();l.style.left=(0-(width*v))+"px" },
         onChange: function(v) { this.onSlide(v) }
      });
      
      // mozilla
      module.observe('DOMMouseScroll', function(e) { wheel(e, slider, titles.length); });
      // IE/Opera
      module.observe('mousewheel', function(e) { wheel(e, slider, titles.length); });
      
      larrow.observe('click', function (e) { handle(1, slider, titles.length); });
      rarrow.observe('click', function (e) { handle(-1, slider, titles.length); });
      larrow.onclick = rarrow.onclick = function() { return false; };
   } else {
      for(var i = 0; i < titles.length; i++) {
         titles[i].style.width = (Math.ceil(list.getWidth() / titles.length) - titles.length) + "px";
      }      
      controls.style.display = "none";
   }
}

/** Initializes horizontal title scrollers, including element resizing. */
function initSearchScroller(ref) {
   var module = (typeof ref=="string")? $(ref) : ref;

   var controls = module.select('div[class="controls"]')[0];
   var list = module.select('ul')[0];
   var scrollbar = controls.select('div[class="scrollbar"]')[0];
   var mask = module.select('div[class="search_content"]')[0];
   var grabber = controls.select('div[class="grabber"]')[0];   
   var titles = list.select('li');
   var uarrow = controls.select('a[class="uarrow"]')[0];
   var darrow = controls.select('a[class="darrow"]')[0];
   var header = module.select('h3[id]')[0];

   if(titles.length > 16) {      
      var slider = new Control.Slider(grabber, scrollbar, {
         onSlide: function(v) { var l=list;var height=l.getHeight()-mask.getHeight();l.style.top=(0-(height*v))+"px" },
         onChange: function(v) { this.onSlide(v) },
         axis: 'vertical'
      });
      
      // mozilla
      module.observe('DOMMouseScroll', function(e) { wheel(e, slider, titles.length); });
      // IE/Opera
      module.observe('mousewheel', function(e) { wheel(e, slider, titles.length); });
   
      uarrow.observe('click', function (e) { handle(1, slider, titles.length); });
      darrow.observe('click', function (e) { handle(-1, slider, titles.length); });
      uarrow.onclick = darrow.onclick = function() { return false; };
      
   } else {
      grabber.style.display = "none";
      uarrow.onclick = darrow.onclick = function() { return false; };
   }
}

/** Does the actual scrolling */
function handle(delta,slider, numTitles) {
   slider.setValueBy(-delta / (numTitles - 3));
   return false;
}

/** Event handler for mouse wheel event. */
function wheel(event, slider, numTitles){
   var delta = 0;
   if (!event) /* For IE. */
      event = window.event;
   if (event.wheelDelta) { /* IE/Opera. */
      delta = event.wheelDelta/120;

   if (window.opera)
      delta = -delta;
   } else if (event.detail) { /** Mozilla case. */
      delta = -event.detail/3;
   }
   if (delta)
      handle(delta, slider, numTitles);
      
   if (event.preventDefault)
      event.preventDefault();

   event.returnValue = false;
}

function popup(pop_url, winname, windowWidth, windowHeight, scrollbars, toolbar, location) {       
   window.open(pop_url,winname,"scrollbars="+scrollbars+",width="+windowWidth+",height="+windowHeight+",toolbar="+toolbar+",location="+location);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
