﻿// GLOBAL VARIABLES
var roster_cinematH;
var roster_photogsH;

var IDloading;
var IDlanding;
var IDcompany;
var IDcontact;
var IDroster;
var IDrosterLogo;
var IDrosterCinemat;
var IDrosterPhotogs;
var IDdisplayArea;
var IDimgContainer;
var IDlinksContainer;
var IDfooter;
var dirRotation;

var rosterRotation;
// ------------------------------------------------
// THIS FUNCTION INCLUDES THE STYLESHEET THAT IS ONLY USEFUL FOR BROWSERS WITH JAVASCRIPT ENABLED
function validateJS() {
   document.write('<style type="text/css">@import url(/inc/css/styles_js.css);</style>');
}
// ------------------------------------------------
// THIS FUNCTION ADDS A LOADER GIF THROUGH DOM
function loadingJS() {
   document.write('<img src="/images/loading.gif" />');
}
// ------------------------------------------------
// EXECUTES JAVASCRIPT ONCE THE PAGE (MARKUP) HAS COMPLETED LOADING
function preloadFunc() {
   IDloading = document.getElementById('loading');
   IDlanding = document.getElementById('landing');
   IDcompany = document.getElementById('company');
   IDcontact = document.getElementById('contact');
   IDroster = document.getElementById('roster');
   IDrosterLogo = document.getElementById('roster_logo');
   IDrosterCinemat = document.getElementById('roster_cinemat');
   IDrosterPhotogs = document.getElementById('roster_photogs');
   IDdisplayArea = document.getElementById('DisplayArea');
   IDimgContainer = document.getElementById('rightContent_image');
   IDlinksContainer = document.getElementById('rightContent_links');
   IDfooter = document.getElementById('footer');
   
   roster_cinematH = IDrosterCinemat.clientHeight;
   roster_photogsH = IDrosterPhotogs.clientHeight;
   
   IDloading.style.display = 'none';
   IDlanding.style.display = 'block';
   IDroster.style.display = 'block';
   IDrosterLogo.style.display = 'none';
   rosterArrayFUNC('roster_cinemat','none');
   rosterArrayFUNC('roster_photogs','none');
   IDfooter.style.display = 'none';
   
   if (rosterID) {
		if (document.getElementById(rosterID)) {
			var rosterElementID = document.getElementById(rosterID);
			var IDrosterNav = rosterElementID.parentNode.parentNode.getAttribute('id');

			IDimgContainer.innerHTML ='';
			dirRotation = 0;

			IDdisplayArea.style.display = 'block';
			IDrosterLogo.style.display = 'block';
			rosterArrayFUNC(IDrosterNav,'block');
	      
			IDlanding.style.display = 'none';
			IDfooter.style.display = 'block';
	      
			clearInterval(rosterRotation);
			randomRotateSet(IDrosterNav);
	      
			dirShowcase('',rosterID);
		}
   }
   return
}
// ------------------------------------------------
// COMMON SCREENING ROOM POPUP FUNCTIONS
function goFull(URL) {
   if (window.screen) {
      var agt = navigator.userAgent.toLowerCase();
      var isMac = (agt.indexOf("mac")!=-1);
      var isIE = (agt.indexOf("msie")!=-1);
      var newWidth = screen.availWidth;
      newWidth = newWidth - 10;
      var newHeight = screen.availHeight;
		
      if ( isMac && isIE )
	      newHeight = newHeight - 10;
      else 
	      newHeight = newHeight - 30;

      var qtFSsize = 'width=' + newWidth + ',height=' + newHeight;
      var qtFSparam = '&w=' + newWidth + '&h=' + newHeight;
		
      if ( navigator.appName == "Netscape" ) 
	      var qtFSpos = 'screenX=0,screenY=0,';
      else 
	      var qtFSpos = 'left=0,top=0,';

      qtFS = window.open(URL,'adbeast_screening','scrollbars=no,resizable=yes,' + qtFSpos + qtFSsize);
   }
}

function scrPopup(scrLink) {
   var scrHref = scrLink.getAttribute('href');
   goFull(scrHref);
}
// ------------------------------------------------
// SITE NAVIGATION SCRIPT FOR APPENDING CONTENT INFO INTO THE DISPLAY AREA
function siteNav(siteNavID) {
   clearInterval(rosterRotation);
   
   var siteNavPage = document.getElementById(siteNavID).innerHTML;
   var siteNavPageTitle = document.getElementById(siteNavID).getAttribute('title');

   IDdisplayArea.style.display = 'block';
   IDlanding.style.display = 'none';
   IDfooter.style.display = 'block';
      
   displayAreaFUNC(siteNavPageTitle,siteNavPage,'Nav');
   
   if (parseInt(IDrosterCinemat.clientHeight) > 100) {
      rosterNavDL = IDrosterCinemat.getElementsByTagName('dt')
      rosterNavATag = rosterNavDL[0].getElementsByTagName('a');
      rosterNavLink = rosterNavATag[0];
      setHoverState(rosterNavLink);
   } else if (parseInt(IDrosterPhotogs.clientHeight) > 100) {
      rosterNavDL = IDrosterPhotogs.getElementsByTagName('dt')
      rosterNavATag = rosterNavDL[0].getElementsByTagName('a');
      rosterNavLink = rosterNavATag[0];
      setHoverState(rosterNavLink);
   }
}
// ------------------------------------------------
// COMMON DISPLAY AREA FUNCTIONS
function displayAreaFUNC(dirLink,dirIMG,type) {   

   // IDimgContainer.innerHTML ='';   
   IDlinksContainer.innerHTML ='';
   IDimgContainer.style.backgroundColor ='#cddcef';  
   
   var fade;
   fade = true;
      
   var spacerLITag = IDlinksContainer.appendChild(document.createElement('li'));
   spacerLITag.innerHTML = '&nbsp;&nbsp;'
   
   if (type == 'Array') {   
      for (l=0;l<dirLink.length;l++) {   
         IDimgContainer.innerHTML ='';    
         fade = false;
         var linksLITag = IDlinksContainer.appendChild(document.createElement('li'));
         linksLITag.innerHTML = dirLink[l];
                  
         if (dirLink[l+1]) {
            var dividerlinksLITag = IDlinksContainer.appendChild(document.createElement('li'));
            dividerlinksLITag.innerHTML = '|'
         }
      }  
   } else if (type == 'Nav') {
      IDimgContainer.innerHTML ='';    
      fade = false;
      IDimgContainer.style.backgroundColor ='Transparent';  
      var bgLITag = IDimgContainer.appendChild(document.createElement('li'));
      var bgDIVTag = bgLITag.appendChild(document.createElement('div'));
      bgDIVTag.style.display = 'block';
      bgDIVTag.setAttribute('id','displayAreaTrans');
      var linksLITag = IDlinksContainer.appendChild(document.createElement('li'));
      linksLITag.innerHTML = dirLink;
   } else {   
      var linksLITag = IDlinksContainer.appendChild(document.createElement('li'));
      linksATag = linksLITag.appendChild(document.createElement('a'));
      linksATag.href='javascript:dirShowcase("","'+type+'")';
      linksATag.innerHTML = dirLink;
   }
   var spacerLITag = IDlinksContainer.appendChild(document.createElement('li'));
   spacerLITag.innerHTML = '&nbsp;&nbsp;'
   
   if (fade != false) {
      var oldImgLITag1 = IDimgContainer.getElementsByTagName('li')[0]; 
      var oldImgLITag2 = IDimgContainer.getElementsByTagName('li')[1];  
      var imgLITag = IDimgContainer.appendChild(document.createElement('li'));
      imgLITag.innerHTML = dirIMG;
      if (oldImgLITag2) {
         setOpacity(oldImgLITag1,100);
         IDimgContainer.removeChild(oldImgLITag1);
      } else if (oldImgLITag1) {
         setOpacity(oldImgLITag1,100);
      }
      fadeInit(imgLITag);
   } else {
      var imgLITag = IDimgContainer.appendChild(document.createElement('li'));
      imgLITag.innerHTML = dirIMG;
   }
}
// ------------------------------------------------
// COMMON DIRECTOR NAV FUNCTION, ATTACHES CONTENT INTO DISPLAY AREA AND SETS CSS CLASS BUTTON-DOWN STATE
function dirShowcase(dirLink,dirID) {
   clearInterval(rosterRotation);
      
   if (!dirID) {
      var parentDL = dirLink.parentNode.parentNode;
      var parentID = parentDL.getAttribute('id');
      var getSiblingsARRAY = document.getElementById(parentID).getElementsByTagName('dd');
   } else {
      var getSiblingsARRAY = document.getElementById(dirID).getElementsByTagName('dd'); 
      var parentID = dirID;
      var childDL = document.getElementById(parentID).getElementsByTagName('dt');
      var childATag = childDL[0].getElementsByTagName('a');
      var dirLink = childATag[0];
   }
   
   rosterID = document.getElementById(parentID).parentNode.parentNode.getAttribute('id');
   rosterNavDL = document.getElementById(rosterID).getElementsByTagName('dt')
   rosterNavATag = rosterNavDL[0].getElementsByTagName('a');
   rosterNavLink = rosterNavATag[0];
   setHoverState(rosterNavLink);
   dirLink.setAttribute('class','hoverClass');
   dirLink.setAttribute('className','hoverClass');
      
   var dirIMG = getSiblingsARRAY[0].innerHTML;

   var dirLinksArray = new Array;
   for (l=1;l<getSiblingsARRAY.length;l++) {
      dirLinksArray[l-1] = getSiblingsARRAY[l].innerHTML;
   } 
   displayAreaFUNC(dirLinksArray,dirIMG,'Array');
}
// ------------------------------------------------
// COMMON DIRECTOR NAV FUNCTION, OVER-STATE
function dirShowcaseOver(dirLink) {

var buttonState = dirLink.getAttribute('class');
var buttonStateIE = dirLink.getAttribute('className');

   if (buttonState != 'hoverClass' || buttonStateIE != 'hoverClass' ) {
   
      clearInterval(rosterRotation);
      
      var parentDL = dirLink.parentNode.parentNode;
      var parentID = parentDL.getAttribute('id');
      var getSiblingsARRAY = document.getElementById(parentID).getElementsByTagName('dd');
      
      rosterID = document.getElementById(parentID).parentNode.parentNode.getAttribute('id');
      rosterNavDL = document.getElementById(rosterID).getElementsByTagName('dt')
      rosterNavATag = rosterNavDL[0].getElementsByTagName('a');
      rosterNavLink = rosterNavATag[0];
      setHoverState(rosterNavLink);
         
      var dirIMG = getSiblingsARRAY[0].innerHTML;
      var dirLinksArray = new Array;
      
      for (l=1;l<getSiblingsARRAY.length;l++) {
         dirLinksArray[l-1] = getSiblingsARRAY[l].innerHTML;
      } 
      displayAreaFUNC(dirLinksArray,dirIMG,'Array');
   }
}
// ------------------------------------------------
// COMMON ROSTER SLIDESHOW ROTATION FUNCTION
function randomRotateSet(id) {
      randomRotate(id);
      rosterRotation = setInterval('randomRotate("'+id+'");',3000);
}

function randomRotate(id) {
   var rosterNav = document.getElementById(id);
   var rosterArrayDL = rosterNav.getElementsByTagName('dl');
   
   dirRotation;
   
   var dirArray = new Array;
   var dirIMGArray = new Array;
   var dirParentID = new Array;
   
// Find directors with class "excludeFromRotation" and exclude from rotation array - BEGIN
   var rosterArrayDLREV = new Array;
   
   for(xDir=0; xDir < rosterArrayDL.length; xDir++) {
	   var excludeFromRotation = rosterArrayDL[xDir].getAttribute('class');
	   var excludeFromRotationIE = rosterArrayDL[xDir].getAttribute('className');
	   var excluderClass = new RegExp("excludeFromRotation");
		
	   if (excluderClass.test(excludeFromRotation) || excluderClass.test(excludeFromRotationIE)) {
			
	   } else {
		   rosterArrayDLREV.push(rosterArrayDL[xDir]);
	   }
	}
// Find directors with class "excludeFromRotation" and exclude from rotation array - END
   
   for(dir=0; dir < rosterArrayDLREV.length; dir++) {
		var dirArrayDT = rosterArrayDLREV[dir].getElementsByTagName('dt');
		dirArray[dir] = dirArrayDT[0].firstChild.innerHTML;
		var dirArrayDD = rosterArrayDLREV[dir].getElementsByTagName('dd');
		dirIMGArray[dir] = dirArrayDD[0].innerHTML;
		dirParentID[dir] = rosterArrayDLREV[dir].getAttribute('id');
   }
      
//   ** SESLER REQUESTED THE RANDOM ROTATION BE REPLACED WITH AN ORDERED ONE, CODE IS KEPT JUST IN CASE **
//   var dirRandom = Math.floor(Math.random()*rosterArrayDL.length);
//   displayAreaFUNC(dirArray[dirRandom],dirIMGArray[dirRandom],dirParentID[dirRandom]);

   if ((typeof(dirRotation)!='number') || dirRotation >= rosterArrayDLREV.length) {
		dirRotation = 0;
   }
   
   displayAreaFUNC(dirArray[dirRotation],dirIMGArray[dirRotation],dirParentID[dirRotation]);
   dirRotation++;

}
// ------------------------------------------------
// ROSTER NAVIGATION FUNCTIONS
function rosterNav(rosterNavLink) {

   var IDrosterNav = rosterNavLink.parentNode.parentNode.getAttribute('id');
   var rosterNav = document.getElementById(IDrosterNav);
   IDimgContainer.innerHTML ='';
	dirRotation = 0;

   setHoverState(rosterNavLink);
   
   if (IDrosterNav == 'roster_logo') {
   
      IDdisplayArea.style.display = 'none';   
      IDrosterLogo.style.display = 'none';
      rosterArrayFUNC('roster_cinemat','none');
      rosterArrayFUNC('roster_photogs','none');
      
      IDlanding.style.display = 'block';
      IDfooter.style.display = 'none';
      
      clearInterval(rosterRotation);

   } else if (IDrosterNav == 'roster_cinemat') {
   
      IDdisplayArea.style.display = 'block';
      IDrosterLogo.style.display = 'block';
      rosterArrayFUNC('roster_cinemat','block');
      rosterArrayFUNC('roster_photogs','none');
      
      IDlanding.style.display = 'none';
      IDfooter.style.display = 'block';
      
      clearInterval(rosterRotation);
      randomRotateSet(IDrosterNav);
      
   } else if (IDrosterNav == 'roster_photogs') {
   
      IDdisplayArea.style.display = 'block';
      IDrosterLogo.style.display = 'block';
      rosterArrayFUNC('roster_cinemat','none');
      rosterArrayFUNC('roster_photogs','block');
      
      IDlanding.style.display = 'none';
      IDfooter.style.display = 'block';
      
      clearInterval(rosterRotation);
      randomRotateSet(IDrosterNav);
   } 
}
// ------------------------------------------------
// COMMON ROSTER NAV DISPLAY FUNCTION, FOR HIDING/SHOWING DIRECTOR/PRODUCTION-DESIGNER ROSTERS AND THE HOME PAGE
function rosterArrayFUNC(id,state) {
   var rosterNav = document.getElementById(id);
   var rosterArrayDL = rosterNav.getElementsByTagName('dl');
   
   var rosterArray = new Array;
   for(dl=0; dl < rosterArrayDL.length; dl++) {
      rosterArray[dl] = rosterArrayDL[dl].parentNode;
   }
   
   for(dd=0; dd < rosterArray.length; dd++) {
      rosterArrayDL[dd].style.display = state;
      var childRosterLabelArray = rosterNav.getElementsByTagName('dt');
      var rosterNavH = id+'H';
      if (state == 'none') {
         rosterNav.setAttribute('class','roster_nav');
         rosterNav.setAttribute('className','roster_nav');
      } else {
         rosterNav.setAttribute('class','roster_nav rNav_0pen');
         rosterNav.setAttribute('className','roster_nav rNav_0pen');
      }
   }
}

// ------------------------------------------------
// COMMON ROSTER NAV FUNCTION TO ATTACH CLASSES TO DOWN-STATE BUTTONS (FOR CSS)
function setHoverState(sectionID) {   
   rosterNavArray = document.getElementById('roster').getElementsByTagName('a');
   for (aTag=0;aTag<rosterNavArray.length;aTag++) {
      rosterNavArray[aTag].setAttribute('class','');
      rosterNavArray[aTag].setAttribute('className','');
   }
   if (sectionID) {
      sectionID.setAttribute('class','hoverClass');
      sectionID.setAttribute('className','hoverClass');
   }
}
// ------------------------------------------------
// GO BACK TO LANDING PAGE

function goHome() {
      IDdisplayArea.style.display = 'none';   
      IDrosterLogo.style.display = 'none';
      rosterArrayFUNC('roster_cinemat','none');
      rosterArrayFUNC('roster_photogs','none');
      
      IDlanding.style.display = 'block';
      IDfooter.style.display = 'none';
      
      IDimgContainer.innerHTML ='';    
      clearInterval(rosterRotation);
      setHoverState();
}
// ------------------------------------------------
// ENTER (CINEMATOGRAPHERS) ROSTER

function enterRoster(IDrosterNav) {
      IDdisplayArea.style.display = 'block';
      IDrosterLogo.style.display = 'block';
      rosterArrayFUNC('roster_cinemat','block');
      rosterArrayFUNC('roster_photogs','none');
      
      IDlanding.style.display = 'none';
      IDfooter.style.display = 'block';
      
      clearInterval(rosterRotation);
      randomRotateSet(IDrosterNav);
}
// ------------------------------------------------
// FADE IN SCRIPT

/*
Better(?) Image fader (C)2004 Patrick H. Lauke aka redux
Inspired by Richard Rutter / Clagnut http://www.clagnut.com/blog/1299/ 
Original concept and code adapted from Couloir http://www.couloir.org/ 
preInit "Scheduler" idea by Cameron Adams aka The Man in Blue
http://www.themaninblue.com/writing/perspective/2004/09/29/ 
*/

/* redux by ali malik july 22 2008 */

/* general variables */

// var fadeTargetId = 'photo'; /* change this to the ID of the fadeable object */
var fadeTarget;
var fadeOutTarget;
var preInitTimer;

/* functions */


function fadeInit(imgLITag) {
	if (document.getElementById) {
	   fadeTarget = imgLITag;
		if (fadeTarget.style.MozOpacity!=null) {  
			/* Mozilla's pre-CSS3 proprietary rule */
			fadeTarget.style.MozOpacity = 0;
		} else if (fadeTarget.style.opacity!=null) {
			/* CSS3 compatible */
			fadeTarget.style.opacity = 0;
		} else if (fadeTarget.style.filter!=null) {
			/* IE's proprietary filter */
			fadeTarget.style.filter = "alpha(opacity=0)";
		}
		/* make the object visible again */
		window.setTimeout("fadeIn(0)", 500);
	}
}

function fadeIn(opacity) {
	if (fadeTarget) {
		if (opacity <= 100) {
			if (fadeTarget.style.MozOpacity!=null) {
				/* Mozilla's pre-CSS3 proprietary rule */
				fadeTarget.style.MozOpacity = (opacity/100)-.001;
				/* the .001 fixes a glitch in the opacity calculation which normally results in a flash when reaching 1 */
			} else if (fadeTarget.style.opacity!=null) {
				/* CSS3 compatible */
				fadeTarget.style.opacity = (opacity/100)-.001;
			} else if (fadeTarget.style.filter!=null) {
				/* IE's proprietary filter */
				fadeTarget.style.filter = "alpha(opacity="+opacity+")";
				/* worth noting: IE's opacity needs values in a range of 0-100, not 0.0 - 1.0 */ 
			}
			opacity += 10;
			window.setTimeout("fadeIn("+opacity+")", 25);
		}
	}
}

function setOpacity(targetImgLITag,opacity) {
   if (targetImgLITag.style.MozOpacity!=null) {
		targetImgLITag.style.MozOpacity = (opacity/100);
	} else if (targetImgLITag.style.opacity!=null) {
		targetImgLITag.style.opacity = (opacity/100);
	} else if (targetImgLITag.style.filter!=null) {
		targetImgLITag.style.filter = "alpha(opacity="+opacity+")";
	}
}

// ------------------------------------------------