var timer;
var timertwo;
var timerun;
var loadedCount;
var loaded = new Array();
var filters = new Array();
var filterName = new Array();
var filterList = new Array();

var preImages = new Array();
var loaded = new Array();

var allEl = "button-all";

var showHide;

var oldStore = "null";
window.onload=init;

function init() {
  startIt();
  
  filterName[0] = "alternative";
  filterList[0] = new Array(2,6,8,9,10,12,13,14,16,17,18,20,22,24,25);
  
  filterName[1] = "classical";
  filterList[1] = new Array(1,2,3,4,6,9,11,12,13,14,18,23);
  
  filterName[2] = "country";
  filterList[2] = new Array(1,2,3,6,9,11,13,14,16,17,18,23);
  
  filterName[3] = "discount";
  filterList[3] = new Array(6,8,10,12,13,14,17,19,20,25);
  
  filterName[4] = "electronic";
  filterList[4] = new Array(3,5,6,8,9,11,12,13,14,17,18,19,20,22,24,25);
  
  filterName[5] = "hiphop";
  filterList[5] = new Array(3,5,6,8,10,11,13,14,18,20,22,24,25);
  
  filterName[6] = "independent";
  filterList[6] = new Array(2,4,5,6,9,10,12,15,16,17,19,20,21,23,25);
  
  filterName[7] = "jazz";
  filterList[7] = new Array(1,2,3,6,8,9,10,11,12,13,14,16,18,23);

  filterName[8] = "local";
  filterList[8] = new Array(6,13,14,15,17,20,25);
  
  filterName[9] = "metalpunk";
  filterList[9] = new Array(6,10,12,13,14,15,17,20,21,25);
    
  filterName[10] = "poprock";
  filterList[10] = new Array(1,2,3,6,7,8,9,10,11,12,13,14,17,18,20,22,24);
  
  filterName[11] = "tickets";
  filterList[11] = new Array(5,15,17);
  
  for (i=0;i<12;i++) {
    filters[i]="false";
  }
  
  
  var randomnumber = Math.floor(Math.random()*12)
  toggle(randomnumber,"true");

  //toggleAll();

  
  check();

  
}

function toggle(x,n) {
  
  var domEl = "filter-" + x;
  var buttonEl = "button-" + x;
  if (filters[x]=="true") {
    filters[x]="false";
    //z=new Effect.BlindUp(domEl,{duration:.5});
    //z=new Effect.BlindUp(domEl,{duration:.5,queue:'front'});
    Element.setStyle(domEl, {display:'none'} );
    $(buttonEl).addClassName("off",buttonEl)
  }
  else {
    filters[x]="true";
    //z=new Effect.BlindDown(domEl,{duration:.5});
    //z=new Effect.BlindDown(domEl,{duration:.5,queue:'front'});
        Element.setStyle(domEl, {display:'block'} );
    $(buttonEl).removeClassName("off",buttonEl);
  }
  
          

  
  if(n=="true") {
    stores();
    //check();
  }
  
  //alert("roll");
    
  //stores();  
  
}

function toggleAll() {

  var anythingVisible=false;
  
  for (i = 0; i < 12; i++) {  
    if (filters[i] == "true") {  
        anythingVisible=true;
    }  
  }
  
  if (anythingVisible==true) {
    for (i = 0; i < 12; i++) {  
      if (filters[i] == "true") {  
        toggle(i,"false");
      }  
    }
  }
  else {
    for (i = 0; i < 12; i++) {  
        toggle(i,"false");
    }  
  }
  
  stores();
  //check();
  
  
}

function stores() {
  var domEl, domEleA, domEleB;
  
  var diffList = new Array();
  
  for (i=0;i<12;i++) {
  
    if(filters[i]=="true") {
      for (j=0;j<filterList[i].length;j++) {
  
        diffList[filterList[i][j]]="true";
      
      }
    }
  }
  
  for (i=1;i<26;i++) {
      domEl = "store-" + i;
      domEleB= "link-" + i;
      
      if(diffList[i]=="true") {
        Element.setStyle(domEl, {display:'block'} );
      
        Element.setStyle(domEleB, {visibility:'visible'} );
  
        
      } else {
        Element.setStyle(domEl, {display:'none'} );
      
        Element.setStyle(domEleB, {visibility:'hidden'} );
      }
              
  }
  
  // for (i=1;i<26;i++) {
  //     domEl = "store-" + i;
  //     domEleB= "link-" + i;
  //     
  //     Element.setStyle(domEl, {display:'none'} );
  //     
  //     Element.setStyle(domEleB, {visibility:'hidden'} );
  //             
  //   }
  // 
  // //var diffList = new Array();
  // 
  // for (i=0;i<12;i++) {
  // 
  //   if(filters[i]=="true") {
  //     for (j=0;j<filterList[i].length;j++) {
  //       domEl = "store-" + filterList[i][j];
  //       domEleB= "link-" + filterList[i][j];
  //             
  //       Element.setStyle(domEl, {display:'block'} );
  //       
  //       
  //       Element.setStyle(domEleB, {visibility:'visibile'} );
  //       
  //     
  //     }
  //   }
  // }
  
  check();
  
  //alert("roll");
  
  // for (i=1;i<26;i++) {
  //   var domEl = "store-" + i;
  //   var domElA = domEl + "a";
  //   
  //   var currStyle = $(domEl).getStyle('display');
  //   
  //   if (currStyle=="none"&&diffList[i]=="true") {
  //     z=new Effect.BlindDown(domEl,{duration:.5, queue:'front'});
  //     z=new Effect.BlindDown(domElA,{duration:.5});
  //   }
  //   else if (currStyle=="table-row"&&diffList[i]!=="true") {
  //     z=new Effect.BlindUp(domEl,{duration:.5, queue:'front'});
  //     z=new Effect.BlindUp(domElA,{duration:.5});
  //   }
  //   
  // }
  
  
}
               
function check() {
  
  //alert("yo");
  var anythingIsVisible=false;
  
  for (i=0;i<12;i++) {  
    if (filters[i] == "true") {  
        anythingIsVisible=true;
    }  
  }

  if (anythingIsVisible==true) {
    $(allEl).removeClassName("show", allEl);
    //Element.removeClassName("show", allEl);
  }
  else {
    $(allEl).addClassName("show", allEl);
    //Element.addClassName("show", allEl);
  }
  
    //stores();
    //timertwo = setTimeout("check()",10);

}

function scroll(x,y) {
  new Effect.ScrollTo(x, {offset:y});
}

function storeScroll(x,y) {
  if (oldStore!="null") {
    $(oldStore).removeClassName("hilite", oldStore);
  }
  $(x).addClassName("hilite", x);
  new Effect.ScrollTo(x, {offset:y});
  oldStore=x;
}

var preLoad;

function startIt() {
  preLoad=new Image();
  preLoad.src="img/logo-3000.gif";
  checkIt()
}


function checkIt() {  
if (preLoad.complete) {
  clearTimeout(timerun);
  loadImages();
  return;
}

  timerun = setTimeout("checkIt()",10);
}
function loadImages() {   
  for (i = 0; i < 12; i++) {   
    preImages[i] = new Image();
    preImages[i].src = "img/maps/map-" + filterName[i] + ".gif";
    loaded[i] = false;  
  }  
  for (i = 12; i < 37; i++) {   
    preImages[i] = new Image();
    preImages[i].src = "img/stores/store-" + i + ".gif";
    loaded[i] = false;  
  }
  for (i = 37; i < 49; i++) {   
    preImages[i] = new Image();
    preImages[i].src = "img/buttons/button-" + i + ".gif";
    loaded[i] = false;  
  }
  
  preImages[49] = new Image();
  preImages[49].src = "img/logo-3000.gif";
  loaded[49] = false;  
  
  preImages[50] = new Image();
  preImages[50].src = "img/logo-splendid-emaillink.gif";
  loaded[50] = false;  
    
  preImages[51] = new Image();
  preImages[51].src = "img/logo-splendid.gif";
  loaded[51] = false;  
    
  preImages[52] = new Image();
  preImages[52].src = "img/button/button-all.gif";
  loaded[52] = false;  
    
  preImages[53] = new Image();
  preImages[53].src = "img/maps/map-blank.gif";
  loaded[53] = false;  
    
  loadedCount=0;
  checkLoaded();
}  


function checkLoaded() {  
  if (loadedCount==54) {   
    // alert("LOADED BITCH");
    clearTimeout(timer);
    new Effect.BackgroundScroll('h1', [,-241], { duration: .7});
    $('h1').addClassName("loaded", 'h1');
    return;
  }  
  for (i = 0; i < preImages.length; i++) {  
    if (loaded[i] == false && preImages[i].complete) {  
      loaded[i] = true;
      loadedCount++;
    }  
  }  

  timer = setTimeout("checkLoaded()",10);
}

Effect.BackgroundScroll = Class.create();
Object.extend(Object.extend(Effect.BackgroundScroll.prototype, Effect.Base.prototype), {
  initialize: function(element) {
    this.element = $(element);
    if(!this.element.currentBackgroundPosition)
      this.element.currentBackgroundPosition = [0, 0];
    this.offsets = arguments[1];
    this.start(arguments[2] || {});
  },
  setup: function() {
    this.current = this.element.currentBackgroundPosition;
    this.delta = [
      this.offsets[0] - this.current[0],
      this.offsets[1] - this.current[1]];
  },
  update: function(position) {
    this.element.currentBackgroundPosition = [
      Math.round(this.current[0] + (this.delta[0]*position)),
      Math.round(this.current[1] + (this.delta[1]*position)) ];
    this.element.style.backgroundPosition = 
      //this.element.currentBackgroundPosition[0] + 'px ' +
      '50% ' + this.element.currentBackgroundPosition[1] + 'px';
  }
});

