1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| function PopEx(obj, newLeft, newTop, newWidth, newHeight, speed, className)
{
if (typeof obj == "string") obj = GetRawObject(obj);
if (obj.id == "")
obj.id = CreateRandomId();
var poppedSrc = obj.getAttribute('pbSrcNL');
if (poppedSrc != null)
{
if (pbSrc[obj.id] != null)
{
if (pbSrc[obj.id].src != poppedSrc)
pbSrc[obj.id].src = poppedSrc;
}
else
{
pbSrc[obj.id] = new Image();
pbSrc[obj.id].src = poppedSrc;
}
}
else if (pbSrc[obj.id] == null)
{
poppedSrc = obj.getAttribute('pbSrc');
if (poppedSrc != null)
{
pbSrc[obj.id] = new Image();
pbSrc[obj.id].src = poppedSrc;
}
}
var objToPop = (pbSrc[obj.id] != null) ? pbSrc[obj.id] : obj;
var isReady = (typeof objToPop.readyState != 'undefined') ? (objToPop.readyState == "complete") : ((typeof objToPop.complete != 'undefined') ? (objToPop.complete == true) : true);
if (isReady == false)
{
var imgWait = CreateWaitImage(obj);
var str = "var imgWait = GetRawObject('" + imgWait.id + "'); imgWait.parentNode.removeChild(imgWait); PopEx('" + obj.id + "'," + newLeft + "," + newTop + "," + newWidth + "," + newHeight + "," + speed + ",'" + className + "');";
objToPop.onload = new Function("", str);
return;
}
var elem = InitPopBox(obj);
if (popBox[elem.id].isPopped == true) return;
if (typeof elem.ondblclick == "function")
elem.onclick = elem.ondblclick;
var startX = parseInt(elem.style.left);
var startY = parseInt(elem.style.top);
if (newWidth == 0 || newHeight == 0)
{
// get size from original object
if (pbSrc[obj.id] != null)
{
newWidth = pbSrc[obj.id].width;
newHeight = pbSrc[obj.id].height;
}
else if (obj.naturalWidth && obj.naturalHeight)
{
newWidth = obj.naturalWidth;
newHeight = obj.naturalHeight;
}
else
{
var img = new Image();
img.src = elem.src;
newWidth = img.width;
newHeight = img.height;
delete img;
}
// some browsers have a race condition where it still doesn't get set so just fill the window
if (newWidth == 0 || newHeight == 0)
{
var windowSize = GetInsideWindowSize();
var scale = Math.min(parseFloat(windowSize.x) / parseFloat(elem.width), parseFloat(windowSize.y) / parseFloat(elem.height));
newWidth = parseInt(elem.width * scale);
newHeight = parseInt(elem.height * scale);
}
} |
Partager