var xmlDoc;
var thepics=new Array();
var artists=new Array();
var photos=new Array();
var movies=new Array();

var stockStrings=new Array();
stockStrings['br']="<br>";

function getIndex()
{
//thanks to w3schools
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.
		{
			xmlDoc=document.implementation.createDocument("","",null);
		}
		catch(e)
		{
			alert(e.message);
			return;
		}
	}
	xmlDoc.async=false;
	xmlDoc.load("index.xml");
	var root=xmlDoc.getElementsByTagName("artwork")[0];
	var artistsXML=root.getElementsByTagName("artist");
	for(var a=0; a<artistsXML.length; a++)
	{
		var tmpArtist=new artist(artistsXML[a]);
		artists[tmpArtist.name]=tmpArtist;
		artists[a]=tmpArtist;//replicates to access both by number and by string
	}
	var picsXML=root.getElementsByTagName("picture");
	for(var a=0; a<picsXML.length; a++)
	{
		var tmpPic=new pict(picsXML[a]);
		thepics[tmpPic.name]=tmpPic;
		thepics[a]=tmpPic;//replicates to access both by number and by string
	}
	//alert("Pics length:"+thepics.length);
	var photosXML=root.getElementsByTagName("photo");
	for(var a=0; a<photosXML.length; a++)
	{
		var tmpPic=new photo(photosXML[a]);
		photos[tmpPic.name]=tmpPic;
		photos[a]=tmpPic;//replicates to access both by number and by string
	}
	var moviesXML=root.getElementsByTagName("movie");
	for(var a=0; a<moviesXML.length; a++)
	{
		var tmpPic=new movie(moviesXML[a]);
		movies[tmpPic.name]=tmpPic;
		movies[a]=tmpPic;//replicates to access both by number and by string
	}
	
}


/*This reflectively fills an object with the XML code*/
function fillObj(anObj, root)
{
	for(var t=0; t<root.childNodes.length; t++)
	{
		if(root.childNodes[t].nodeType==1)
		{
			anObj[root.childNodes[t].nodeName]=root.childNodes[t].firstChild.nodeValue;
		}
	}
}

function doReplace(anObj,template)
{
	for(var fld in anObj)
	{
		template=template.replace(RegExp("#"+fld+"#","g"),anObj[fld]);
	}
	for(var fld in stockStrings)
	{
		template=template.replace(RegExp("#"+fld+"#","g"),stockStrings[fld]);
	}
	return template;
}

function tableThumb(anArr,numCols)
{
	var i=0;
	var tableStr='<table class="thumble" border=1>';
	for(var j=0; j<anArr.length; j++)
	{
		tableStr+="<tr>";
		for(i=0; i<numCols && j+i<anArr.length; i++)
		{
			tableStr+="<td>"+anArr[j+i].thumble()+"</td>\n";
		}
		tableStr+="</tr>";
		j+=i-1;
	}
	tableStr+="</table>";
	return tableStr;
}


//artist stuff
function artist(anArtist)
{
	fillObj(this,anArtist);
	this.thumble=function()
		{
			return doReplace(this,'<div class="artistThumb"><div class="artistThumbName" onclick="gotoArtist(\'#artistname#\');">#name#</div><div class="artistThumbBio">#bio#</div></div>');
		};
}

//pic
function pict(aPic)
{
	fillObj(this,aPic);
	this.thumble=function()
		{
			var aStr=doReplace(this,'<div class="picThumb"><img src="thumb/#thumb#" class="picThumbImg" onclick="gotoPic(\'#name#\');"><div class="picThumbName" onclick="gotoPic(\'#name#\');">#name#</div><div class="picThumbArtist" onclick="gotoArtist(\'#artistname#\');">#artistname#</div>');
			return aStr;
		};
}

function photo(aPic)
{
	fillObj(this,aPic);
	this.thumble=function()
		{
			var aStr=doReplace(this,'<div class="photoThumb"><img src="thumb/#thumb#" class="photoThumbImg" onclick="gotoPhoto(\'#name#\');"><div class="picThumbName" onclick="gotoPhoto(\'#name#\');">#name#</div><div class="photoThumbArtist" onclick="gotoArtist(\'#artistname#\');">by #artistname#</div>');
			return aStr;
		};
}

function movie(aMov)
{
	fillObj(this,aMov);
	this.thumble=function()
		{
			var aStr=doReplace(this,'<div class="movThumb"><img src="thumb/#thumb#" class="movThumbImg" onclick="gotoMovie(\'#file#\');"><div class="movThumbName" onclick="gotoMovie(\'#name#\');">#name#</div><div class="movThumbArtist" onclick="gotoArtist(\'#artistname#\');">by #artistname#</div>');
			return aStr;
		};
}

function gotoArtist(aName)
{}

function gotoPhoto(aPhoto)
{}

function gotoPic(aPic)
{}

function gotoMovie(aMov)
{}




			
		
	
	


