var paintingArrayG1 = new Array("name","gallery","media",100,100);
var currentStartIndex;
var imageThumbArrayG1 = new Array();

var xVersion='3.10',xOp7=false,xOp5or6=false,xIE4Up=false,xNN4=false,xUA=navigator.userAgent.toLowerCase();
if(window.opera){
  xOp7=(xUA.indexOf('opera 7')!=-1 || xUA.indexOf('opera/7')!=-1);
  if (!xOp7) xOp5or6=(xUA.indexOf('opera 5')!=-1 || xUA.indexOf('opera/5')!=-1 || xUA.indexOf('opera 6')!=-1 || xUA.indexOf('opera/6')!=-1);
}
else if(document.layers) xNN4=true;
else {xIE4Up=document.all && xUA.indexOf('msie')!=-1 && parseInt(navigator.appVersion)>=4;}

var totalpaintings=0;

var MWJ_ldD = [];
function importXML( oURL, oFunct, oNoRand, oDelay ) {
	//note: in XML importing event handlers, 'this' refers to window
	if( !oNoRand ) { oURL += ( ( oURL.indexOf('?') + 1 ) ? '&' : '?' ) + ( new Date() ).getTime(); } //prevent cache
	if( window.XMLHttpRequest ) {
		//alternate XMLHTTP request - Gecko, Safari 1.2+ and Opera 7.6+
		MWJ_ldD[MWJ_ldD.length] = new XMLHttpRequest();
		MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 && MWJ_ldD['+(MWJ_ldD.length-1)+'].status < 300 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+'].responseXML); }' );
		MWJ_ldD[MWJ_ldD.length-1].open("GET", oURL, true);
		MWJ_ldD[MWJ_ldD.length-1].send(null);
		return true;
	}
	if( !navigator.__ice_version && window.ActiveXObject ) {
		//the Microsoft way - IE 5+/Win (ICE produces errors and fails to use try-catch correctly)
		try { //IE Mac has the property window.ActiveXObject but produces errors if you try and use it
			try { var tho = new ActiveXObject( 'Microsoft.XMLDOM' ); //newer
			} catch(e) { var tho = new ActiveXObject( 'Msxml2.XMLHTTP' ); } //older
			MWJ_ldD[MWJ_ldD.length] = tho;
			MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+']); }' );
			MWJ_ldD[MWJ_ldD.length-1].load(oURL);
			return true;
		} catch(e) {}
	}
	if( document.createElement && document.childNodes ) {
		//load the XML in an iframe
		var ifr = document.createElement('DIV');
		ifr.style.visibility = 'hidden'; ifr.style.position = 'absolute'; ifr.style.top = '0px'; ifr.style.left = '0px';
		//onload only fires in Opera so I use a timer for all
		if( !window.MWJ_XML_timer ) { window.MWJ_XML_timer = window.setInterval('MWJ_checkXMLLoad();',100); }
		ifr.innerHTML = '<iframe src="'+oURL+'" name="MWJ_XML_loader_'+MWJ_ldD.length+'" height="0" width="0"><\/iframe>';
		MWJ_ldD[MWJ_ldD.length] = oFunct+'MWJ_SPLIT'+(oDelay?oDelay:1)+'';
		document.body.appendChild(ifr);
		return true;
	}
	return false;
}



function buildList(xmlDoc) {

	if( xmlDoc.documentElement && xmlDoc.documentElement.tagName && xmlDoc.documentElement.tagName.toUpperCase() == 'HTML' ) 
	{
		setTimeout('alert(\'For no apparent reason, your browser has turned the clean XML into HTML based garbage.\\nScript aborted.\');',50); return; 
	}

	/* the rest of this function is taken from PPK's script */
	var x = xmlDoc.getElementsByTagName('painting');
	var g1=0,g2=0,g3=0;
	for (i=0;i<x.length;i++)
	{
		var paintingEntry = new Array();
		var cnt=0;
		for (j=0;j<x[i].childNodes.length;j++)
		{
			if (x[i].childNodes[j].nodeType != 1) continue;
			var theData = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
			paintingEntry[cnt] = theData.nodeValue;

			cnt++;
		}
		
		paintingArrayG1[g1] = paintingEntry;

		if(paintingArrayG1[g1][1] == 1)
		{
			imageThumbArrayG1[g1] = new Image;
			var imgid = "Img" + (g1+1);
			var imagepath = 'pix/thumbs/' + paintingArrayG1[g1][0] + '.jpg';
			imageThumbArrayG1[g1].src = imagepath;
		}
		g1++;
	}
	currentStartIndex=1;
	totalpaintings=i;
	fillDivs();
}


function fillDivs() {

	var tot = paintingArrayG1.length;
//
	var cnter=1;
	for (i=0;i<tot;i++)
	{
		var thePage = paintingArrayG1[i][1];

		// swap pictures into table
		var imgid = "Img" + (cnter);
		var imgtag = getRefbyID(imgid);

		if(thePage==currentStartIndex)
		{
				//document.GetElementById("jjj").src = "jfsdf";
	
			if(!imageThumbArrayG1[i])
			{
				imageThumbArrayG1[i] = new Image;
				var imagepath = 'pix/thumbs/' + paintingArrayG1[i][0] + '.jpg';
				imageThumbArrayG1[i].src = imagepath;
			}
			imgtag.src = imageThumbArrayG1[i].src;
			imgtag.title = paintingArrayG1[i][0];
			
			var func,anchtag,st;
			func="MY_openWindow("+ i +",'";
			func = func + "pix/hires/" + paintingArrayG1[i][0] + ".jpg','" + paintingArrayG1[i][0] + "','scrollbars=yes,width=580,height=700')";

			anchtag = getRefbyID('a' + cnter );

			if(xIE4Up)
				anchtag.href = "javascript:"+ func;
			else
				imgtag.setAttribute('onclick',func);

			cnter++;
			if(cnter==9)
				i=tot;	// break
		}
	}
	if(cnter!=9) // not full bunch of 8
	{
		for(i=cnter;i<9;i++)
		{
			var imgid = "Img" + (i);
			var imgtag = getRefbyID(imgid);
			imgtag.src = "pix/blank.gif";
		}
	}
	

}


function MWJ_checkXMLLoad() {
	//check if each imported file is available (huge files may not have loaded completely - nothing I can do - use the delay to help)
	for( var x = 0; x < MWJ_ldD.length; x++ ) { if( MWJ_ldD[x] && window.frames['MWJ_XML_loader_'+x] ) {
		setTimeout( MWJ_ldD[x].split('MWJ_SPLIT')[0] + '(window.frames.MWJ_XML_loader_'+x+'.window.document);', parseInt(MWJ_ldD[x].split('MWJ_SPLIT')[1]) );
		MWJ_ldD[x] = false;
	} }
}

var HiResWin=new Array();
function MY_openWindow(paintingindex,theURL,winName,features) {

	var a= new String;
	a=theURL;
	var imagefilename = a.replace(" ","%20");
	a=imagefilename;
	imagefilename = a.replace(" ","%20");
	a=imagefilename;
	imagefilename = a.replace(" ","%20");
	a=imagefilename;
	imagefilename = a.replace(" ","%20");
	a=imagefilename;
	imagefilename = a.replace(" ","%20");
	a=imagefilename;
	imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");

	var currentwinidx=0;
	for(var wi=0;wi<30;wi++)
	{
		if(!HiResWin[wi])
		{
			currentwinidx = wi;
			break;
		}
		currentwinidx = wi;
	}

//	if(!HiResWin[currentwinidx])
		HiResWin[currentwinidx]= open("", "displayWindow"+currentwinidx, features);

	// open document for further output
	HiResWin[currentwinidx].document.open();

	// create document
	// title, media, size
	HiResWin[currentwinidx].document.write("<html><head><title>Caia's paintings");
	HiResWin[currentwinidx].document.write("</title></head><body bgcolor='#ffefe5'>");
	
	HiResWin[currentwinidx].document.write("<img id='idx' src='pix/blank.gif' width=" + eval(paintingindex) +" height=1></img>");
	
	HiResWin[currentwinidx].document.write("<center><font size=2>(<span id='cntcurr'>"+(paintingindex+1)+"</span>/"+paintingArrayG1.length+")</font><br></br>");
	HiResWin[currentwinidx].document.write("<font size=5><span id='txttitle'>");
	HiResWin[currentwinidx].document.write(  paintingArrayG1[paintingindex][0] +"</span>, </font>");
	HiResWin[currentwinidx].document.write("<font size=3><span id='txtmedia'>" + paintingArrayG1[paintingindex][2] +"</span>, <span id='txtw'>");
	HiResWin[currentwinidx].document.write( paintingArrayG1[paintingindex][3] + "</span>x<span id='txth'>" + paintingArrayG1[paintingindex][4] + "</span>cm");
	
	HiResWin[currentwinidx].document.write("</font></center><br></br>");
	
	HiResWin[currentwinidx].document.write("<table align='center'><tr><td valign='top'><table ID='Table1'><tr><td><IMG height=100 src='pix/blank.gif' width=50></IMG></td></tr><tr><td><img align='top' onclick='opener.hiresback(");
	HiResWin[currentwinidx].document.write( eval(currentwinidx));

	if(paintingindex==0)
		HiResWin[currentwinidx].document.write(	")' alt='back' style='CURSOR: pointer' id='ImgBack' src='pix/blank.gif' width='50' height='50'></img></td></tr></table></td>");
	else
		HiResWin[currentwinidx].document.write(	")' alt='back' style='CURSOR: pointer' id='ImgBack' src='pix/back.gif' width='50' height='50'></img></td></tr></table></td>");
	
	HiResWin[currentwinidx].document.write("<td><font color='#554444'><img border=1 id='HiRes' width='400' align='middle' src=" + imagefilename + "></img></font>");
	HiResWin[currentwinidx].document.write("</td><td valign='top'><table ID='Table2'><tr><td><IMG height=100 src='pix/blank.gif' width=50></IMG></td></tr><tr><td><img align='top' onclick='opener.hiresforward(");
	
	HiResWin[currentwinidx].document.write( eval(currentwinidx));
	
	if(paintingindex >= paintingArrayG1.length-1)
		HiResWin[currentwinidx].document.write(")' alt='forward' style='CURSOR: pointer' id='ImgForward' src='pix/blank.gif' width='50' height='50'></img></td></tr></table></td></tr></table>");
	else
		HiResWin[currentwinidx].document.write(")' alt='forward' style='CURSOR: pointer' id='ImgForward' src='pix/forward.gif' width='50' height='50'></img></td></tr></table></td></tr></table>");
	
	HiResWin[currentwinidx].document.write("</br></br>");
	
	HiResWin[currentwinidx].document.write("<table border='0' cellpadding=20 cellspacing=0><tr><td width='20px'></td>");
	HiResWin[currentwinidx].document.write("<td bgcolor='#ffefe5' vAlign=bottom height=16 colSpan='' rowSpan=''><img src='pix/blankdark.gif' align='bottom' width='250' height='2' id=IMG5></img></td></tr></table><table cellpadding='0' ID='copyright'><tr><td width=80></td><td><font face='Geneva, Arial, Helvetica, san-serif' color='#776666' size='2'><b>images © caia 2006</b></font></td></tr></table>");
	
	HiResWin[currentwinidx].document.write("</body></html>");

	// close the document - (not the window!)
	HiResWin[currentwinidx].document.close();

}


function hiresback(winidx)
{
	var imgw = getRefbyID('idx',HiResWin[winidx].document);	// painting index

	var paintingidx = imgw.width;

	var nxt = eval(paintingidx)-1;
	if(nxt >=0)
	{
		// change title and size etc
		var txtcntcurr = getRefbyID('cntcurr',HiResWin[winidx].document);
		txtcntcurr.firstChild.nodeValue = nxt+1;

		var txttitle = getRefbyID('txttitle',HiResWin[winidx].document);
		var txtmedia = getRefbyID('txtmedia',HiResWin[winidx].document);
		var txtw = getRefbyID('txtw',HiResWin[winidx].document);
		var txth = getRefbyID('txth',HiResWin[winidx].document);
		var backim = getRefbyID('ImgBack',HiResWin[winidx].document);
		var forwardim = getRefbyID('ImgForward',HiResWin[winidx].document);

		txttitle.firstChild.nodeValue = paintingArrayG1[nxt][0];
		txtmedia.firstChild.nodeValue = paintingArrayG1[nxt][2];
		txtw.firstChild.nodeValue = paintingArrayG1[nxt][3];
		txth.firstChild.nodeValue = paintingArrayG1[nxt][4];
		
		if(nxt==0)
			backim.src = 'pix/blank.gif';
		else
			backim.src = 'pix/back.gif';
		
		if(nxt>= paintingArrayG1.length)
			forwardim.src = 'pix/blank.gif';
		else
			forwardim.src = 'pix/forward.gif';
		
// crash forcer for debug	
// document.GetElementById("jjj").src = "jfsdf";
	
		var x = getRefbyID('HiRes',HiResWin[winidx].document);
		
		var a= new String;
		var b=paintingArrayG1[nxt][0];

		a="pix/hires/" + b +".jpg";		
		
		var imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");

		x.src = imagefilename;
		
		imgw.width = nxt;
	}
}

function hiresforward(winidx)
{
	var imgw = getRefbyID('idx',HiResWin[winidx].document);	// painting index

	var paintingidx = imgw.width;


	var nxt = eval(paintingidx)+1;
	if(nxt < paintingArrayG1.length)
	{
		// change title and size etc
		var txtcntcurr = getRefbyID('cntcurr',HiResWin[winidx].document);
		txtcntcurr.firstChild.nodeValue = nxt+1;
		
		var txttitle = getRefbyID('txttitle',HiResWin[winidx].document);
		var txtmedia = getRefbyID('txtmedia',HiResWin[winidx].document);
		var txtw = getRefbyID('txtw',HiResWin[winidx].document);
		var txth = getRefbyID('txth',HiResWin[winidx].document);
		var backim = getRefbyID('ImgBack',HiResWin[winidx].document);
		var forwardim = getRefbyID('ImgForward',HiResWin[winidx].document);

		txttitle.firstChild.nodeValue = paintingArrayG1[nxt][0];
		txtmedia.firstChild.nodeValue = paintingArrayG1[nxt][2];
		txtw.firstChild.nodeValue = paintingArrayG1[nxt][3];
		txth.firstChild.nodeValue = paintingArrayG1[nxt][4];
		
		if(nxt==0)
			backim.src = 'pix/blank.gif';
		else
			backim.src = 'pix/back.gif';
		
		if(nxt>= paintingArrayG1.length-1)
			forwardim.src = 'pix/blank.gif';
		else
			forwardim.src = 'pix/forward.gif';
				
// crash forcer for debug	
// document.GetElementById("jjj").src = "jfsdf";
	
		var x = getRefbyID('HiRes',HiResWin[winidx].document);
		
		var a= new String;
		var b=paintingArrayG1[nxt][0];

		a="pix/hires/" + b +".jpg";
		
		var imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");
		a=imagefilename;
		imagefilename = a.replace(" ","%20");

		x.src = imagefilename;
		
		imgw.width = nxt;
	}
}
//
function getRefbyID(mID,d) {
	if(!d) d = document;

    if( d.layers ) { //Netscape layers
        return d.layers[mID]; }
    if( d.getElementById ) { //DOM; IE5, NS6, Mozilla, Opera
        return d.getElementById(mID); }
    if( d.all ) { //Proprietary DOM; IE4
        return d.all[mID]; }
    if( d[mID] ) { //Netscape alternative
        return d[mID]; }
    return false;
}

function gallery(n) {

// document.GetElementById("jjj").src = "jfsdf";

//	var loc = 'gallerymenu' + eval(n) + '.html';
//	parent.frames[3].location = loc;

	currentStartIndex=n;
//	var tot = paintingArrayG1.length;


	if(xIE4Up)
		window.scroll(0);
	else
		this.scroll(0,0);

	fillDivs();
	
}
