PDA

View Full Version : Need Some Help



evilacme
12-29-2006, 04:13 PM
I'm trying to use the photo album code from this site with some small modifications.
PhotoAlbum (http://www.dynamicdrive.com/dynamicindex4/photoalbum.htm)
I want to pop up the image into an auto-sizing window, however I'm getting an error and I don't know why. Here is my code



var dimension="3x5" //Specify dimension of gallery (number of images shown), such as 4x2, 3x1 etc

//Specify images:
//galleryarray[x]=["path_to_image", "optional_title_attribute", "optional_text_description", "optional_link"]
var galleryarray=new Array()
galleryarray[0]=["photo_album/1.jpg", "optional title", "optional description", "photo_album/1.jpg"]
galleryarray[1]=["photo_album/2.jpg", "optional title", "optional description", "photo_album/2.jpg"]
galleryarray[2]=["photo_album/3.jpg", "optional title", "optional description", "photo_album/3.jpg"]
galleryarray[3]=["photo_album/4.jpg", "optional title", "optional description", "photo_album/4.jpg"]
galleryarray[4]=["photo_album/5.jpg", "optional title", "optional description", "photo_album/5.jpg"]
galleryarray[5]=["photo_album/6.jpg", "optional title", "optional description", "photo_album/6.jpg"]
galleryarray[6]=["photo_album/7.jpg", "optional title", "optional description", "photo_album/7.jpg"]
galleryarray[4]=["photo_album/8.jpg", "optional title", "optional description", "photo_album/8.jpg"]
galleryarray[5]=["photo_album/9.jpg", "optional title", "optional description", "photo_album/9.jpg"]
galleryarray[6]=["photo_album/10.jpg", "optional title", "optional description", "photo_album/10.jpg"]

var href_target="_new" //Enter target attribute of links, if applicable

var totalslots=dimension.split("x")[0]*dimension.split("x")[1]

function buildimage(i)
{
var tempcontainer=galleryarray[i][3]!=""? '<a href="javascript:popImage('+galleryarray[i][3]+','+galleryarray[i][2]+')">' : ""
tempcontainer+='<img src="'+galleryarray[i][0]+'" border="1" title="'+galleryarray[i][1]+'">'
tempcontainer=galleryarray[i][3]!=""? tempcontainer+'</a>' : tempcontainer
tempcontainer=galleryarray[i][2]!=""? tempcontainer+'<br \/>'+galleryarray[i][2] : tempcontainer
return tempcontainer
}

function jumptopage(p)
{
var startpoint=(p-1)*totalslots
var y=1;
for (i=0; i<totalslots; i++)
{
document.getElementById("slide"+i).innerHTML=(typeof galleryarray[startpoint+i]!="undefined")? buildimage(startpoint+i) : ""
}
while(document.getElementById("navlink"+y)!=null)
{
document.getElementById("navlink"+y).className=""
y++
}
document.getElementById("navlink"+p).className="current"
}

var curimage=0
for (y=0; y<dimension.split("x")[1]; y++)
{
for (x=0; x<dimension.split("x")[0]; x++)
{
if (curimage<galleryarray.length)
document.write('<div id="slide'+curimage+'" class="slideshow">'+buildimage(curimage)+'</div>')
curimage++
}
document.write('<br style="clear: left" />')
}

for (i=1; i<Math.ceil(galleryarray.length/totalslots)+1; i++)
document.write('<a id="navlink'+i+'" href="javascript:jumptopage('+i+')\">Page '+i+'</a> ')
document.getElementById("navlink1").className="current"

PositionX = 100;
PositionY = 100;

// Set these value approximately 20 pixels greater than the
// size of the largest image to be used (needed for Netscape)

defaultWidth = 500;
defaultHeight = 500;

var AutoClose = true;

if (parseInt(navigator.appVersion.charAt(0))>=4)
{
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;

function popImage(imageURL,imageTitle)
{
if (isNN){imgWin=window.open('about:blank','',optNN);}

if (isIE){imgWin=window.open('about:blank','',optIE);}

with (imgWin.document)
{
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');
writeln('<sc'+'ript>');
writeln('var isNN,isIE;');
writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');
writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');
writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');
writeln('if (isNN){');
writeln('window.innerWidth=document.images["George"].width;');
writeln('window.innerHeight=document.images["George"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');
writeln('</sc'+'ript>');
if (!AutoClose)
writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else
writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
close();
}
}


Anyone have any ideas?? Thanks

jscheuer1
12-30-2006, 06:08 AM
I see what you are trying to do here but, in cases like these, it is better to just pass the dimensions to the new window rather than to try changing it later with browser detected dimensions that may or may not be available when needed. Many browsers will not allow it even if the dimensions are accurate.

What error(s) are you getting?

evilacme
01-02-2007, 03:09 PM
I get error
Line: 1
Char: 24
Expected ')'
Code: 0
URL: photo_album.html

Also, the window does resize, but it always loads the same image; the third in the list.