
/*
 * Banner Object
 */ 
function BannerData(src, url) {
    this.image = new Image();
    this.image.src = src;
    this.url = url;
    
    // Image verwenden?
}
BannerData.prototype.hasUrl=function() {
  if(this.url && this.url.length > 0) {
    return true;
  }
  return false;
}
BannerData.prototype.getUrl=function() {
  return this.url;
}
BannerData.prototype.getSrc=function() {
  return this.image.src;
}


/*
 * Methods to change list of banner
 */
//var bannerList = new Array();
//var bannerPlayList = new Array();

var BannerRefresher = {
  playListIndex : 0,
  bannerList : new Array(),
  playList : new Array(),

  updateBanner: function(data, index) {          
    var bannerCollection = document.getElementsByName("banner"+index);    
    if(!bannerCollection || bannerCollection.length == 0) {    
      return;
    }
    
    var banner = bannerCollection[0];
    
    if(data.hasUrl()) {
      banner.href = data.getUrl();
    } else {
      banner.removeAttribute("href");
    }
      
    var imageCollection = banner.getElementsByTagName("img");
    if(!imageCollection || imageCollection.length == 0) {    
      return;
    }
      
    var image = imageCollection[0];
    image.src = data.getSrc();
  },
  
  refreshBanner: function() {    
    if(!this.playList || this.playList.length == 0) {
      return;
    }
    
    if(!this.bannerList || this.bannerList.length == 0) {
      return;
    }
    
    for (var i = 0; i < 7; i++) {
      nextBannerIndex = this.playList[this.playListIndex];
      newBanner = this.bannerList[nextBannerIndex];  
      this.updateBanner(newBanner, i);
        
      this.playListIndex = this.playListIndex+1;        
      if(this.playListIndex >= this.playList.length) {
        this.playListIndex = 0;
      }
    }   
    
    setTimeout("BannerRefresher.refreshBanner()", 10000);
  },
  
  startRefresh: function() {
    setTimeout("BannerRefresher.refreshBanner()", 10000);
  }
  
};


/*
 * Revilak Methods to check Popup Blocker and start Applet.
 */
var RevilakJava = {
  
  getParam: function(name) {
    //http://localhost/test/Montabaur/revilakdirekt.html?nr=28&detailMap=true
    
    if(window.location.search != "") {
      var params = window.location.search;
      
      // erstmal Anfang suchen
      var posStart = params.indexOf("?"+name+"=");
      
      if(posStart < 0) {
        posStart = params.indexOf("&"+name+"=");
      }
      if(posStart < 0) {
        return "";
      }
        
      params=params.substr(posStart+2+name.length, params.length);
      
      //  dann nach dem Ende suchen
      var posEnde=params.indexOf("&");
      if(posEnde < 0) {
        //  letzter Parameter
        posEnde=params.length;
      }
      
      var value = params.substr(0, posEnde);
      return value;
  	}
  	return "";
  },
  
  /*
    Pruefen, ob ein Popup Blocker aktiv ist.
  */
  check: function() {  
    var param = RevilakJava.getParam('skip');

    if (param == 'true') {
      return true;
    } else {
      var myTest = window.open("about:blank","","directories=no,height=1,width=1,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,top=0,location=no");
      
      try {
        if (!myTest) {
          // Popup enabled
          return false;
        } else {          
          myTest.close();
          return true;
        }  
      } catch(e) {
      }
    } 
    
    return true;
  },
  
  /*
    URL erstellen ohne Pruefung auf den Popup Blocker.
  */
  getSkipCheckUrl: function() {
    if(window.location.search.indexOf("?") >= 0) {
      return window.document.location.href+"&skip=true";
    }
    return window.document.location.href+"?skip=true";
//    self.location.href = "revilakmap.html?skip=true";
  },
  
  /*
    Meldung ausgeben das Popup Blocker aktiv ist.
  */
  alertMsg: function() {
    alert("Popup-Blocker ist aktiv. Einige Funktionen des Stadtplans werden nicht unterstuetzt. Bitte klicken sie auf Einstellungen am oberen rechten Rand des Browsers und lassen sie Popups fuer internetstadtplan.com zu. Wir garantieren Ihnen das keine unerwuenschten Werbepopups geoeffnet werden.");
  },
  
 /*
    Pruefung, ob eine gueltige Java Version installiert ist.
  */
  isValidJRE: function() {
    var list = deployJava.getJREs();
    
    if(list.length <= 0) {
      return false;
    }   
    
    for (var i = 0; i < list.length; ++i) {
      if(list[i].search("1.5") >= 0 
        || list[i].search("1.6") >= 0
        || list[i].search("1.7") >= 0
        || list[i].search("1.8") >= 0) {
        return true;
      }
    }
  },  

  startApplet: function() {
    var elementNr=RevilakJava.getParam("nr");
    var detail=RevilakJava.getParam("detail");
        
    var attributes = {
                        code:'revilak.revilakmap.RevilakMap',
                        archive:'Revilak.jar',
                        java_arguments:'-Dsun.java2d.d3d=false -Xmx512m',
                        width:300, height:200};
    var parameters = {detailMap:detail, startElement:elementNr};
    
    deployJava.writeAppletTag(attributes, parameters);
  } 
};



