var divs = document.getElementsByTagName("div");
var listitems = document.getElementsByTagName("li");
var panels = new Array();
var disPanel = 1;
var total = new Number();
var URHere = String(window.location.href).split('?');
var sStart = false;
var sStartPanel = null;


function panelCount(whichOne) {
// sets base state of menu according to exception

// find URL variables
if (URHere[1]) {
var blocks = URHere[1].split('&');
for (var i=0; i < blocks.length; i++) {
var blockpair = blocks[i].split('=');
var testblock = blockpair[0];
var testvalue = blockpair[1];
if (testblock == 'startpage') {
sStart = true;
sStartPanel = blockpair[1];
disPanel = sStartPanel;
}
}
}

for (i=0;i<divs.length;i++) {
if (divs[i].className == whichOne) {
panels.push(divs[i]);}
}
total = panels.length;

if (sStart == true) {
for (d=0;d<total;d++){
if (panels[d].id.indexOf(sStartPanel) == -1) {panels[d].style.display = 'none';} else {panels[d].style.display = 'block';}
}
} else {
for (d=0;d<total;d++){if (d>0) panels[d].style.display = 'none';}
}

if (disPanel==total) {
document.getElementById("next").style.display = "none";
document.getElementById("prev").style.display = "block";
} else if (disPanel==1) {
document.getElementById("prev").style.display = "none";
document.getElementById("next").style.display = "block";
} else {
document.getElementById("next").style.display = "block";
document.getElementById("prev").style.display = "block";
}
} 

function pan(whichClass,whichWay) {
// prev or next?
if (whichWay == "prev") {
if (disPanel > 1) {disPanel--}
} else if (whichWay == "next") {
if (disPanel < total) {disPanel++}
}

// trackEvent('musicslides','change','showing',disPanel);

// switch all visibilities correctly
for (i=0;i<panels.length;i++){
if (i == disPanel-1) {panels[i].style.display = "block";}
else {panels[i].style.display = "none";}
}

// switch prev next 
if (disPanel==total) {
document.getElementById("next").style.display = "none";
document.getElementById("prev").style.display = "block";
} else if (disPanel==1) {
document.getElementById("prev").style.display = "none";
document.getElementById("next").style.display = "block";
} else {
document.getElementById("next").style.display = "block";
document.getElementById("prev").style.display = "block";
}
}

function cpic(whichopen,whichblur) {
whichblur.blur();
if ((whichopen>=0) && (whichopen<9)) disPanel = whichopen ;
// switch all visibilities correctly
for (i=0;i<panels.length;i++){
if (i == disPanel-1) {panels[i].style.display = "block";}
else {panels[i].style.display = "none";}
}

// switch prev next 
if (disPanel==total) {
document.getElementById("next").style.display = "none";
document.getElementById("prev").style.display = "block";
} else if (disPanel==1) {
document.getElementById("prev").style.display = "none";
document.getElementById("next").style.display = "block";
} else {
document.getElementById("next").style.display = "inline";
document.getElementById("prev").style.display = "block";
}
}

var definitions = new Array();
var disDef = 1;
var totalDefs = new Number();

function defCount(whichOne) {
for (i=0;i<divs.length;i++){ 
if (divs[i].className == whichOne) {
definitions.push(divs[i]);
}
}
totalDefs = definitions.length;
for (d=0;d<totalDefs;d++){
if (d>0) definitions[d].style.display = 'none';
}
} 

function loadgranular(whichone) {
for (d=0;d<total;d++){
if (definitions[d] == document.getElementById(whichone)) {
definitions[d].style.display = 'block';
} else {
definitions[d].style.display = 'none';
}
}
}

function popIT(winURL,winName,winStats) {
theWindow=window.open(winURL,winName,winStats);
}

var starstartX = 0;
var starstartY = 0;
function drawdrift() {
// starstartX++;
starstartY += 0.5;
document.body.style.backgroundPosition = 'center ' + starstartY + 'px';
drift();
// alert('drifting ' + starstartY);
}
function drift() {
var driftTimer = setTimeout('drawdrift()', 400);
}

function get(obj) {
var getstr = "?";
var findobj;
for (i=0; i<obj.childNodes.length; i++) {
if (obj.childNodes[i].tagName == 'FIELDSET') {
findobj = obj.childNodes[i];
}  
}
for (i=0; i<findobj.childNodes.length; i++) {
if (findobj.childNodes[i].tagName == "INPUT") {
if ((findobj.childNodes[i].type == "text") || (findobj.childNodes[i].type == "hidden")) {
getstr += findobj.childNodes[i].name + "=" + findobj.childNodes[i].value + "&";
}
if (findobj.childNodes[i].type == "checkbox") {
if (findobj.childNodes[i].checked) {
  getstr += findobj.childNodes[i].name + "=" + findobj.childNodes[i].value + "&";
} else {
  getstr += findobj.childNodes[i].name + "=&";
}
}
if (findobj.childNodes[i].type == "radio") {
if (findobj.childNodes[i].checked) {
  getstr += findobj.childNodes[i].name + "=" + findobj.childNodes[i].value + "&";
}
}
}   
if (findobj.childNodes[i].tagName == "SELECT") {
var sel = findobj.childNodes[i];
getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
}

}
makeRequest('/postoffice.php', getstr, obj);
}
function makeRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
   http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('GET', url + parameters, true);
http_request.send(null);
}


function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
// hide loading bar, open results location
result = http_request.responseText;
document.getElementById('output').innerHTML = result;            
} else {
alert('There was a problem with the request.');
}
}
}

function openlightbox() {
document.getElementById('mainviewer-home').style.display = "none";
document.getElementById('mainviewer-music').style.display = "none";
document.getElementById('granularviewer').style.display = "none";
document.getElementById('helm').style.display = "none";
document.getElementById('cover').style.display = "block";
document.getElementById('lightbox').style.display = "block";
}

function closelightbox() {
document.getElementById('mainviewer-home').style.display = "block";
document.getElementById('mainviewer-music').style.display = "none";
document.getElementById('granularviewer').style.display = "block";
document.getElementById('helm').style.display = "block";
document.getElementById('cover').style.display = "none";
document.getElementById('lightbox').style.display = "none";
}

var promoTimer;
var startSlide = 1;
var disSlide = 0;
var nextSlide = 1;
var daSlides = new Array;
var playMode = 1;


function runFaders(whichtag,whichclass) {

// build array of panels in promo spot
listlist = document.getElementsByTagName(whichtag);
for (i=0;i<listlist.length;i++) {
if (listlist[i].className.match(whichclass)) {
daSlides.push(listlist[i]);
}
}

disButton = daSlides.length;

// hide pause button if there are 1 or fewer slides to show
// if (daSlides.length <= 1) {document.getElementById('playbutton').style.display = 'none'};


// create buttons for each panel in promo spot and set FadeState for each panel
if (daSlides.length>1) {
for (g=0;g<daSlides.length;g++) {
daSlides[disButton-1].FadeState = new Number;
counter = disButton - 1;
// if (counter != 0) {daSlides[counter].FadeState = -2; daSlides[counter].style.display = 'none';} else {daSlides[counter].FadeState = 2; daSlides[counter].style.display = 'block';}
if (counter != 0) {
daSlides[counter].FadeState = -2;
daSlides[counter].style.opacity = 0;
daSlides[counter].style.filter = 'alpha(opacity = 0)';
daSlides[counter].style.display = 'none';
} else {
daSlides[counter].FadeState = 2;
daSlides[counter].style.opacity = 1;
daSlides[counter].style.filter = 'alpha(opacity = 100)';
daSlides[counter].style.display = 'block';
}

disButton--;
// alert('daSlides[' + counter + '].FadeState = ' + daSlides[counter].FadeState);

}
}

// start animation running witb 10sec delay
promoTimer = setInterval(goSlideShow,10000);
}


// fading animation code adapted from switchonthecode.com

var  TimeToFade = 1000.0;
var workingit;
// var element1;
// var element2;  

function fade(outgoing,incoming)
{
element1 = document.getElementById(outgoing);
element2 = document.getElementById(incoming);
//  alert('fading ' + element1.id + 'into ' + element2.id);
  
if ((element1 == null) || (element2 == null)) return;
   
if (element1.FadeState == null)
  {
    if (element1.style.opacity == null || element1.style.opacity == '' || element1.style.opacity == '1')
    { element1.FadeState = 2;
    } else {
      element1.FadeState = -2;
    }
  }

if (element2.FadeState == null)  {
    if (element2.style.opacity == null || element2.style.opacity == '' || element2.style.opacity == '1')
    { element2.FadeState = 2;
    } else {
      element2.FadeState = -2;
    }
  }

// alert('element1 fadestate is ' + element1.FadeState + ' and element2 fadestate is ' + element2.FadeState);

if (element1.FadeState == 1 || element1.FadeState == -1) {
   element1.FadeState = element1.FadeState == 1 ? -1 : 1;
   element1.FadeTimeLeft = TimeToFade - element1.FadeTimeLeft;
 } else {
   element1.FadeState = element1.FadeState == 2 ? -1 : 1;
   element1.FadeTimeLeft = TimeToFade;
workingit = setTimeout("animateXFade(" + new Date().getTime() + ",'" + outgoing + "','" + incoming + "')", 33);
 }  
}

function  animateXFade(lastTick,outgoing,incoming) {  
// alert('outgoing = ' + outgoing + ' and incoming = ' + incoming);
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
 
  var element1 = document.getElementById(outgoing);
 
  if(element1.FadeTimeLeft <= elapsedTicks)
  {
    element1.style.opacity = element1.FadeState == 1 ? '1' : '0';
    element2.style.opacity = element2.FadeState == 1 ? '0' : '1';
    element1.style.filter = 'alpha(opacity = ' + (element1.FadeState == 1 ? '100' : '0') + ')';
    element2.style.filter = 'alpha(opacity = ' + (element2.FadeState == 1 ? '0' : '100') + ')';
    element1.FadeState = element1.FadeState == 1 ? 2 : -2;
    element2.FadeState = element2.FadeState == 1 ? 2 : 2;
	element1.style.display = 'none';
    return;
  }
 
  element1.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element1.FadeTimeLeft/TimeToFade;
  if (element1.FadeState == 1) newOpVal = 1 - newOpVal;

  element1.style.opacity = newOpVal;
  element1.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  element2.style.opacity = (1-newOpVal);
  element2.style.filter = 'alpha(opacity = ' + (100-(newOpVal*100)) + ')';
 
workingit = setTimeout("animateXFade(" + curTick + ",'" + outgoing + "','" + incoming + "')", 33);
}


function goSlideShow() {
firstSlide = daSlides[disSlide];
secondSlide = daSlides[nextSlide];
// alert('firstSlide is ' + firstSlide.id + ' and secondSlide is ' + secondSlide.id);
// firstButton = document.getElementById('button'+(disSlide+1));
// secondButton =document.getElementById('button'+(nextSlide+1));

firstSlide.style.display = 'block';
secondSlide.style.display = 'block';

// firstButton.setAttribute('class','changer');
// secondButton.setAttribute('class','changer off');
// firstButton.setAttribute('className','changer');
// secondButton.setAttribute('className','changer off');

// insert animation calls here
fade(firstSlide.id,secondSlide.id);

if (disSlide == (daSlides.length-1)) {disSlide = 0} else {disSlide++}
if (nextSlide == (daSlides.length-1)) {nextSlide = 0} else {nextSlide++}
}

function changeslide(whichOne) {
clearInterval(promoTimer);
clearTimeout(workingit);
whatNumber = whichOne.slice(6,8);
whichPanel = 'promo' + whatNumber;

for (i=0;i<daSlides.length;i++) {
if (daSlides[i].id == whichPanel) {
daSlides[i].style.display = 'block'; 
daSlides[i].style.opacity = 1;
daSlides[i].style.filter = 'alpha(opacity = 100)';
daSlides[i].FadeState = 2;
// document.getElementById('button'+(i+1)).setAttribute('class','changer off');
// document.getElementById('button'+(i+1)).setAttribute('className','changer off');
} else {
daSlides[i].style.display = 'none'; 
daSlides[i].style.opacity = 0;
daSlides[i].style.filter = 'alpha(opacity = 0)';
daSlides[i].FadeState = -2;
// document.getElementById('button'+(i+1)).setAttribute('class','changer');
// document.getElementById('button'+(i+1)).setAttribute('className','changer');
}
}


// goSlideShow();

// document.getElementById('playbutton').setAttribute('class','play'); playMode=0;
// document.getElementById('playbutton').setAttribute('className','play'); playMode=0;
disSlide = parseInt(whatNumber)-1;
nextSlide = disSlide + 1;
if (disSlide > (daSlides.length-1)) {disSlide = 0}
if (nextSlide > (daSlides.length-1)) {nextSlide = 0}

}

function pauseplay () {
if (playMode == 1) 
{ clearInterval(promoTimer); 
// document.getElementById('playbutton').setAttribute('class','play');
// document.getElementById('playbutton').setAttribute('className','play'); 
playMode=0;
} else { 
goSlideShow(); promoTimer = setInterval(goSlideShow,10000); 
// document.getElementById('playbutton').setAttribute('class','pause'); 
// document.getElementById('playbutton').setAttribute('className','pause'); 
playMode=1;
}

}



function changepages(whichpage) {
var musicpage = document.getElementById('mainviewer-music');
var homescreen = document.getElementById('mainviewer-home');
if (whichpage=="music") {
musicpage.style.display = 'block';
homescreen.style.display = 'none';
} else if (whichpage=="home") {
musicpage.style.display = 'none';
homescreen.style.display = 'block';	
} 
}
