THUMBS_PER_PAGE = 20;
 
function FS_lightboxPlayerStack(id, sGroup) {
  if (id) {
    this.init(id, sGroup);
    this.initFrame();
  }
}
 
FS_lightbox = function(id, sGroup) {
  if (id) {
    this.initTarget(id, sGroup);
  }
};
 
FS_lightbox.prototype = new YAHOO.util.DDTarget();
FS_lightbox.openId = null;
FS_lightbox.m_lightboxes = [];
FS_lightbox.ddProxyThumbStack = [];
FS_lightbox.unreg = function() {
  for (i in FS_lightbox.ddProxyThumbStack) {
    FS_lightbox.ddProxyThumbStack[i].unreg();
  }
  FS_lightbox.ddProxyThumbStack = [];  
}
FS_lightbox.prototype.setName = function(p_name) { this.m_name = p_name; };
FS_lightbox.prototype.getName = function() { return this.m_name; };
FS_lightbox.prototype.setDbId = function(p_dbId) { this.m_dbId = p_dbId; };
FS_lightbox.prototype.getDbId = function() { return this.m_dbId; };
FS_lightbox.prototype.isCart = function() { return false; };
FS_lightbox.prototype.repaint = function() {
  var Y = YAHOO.util.Dom;
  Y.get(this.id+'_name').innerHTML = this.getName();
  if (this.isOpen()) {
    Y.get("lightboxTitle").innerHTML = this.getName();
  }
};
 
FS_lightbox.addLightbox = function() {
  var newName = prompt('Enter a name for your new lightbox:');
  if (newName) {
    var callback = {
      success: function(o) {
        var message = '';
        var response = eval('('+o.responseText+')');
        if (response.code==0) {
          var res = response.argument;
          var i = lightboxes.length;
          FS_lightbox.initLightbox(res, i);
          lightboxes[i] = res;
        } else {
          alert(response.message);
        }
      }
    }
    var cObj = YAHOO.util.Connect.asyncRequest('POST', '/Ajax/Lightbox/Create', callback, "lightboxName=" + newName );
  }
}
 
FS_lightbox.deleteLightbox = function(lbId) {
  // see if there is more than one lightbox
  var lbCnt = 0;
  for (i in FS_lightbox.m_lightboxes) {
    if (i.match(/lightbox_/))
      lbCnt++
  }
  if (lbCnt<=1) {
    alert('The last lightbox cannot be deleted');
    return false;
  }
  var lightbox = FS_lightbox.getLightbox(lbId);
  var dbId = lightbox.getDbId();
  var doIt = confirm('Are you sure you want to delete lightbox \''+lightbox.getName()+'\'?');
  
  if (doIt) {
    var callback = {
      success: function(o) {
        var message = '';
        try {
          var response = eval('('+o.responseText+')');
          
        } catch (exc2) 
        {
	//  var response = [code:0,message:''];
        }
        if (response.code==0) {
          lightbox.unreg();
          var Y = YAHOO.util.Dom;
          Y.setStyle(lightbox.id+'_outer', 'display', 'none');
          Y.get(lightbox.id+'_outer').outerHTML = '';
          //Y.get(lightbox.id+'_outer').innerHTML = ''; // FF doesn't update when outerHTML is changed
          if (lightbox.isOpen()) {
            FS_lightbox.toggleLightbox(lightbox);
          }
          delete FS_lightbox.m_lightboxes[lbId];
        } else {
          alert(response.message);
        }
      }
    }
    var cObj = YAHOO.util.Connect.asyncRequest('POST', '/Ajax/Lightbox/Delete', callback, "lightboxId=" + (lightbox.getDbId()) );
  }
}
 
FS_lightbox.deleteLightboxItem = function(lbId, lbItemId) {
  var lightbox = FS_lightbox.getLightbox(lbId);
  var dbId = lightbox.getDbId();
 
  var doIt = confirm('Are you sure you want to delete this item from lightbox \''+lightbox.getName()+'\'?');
  
  if (doIt) {
    var callback = {
      success: function(o) {
        var message = '';
        var response = eval('('+o.responseText+')');
        if (response.code==0) {
          FS_lightbox.openLightbox(lightbox);
          if (lightbox.isOpen()) {
          }
        } else {
          alert(response.message);
        }
      }
    }
    var cObj = YAHOO.util.Connect.asyncRequest('POST', '/Ajax/Lightbox/DeleteItem', callback, "lightboxItemId=" + lbItemId + "&lightboxId=" + dbId );
  }
}
 
FS_lightbox.renameLightbox = function(lbId) { 
  
  var newName = prompt('Enter new lightbox name:', FS_lightbox.getLightbox(lbId).getName());
  
  if (newName) {
    var lightbox = FS_lightbox.getLightbox(lbId);
    var dbId = lightbox.getDbId();
    lightbox.setName(newName);
    
    var callback = {
      success: function(o) {
        var message = '';
        var response = eval('('+o.responseText+')');
        if (response.code==0) {
          var res = response.argument;
          lightbox.repaint();
          FS_lightbox.closeOptionsMenu();
        } else {
          alert(response.message);
        }
      }
    }
    var cObj = YAHOO.util.Connect.asyncRequest('POST', '/Ajax/Lightbox/Rename', callback, "lightboxId="+dbId+"&newName=" + newName);
  }
};
FS_lightbox.emailLightbox = function(lbId) { 
  var mailto = prompt('Enter email address(es) to send lightbox to (separate multiple addresses with a comma):');
 
  if (mailto) {
    var lightbox = FS_lightbox.getLightbox(lbId);
    var dbId = lightbox.getDbId();
    var callback = {
      success: function(o) {
        var message = '';
        try {
          var response = eval('('+o.responseText+')');
        } catch (ex) {}
        if (response.code==0) {
          var res = response.argument;
          alert('Emailed lightbox link to \''+mailto+'\'');
          FS_lightbox.closeOptionsMenu();
        } else {
          alert(response.message.urlDecode());
        }
      }
    }
    var cObj = YAHOO.util.Connect.asyncRequest('POST', '/Ajax/Lightbox/Email', callback, "lightboxId="+dbId+"&mailTo="+mailto);
    
  }
};
 
FS_lightbox.initLightbox = function(lightbox,i) {
  var id = "lightbox_"+i;
  var html = '<div class="lightbox_item" id="'+id+'_outer"><div class="lightbox_menu_normal" id="'+id+
  '" onclick="FS_lightbox.toggleLightbox(this)" onmouseover="YAHOO.util.Dom.addClass(this,\'lightbox_menu_over\')" '+
  'onmouseout="YAHOO.util.Dom.removeClass(this,\'lightbox_menu_over\')"><table><tr><td id="'+id+'_name">'+
  ( new String(lightbox.name).urlDecode())+'</td></tr><table></div></div>';
  findObj("lightboxMenu").innerHTML += html;
  
  var lb = new FS_lightbox(id, "lightboxes");
  var optMenu = function() {
    return '<ul class="lightboxOptionsMenu">'+
    '<li><a href="#" onclick="FS_lightbox.renameLightbox(\''+id+'\');return false">Rename Lightbox</a></li>'+
    '<li><a href="/Checkout/'+lightbox.dbId+'">Purchase Lightbox</a></li>'+
    '<li><a href="/DownloadLightbox/'+lightbox.dbId+'" onclick="alert(\'Download will begin now\')" >Download Lightbox Thumbs</a></li>'+
    '<li><a href="#" onclick="FS_lightbox.emailLightbox(\''+id+'\');return false;">Email Lightbox</a></li>'+
    '<li><a href="#" onclick="FS_lightbox.deleteLightbox(\''+id+'\');return false;">Delete Lightbox</a></li>'+
    '</ul>'
  };
  var props = [new String(lightbox.name).urlDecode(), "lightbox_menu_normal","lightbox_menu_dragging","lightbox_menu_dragover","lightbox_menu_selected",optMenu];
  FS_lightbox.m_lightboxes[id] = lb;
  
  FS_lightbox.applyLightboxProperties(lb, props);
  lb.setDbId(lightbox.dbId);
}
//FS_lightbox.lightboxInit 
/*
Initialize the lightboxes
 */
FS_lightbox.initLightboxes = function(e) {
  try {
    var Y = YAHOO.util.Dom;
    var cnt = STOCK.property.cartItemCount
    Y.get("cartMenuLabel").innerHTML = cnt + ' item'+((cnt==1)?'':'s')+' in cart'
    Y.get("lightboxMenu").innerHTML = "";
    
    findObj("lightboxMenu").innerHTML = "";
    var lightboxMenus = [];
    var i,html = '';
    for (i=0;i<lightboxes.length;i++) {
      if (lightboxes[i].isCart == 'true') {
        var lb = new FS_lightbox('cartMenu', "lightboxes");
        lb.isCart = function() { return true; }
        var dbId = lightboxes[i].dbId
        var optMenu = function() { 
          return '<ul class="lightboxOptionsMenu">'+
          '<li><a href="/Checkout/'+dbId+'">Purchase Cart</a></li>'+
          '<li><a href="/DownloadLightbox/'+dbId+'" onclick="alert(\'Download will begin now\')" >Download Cart Thumbs</a></li>'+
          '<li><a href="#" onclick="FS_lightbox.emailLightbox(\'cartMenu\');return false;">Email Cart</a></li>'+
          '</ul>' 
        }
        var props = [lightboxes[i].name.urlDecode(), "cart_menu_normal","cart_menu_dragging","cart_menu_dragover","cart_menu_selected",optMenu];
        FS_lightbox.m_lightboxes['cartMenu'] = lb;
        FS_lightbox.applyLightboxProperties(lb, props);
        lb.setDbId(dbId);
      } else {
        FS_lightbox.initLightbox(lightboxes[i], i);
      }
    }
    
    var id = "lightboxSpace";
    var lb = new FS_lightbox(id, "lightboxes");
    var optMenu = function() {return ""}
    lb.setDbId(id);
    FS_lightbox.applyLightboxProperties(lb, ["","lightbox_normal","lightbox_dragging","lightbox_dragover",null,optMenu]);
    FS_lightbox.m_lightboxes[id] = lb;
    
    var i,players = [];
    for (i=0;i<THUMBS_PER_PAGE;i++) {
      try {
        //  players[i] = new FS_lightboxPlayer("dragThumb"+i, "lightboxes");
      } catch(e){ }
    }
    
    YAHOO.util.DDM.mode = 0;
    
    var lbrh = new YAHOO.util.DD("lightboxResizeHandle");
    lbrh.setYConstraint(0,0);
    lbrh.setXConstraint(0, 400);
    
    lbrh.onDrag = function(e) {
      
      YAHOO.example.anim.hideOverlay();
      FS_lightbox.closeOptionsMenu();
      var left = YAHOO.util.Dom.getStyle(this.id, "left");
      if (left) {
        lightboxOpenWidth = new Number(left.replace("px","")) + 16;				
        
        setCookie("lightboxWidth", lightboxOpenWidth, 2, "/");
        YAHOO.util.Dom.setStyle("lightboxSpace", "width", lightboxOpenWidth+"px" );
        YAHOO.util.Dom.setStyle("lightboxInnerSpace", "width", (lightboxOpenWidth-26)+"px");
        YAHOO.util.Dom.setStyle("contentBounds", "marginLeft", (lightboxOpenWidth)+"px");
      }
    }
  } catch(e) {	
  }
}
FS_lightbox.applyLightboxProperties = function(lb, p) {
  lb.setName(p[0]);
  lb.setCssNormal(p[1]);
  lb.setCssDragging(p[2]);
  lb.setCssDragOver(p[3]);
  lb.setCssSelected(p[4]);
  lb.getOptionsMenuOptions = p[5];
}
 
FS_lightbox.toggleLightbox = function(lightbox) {
  
  FS_lightbox.closeOptionsMenu();
  
  var lbCol = FS_lightbox.m_lightboxes
  if (!lightbox) { lightbox = {"id":FS_lightbox.openId}}
  var lbId = lightbox.id
  var isClosing = FS_lightbox.isOpen(lbId); 
  try {
    YAHOO.example.anim.hideOverlay();
    try {
      var lightboxOpenWidth = 112;
      var low = getCookie("lightboxWidth");
      if (low!=null) lightboxOpenWidth = low;
      if (low<112) low = 112;
    } catch(e) {}
    YAHOO.util.Dom.setStyle("lightboxResizeHandle", "left", (lightboxOpenWidth-16)+"px");
    
    var attributes = { width: {to: ((isClosing) ? 1 : lightboxOpenWidth) } }
    var anim = new YAHOO.util.Anim('lightboxSpace', attributes, 0.15, YAHOO.util.Easing.easeIn);
    anim.animate();
    
    try {
      var attributes2 = {  marginLeft: {to: ((isClosing) ? 0 : lightboxOpenWidth ) }  }
      var anim2 = new YAHOO.util.Anim('contentBounds', attributes2, 0.15, YAHOO.util.Easing.easeIn);
      anim2.animate();
    } catch(e) {}
    
    YAHOO.util.Dom.setStyle("lightboxInnerSpace", "width", (lightboxOpenWidth-26)+"px");
    if (isClosing) { 
      //      window.setTimeout('YAHOO.util.Dom.setStyle("lightboxSpace", "visibility", "hidden")' , 200);
      window.setTimeout('YAHOO.util.Dom.setStyle("lightboxSpace", "display", "none")' , 200);
    } else {
      YAHOO.util.Dom.setStyle("lightboxSpace", "visibility", "visible");
      YAHOO.util.Dom.setStyle("lightboxSpace", "display", "");
    }
    var i;
    for (i in lbCol) {
      try {
        YAHOO.util.Dom.removeClass(i,lbCol[i].cssSelected);
      } catch(e){}
    }
    if (!isClosing) {
      // hilite lightbox
      YAHOO.util.Dom.addClass(lbId,lbCol[lbId].cssSelected);		
      FS_lightbox.openLightbox(lbCol[lbId]);
      lbCol["lightboxSpace"].setName(lbCol[lbId].getName());
      lbCol[lbId].loadOptionsMenuOptions();
      var openId = FS_lightbox.openId
      if (openId!=null) lbCol[openId].onClose();
      lbCol[lbId].onOpen();			
    } else {
      lbCol[lbId].onClose();
    }
    
  } catch(e){
    alert(e)
  }
  FS_lightbox.openId = (!isClosing) ? lbId : null;
}
 
FS_lightbox.isOpen = function(id) {
  return (FS_lightbox.openId && FS_lightbox.openId==id) ? true : false;
}
FS_lightbox.prototype.isOpen = function() {
  return (FS_lightbox.openId && FS_lightbox.openId==this.id) ;
}
 
FS_lightbox.prototype.onClose = function() {}
FS_lightbox.prototype.onOpen = function() {}
FS_lightbox.prototype.setCssNormal = function(css) { this.cssNormal = css; };
FS_lightbox.prototype.setCssDragging = function(css) { this.cssDragging = css; };
FS_lightbox.prototype.setCssDragOver = function(css) { this.cssDragOver = css; };
FS_lightbox.prototype.setCssSelected = function(css) { this.cssSelected = css; };
FS_lightbox.getLightbox = function(lb) { return FS_lightbox.m_lightboxes[lb]; };
FS_lightbox.getActiveLightbox = function() { return (FS_lightbox.openId!=null) ? FS_lightbox.m_lightboxes[FS_lightbox.openId] : null };
FS_lightbox.toggleOptionsMenu = function() {
  if (FS_lightbox.isToggleOptionsMenuOpen) {
    FS_lightbox.closeOptionsMenu();
  } else {
    FS_lightbox.openOptionsMenu();
  }
}
FS_lightbox.openOptionsMenu = function() {
  FS_lightbox.isToggleOptionsMenuOpen = true;
  swapImage("lightboxOptionsBtn","/resources/images/btn-lightbox-options-open.gif");
  YAHOO.util.Dom.setStyle("lightboxOptionsMenu","visibility","visible");
  var xy = YAHOO.util.Dom.getXY("lightboxOptionsBtn");
  YAHOO.util.Dom.setXY("lightboxOptionsMenu", [xy[0] ,(xy[1] +14)] );
}
FS_lightbox.closeOptionsMenu = function() {
  FS_lightbox.isToggleOptionsMenuOpen = false;
  swapImage("lightboxOptionsBtn","/resources/images/btn-lightbox-options.gif");
  YAHOO.util.Dom.setStyle("lightboxOptionsMenu","visibility","hidden");
}
FS_lightbox.prototype.addItem = function(lbEl,img) {
  // if loaded, put in main lightbox array
  // else put in temp lightbox array and call loadLightbox
  if (true) {
    
  } else { 
    lbEl.loadLightbox();
  }
}
 
FS_lightbox.openLightbox = function(lightbox) { 
  
  findObj("lightboxTitle").innerHTML = lightbox.getName();
  
  var str = '';
  for (var i in lightbox) {
    str += i + " = " + lightbox[i] + "\n";
  }
//  alert(str)
  
  try {
    var lt = findObj("lightboxThumbs");
    lt.innerHTML = '<img src="/resources/images/progress-ani.gif" />'
  } catch(e) {
  //  alert(e)
  }
  
  var callback = {
    success: function(o) {
      var message = '';
      var response = eval('('+o.responseText+')');
      var TMP_HTML = ''
      if (response.code==0) {
        var d = response.argument;
        for (var i=0;i<d.length;i++) {
          TMP_HTML += '<a href="#" onclick="FS_lightbox.deleteLightboxItem(\'' + lightbox.id + '\', ' + d[i].lbItemId + '); return false" style="display:block; margin:0px 0px -11px 0px"><img src="/resources/images/lightbox-btn-close.gif" /></a>'
          TMP_HTML += '<div class="lightboxThumbContainer" id="'+(d[i].itemId)+'" onclick="YAHOO.example.anim.init(this)">'
          TMP_HTML += '<table><tr><td class="lightboxThumb" style="background-color:white"><div id="dragThumb"><img alt=" " src="/FSViewThumb/' + (d[i].itemId) + '/small/thumb/" /></div></td></tr></table>'
          TMP_HTML += '</div>';
        }
        if (d.length==0) {
          TMP_HTML += 'Empty'
        }
      } else {
        TMP_HTML = response.message;
      }
      var lt = findObj("lightboxThumbs");
      lt.innerHTML = TMP_HTML;
    }
  }
  
  var cObj = YAHOO.util.Connect.asyncRequest('POST', '/Ajax/Lightbox/View', callback, "lightboxId="+ (lightbox.getDbId()) );
  
};
FS_lightbox.prototype.loadOptionsMenuOptions = function(opt) {
  try { findObj("lightboxOptionsMenu").innerHTML = this.getOptionsMenuOptions() } catch (e){}
}
FS_lightbox.prototype.getOptionsMenuOptions = function() {
  return "No options available";
}
 
 
 
FS_lightboxPlayerStack.prototype = new YAHOO.util.DDTarget();
FS_lightboxPlayer.TYPE = "FS_lightboxPlayer";
 
/**
 * @class a YAHOO.util.DDFramed implementation. During the drag over event, the
 * dragged element is inserted before the dragged-over element.
 *
 * @extends YAHOO.util.DDProxy
 * @constructor
 * @param {String} id the id of the linked element
 * @param {String} sGroup the group of related DragDrop objects
 */
function FS_lightboxPlayer(id, sGroup) {
  this.initPlayer(id, sGroup);
}
 
FS_lightboxPlayer.prototype = new YAHOO.util.DDProxy();
 
FS_lightboxPlayer.prototype.initPlayer = function(id, sGroup) {
  if (!id) { return; }
  
  this.init(id, sGroup);
  this.initFrame();
  this.setDragElId("tmpPlayer");
  var s = this.getDragEl().style;
  
  // specify that this is not currently a drop target
  this.isTarget = false;
  
  
  this.type = FS_lightboxPlayer.TYPE;
  this.slot = null;
  
  this.startPos = YAHOO.util.Dom.getXY( this.getDragEl() );
}
 
FS_lightboxPlayer.prototype.startDrag = function(x, y) {
  this.originalStyles = [];
  var dragEl = this.getDragEl();
  var clickEl = this.getEl();
  YAHOO.util.Dom.setStyle(dragEl,"opacity",".25");
  this.setDelta(10,10);
  var s = clickEl.style;
  s.opacity = .1;
  s.filter = "alpha(opacity=10)";
  var targets = YAHOO.util.DDM.getRelated(this, true);
  for (var i=0; i<targets.length; i++) {
    var targetEl = this.getTargetDomRef(targets[i]);
    if (!this.originalStyles[targetEl.id]) {
      this.originalStyles[targetEl.id] = targetEl.className;
    }
    var lbEl = FS_lightbox.getLightbox(targetEl.id);
    YAHOO.util.Dom.addClass(targetEl,lbEl.cssDragging);
    YAHOO.util.Dom.removeClass(targetEl,lbEl.cssNormal);
  }
};
 
FS_lightboxPlayer.prototype.getTargetDomRef = function(oDD) {
  if (oDD.player) {
    return oDD.player.getEl();
  } else {
    return oDD.getEl();
  }
};
 
FS_lightboxPlayer.prototype.endDrag = function(e) {
  YAHOO.util.Dom.setStyle(this.getEl(),"opacity","1");
  YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");
  this.resetTargets();
};
 
FS_lightboxPlayer.prototype.resetTargets = function() {
  var targets = YAHOO.util.DDM.getRelated(this, true);
  for (var i=0; i<targets.length; i++) {
    var targetEl = this.getTargetDomRef(targets[i]);
    var oldStyle = this.originalStyles[targetEl.id];
    if (oldStyle) {
      targetEl.className = oldStyle;
    }
  }
};
FS_lightboxPlayer.prototype.getItemId = function() {
  var id = this.id.substr(9);
  return id;
}
FS_lightboxPlayer.prototype.onDragEnter = function(e, lightbox) {
  var lbEl = FS_lightbox.getLightbox(lightbox);
  YAHOO.util.Dom.addClass(lightbox, lbEl.cssDragOver);
  YAHOO.util.Dom.removeClass(lightbox,lbEl.cssDragging);
}
FS_lightboxPlayer.prototype.onDragOut = function(e, lightbox) {
  var lbEl = FS_lightbox.getLightbox(lightbox);
  YAHOO.util.Dom.removeClass(lightbox, lbEl.cssDragOver);
  YAHOO.util.Dom.addClass(lightbox,lbEl.cssDragging);
}
 
 
FS_lightboxPlayer.prototype.onDragDrop = function(e, id) {
  
  try { 
    if ("string" == typeof id) {
      lightbox = YAHOO.util.DDM.getDDById(id);
    } else {
      lightbox = YAHOO.util.DDM.getBestMatch(id);
    }
    var el = lightbox.getEl();
    //alert('got here')
    var lbId = lightbox.id;
    var dbId = lightbox.getDbId()
    if (dbId=='lightboxSpace') {
      lbId = FS_lightbox.openId;
      var alb = FS_lightbox.getActiveLightbox();
      if (alb) dbId = alb.getDbId();
    }
    
    var callback = {
      success: function(o) {
 
        var message = '';
        var response = eval('('+o.responseText+')');
        //				alert('got here 2 -- '+response.code);
        var lb = FS_lightbox.getLightbox(el.id); //el.id
        //        alert(el.id)
        var lbName = lb.getName();
        
        if (response.code==0) {
          
          // var lbId = lightbox.id;
          if (FS_lightbox.isOpen(lbId)) FS_lightbox.openLightbox(FS_lightbox.getLightbox(lbId));
          message = 'Added image to <b>'+lbName+'</b>'
          YAHOO.util.Dom.setStyle('lightboxMessage', 'display', 'block');
          YAHOO.util.Dom.setStyle('lightboxMessage', 'opacity', '1');
          findObj('lightboxMessage').innerHTML = message;
          hide = function () {
            var attributes = {opacity:{to: 0}}
            var anim = new YAHOO.util.Anim('lightboxMessage', attributes, .7);
            anim.animate();
          }
          window.setTimeout("hide()", 1500);
          window.setTimeout("YAHOO.util.Dom.setStyle('lightboxMessage', 'display', 'none')", 2200);
          
          // update cart display
          if (lb.getDbId()=='lightboxSpace') {
            lbId = FS_lightbox.openId;
            var alb = FS_lightbox.getActiveLightbox();
            if (alb) lb = alb;
          }
          if (lb.isCart()) {
            STOCK.property.cartItemCount++
            var cnt = STOCK.property.cartItemCount
            YAHOO.util.Dom.get("cartMenuLabel").innerHTML = cnt + ' item'+((cnt==1)?'':'s')+' in cart'
          }
          
        } else {
          alert(response.message);
        }
      }
    }
    var cObj = YAHOO.util.Connect.asyncRequest('POST', '/Ajax/Lightbox/AddTo', callback, "itemId=" + this.getItemId() + "&lightboxId="+ (dbId) );
    
  } catch(e){
    alert(e)
  };
};
 
FS_lightboxPlayer.prototype.swap = function(el1, el2) {
  var dom = YAHOO.util.Dom;
  var pos1 = dom.getXY(el1);
  var pos2 = dom.getXY(el2);
  dom.setXY(el1, pos2);
  dom.setXY(el2, pos1);
};
 
FS_lightboxPlayer.prototype.onDragOver = function(e, id) {};
 
FS_lightboxPlayer.prototype.onDrag = function(e, id) {};
