[Picfinity-commit] SF.net SVN: picfinity: [46] trunk/.themes/ajax/ajax.js
Status: Beta
Brought to you by:
espadav8
From: <esp...@us...> - 2007-08-18 20:31:36
|
Revision: 46 http://picfinity.svn.sourceforge.net/picfinity/?rev=46&view=rev Author: espadav8 Date: 2007-08-18 13:31:22 -0700 (Sat, 18 Aug 2007) Log Message: ----------- Remove some completely unneeded code from the createExpandedImage function Modified Paths: -------------- trunk/.themes/ajax/ajax.js Modified: trunk/.themes/ajax/ajax.js =================================================================== --- trunk/.themes/ajax/ajax.js 2007-08-18 18:55:16 UTC (rev 45) +++ trunk/.themes/ajax/ajax.js 2007-08-18 20:31:22 UTC (rev 46) @@ -72,12 +72,12 @@ { return xmlDoc.getElementById(elementID); } - + // this is the next best way, but only Firefox and Opera support this at the moment else if (document.createTreeWalker) { var nodes = document.createTreeWalker(xmlDoc.documentElement, NodeFilter.SHOW_ELEMENT, null, false); - + while ((node = nodes.nextNode()) != null) { if (node.getAttribute("id") == elementID) @@ -90,14 +90,14 @@ } } } - + // this is possibly the worse way, and it's still not supported by Safari else { // this causes a problem with Safari // xmlDocFolders.length == 0 var xmlDocFolders = xmlDoc.getElementsByTagName("folder"); - + for (var i = 0; i < xmlDocFolders.length; i++) { if (xmlDocFolders[i].getAttribute("id") == elementID) @@ -105,9 +105,9 @@ return xmlDocFolders[i]; } } - + var xmlDocImages = xmlDoc.getElementsByTagName("image"); - + for (var i = 0; i < xmlDocImages.length; i++) { if (xmlDocImages[i].getAttribute("id") == elementID) @@ -180,7 +180,7 @@ function getNodePath(element, nodePath) { nodePath = (nodePath == undefined) ? '' : nodePath; - + if (element == xmlDoc.documentElement) { return '.' + nodePath; @@ -196,27 +196,27 @@ { var layoutNode = getLayoutNode(elementID); var nodePath = getNodePath(layoutNode); - + var breadcrumbDiv = createBreadcrumbTrail(layoutNode); - + var newAlbumsDiv = document.createElement("div"); newAlbumsDiv.setAttribute("id", "albums"); - + var backButton = document.createElement("div") backButton.setAttribute("id", "backbutton"); - + var selectedDiv = document.createElement("div"); selectedDiv.setAttribute("id", "selectedalbum"); - + var selectedAlbumFolders = getChildNodesByTagName(layoutNode, "folder"); var selectedAlbumImages = getChildNodesByTagName(layoutNode, "image"); - + for (var j = 0; j < selectedAlbumFolders.length; j++) { var subFolderContainer = createSubFolderContainer(selectedAlbumFolders[j]); selectedDiv.appendChild(subFolderContainer); } - + for (var j = 0; j < selectedAlbumImages.length; j++) { var thumbnailContainer = createImageThumbnailContainer(selectedAlbumImages[j]); @@ -224,9 +224,9 @@ } newAlbumsDiv.appendChild(selectedDiv); - + document.getElementById("albums").parentNode.replaceChild(newAlbumsDiv, document.getElementById("albums")); - + IE6navhover() return false; } @@ -241,7 +241,7 @@ { var nodePath = getNodePath(getLayoutNode(element.getAttribute("id"))); var imageChildNodes = getChildNodesByTagName(element, "image"); - + if (imageChildNodes.length > 0) { var imagePath = '.thumbs/' @@ -262,33 +262,33 @@ { var imageNodeID = imageNode.getAttribute("id"); var nodePath = getNodePath(getLayoutNode(imageNodeID)); - + var classes = (optClass == undefined) ? "thumbnail" : "thumbnail " + optClass; - + var albumImageDiv = document.createElement("div"); albumImageDiv.className = classes; albumImageDiv.setAttribute("id", imageNodeID); - + var imageAnchor = document.createElement("a"); imageAnchor.setAttribute("href", "index.php?id=" + imageNodeID); imageAnchor.onclick = function() { showImage(imageNodeID); return false; }; - + var imageSpan = document.createElement("span"); imageSpan.className = "image"; - + var albumImage = document.createElement("img"); var imageThumbPath = '.thumbs/' + nodePath + '/' + imageNode.getAttribute("file"); albumImage.setAttribute("src", imageThumbPath); imageAnchor.appendChild(albumImage); - + var imageNameSpan = document.createElement("span"); imageNameSpan.className = "name"; imageNameSpan.appendChild(document.createTextNode(imageNode.getAttribute("file"))); - + imageSpan.appendChild(imageAnchor) albumImageDiv.appendChild(imageSpan); albumImageDiv.appendChild(imageNameSpan); - + return albumImageDiv; } @@ -296,48 +296,48 @@ { var folderID = folderNode.getAttribute("id"); var nodePath = getNodePath(getLayoutNode(folderID)); - + // create the main folder div var subFolder = document.createElement("div"); subFolder.className = "folder"; subFolder.setAttribute("id", folderID); - + var folderAnchor = document.createElement("a"); folderAnchor.setAttribute("href", "index.php?id=" + folderID); - + // this should allow it to work in IE but makes it harder to follow // in things like FireBug since you can't see the onclick for the divs folderAnchor.onclick = function() { openFolder(folderID); return false; }; - + // create a span for the image var folderImageSpan = document.createElement("span"); folderImageSpan.className = "image"; - + // create the image var folderImage = document.createElement("img"); - var imagePath = checkFolderContents(folderNode); + var imagePath = checkFolderContents(folderNode); folderImage.setAttribute("src", imagePath); folderAnchor.appendChild(folderImage); folderImageSpan.appendChild(folderAnchor); - + // create a span for the folder icon var iconSpan = document.createElement("span"); iconSpan.className = "icon"; - + // create the icon image - var iconImage = document.createElement("img"); + var iconImage = document.createElement("img"); iconImage.setAttribute("src", ".themes/ajax/foldericon.png"); iconSpan.appendChild(iconImage); - + // create a span for the text var textSpan = document.createElement("span"); textSpan.className = "name"; - + // create the text var textContents = folderNode.getAttribute("name"); var noImages = getChildNodesByTagName(folderNode, "image").length; var noFolders = getChildNodesByTagName(folderNode, "folder").length; - + if ((noImages || noFolders) > 0) { textContents += " ("; @@ -348,59 +348,59 @@ var textNode = document.createTextNode(textContents); textSpan.appendChild(textNode); - + // appened them all in order subFolder.appendChild(folderImageSpan); subFolder.appendChild(iconSpan); subFolder.appendChild(textSpan); - + return subFolder; } function createExpandedImage(imageNode) { var nodePath = getNodePath(getLayoutNode(imageNode.getAttribute("id"))); - + var expandedImageDiv = document.createElement("div"); expandedImageDiv.setAttribute("id", "expandedimage"); - + var linkToDiv = document.createElement("div"); linkToDiv.setAttribute("id", "linktospan"); linkToDiv.style.display = "none"; - + var linkToAnchor = document.createElement("a"); linkToAnchor.setAttribute("href", "index.php?id=" + imageNode.getAttribute("id")) linkToAnchor.appendChild(document.createTextNode("Link to this image")); linkToDiv.appendChild(linkToAnchor); - + var loadingDiv = document.createElement("div"); loadingDiv.setAttribute("id", "loadingspan"); loadingDiv.style.display = "block"; loadingDiv.appendChild(document.createTextNode("Loading image")); - + var imageAnchor = document.createElement("a"); imageAnchor.onclick = function() { closeImage(); return false }; imageAnchor.href = "#"; - + var imageDiv = document.createElement("div"); imageDiv.setAttribute("id", "expandedimagespan"); imageDiv.style.display = "none"; - + var albumImage = document.createElement("img"); var imageThumbPath = nodePath + '/' + imageNode.getAttribute("file"); albumImage.setAttribute("src", imageThumbPath); imageAnchor.appendChild(albumImage); imageDiv.appendChild(imageAnchor); - + var imageNameDiv = document.createElement("div"); imageNameDiv.className = "name"; imageNameDiv.appendChild(document.createTextNode(imageNode.getAttribute("file"))); - + expandedImageDiv.appendChild(linkToDiv); expandedImageDiv.appendChild(loadingDiv); expandedImageDiv.appendChild(imageDiv); expandedImageDiv.appendChild(imageNameDiv); - + var expandedImage = new Image(); expandedImage.onload = function() { @@ -409,7 +409,7 @@ linkToDiv.style.display = ""; }; expandedImage.src = imageThumbPath; - + return expandedImageDiv; } @@ -417,20 +417,20 @@ { var breadcrumbTrailDiv = document.createElement("div"); breadcrumbTrailDiv.setAttribute("id", "breadcrumbtrail"); - + var nodePath = getNodePath(element) + element.getAttribute("name"); - + var paths = nodePath.split('/'); var currentPath = ''; - + for (var i = 0; i < paths.length - 1; i++) { currentPath += paths[i] + '/'; - + var breadcrumbMenu = createBreadcrumbMenu(currentPath, paths[i + 1]); breadcrumbTrailDiv.appendChild(breadcrumbMenu); } - + if (document.getElementById("breadcrumbtrail")) { document.getElementById("albums").parentNode.replaceChild(breadcrumbTrailDiv, document.getElementById("breadcrumbtrail")); @@ -445,54 +445,54 @@ { var breadcrumbEntry = document.createElement("ul"); breadcrumbEntry.className = "trailentry"; - + var menuLi = document.createElement("li"); menuLi.className = "currentfolder"; - + var dropMenu = document.createElement("ul"); menuLi.appendChild(dropMenu); - + var layoutNode = selectLayoutNodeFromPath(path); - + for (var i = 0; i < layoutNode.childNodes.length; i++) { var node = layoutNode.childNodes[i]; - + // these will all be hidden until the :hover if (node.nodeName == "folder") { var dropMenuItem = createBreadcrumbItem(node, currentFolder); dropMenu.appendChild(dropMenuItem); } - + // this is for the current folder if ((node.nodeName == "folder") && (node.getAttribute("name") == currentFolder)) { var dropMenuAnchor = document.createElement("a"); dropMenuAnchor.href = "index.php?id=" + dropMenuItem.getAttribute("id"); - + var nameSpan = document.createElement("span"); nameSpan.className = "name"; nameSpan.appendChild(document.createTextNode(node.getAttribute("name"))); - + // create a span for the folder icon var iconSpan = document.createElement("span"); iconSpan.className = "icon"; - + // create the icon image - var iconImage = document.createElement("img"); + var iconImage = document.createElement("img"); iconImage.setAttribute("src", ".themes/ajax/foldericon.png"); iconSpan.appendChild(iconImage); - + dropMenuAnchor.appendChild(nameSpan); dropMenuAnchor.appendChild(nameSpan); menuLi.insertBefore(dropMenuAnchor, menuLi.firstChild); - + breadcrumbEntry.appendChild(menuLi); } } - + return breadcrumbEntry; } @@ -500,39 +500,39 @@ { var dropMenuItem = document.createElement("li"); dropMenuItem.setAttribute("id", node.getAttribute("id")); - + var dropMenuAnchor = document.createElement("a"); dropMenuAnchor.href = "index.php?id=" + dropMenuItem.getAttribute("id"); dropMenuAnchor.onclick = function() { openFolder(dropMenuItem.getAttribute("id")); return false; }; - + if (node.hasChildNodes()) { // create a span for the folder icon var iconSpan = document.createElement("span"); iconSpan.className = "icon"; - + // create the icon image - var iconImage = document.createElement("img"); + var iconImage = document.createElement("img"); iconImage.setAttribute("src", ".themes/ajax/foldericon.png"); iconSpan.appendChild(iconImage); - + dropMenuAnchor.appendChild(iconSpan); } else { dropMenuItem.setAttribute("class", "empty"); - + // create a span for the folder icon var iconSpan = document.createElement("span"); iconSpan.className = "icon"; - + // create the icon image - var iconImage = document.createElement("img"); + var iconImage = document.createElement("img"); iconImage.setAttribute("src", ".themes/ajax/emptyicon.png"); iconSpan.appendChild(iconImage); dropMenuItem.appendChild(iconSpan); } - + // we do this so we can show the user the currently selected folder in the drop down if (node.getAttribute("name") == currentFolder) { @@ -542,12 +542,12 @@ { dropMenuItem.className = "menuentry"; } - + var nameSpan = document.createElement("span"); nameSpan.className = "name"; nameSpan.appendChild(document.createTextNode(node.getAttribute("name"))); dropMenuAnchor.appendChild(nameSpan); - + dropMenuItem.appendChild(dropMenuAnchor); return dropMenuItem; } @@ -555,7 +555,7 @@ function selectLayoutNodeFromPath(path, node) { node = (node == undefined) ? xmlDoc.documentElement : node; - + if(path == "./") { return xmlDoc.documentElement; @@ -565,7 +565,7 @@ path = (path.indexOf("./") == 0) ? path.substring(2) : path; var currentPath = path.split('/')[0]; var nodes = getChildNodesByTagName(node, "folder"); - + for (var i = 0; i < nodes.length; i++) { if ((nodes[i].getAttribute("name") == currentPath)) @@ -586,41 +586,33 @@ function showImage(imageID) { - var siblingNodes = getChildNodesByTagName(getLayoutNode(imageID).parentNode, "image"); - - for (var i = 0; i < siblingNodes.length; i++) + var expandedImage = createExpandedImage(getLayoutNode(imageID)); + + if (document.getElementById("expandedimage")) { - if (siblingNodes[i].getAttribute("id") == imageID) - { - var expandedImage = createExpandedImage(siblingNodes[i]); - - if (document.getElementById("expandedimage")) - { - document.getElementById("expandedimage").parentNode.replaceChild(expandedImage, document.getElementById("expandedimage")); - } - else - { - document.getElementById("selectedalbum").parentNode.insertBefore(expandedImage, document.getElementById("selectedalbum")); - } - } + document.getElementById("expandedimage").parentNode.replaceChild(expandedImage, document.getElementById("expandedimage")); } - + else + { + document.getElementById("selectedalbum").parentNode.insertBefore(expandedImage, document.getElementById("selectedalbum")); + } + var lastSelectedImage = getElementsByClassName("selected", "div", document); - + if (lastSelectedImage) { lastSelectedImage[0].className = "thumbnail"; } - + document.getElementById(imageID).className += " selected"; } function closeImage() { document.getElementById("expandedimage").parentNode.removeChild(document.getElementById("expandedimage")); - + var lastSelectedImage = getElementsByClassName("selected", "div", document); - + if (lastSelectedImage) lastSelectedImage[0].className = "thumbnail"; } @@ -632,31 +624,31 @@ function getCookie(name) { var start = document.cookie.indexOf( name + "=" ); var len = start + name.length + 1; - + if ((!start) && (name != document.cookie.substring(0, name.length))) { return null; } - + if (start == -1) return null; - + var end = document.cookie.indexOf(';', len); - + if (end == -1) end = document.cookie.length; - + return unescape(document.cookie.substring(len, end)); } function setCookie(name, value, expires, path, domain, secure) { var today = new Date(); today.setTime(today.getTime()); - + if (expires) { expires = expires * 1000 * 60 * 60 * 24; } - + var expires_date = new Date(today.getTime() + (expires)); - + document.cookie = name + '=' + escape(value) + ((expires) ? ';expires='+expires_date.toGMTString() : '') + //expires.toGMTString() ((path) ? ';path=' + path : '') + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |