  var rssUrl;
  var swfUrl;
  $(document).ready(function(){
      $("head").append('<link rel="stylesheet" type="text/css" href="http://gallery.stella-lee.net/jquery_mediaBlock.php?mode=cssHeader">');
      $("head").append('<script type="text/javascript" src="http://lite.piclens.com/current/piclens.js"></script>');
  });

  function performRequest(el, url){
      var urlString = url.split('?')[0];
      var reqString = url.split('?')[1];
      var keyString = '';
      var keyObject = {};
      if (reqString) {
          var pairs = reqString.split('&');
          for (i = 0; i < pairs.length; i++) {
              var pair = pairs[i].split('=');
              keyObject[pair[0]] = pair[1];
              /* Put our keyString back together without g2_itemId */
              if (pair[0] != 'g2_itemId') {
                  keyString += pair[0] + '=' + pair[1];
                  keyString += (i < pairs.length - 1) ? '&' : '';
              }
          }
      }
      var g2_itemId = keyObject['g2_itemId'];

      $.ajax({
          type: 'GET',
          url: url+'&jsoncallback=?',
          dataType: 'json',
          jsonp:'jsoncallback',
          success: function(data) {
              $(el).html(data.html);
              if ($(el).data("urlString") == undefined) {
                  $(el).data("urlString", urlString);
                  $(el).data("keyString", keyString);
                  $(el).data("keyObject", keyObject);
              }
              if (el == "#theContent"){
                  attachTips();
                  performRequest(urlString + '?mode=breadcrumbs&g2_itemId=' + g2_itemId);
                  rssUrl = urlString + '?mode=mediaRss&g2_itemId=' + g2_itemId;
                  PicLensLite.setLiteURLs({swf:'http://lite.piclens.com/releases/1.3.1.14221/lite/PicLensLite.swf'});
              }
          }
      });
  }

/* In the above performRequest must put back in "#theBreadcrumbs", urlString + to get the top breadcrumbs to show */


  function viewed(el){
    $(el).addClass("viewed");
  }

  function buildUrl(el, id){
    var theUrl = $(el).data("urlString");
    var theKeys = $(el).data("keyString");
    return theUrl + '?' + theKeys + '&g2_itemId=' + id;
  }

  function attachTips() {
  $('#imageTable a').tooltip({
      track: true,
      delay: 300,
      showURL: false,
      opacity: 1,
      fixPNG: true,
      showBody: " - ",
      extraClass: "fyw",
      top: -10,
      left: 10
  });
  $('.IMG a').bind("mouseenter", function(){
    var op = $(this).css("opacity");
    if($(this).data("viewed") == 1){
      $(this).css("opacity", 1);
    }else{
      $(this).css("opacity", (op - .2));
      $(this).data("op", (op - .2));
    }
  }).bind("mouseleave", function(){
    var op = $(this).data("op");
    if($(this).data("viewed") == 1){
      $(this).css("opacity", op);
    }else{
      $(this).css("opacity", (op + .2));
    }
  })/*.bind("click", function(){
    var op = $(this).data("op");
    $(this).css("opacity", (op > .5)?(op - .4): op);
    $(this).data("op", (op > .5)?(op - .4): op);
    $(this).data("viewed", 1);
  });*/
  };

  ;(function($){

      // the tooltip element
      var helper = {},
      // the current tooltipped element
      current,
      // the title of the current element, used for restoring
      title,
      // timeout id for delayed tooltips
      tID,
      // IE 5.5 or 6
      IE = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent),
      // flag for mouse tracking
      track = false;

      $.tooltip = {
          blocked: false,
          defaults: {
              delay: 200,
              fade: false,
              showURL: false,
              extraClass: "",
              top: 15,
              left: 15,
              id: "tooltip"
          },
          block: function(){
              $.tooltip.blocked = !$.tooltip.blocked;
          }
      };

      $.fn.extend({
          tooltip: function(settings){
              settings = $.extend({}, $.tooltip.defaults, settings);
              createHelper(settings);
              return this.each(function(){
                  $.data(this, "tooltip", settings);
                  this.tOpacity = helper.parent.css("opacity");
                  // copy tooltip into its own expando and remove the title
                  this.tooltipText = this.title;
                  $(this).removeAttr("title");
                  // also remove alt attribute to prevent default tooltip in IE
                  this.alt = "";
              }).mouseover(save).mouseout(hide).click(hide);
          },
          fixPNG: IE ? function(){
              return this.each(function(){
                  var image = $(this).css('backgroundImage');
                  if (image.match(/^url\(["']?(.*\.png)["']?\)$/i)) {
                      image = RegExp.$1;
                      $(this).css({
                          'backgroundImage': 'none',
                          'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
                      }).each(function(){
                          var position = $(this).css('position');
                          if (position != 'absolute' && position != 'relative')
                              $(this).css('position', 'relative');
                      });
                  }
              });
          }
   : function(){
              return this;
          },
          unfixPNG: IE ? function(){
              return this.each(function(){
                  $(this).css({
                      'filter': '',
                      backgroundImage: ''
                  });
              });
          }
   : function(){
              return this;
          },
          hideWhenEmpty: function(){
              return this.each(function(){
                  $(this)[$(this).html() ? "show" : "hide"]();
              });
          },
          url: function(){
              return this.attr('href') || this.attr('src');
          }
      });

      function createHelper(settings){
          // there can be only one tooltip helper
          if (helper.parent)
              return;
          // create the helper, h3 for title, div for url
          helper.parent = $('<div id="' + settings.id + '"><h3></h3><div class="body"></div><div class="url"></div></div>')        // add to document
          .appendTo(document.body)        // hide it at first
          .hide();

          // apply bgiframe if available
          if ($.fn.bgiframe)
              helper.parent.bgiframe();

          // save references to title and url elements
          helper.title = $('h3', helper.parent);
          helper.body = $('div.body', helper.parent);
          helper.url = $('div.url', helper.parent);
      }

      function settings(element){
          return $.data(element, "tooltip");
      }

      // main event handler to start showing tooltips
      function handle(event){
          // show helper, either with timeout or on instant
          if (settings(this).delay)
              tID = setTimeout(show, settings(this).delay);
          else
              show();

          // if selected, update the helper position when the mouse moves
          track = !!settings(this).track;
          $(document.body).bind('mousemove', update);

          // update at least once
          update(event);
      }

      // save elements title before the tooltip is displayed
      function save(){
          // if this is the current source, or it has no title (occurs with click event), stop
          if ($.tooltip.blocked || this == current || (!this.tooltipText && !settings(this).bodyHandler))
              return;

          // save current
          current = this;
          title = this.tooltipText;

          if (settings(this).bodyHandler) {
              helper.title.hide();
              var bodyContent = settings(this).bodyHandler.call(this);
              if (bodyContent.nodeType || bodyContent.jquery) {
                  helper.body.empty().append(bodyContent)
              }
              else {
                  helper.body.html(bodyContent);
              }
              helper.body.show();
          }
          else
              if (settings(this).showBody) {
                  var parts = title.split(settings(this).showBody);
                  helper.title.html(parts.shift()).show();
                  helper.body.empty();
                  for (var i = 0, part; (part = parts[i]); i++) {
                      if (i > 0)
                          helper.body.append("<br/>");
                      helper.body.append(part);
                  }
                  helper.body.hideWhenEmpty();
              }
              else {
                  helper.title.html(title).show();
                  helper.body.hide();
              }

          // if element has href or src, add and show it, otherwise hide it
          if (settings(this).showURL && $(this).url())
              helper.url.html($(this).url().replace('http://', '')).show();
          else
              helper.url.hide();

          // add an optional class for this tip
          helper.parent.addClass(settings(this).extraClass);

          // fix PNG background for IE
          if (settings(this).fixPNG)
              helper.parent.fixPNG();

          handle.apply(this, arguments);
      }

      // delete timeout and show helper
      function show(){
          tID = null;
          if ((!IE || !$.fn.bgiframe) && settings(current).fade) {
              if (helper.parent.is(":animated"))
                  helper.parent.stop().show().fadeTo(settings(current).fade, current.tOpacity);
              else
                  helper.parent.is(':visible') ? helper.parent.fadeTo(settings(current).fade, current.tOpacity) : helper.parent.fadeIn(settings(current).fade);
          }
          else {
              helper.parent.show();
          }
          update();
      }

      /**
       * callback for mousemove
       * updates the helper position
       * removes itself when no current element
       */
      function update(event){
          if ($.tooltip.blocked)
              return;

          if (event && event.target.tagName == "OPTION") {
              return;
          }

          // stop updating when tracking is disabled and the tooltip is visible
          if (!track && helper.parent.is(":visible")) {
              $(document.body).unbind('mousemove', update)
          }

          // if no current element is available, remove this listener
          if (current == null) {
              $(document.body).unbind('mousemove', update);
              return;
          }

          // remove position helper classes
          helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");

          var left = helper.parent[0].offsetLeft;
          var top = helper.parent[0].offsetTop;
          if (event) {
              // position the helper 15 pixel to bottom right, starting from mouse position
              left = event.pageX + settings(current).left;
              top = event.pageY + settings(current).top;
              var right = 'auto';
              if (settings(current).positionLeft) {
                  right = $(window).width() - left;
                  left = 'auto';
              }
              helper.parent.css({
                  left: left,
                  right: right,
                  top: top
              });
          }

          var v = viewport(), h = helper.parent[0];
          // check horizontal position
          if (v.x + v.cx < h.offsetLeft + h.offsetWidth) {
              left -= h.offsetWidth + 20 + settings(current).left;
              helper.parent.css({
                  left: left + 'px'
              }).addClass("viewport-right");
          }
          // check vertical position
          if (v.y + v.cy < h.offsetTop + h.offsetHeight) {
              top -= h.offsetHeight + 20 + settings(current).top;
              helper.parent.css({
                  top: top + 'px'
              }).addClass("viewport-bottom");
          }
      }

      function viewport(){
          return {
              x: $(window).scrollLeft(),
              y: $(window).scrollTop(),
              cx: $(window).width(),
              cy: $(window).height()
          };
      }

      // hide helper and restore added classes and the title
      function hide(event){
          if ($.tooltip.blocked)
              return;
          // clear timeout if possible
          if (tID)
              clearTimeout(tID);
          // no more current element
          current = null;

          var tsettings = settings(this);
          function complete(){
              helper.parent.removeClass(tsettings.extraClass).hide().css("opacity", "");
          }
          if ((!IE || !$.fn.bgiframe) && tsettings.fade) {
              if (helper.parent.is(':animated'))
                  helper.parent.stop().fadeTo(tsettings.fade, 0, complete);
              else
                  helper.parent.stop().fadeOut(tsettings.fade, complete);
          }
          else
              complete();

          if (settings(this).fixPNG)
              helper.parent.unfixPNG();
      }

  })(jQuery);

  function divResize(id, nw, nh) {
      $('#'+id).css({ height: nh, width: nw });
  }

  function getEmbed(id) {
      return $('#'+id).parent().html();
  }

  function popit(id, w, h, t, varString, currentPlayTime){
      w = Math.round(w);
      h = Math.round(h);
      w += 20;
      h += 20;
      params = 'width=' + w;
      params += ', height=' + h;
      params += ', top=0, left=0';
      params += ', resizable=yes';
      var videoWindow = window.open("", "videoWindow", params);
      videoWindow.document.write("");
      videoWindow.document.close();
      var theHtml = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n';
      theHtml += '<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">\n';
      theHtml += '<head>\n';
      theHtml += '<title>'+t+'</title>\n';
      theHtml += '<script type="text/javascript">\n';
      theHtml += 'function divResize(id,nw,nh) {\n';
      theHtml += '	var obj = document.getElementById(id);\n';
      theHtml += '	obj.style.width = nw + "px";\n';
      theHtml += '	obj.style.height = nh + "px";\n';
      theHtml += '}\n</script>\n';
      theHtml += '</head>\n<body>\n';
      theHtml += '<div id="flashvideo" style="width:' + w + 'px; height:' + h + 'px;">\n';
      theHtml += '<embed type="application/x-shockwave-flash" src="http://www.flashyourweb.com/staticpages/v3.swf" style="" id="38704" name="38704" bgcolor="ffffff" quality="high" flashvars="' + varString + currentPlayTime +'" allowscriptaccess="always" wmode="transparent" allowfullscreen="true" width="100%" height="100%"/>\n';
      theHtml += '</div>\n';
      theHtml += '</body>\n</html>';
      videoWindow.document.write(theHtml);
      videoWindow.focus();
      videoWindow.document.close();
  }
