/*
//
//	Author:			MRowntree 
//	filename:		/js/gallery.js
//	function:		to display the Images
//	usage:			include, and call
//	created date:	09/08/2006
//	last updated:
//
*/
	function showPicture(s_ID,s_Size){
	var i_H, i_W;
	if (s_Size == "l"){
		i_H = 788;
		i_W = 1024;
	}else{
		i_H = 444;
		i_W = 552;
	}
	var oPic = document.getElementById(s_ID);
	var s_picture = oPic.src;
	var s_desc = oPic.title;
	var a_picture = s_picture.split('/');
	var s_fileName = a_picture[a_picture.length-1];
	s_desc = s_desc.replace('&','<!--amp-->');
	var s_Dest = "popup.htm?s_pic=" + s_fileName + "&ref=" + s_Size + "&s_desc=" + encodeURI(s_desc);
	//alert(s_picture + "\n" + s_fileName + "\n" + s_Dest);
	var w_newWindow = window.open(s_Dest,"ViewPicture","'height=" + i_H + ",width=" + i_W + ",resizable=no,status=no'");
	}

	//getXML
	function getXML(){
		var s_XMLpath = "../XML/gallery.xml";
		var thisXML = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		if (thisXML){
			thisXML.onreadystatechange = function(){
				if (thisXML.readyState == 4 && thisXML.status == 200){
					if(thisXML.responseText == '<' + '?xml version="1.0" encoding="UTF-8"?' + '>'){
						var s_tempXML = '<gallery></gallery>';
						// set hidden field var
						document.getElementById('hiddenXML')['o_XML'].value = s_tempXML;			
						renderGallery(s_tempXML,'');
					}else{
						// set hidden field var
						document.getElementById('hiddenXML')['o_XML'].value = thisXML.responseText;
						renderGallery(thisXML.responseText,'');
					}
				}
		}
		thisXML.open("GET", s_XMLpath, true);
		thisXML.send(null);		
		}
	}
	
	//date array Sort
	function dateSort(a_Array, ao_Array){
		var i_thisIndex, i_prevIndex, dt_thisDate, dt_prevDate;
		//sort the date array
		function sortNumbers(a, b) { return a - b} 
		a_Array = a_Array.sort(sortNumbers);
	
		//create new array for the sorted Indexes
		var a_sortIndex = new Array();
		var dt_thisDate = "";
		for(var a = 0; a < a_Array.length; a++){
			// now loop over the ao_Array object to find a date that matches the current a_Date value
			dt_thisDate = a_Array[a];
			for(var b = 0; b < ao_Array.length; b++){
				if (ao_Array[b].dt_date == dt_thisDate){
					a_sortIndex[a] = b;
					//reset the corresponding date value so that it wont match next time around
					ao_Array[b].dt_date = "0";
					break;
				}
			}
		}
		return a_sortIndex;
	}

	//renderGallery
	function renderGallery(objXML,i_start){
		if(!objXML){
			objXML = document.getElementById('hiddenXML')['o_XML'].value;
		}
		var st_XML = new REXML(objXML);
		var rootEl = st_XML.rootElement;
		var rootChildren = rootEl.childElements;
		//alert(rootChildren.length);
		if (rootChildren.length){
		
		//create an array of all the dates
		var ao_dates = new Array();
		var a_dates = new Array();
		for (var a=0; a < rootChildren.length; a++){
			var re_Date = /^(\d{2})\/(\d{2})\/(\d{4})$/;
			var a_result = rootChildren[a].childElements[3].text.match(re_Date);
			var dt_date = Date.UTC(a_result[3], a_result[2]-1,a_result[1]-1);
			a_dates[a] = dt_date;
			ao_dates[a] = new Object();
			ao_dates[a].i_index = a;
			ao_dates[a].dt_date = dt_date;
		}
		//a_sortedDates = a_dates.sort(arraySort);
		var a_indexSort = dateSort(a_dates, ao_dates);
			
			//alert(rootChildren.length);
			var i_countNum = 1;
	 		var i_start = (i_start) ? parseInt(i_start) : a_indexSort.length - 1 ;

			for (var i = i_start; i >= 0; i--){
			//alert(i);
			//for (var i=i_start; i < rootChildren.length; i++){
				var childrenElements = rootChildren[a_indexSort[i]].childElements;				
				if(i_countNum == 9) break;
				//if this element was blanked, and therefore this component doesn't exist, rebuild it!
				/*if(!document.getElementById('img' + i_countNum + 'text')){
					//test
				}else{*/
				if(document.getElementById('img' + i_countNum + 'text')){
					document.getElementById('img' + i_countNum + 'text').innerHTML = childrenElements[0].text + " [" + childrenElements[3].text + "]";
					document.getElementById('img' + i_countNum).src = '../images/gallery/thumbnail/' + childrenElements[1].text;
					document.getElementById('img' + i_countNum).alt = childrenElements[0].text + " [" + childrenElements[3].text + "]";
					document.getElementById('img' + i_countNum).title = childrenElements[0].text + " [" + childrenElements[3].text + "]";
				}else{
					document.getElementById('cnt_Content_el' + i_countNum ).innerHTML = "<a href=\"javascript:showPicture('img" + i_countNum + "','l');\"><img src='../images/gallery/thumbnail/" + childrenElements[1].text + "' width='140' height='105' ID='img" + i_countNum + "' alt='" + childrenElements[0].text  + " [" + childrenElements[3].text + "]' title='" + childrenElements[0].text  + " [" + childrenElements[3].text + "]' border=0></a><br><span id='img" + i_countNum + "text'  class='imgText'>" + childrenElements[0].text + " [" + childrenElements[3].text + "]</span>";
				//document.getElementById('el_more_text_med' + i_countNum).innerHTML = "<a href='javascript:showPicture(\'img1\',\'m\');'>medium&gt;</a></span>";
				//document.getElementById('el_more_text_lrg' + i_countNum).innerHTML = "<a href='javascript:showPicture(\'img1\',\'l\');'>large&gt;</a>";
				}
				//)
				i_countNum++;
			}
			//do we need to blank any of the remaining cells?
			if(i_countNum <= 8){
				// blank the remaining cells
				for(var z = i_countNum; z <= 8; z++){
				document.getElementById('cnt_Content_el' + i_countNum ).innerHTML = "";
				//document.getElementById('el_more_text_med' + z).innerHTML = "";
				//document.getElementById('el_more_text_lrg' + z).innerHTML = "";
				i_countNum++;
				}
			}
			// display 'previous' button?
			if(i_start < rootChildren.length - 1){
				document.getElementById('content5L').innerHTML = "<a href=\"javascript:renderGallery('','" + (parseInt(i_start) + 8) + "');\">&lt;&lt; Previous page</a>";
			}else{
				document.getElementById('content5L').innerHTML = "";
			}
			//alert(i_start - 8);
			// display 'next' button?
			if((i_start - 8) > 0){
				document.getElementById('content5R').innerHTML = "<a href=\"javascript:renderGallery('','" + (parseInt(i_start) - 8) + "');\">Next page &gt;&gt;</a>";
			}else{
				document.getElementById('content5R').innerHTML = "";
			}
		}
		
	}
