// -------------------------------------------------------------------------------------------------------
// Global consts
// -------------------------------------------------------------------------------------------------------
var imageSize = 89;
//var imageSize = 71;
var lightboxMenuHeight = 30;
var lightboxImageSpacing = 3;
var lightboxRemoveHeight = 25;
var lightboxMaxTopPos = 200;
var dragbarHeight = 5;
// var serverUrl = getUrl(true, false);
var serverUrl = getUrlV2("http", "none");
var testTimer;

// -------------------------------------------------------------------------------------------------------
// Global vars
// -------------------------------------------------------------------------------------------------------

// Arrays
if(typeof(imageArray)=="undefined")
    var imageArray = new Array();
    
if(typeof(imageArrayIndex)=="undefined")
    var imageArrayIndex = new Array();

var lightboxImageArray = new Array();

// vars
var lightboxId = readCookie("TrunkActiveLightbox");
var lightboxReady = false;
var lightboxbar_height = Number(getUserSettingFromCookie("lightboxbar","height"));
var lightboxbar_isHidden = ReturnTrueFalseAsBoolean(getUserSettingFromCookie("lightboxbar","isHidden"));
var lightboxbar_doFirstImageAddedAlert = ReturnTrueFalseAsBoolean(getUserSettingFromCookie("lightboxbar","doFirstImageAddedAlert"));

var drageMoveFiredCount = 0;


function initLightbox() {

    if (isOldIE) {
        document.body.onresize = renderLightbox;
    }
    			
    renderLightbox();
}

// -------------------------------------------------------------------------------------------------------
// Drag image
// -------------------------------------------------------------------------------------------------------
function setupDrag(imageId, isFromLightBox)
{
	// Set image
	mouseEventObject.imageId = imageId;
	mouseEventObject.isFromLightBox = isFromLightBox;

	// Subscribe
	mouseEventObject.move = imageDragMouseMove;
	mouseEventObject.up = imageDragMouseUp;
	mouseEventObject.down = imageDragMouseDown;
}

function imageDragMouseDown()
{
	drageMoveFiredCount = 0;

	var imageItem = new Object();
	
	if(mouseEventObject.isFromLightBox)
		imageItem = lightboxImageArray[mouseEventObject.imageId];
	else
		imageItem = imageArray[mouseEventObject.imageId];

	// Copy the image HTML to the drag and drop layer
	var divTempImage = document.getElementById("imageDragDiv");
	divTempImage.innerHTML = "<table width=\"" + imageSize + "\" height=\"" + imageSize + "\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" valign=\"middle\"><img id=\"dragLayer\" src=\"" + imageDir + imageSize + "s/" + imageItem.no + ".jpg\" alt=\"\" border=\"0\"></td></tr></table>";	
}

function imageDragMouseUp()
{
	if(drageMoveFiredCount < 5)
	{
		document.getElementById('imageDragDiv').style.display = "none";
		
		imageClick(mouseEventObject.imageId, mouseEventObject.isFromLightBox);
			
	}
	else if(document.getElementById("imageDragDiv").style.display == "block")
	{
	    var lightboxBarContainer = document.getElementById('lightboxDiv');
	    
		document.getElementById('imageDragDiv').style.display = "none";
    	
	    // check if we let go of the image in the lightboxBar or not ( and we are on the lightbox.aspx page - indicated by object called "LB" exists
		if(mouseEventObject.y < lightboxBarContainer.offsetTop && typeof(LB) != "undefined")
		{
		    /* The image has been dropped in the lightboxPage. */
		    LB.addImage(mouseEventObject.imageId);
		    
		    // switch "isInLightbox" image to on - this image was added from the lightboxbar
        	document.getElementById("image" + mouseEventObject.imageId + "IsInLightbox").src = "gfx/image_icon_lightbox_on.gif";

		}
		else
		{
		    //if(mouseEventObject.y < document.body.clientHeight - lightboxbar_height)
		    if(mouseEventObject.y < lightboxBarContainer.offsetTop)
		    {
			    if(mouseEventObject.isFromLightBox)
			    {
				    addRemoveImage(mouseEventObject.imageId, false, false);
			    }
		    }
		    else
		    {
			    addRemoveImage(mouseEventObject.imageId, true, mouseEventObject.isFromLightBox);
		    }
		}
	}
	
	cleanUpMouseEventObject();
	
	return true;
}

function imageDragMouseMove(e)
{
	drageMoveFiredCount ++;

	var imageDragDiv = document.getElementById('imageDragDiv');
	
	imageDragDiv.style.display = "block";
	imageDragDiv.style.left = (mouseEventObject.x -  Math.floor(imageSize/2)) + "px";
	imageDragDiv.style.top = (mouseEventObject.y -  Math.floor(imageSize/2)) + "px";

	funWithMove(mouseEventObject.imageId, true);
}

function funWithMove(imageId, internalCall)
{
	// Get container node
	var container = document.getElementById('lightboxImagesDiv');
	var lightboxBarOuterDiv = document.getElementById('lightboxDiv');

	var targetNode = null;
	var lastNode = null;
	var displayLast = true;
	
	// loop vars
	var divScrollOffset = document.getElementById("lightboxImagesDiv").scrollTop;	
	var containerNode = null;

	for(var i=(container.childNodes.length - 1); i>=0; i--)
	{
		containerNode = container.childNodes[i];
	
		// Make sure it is an element and not whitespace
		if(containerNode.nodeType == 1)
		{
		    var imgId = containerNode.id.replace("divLightbox","");		    
		    var img = lightboxImageArray[imgId];
		
			if(lastNode == null)
				lastNode = containerNode;
		
            var lightboxDivOffsetTop = Number(document.getElementById("lightboxDiv").offsetTop);
            var lightboxImagesContainerDivOffsetTop = Number(document.getElementById("lightboxImagesContainerDiv").offsetTop);
            if(
                mouseEventObject.y > lightboxBarOuterDiv.offsetTop && /* check if we are in the lightboxBar or not */
                (mouseEventObject.x - pagePadding) > containerNode.offsetLeft && 
                (mouseEventObject.x - pagePadding) < (containerNode.offsetLeft + containerNode.offsetWidth) && 
                mouseEventObject.y > (lightboxDivOffsetTop + lightboxImagesContainerDivOffsetTop + containerNode.offsetTop - divScrollOffset) &&
                mouseEventObject.y < (lightboxDivOffsetTop + lightboxImagesContainerDivOffsetTop + containerNode.offsetTop + containerNode.offsetHeight - divScrollOffset)
               )
			{
				containerNode.className = "lightboxImage selectedLightBoxImage";
				displayLast = false;
			}
			else {
			    if (img.alert == "true") {
	    			containerNode.className = "lightboxImage alarmLightboxImage";
			    } 
			    else if (img.alert == "nohires") {
			    	containerNode.className = "lightboxImage alarmLightboxImageHiresMissing";
			    }
			    else {
    				containerNode.className = "lightboxImage";
			    }
			}				
		}
	}
	
	/* do we need this TODO: 
	if(
        lightboxImageArray[imageId] != null && 
        displayLast && 
        mouseEventObject.y > document.body.clientHeight - lightboxbar_height + menuHeight
	  )
				containerNode.className = "lightboxImage selectedLightBoxImage";
	*/	
	
	// Loop through the Lightboxpage nodes and highlight if we are between them - and on the lightbox page.
	if(typeof(LB) != "undefined" && internalCall == true)
        LB.funWithMove(imageId, false); // function from lightboxBar.js
}

function imageClick(imageId, isFromLightbox)
{
	var action = getUserSettingFromCookie("searchPage","clickImageAction");
	
	if(action == 1)
		setupQuickView(imageId, isFromLightbox);
	
	if(action == 2)
		location.href = serverUrl + "Image.aspx?image=" + imageId;
		
	if(action == 3)
		openPopUp(serverUrl + "Image.aspx?image=" + imageId, "ShowImage" + imageId, 800, 600, false, true)
}

// -------------------------------------------------------------------------------------------------------
// Drag lightbox size
// -------------------------------------------------------------------------------------------------------
function lightboxDrageStart()
{
	if(!lightboxbar_isHidden)
	{
		// Subscribe
		mouseEventObject.move = lightboxDragMouseMove;
		mouseEventObject.up = lightboxDrageMouseUp;
		mouseEventObject.down = lightboxDragMouseMove;
		document.body.style.cursor = 'n-resize';
	}
	else
	{
		lightboxShowHide();
		cleanUpMouseEventObject();
	}
}

function lightboxDragMouseMove()
{
    
    var fcb = document.getElementById('framecontentBottom');
	var newHeight = fcb.offsetTop - mouseEventObject.y;
	// (40 + lightboxMenuHeight + dragbarHeight) + "px";				
	
    if( (newHeight >= lightboxMenuHeight + dragbarHeight) && newHeight < (fcb.offsetTop - 138) )
		lightboxbar_height = newHeight;

    if( newHeight < lightboxMenuHeight + dragbarHeight + 30 )
		lightboxbar_height = lightboxMenuHeight + dragbarHeight + 30;
    
    if( newHeight > (fcb.offsetTop - 138) )
		lightboxbar_height = fcb.offsetTop - 138;
    
	renderLightbox();
}

function lightboxDrageMouseUp()
{
	document.body.style.cursor = 'default';
	updateUserSettings(true, true, "lightboxbar_height");
	cleanUpMouseEventObject();
}


// -------------------------------------------------------------------------------------------------------
// Lighbox content
// -------------------------------------------------------------------------------------------------------
function renderLightbox()
{
	var safariMod = 0;
    var lb = document.getElementById("lightboxDiv");
    var lbImages = document.getElementById("lightboxImagesDiv");
    var lbImagesContainer = document.getElementById("lightboxImagesContainerDiv");
    var mainContent = document.getElementById("maincontent");        
    var framecontentBottom = document.getElementById("framecontentBottom");
    /*
	if(navigator.userAgent.indexOf( 'Safari' ) != -1)
		safariMod = -9;
	*/
	
	// Set the size of the lightbox
	if(lightboxbar_isHidden)
	{
		lb.style.height = (lightboxMenuHeight + dragbarHeight) + "px";				
		lbImagesContainer.style.display = "none";
		if (isOldIE) mainContent.style.height = (framecontentBottom.offsetTop - (lightboxMenuHeight + dragbarHeight + safariMod) - mainContent.offsetTop) + "px";
		mainContent.style.bottom = (40 + lightboxMenuHeight + dragbarHeight) + "px";	
		document.getElementById("lightboxToggleAnchor").innerHTML = 'SHOW LIGHTBOX BAR';
		showMenuContent(false);
	}
	else
	{
	    //console.info(framecontentBottom.offsetTop + " " + lightboxbar_height);
	    if ((framecontentBottom.offsetTop - 138) < lightboxbar_height) {	    
	        lightboxbar_height = framecontentBottom.offsetTop - 138;
	    }
	
		lb.style.height = (lightboxbar_height) + "px";	
		if (isOldIE) mainContent.style.height = (framecontentBottom.offsetTop - lightboxbar_height - mainContent.offsetTop) + "px";
		mainContent.style.bottom = (40 + lightboxbar_height) + "px";
		lbImages.style.height = (lightboxbar_height - (lightboxMenuHeight + dragbarHeight)) + "px";
		lbImagesContainer.style.display = "block";		
		document.getElementById("lightboxToggleAnchor").innerHTML = 'HIDE';
		showMenuContent(true);
	}	
	
	if (isOldIE) lb.style.left = "0px";
	
	resizePage();
}

function lightboxShowHide(isSetup)
{
	if(lightboxbar_isHidden)
	{
		document.getElementById("lightboxToggleAnchor").innerHTML = 'HIDE';
		document.getElementById("lightboxImagesContainerDiv").style.display = "block";
		lightboxbar_isHidden = false;
		showMenuContent(true);
	}
	else
	{
		document.getElementById("lightboxToggleAnchor").innerHTML = 'SHOW LIGHTBOX BAR';
		document.getElementById("lightboxImagesContainerDiv").style.display = "none";
		lightboxbar_isHidden = true;
		showMenuContent(false);
	}
	
	if(!isSetup)
	{
		updateUserSettings(true, true, "lightboxbar_isHidden");
		renderLightbox();
	}
}

/* Hide/show menu entries in the top of the lightboxbar. They should not be shown, if it is minimized. */
function showMenuContent(show)
{
    var display = show ? "block" : "none";
    for(var i=0; i <= 8; i++) {
        var obj = document.getElementById('lightboxMenuContentPart' + i); // only some elements exist if you are not logged in.
        if(obj)
            obj.style.display = display;
    }

}

function addImageToLightbox(imageId, isDrag, isFromLightBox, isSetup)
{
	// Get container node
	var container = document.getElementById('lightboxImagesDiv');
	var targetNode = null;
	var insertNode = null;
	var isNewElement = false;
	
	if(lightboxImageArray[imageId] != null && !isSetup)
		insertNode = document.getElementById('divLightbox' + imageId);
	else
	{
		if(isSetup)
			insertNode = createLightboxNode(imageId, lightboxImageArray[imageId].no);
		else
		{
			lightboxImageArray[imageId] = imageArray[imageId];
			insertNode = createLightboxNode(imageId, imageArray[imageId].no);
		}
	
		isNewElement = true;
	}
	
	// loop vars
	var divScrollOffset = document.getElementById("lightboxImagesDiv").scrollTop;	
	var containerNode = null;
	var lastContainerNode = null;
	var containerNodeFound = false;
	
	if(isDrag)
	{
	    // running through the image divs of the lightbox in backwards order.
		for(var i=(container.childNodes.length - 1); i>=0; i--)
		{
			containerNode = container.childNodes[i];
		
			// Make sure it is an element and not whitespace
			if(containerNode.nodeType == 1)
			{			   			    			    
			
			    var imgId = containerNode.id.replace("divLightbox","");		    
		        var img = lightboxImageArray[imgId];		
			
			    if (img.alert == "true") {
			        containerNode.className = "lightboxImage alarmLightboxImage";
			    } 
			    else if (img.alert == "nohires") {
			        containerNode.className = "lightboxImage alarmLightboxImageHiresMissing";
			    }
			    else {
			        containerNode.className = "lightboxImage";
			    }
			    
                var lightboxDivOffsetTop = Number(document.getElementById("lightboxDiv").offsetTop);
                var lightboxImagesContainerDivOffsetTop = Number(document.getElementById("lightboxImagesContainerDiv").offsetTop);
   				if(
   				    (mouseEventObject.x - pagePadding) > containerNode.offsetLeft && 
   				    (mouseEventObject.x - pagePadding) < (containerNode.offsetLeft + imageSize + (lightboxImageSpacing * 2) + 1) && 
   				    mouseEventObject.y > (lightboxDivOffsetTop + lightboxImagesContainerDivOffsetTop + containerNode.offsetTop - divScrollOffset)
  				   )
                {
					targetNode = containerNode;
				}
				
				if(containerNode == insertNode)
					containerNodeFound = true;
				
				if(containerNodeFound && targetNode != null)
				{
					break;
				}
			
				if(!containerNodeFound && containerNode == targetNode)
				{
					if(!isNewElement || isFromLightBox)
					{
						if(lastContainerNode != null)
							targetNode = lastContainerNode;
						else
							targetNode = null;
					}
					break;
				}
			}
			
			if(!containerNodeFound)
				lastContainerNode = containerNode;
		}
	}
	
	container.insertBefore(insertNode, targetNode);
	
	
	if(!isSetup && lightboxbar_doFirstImageAddedAlert)
	{
		lightboxbar_doFirstImageAddedAlert = false;
		
		if(lightboxbar_isHidden)
			lightboxShowHide();		
		
		try
		{
		    /*
			displayAlertLayer("<b>Hint:</b> Drag\'n\'Drop<br><br>To add an image, drag it to the lightbox or click the \"Lightbox\" link below the image.<br><br>Use drag & drop to re-sequence the images in the lightbox bar and in the \"View lightbox\" window.", 220, 0, "BR", 100, 100, zIndexGlobal);
			zIndexGlobal ++;
			*/
			showLightboxBarHints(null);
		}
		catch(e)
		{
		}
		
		updateUserSettings(true, true, "lightboxbar_doFirstImageAddedAlert");
	}
}

function showLightboxBarHints(e){
    var displayType;
    var xpos;
    var ypos;
    var width;
    if(null == e){
        displayType = "BR";
        xpos = 100;
        ypos = 100;
        width = 220;
    }
    else
    {
        displayType = "TL";
        var offset = rootOffset(e);
        xpos = offset.left;
        ypos = offset.top - 113;
        var clientW = document.getElementById("framecontentBottom").offsetWidth;
        width = clientW - xpos - 10; // have the box end 10px before the right edge of the screen.
    }
    //displayAlertLayer("<b>Hint:</b> Drag\'n\'Drop<br><br>To add an image, drag it to the lightbox or click the \"Lightbox\" link below the image.<br><br>Use drag & drop to re-sequence the images in the lightbox bar and in the \"View lightbox\" window.", 220, 0, "BR", 100, 100, zIndexGlobal);
    displayAlertLayer("<b>Hint:</b> Drag\'n\'Drop<br><br>To add an image, drag it to the lightbox or click the \"Lightbox\" link below the image.<br><br>Use drag & drop to re-sequence the images in the lightbox bar and in the \"View lightbox\" window.", width, 0, displayType, xpos, ypos, zIndexGlobal);
    zIndexGlobal ++;
}

function removeImageFromLightbox(imageId)
{
	document.getElementById('lightboxImagesDiv').removeChild(document.getElementById("divLightbox" + imageId));
	lightboxImageArray[imageId] = null;
}

// Add or remove image
function addRemoveImage(imageId, isDrag, isDragFromLightBox)
{
	// only allow actions if the lightbox/page is loaded 
	if(lightboxReady)
	{
		if(lightboxImageArray[imageId] == null || isDrag || isDragFromLightBox)
			addImageToLightbox(imageId, isDrag, isDragFromLightBox, false);
		else
			removeImageFromLightbox(imageId);
	
		updateLightbox(true, true);	
		addRemoveImageText(imageId);
		
		try
		{	
			var ddl = document.getElementById("lightboxSelectorDdl");
			var lightboxSelectorDdlSelected = document.getElementById("lightboxSelectorDdlSelected");
			
			var imageIds = returnLightboxIds();
			
			var imagesCountArray = imageIds.split(",");
			
			if(imagesCountArray.length == 1 && imagesCountArray[0] == "")
				ddl.options[ddl.selectedIndex].text = ddl.options[ddl.selectedIndex].text.substring(0, ddl.options[ddl.selectedIndex].text.lastIndexOf("(")) + " (0)";
			else
				ddl.options[ddl.selectedIndex].text = ddl.options[ddl.selectedIndex].text.substring(0, ddl.options[ddl.selectedIndex].text.lastIndexOf("(")) + " (" + (imagesCountArray.length) + ")";

			lightboxSelectorDdlSelected.value = ddl.options[ddl.selectedIndex].text;
		}
		catch(e)
		{
		}

		if(isDrag)
			return true;
	}
}

// Update the text on the image in the search result
function addRemoveImageText(imageId)
{
	if(document.getElementById('image' + imageId + 'IsInLightbox'))
	{
		if(lightboxImageArray[imageId] != null)
			document.getElementById('image' + imageId + 'IsInLightbox').src = "gfx/image_icon_lightbox_on.gif";
		else
			document.getElementById('image' + imageId + 'IsInLightbox').src = "gfx/image_icon_lightbox_off.gif";
	}
	
	if(document.getElementById("popLayer" + imageId + "IsInLightbox"))
	{
		if(lightboxImageArray[imageId] != null)
			document.getElementById('popLayer' + imageId + 'IsInLightbox').src = "gfx/image_icon_lightbox_on.gif";
		else
			document.getElementById('popLayer' + imageId + 'IsInLightbox').src = "gfx/image_icon_lightbox_off.gif";
	}	
}

function createLightboxNode(imageId, imageName)
{
	var imageItem = new Object();
	imageItem = lightboxImageArray[imageId];
	
	var newDiv, newImage, newTable, newTableBody, newTableTr, newTableTd, newSpan, newAnchor, newSpanText, newAnchorText, newBr1, newBr2, removeImage;
	
	newDiv = document.createElement("div");
	newDiv.id = "divLightbox" + imageId;
	newDiv.className = "lightboxImage";
	
	if(document.all)
	{
		newDiv.style.position = "relative";
		newDiv.style.padding = lightboxImageSpacing;
		newDiv.style.styleFloat = "left";
	}
	else
		newDiv.setAttribute("style","position: relative; padding: " + lightboxImageSpacing + "; float: left;");

    if (imageItem.alert == "true") {
        newDiv.className += " alarmLightboxImage";
    } else if (imageItem.alert == "nohires") {
        newDiv.className += " alarmLightboxImageHiresMissing";
    }

	newImage = document.createElement("img");
	newImage.src = imageDir + imageSize + "s/" + imageItem.no +".jpg";
	newImage.style.cursor = "pointer";
	newImage.border = "0";
	newImage.id = "imgLightbox" + imageId
	//newImage.onclick = function() {setupQuickView(imageId, true)};
	newImage.onmousedown = function(){setupDrag(imageId, true); return true;};
	
	newSpan = document.createElement("span");
	
	newSpanText = document.createTextNode(imageName);
	
	newAnchor = document.createElement("a");
	newAnchor.href = "JavaScript:addRemoveImage(" + imageId + ", false, false);";
	newAnchor.onfocus = "blur()";
	newAnchor.style.marginLeft = "2px";
	
	newAnchorText = document.createTextNode("remove");
	
	newBr1 = document.createElement("br");
	newBr2 = document.createElement("br");
	
	newTable = document.createElement("table");
	newTable.border = 0;
	newTable.width = imageSize;
	newTable.height = imageSize;
	newTable.cellPadding = 0;
	newTable.cellSpacing = 0;
	
	newTableBody = document.createElement("tbody");
	newTableTr = document.createElement("tr");
	
	newTableTd = document.createElement("td");
	newTableTd.align = "left";
	newTableTd.vAlign = "bottom";
	newTableTd.width = imageSize;
	newTableTd.height = imageSize;
		
	newAnchor.appendChild(newAnchorText);
	newSpan.appendChild(newSpanText);
	
	var removeSpan = document.createElement("span");

	/* Displaying white box in front of the "remove" text under each image in the lightboxbar
	removeImage = document.createElement("img");
	removeImage.src = "gfx/lb_white_square.gif";
	removeImage.style.cursor = "pointer";
	
	removeImage.border = "0";
	removeImage.height = 7;
	removeImage.width = 7;
	removeImage.onClick = function() {alert(clicked);};

	removeAnchor = document.createElement("a");
	removeAnchor.href = "JavaScript:addRemoveImage(" + imageId + ", false, false);";
    removeAnchor.appendChild(removeImage);

	removeSpan.appendChild(removeAnchor);
	*/
	removeSpan.appendChild(newAnchor);
	
	newTableTd.appendChild(newImage);
	newTableTr.appendChild(newTableTd);
	newTableBody.appendChild(newTableTr);
	newTable.appendChild(newTableBody);
	newDiv.appendChild(newTable);
	newDiv.appendChild(newBr1);
	newDiv.appendChild(newSpan);
	newDiv.appendChild(newBr2);
	newDiv.appendChild(removeSpan);

	return newDiv;
}

function returnLightboxIds()
{
	var container = document.getElementById('lightboxImagesDiv');
	var containerNode;
	var imageIdsArray = [];
	
	for(var i=0; i<container.childNodes.length; i++)
	{
		containerNode = container.childNodes[i];
		
		// Make sure it is an element and not whitespace
		if(containerNode.nodeType == 1)
		{
		    imageIdsArray[imageIdsArray.length] = containerNode.id.replace("divLightbox","");
		}
	}

	return imageIdsArray.join(",");
}

// -------------------------------------------------------------------------------------------------------
// Lighbox cookie/ajax
// -------------------------------------------------------------------------------------------------------
function updateLightbox(server, cookie)
{
	var imageIds = returnLightboxIds();
	
	if(server && (lightboxId > 0 && readCookie("TrunkAccount") != "0"))
		updateLightboxServer(imageIds);
	
	if(cookie)
		updateLightboxCookie(imageIds);
}

function updateLightboxServer(imageIds)
{
	dataRequest(serverUrl + "ajax/Lightbox.aspx?action=updateOrder&lightboxId=" + lightboxId + "&content=" + imageIds, insureSeverUpdate);
}

function updateLightboxCookie(imageIds)
{
	createCookie("TrunkLightbox" + lightboxId, imageIds, 1);
}

function lightboxTimer()
{
    //console.info("lightbox timer fra lightboxbar " + Date());
	lightboxReady = true;
	
	var cookieContent = "";
	var imagesString = returnLightboxIds();

	if(lightboxId > 0 && readCookie("TrunkAccount") != "0")
	{
		try
		{
			cookieContent = readCookie("TrunkLightbox" + lightboxId);
		}
		catch(e)
		{
			clearTimeout(testTimer);
			if("undefined" != typeof(LB.testTimer))
			    clearTimeout(LB.testTimer);
			dataRequest(serverUrl + "ajax/Lightbox.aspx?action=getImages&lightboxId=" + lightboxId + "&content=null", getLightBoxFromServer);
			cookieContent = readCookie("TrunkLightbox" + lightboxId);
		}
	}
	else
	{
		try
		{
			cookieContent = readCookie("TrunkLightbox" + lightboxId);
		}
		catch(e)
		{
			cookieContent = "";
		}
		
		if(cookieContent == null)
			cookieContent = "";
	}

	if(imagesString != cookieContent)
	{
		clearTimeout(testTimer);
		dataRequest(serverUrl + "ajax/Lightbox.aspx?action=getImages&lightboxId=" + lightboxId + "&content=" + cookieContent, getLightBoxFromServer);
	}
	else
	{
		testTimer = setTimeout("lightboxTimer()",1000);
    }
}

// GetLightbox from server
function getLightBoxFromServer(xmlFeed, status, url)
{
    
    //console.info("get lb from server 1");
    
	if(status == 0)
	{
		var xmlDoc = xmlFeed.responseXML;
		
	    if(xmlDoc.documentElement.nodeName == "trunk")
        {
            if(xmlDoc.documentElement.attributes[0].name == "relogon")
            {
                if(xmlDoc.documentElement.attributes[0].value == "true")
                    location.href = "LogOn.aspx";
            }
        }
	
		lightboxImageArray = new Array();
	
		document.getElementById('lightboxImagesDiv').innerHTML = "";
		
		for(var i=0; i<imageArrayIndex.length; i++)
		{
			var isInLinghtboxObj = document.getElementById('image' + imageArrayIndex[i] + 'IsInLightbox')
			if(null != isInLinghtboxObj)
			    isInLinghtboxObj.src = "gfx/image_icon_lightbox_off.gif";
		}
		
		var image, nodeChild;

		var node = xmlDoc.getElementsByTagName('images').item(0);
		var imageIds = node.getAttributeNode("imagestring").value;			
		
		for(var i=0; i<node.childNodes.length; i++)
		{
			nodeChild = node.getElementsByTagName("image").item(i);
			
			image = new Object();
			image.id = nodeChild.getElementsByTagName("id")[0].firstChild.nodeValue;
			image.no = nodeChild.getElementsByTagName("no")[0].firstChild.nodeValue;
			image.videoTypeId = nodeChild.getElementsByTagName("videoTypeId")[0].firstChild.nodeValue;
			image.nextVideoImageId = nodeChild.getElementsByTagName("nextVideoImageId")[0].firstChild.nodeValue;
			image.artist = nodeChild.getElementsByTagName("artist")[0].firstChild.nodeValue;
			image.artistId = nodeChild.getElementsByTagName("artistid")[0].firstChild.nodeValue;
			image.alert = nodeChild.getElementsByTagName("alert")[0].firstChild.nodeValue;
			
			if (nodeChild.getElementsByTagName("storycollectionid")[0].firstChild) { 
			    image.storyCollectionId = nodeChild.getElementsByTagName("storycollectionid")[0].firstChild.nodeValue;
			} else {
			    image.storyCollectionId = "";
			}
						
			lightboxImageArray[image.id] = image;
			addImageToLightbox(image.id, false, false, true);
			addRemoveImageText(image.id);
		}
		
		
		updateLightbox(false, true);
		renderLightbox();

        //console.info("testo");
		try
		{	
			var ddl = document.getElementById("lightboxSelectorDdl");
			var lightboxSelectorDdlSelected = document.getElementById("lightboxSelectorDdlSelected");
			
			var imageIds = returnLightboxIds();
			
			var imagesCountArray = imageIds.split(",");
			
			if(imagesCountArray.length == 1 && imagesCountArray[0] == "")
				ddl.options[ddl.selectedIndex].text = ddl.options[ddl.selectedIndex].text.substring(0, ddl.options[ddl.selectedIndex].text.lastIndexOf("(")) + " (0)";
			else
				ddl.options[ddl.selectedIndex].text = ddl.options[ddl.selectedIndex].text.substring(0, ddl.options[ddl.selectedIndex].text.lastIndexOf("(")) + " (" + (imagesCountArray.length) + ")";

			lightboxSelectorDdlSelected.value = ddl.options[ddl.selectedIndex].text;
		}
		catch(e)
		{
		    //console.info(e);
		}

		
		testTimer = setTimeout("lightboxTimer()",1000);
	}
	else
	{
		if(confirm("Lightbox failed to read.\r\n\r\nDo you want to try again?"))
		{
			dataRequest(url, getLightBoxFromServer);
		}
	}
}

function lb_showImageNumbers() {
	 
	var imageNos = "";
	var lightboxImagesDiv = document.getElementById("lightboxImagesDiv");
	
	var imgs = lightboxImagesDiv.getElementsByTagName("img");
	for (i=0;i<imgs.length;i++)
	{
		if (imgs[i].src.match(/TR-/)) imageNos += imgs[i].src.replace(/.*\//,"").replace(/.jpg/,"") + "\r\n";
	}

	var plLeft = 1;
	var plTop = 1;			
	var popLayer = document.getElementById("popLayer");		
	if (popLayer.style.display != "none") {	
		
		plLeft = popLayer.style.left;
		plTop = popLayer.style.top;
	}
	
	divHide('popLayer',true);
	
	var framecontentBottom = document.getElementById("framecontentBottom");
    var height = framecontentBottom.offsetTop + framecontentBottom.clientHeight;
		
	var popObject = new Object();
	
	popObject.closeLowerAccess = true;
	popObject.darkOutBackground = true;
	
	popObject.content = '';
	
	popObject.content += "<table><tr valign='top'><td><textarea id='lb_sin_imgnbrs' rows='15' cols='35' style='font-family: arial;'>" + imageNos + "</textarea></td></tr>";
	popObject.content += "<tr><td style='color: #666666;'><br />Click'UPDATE LIGHTBOX' button below to<br />update the current lightbox to contain the<br />above images.<br />(This will completely override<br />the current contents of you current lightbox)<br /><br /></td></tr>";
	popObject.content += "<tr><td align='right'><input style='height: 26px; font-family: arial; font-weight: bold; color: #ffffff; background-color: #dddddd;' type='button' value='UPDATE LIGHTBOX' onclick='lb_showImageNumbers_update();' /></td></tr></table><br />";	
	
	document.getElementById("popLayerContent").innerHTML = popObject.content;
	document.getElementById("popLayerHeadline").innerHTML = '<table border="0" cellspacing="0" cellpadding="0"><tr><td><b>Image Numbers From Lightbox</b></td><td valign="bottom"><img src="gfx/_blank.gif" alt="" width="5" height="1" border="0"/></td></tr></table>';	
	document.getElementById('popLine').style.backgroundColor = "#ffffff";
	
	divShow('popLayer', plLeft, plTop, popObject.closeLowerAccess, popObject.darkOutBackground);
	
	popLayerReposition();
		
}

function lb_showImageNumbers_update() {
	
	var lb_sin_imgnbrs = document.getElementById("lb_sin_imgnbrs").value;
	var imgnbrsArr = lb_sin_imgnbrs.split(/\s/);
	var imgnbrs = "";
	var imgnbrsTidy = "";
	for (i = 0; i < imgnbrsArr.length; i++) {
		var str = imgnbrsArr[i].replace(/^\s+|\s+$/g, '').replace(" ","");
		if (str != "") { 
			if (imgnbrs != "") imgnbrs += ",";
			imgnbrs += str;
			imgnbrsTidy += str + "\n";
		}
		
	}
	
	document.getElementById("lb_sin_imgnbrs").value = imgnbrsTidy;
	
	lb_updateLightboxServerByNmbr(imgnbrs);
	
}

function lb_updateLightboxServerByNmbr(imageNumbers)
{
	dataRequest(serverUrl + "ajax/Lightbox.aspx?action=updateByImageNumbers&lightboxId=" + lightboxId + "&content=" + imageNumbers, getLightBoxFromServer);
	
}

