
function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString())+"; path=/";
}

function getCookie(name){
  var cname = name + "=";               
  var dc = document.cookie;             
  if (dc.length > 0) {              
    begin = dc.indexOf(cname);       
    if (begin != -1) {           
      begin += cname.length;       
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end)) ;
    } 
  }
  return null;
}

function IsIE(){
return window.document.all?true:false;
}

//Put filenames to be linked into an array
var prevNextFiles = new Array();
var prevNextTitles = new Array();
var htmlFileName="";
var x3="";
var xmlDoc=null;


//Massage filename in img tag for use in next/prev links to be pulled from prevNextFiles array
function getFileName() {
var selectedImage = document.getElementById ? 
    document.getElementById("selectedImage") : 
    document.all.selectedImage;
var x = selectedImage.src;
var x2 = x.lastIndexOf("/");
x3 = x.slice((x2+1),-3);
x3=x3+"htm";
}


function parseXML() {
  var picIndex = document.getElementById ? 
    document.getElementById("picIndex") : 
    document.all.picIndex;
  var date = document.getElementById ? 
    document.getElementById("date") : 
    document.all.date;
  var position = document.getElementById ? 
    document.getElementById("position") : 
    document.all.position;
  var picIndex = document.getElementById ? 
    document.getElementById("picIndex") : 
    document.all.picIndex;
  var totalPicNum = document.getElementById ? 
    document.getElementById("totalPicNum") : 
    document.all.totalPicNum;
  var nextgroup = document.getElementById ? 
    document.getElementById("nextgroup") : 
    document.all.nextgroup;
  var prevgroup = document.getElementById ? 
    document.getElementById("prevgroup") : 
    document.all.prevgroup;
  var sortText = document.getElementById ? 
    document.getElementById("sortText") : 
    document.all.sortText;
  var prevLink = document.getElementById ? 
    document.getElementById("prevLink") : 
    document.all.prevLink;
  var nextLink = document.getElementById ? 
    document.getElementById("nextLink") : 
    document.all.nextLink;

if (window.ActiveXObject)
{// code for IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("paintings3.xml");
}
else if (document.implementation.createDocument)
{// code for Mozilla, Firefox, Opera, etc.
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET","paintings3.xml",false);
xmlhttp.send(null);
xmlDoc = xmlhttp.responseXML.documentElement;
}
else
{
alert('Your browser cannot handle this script');
}

//Here we start loading all of the XML data into the appropriate page elements
document.getElementById("totalPicNum").innerHTML=xmlDoc.getElementsByTagName("painting").length;


//Populate the thumbnails panel
var filePath="images/thumbn/";
var file=getCookie("sortThis");
	if (!file) {
		file = "reset|Complete Works|keyword";
		}
var f = file.split("|"); 
var file0=f[0];
var file1="";
var file2="";
var file3="";
var date1=f[0];
var date2=f[3];
var xmlTag=f[2];
var thisAlt="";
var thisHeight="";
var thisWidth="";
var testFile="";
var counter=0;
var numImages=0;
var thumbnailColumnCounter=0;

numImages=xmlDoc.getElementsByTagName("painting").length;
for (var i=0;i<numImages;i++) {
file1=xmlDoc.getElementsByTagName(xmlTag)[i].childNodes[0].nodeValue;

if ((file1.match(file0))||((file1 <= date2) && (file1 >= date1))) {
testFile=xmlDoc.getElementsByTagName("fileName")[i].childNodes[0].nodeValue;
thisAlt=xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue;
htmlFileName=testFile.replace(/.jpg/, ".htm");

//Set up array of titles to be passed to prevLink and nextLink
prevNextTitles.push(thisAlt);
//Set up the previous & next links
prevNextFiles.push(htmlFileName);

	if ((counter < 4) && (counter > 0)) {
		file2="<a href='"+htmlFileName+"'><img src='"+filePath+testFile+"' class='thumbnail' alt='"+thisAlt+"' height='64' width='64'><\/a><br \/>";counter++;
		}
	else if (counter == 0) {
		file2="<li class='ptgLI'><a href='"+htmlFileName+"'><img src='"+filePath+testFile+"' class='thumbnail' alt='"+thisAlt+"' height='64' width='64'><\/a><br \/>";counter++;
		}
	else if (counter == 4) {
		file2="<a href='"+htmlFileName+"'><img src='"+filePath+testFile+"' class='thumbnail' alt='"+thisAlt+"' height='64' width='64'><\/a><\/li>";
		counter=0;thumbnailColumnCounter++;
		}
		
	file3=file3+file2;file2="";
	}
	}
if (file3.slice(-5,-1) == "br /") {
	file3 = file3+"<\/li>";
	thumbnailColumnCounter++;
	}
document.getElementById("mycarousel").innerHTML=file3;

if (thumbnailColumnCounter < 3) {
	nextgroup.style.left="-900px";
	prevgroup.style.left="-900px";
	} else {
	nextgroup.style.left="212px";
	prevgroup.style.left="28px";
	}

//Fill in sortText
document.getElementById("sortText").innerHTML=f[1];
//Set image x of y
document.getElementById("totalPicNum").innerHTML=prevNextFiles.length;
getFileName();
for (var n=0;n<prevNextFiles.length;n++) {
	if (prevNextFiles[n] == x3) {
		document.getElementById("picIndex").innerHTML=n+1;		document.getElementById("prevLink").title=prevNextTitles[n-1];		document.getElementById("nextLink").title=prevNextTitles[n+1];
		}
	}		
		var nlast = prevNextFiles.length;
//Disable the "Next" link when you reach the end
	if (nlast == document.getElementById("picIndex").innerHTML) {
		nextLink.style.color = "#666666";
		nextLink.style.textDecoration = "none";
		} else {
		nextLink.style.color = "#125090";
		nextLink.style.textDecoration = "underline";
		}
	if (prevNextFiles[0] == x3) {
		prevLink.style.color = "#666666";
		prevLink.style.textDecoration = "none";
		} else {
		prevLink.style.color = "#125090";
		prevLink.style.textDecoration = "underline";
		}
		
  var heightInches = document.getElementById ? 
    document.getElementById("heightInches") : 
    document.all.heightInches;var metric=0;
  var widthInches = document.getElementById ? 
    document.getElementById("widthInches") : 
    document.all.widthInches;
  var heightMetric = document.getElementById ? 
    document.getElementById("heightMetric") : 
    document.all.heightMetric;
  var widthMetric = document.getElementById ? 
    document.getElementById("widthMetric") : 
    document.all.widthMetric;
var metric=heightInches.innerHTML*2.54;
metric=Math.round(metric);
document.getElementById("heightMetric").innerHTML=metric;
metric=widthInches.innerHTML*2.54;
metric=Math.round(metric);
document.getElementById("widthMetric").innerHTML=metric;

} //end parseXML




//Next and Previous links operation
function nextPic() {
getFileName();
for (var n=0;n<prevNextFiles.length;n++) {
	if (prevNextFiles[n] == x3) {
		var nn = n+1;
		if (nn < prevNextFiles.length) {
		var nextHref = prevNextFiles[nn];
		document.location.href=nextHref;
		} else {
		return false;
		}
		}
	}
}

function prevPic() {
getFileName();
for (var n=0;n<prevNextFiles.length;n++) {
	if (prevNextFiles[n] == x3) {
		var nn = n-1;
		if (nn > -1) {
			var prevHref = prevNextFiles[nn];
			document.location.href=prevHref;
		} else {
		alert(x3+", "+prevNextFiles[n]);
		return false;
		}
		}
	}
}





// Slide thumbnails UL back and forth -- see divs nextgroup and prevgroup below
var counter = 1;

function doLeftChangeMem(elem,endLeft,steps,intervals,powr,direction) { 
//Left changer with Memory by www.hesido.com, adapted by Arthur
var elem = document.getElementById ? 
    document.getElementById("mycarousel") : 
    document.all.mycarousel;
var nextBtn = document.getElementById ? 
    document.getElementById("nextBtn") : 
    document.all.mycarousel;
var prevBtn = document.getElementById ? 
    document.getElementById("prevBtn") : 
    document.all.mycarousel;
var liNum = elem.getElementsByTagName("li").length;
liNum=eval(liNum/2); //because we move two LIs at a time
var startLeft = parseInt(elem.style.left);
endLeft=eval(startLeft+endLeft);
//To prevent rightward motion after the rightmost pair of LIs comes into view and leftward motion after the leftmost pair is displayed
if (((counter >= 1) && (counter < liNum) && (direction == "right")) || ((counter > 1) && (counter <= (liNum+1)) && (direction == "left"))) {

    if (elem.leftChangeMemInt)
	window.clearInterval(elem.leftChangeMemInt);
    var actStep = 0;
    elem.leftChangeMemInt = window.setInterval(
	function() { 
	  elem.currentLeft = easeInOut(startLeft,endLeft,steps,actStep,powr);
	  elem.style.left = elem.currentLeft + "px"; 
	  actStep++;
	  if (actStep > steps) window.clearInterval(elem.leftChangeMemInt);  
	  },intervals);
	  
	} else { return false; }
	
	//Set the counter
	if ((counter < liNum) && (direction == "right")) { counter++ } else if ((counter > 1) && (direction == "left")) { counter-- }
	
	//Disable the button when  the end of the list is reached
	if (counter == 1) { prevBtn.style.left = "-24px"; } else { prevBtn.style.left = "0"; }
	if (counter >= liNum) { nextBtn.style.left = "-24px"; } else { nextBtn.style.left = "0"; }
}




function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) { 
//Generic Animation Step Value Generator By www.hesido.com 
    var delta = maxValue - minValue; 
    var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
    return Math.ceil(stepp) 
    } 
    
    
//Handle the big images
//see jQuery file charto112009.js


//Sort functions set a cookie which last until replaced
function allThumbs() {
setCookie("sortThis", "reset|Complete Works|keyword", 365);
document.location.href="American_Landscape.htm";
}


function sort(content,Content1,tag) {
var thisCookie = content+'|'+Content1+'|'+tag;
setCookie("sortThis", thisCookie, 365);
var file1="";
var whichFile="";
var htmFileName="";
var numImages=xmlDoc.getElementsByTagName("painting").length;
for (var i=0;i<numImages;i++) {
file1=xmlDoc.getElementsByTagName(tag)[i].childNodes[0].nodeValue;
if ((file1.match(content)) && (whichFile =="")) {
whichFile=xmlDoc.getElementsByTagName("fileName")[i].childNodes[0].nodeValue;
htmFileName=whichFile.replace(/.jpg/, ".htm");
document.location.href=htmFileName;
		}
	}
}



function sortDate(date1,date2) {
var thisCookie = date1+'|'+date1+' - '+date2+'|date|'+date2;
setCookie("sortThis", thisCookie, 365);
var file1="";
var whichFile="";
var htmFileName="";
var numImages=xmlDoc.getElementsByTagName("painting").length;
for (var i=0;i<numImages;i++) {
file1=xmlDoc.getElementsByTagName("date")[i].childNodes[0].nodeValue;
//dates fall within a range defined by date1 and date2; empty whichFile means
//xml item is first in list, so that filename is massaged and loaded; parseXML 
//will create the ret of the list
if (((file1 <= date2) && (file1 >= date1)) && (whichFile =="")) {
whichFile=xmlDoc.getElementsByTagName("fileName")[i].childNodes[0].nodeValue;
htmFileName=whichFile.replace(/.jpg/, ".htm");
document.location.href=htmFileName;
		}
	}
}


//Sort functions for use by pages not residing in paintings folder
//the TL is for Top Level
function allThumbsTL() {
setCookie("sortThis", "reset|Complete Works|keyword", 365);
document.location.href="../paintings/American_Landscape.htm";
}


function sortTL(content,Content1,tag) {
var thisCookie = content+'|'+Content1+'|'+tag;
setCookie("sortThis", thisCookie, 365, "/");
var file1="";
var whichFile="";
var htmFileName="";
var tlPath="../paintings/";
loadXML();
var numImages=xmlDoc.getElementsByTagName("painting").length;
for (var i=0;i<numImages;i++) {
file1=xmlDoc.getElementsByTagName(tag)[i].childNodes[0].nodeValue;
if ((file1.match(content)) && (whichFile =="")) {
whichFile=tlPath+xmlDoc.getElementsByTagName("fileName")[i].childNodes[0].nodeValue;
htmFileName=whichFile.replace(/.jpg/, ".htm");
document.location.href=htmFileName;
		}
	}
}



function sortDateTL(date1,date2) {
var thisCookie = date1+'|'+date1+' - '+date2+'|date|'+date2;
setCookie("sortThis", thisCookie, 365);
var file1="";
var whichFile="";
var htmFileName="";
var tlPath="../paintings/";
loadXML();
var numImages=xmlDoc.getElementsByTagName("painting").length;
for (var i=0;i<numImages;i++) {
file1=xmlDoc.getElementsByTagName("date")[i].childNodes[0].nodeValue;
//dates fall within a range defined by date1 and date2; empty whichFile means
//xml item is first in list, so that filename is massaged and loaded; parseXML 
//will create the ret of the list
if (((file1 <= date2) && (file1 >= date1)) && (whichFile =="")) {
whichFile=tlPath+xmlDoc.getElementsByTagName("fileName")[i].childNodes[0].nodeValue;
htmFileName=whichFile.replace(/.jpg/, ".htm");
document.location.href=htmFileName;
		}
	}
}





function loadXML() {
if (window.ActiveXObject)
{// code for IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("../paintings/paintings3.xml");
}
else if (document.implementation.createDocument)
{// code for Mozilla, Firefox, Opera, etc.
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET","../paintings/paintings3.xml",false);
xmlhttp.send(null);
xmlDoc = xmlhttp.responseXML.documentElement;
}
else
{
alert('Your browser cannot handle this script');
}

}



