XssMagCoverGallery = new function() {
  var BASE_URL = 'http://www.magcover.com/';
  var STYLESHEET = BASE_URL + "/css/license/xss_magcover.css";
  var CONTENT_URL = BASE_URL + "/license/showGallery.shtml";
  var ROOT = 'xss_magcover_gallery';
  var prevRaise;

  function requestStylesheet(stylesheet_url) {
    stylesheet = document.createElement("link");
    stylesheet.rel = "stylesheet";
    stylesheet.type = "text/css";
    stylesheet.href = stylesheet_url;
    stylesheet.media = "all";
    document.lastChild.firstChild.appendChild(stylesheet);
  }

  function readUrlParam( name )
  {
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    name = name.toLowerCase();
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )
      return "";
    else
      return results[1];
  }

  function requestContent( arg1, arg2, arg3 ) {
    var script = document.createElement('script');
    script.src = CONTENT_URL + '?lid=' + arg1 + '&lto=' + arg2 + '&page=' + arg3;
    document.getElementsByTagName('head')[0].appendChild(script);
  }

  this.raise = function(elemId) {
    if (prevRaise) {
      prevRaise.style.zIndex = 1;
    }
    var elem = document.getElementById( elemId );
    if (elem) {
      elem.style.zIndex = 10;
      prevRaise = elem;
    }
  }
  
  this.showWidget = function() {
     var page = readUrlParam("magcover_page");
     if (MAGCOVER_LID && MAGCOVER_LTO) {
       this.show(MAGCOVER_LID, MAGCOVER_LTO, page);
     }
  }

  this.show = function(lid, lto, page) {
    requestContent(lid, lto, page);
    var no_script = document.getElementById('no_script');
    if (no_script) { 
       no_script.style.display = 'none'; 
    }
    var elemId = ROOT;

    this.serverResponse = function(nav, data) {
      if (!data) {
        return;
      }
      var div = document.getElementById(elemId);
      if (div) {
         div.innerHTML = nav + data;
         div.style.display = 'block'; // make element visible
         div.style.visibility = 'visible'; // make element visible
      }
    }
	
    requestStylesheet(STYLESHEET);
    document.write('<div class="xss_magcover_gallery" id="' + elemId + '" style="display: none"></div>');
  }
}


