// JavaScript Document
imageSearch = {
	
	search: function(file,query) {
		$('#imageResults').empty();
		$("#errorMessage").hide();
		$("#imageLabel").hide();
		$("#imageResultPagination").empty();
		
		//ensure only one space between elements
		query = query.replace(/^\s*/, "").replace(/\s*$/, "").replace(/\s+/g," ");
		//replace that space with pipe
		query = query.replace(/ /g, "|");
		 
		if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		  xmlhttp=new XMLHttpRequest();
		} else {// code for IE6, IE5
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		xmlhttp.open("GET",file,false);
		xmlhttp.send();
		xmlDoc=xmlhttp.responseXML; 
		$(xmlDoc).find('file').each(function(){
			var fileName = $(this).attr('filename');
			imageSearch.searchFile(fileName, query);
		});
		
		imageSearch.paginate(18);
	},
	
	searchFile: function(file,query) {
	
		var isResults = false;
		var queryArray = query.split("|");
		var matches = true;		
		
		if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		  xmlhttp=new XMLHttpRequest();
		} else {// code for IE6, IE5
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		xmlhttp.open("GET",file,false);
		xmlhttp.send();
		xmlDoc=xmlhttp.responseXML; 
		$(xmlDoc).find('image').each(function(){
			var desc = $(this).attr('desc');
			var fileName = $(this).attr('filename');
			var url = $(this).attr('url');
			matches = true;
			try{
				for (i=0; i < queryArray.length; i++)
				{
					myRE = new RegExp(queryArray[i], "i");
					if (desc.match(myRE) == null)
					{	
						matches = false;
					}	
				}
				if (matches)
				{	
					isResults = true;
					$('#imageResults').append('<table bgcolor="white"><tr><td style="height:68px"><a href="'+url+'" rel="colorbox" title="'+desc+'"><img src="'+fileName+'" style="border:none;"/></a></td></tr><tr><td><a href="'+url+'" rel="colorbox2" title="'+desc+'" >'+desc.substring(0,7)+"..."+'</a></td></tr></table>');
				}
			}
			catch(exception)
			{	
				isResults = false;
			}
	
	
		});
		if (isResults)
		{
			$("#imageLabel").show();
		}
	},
	
	paginate: function(imagesPerPage) {
		var $imageTables = $("#imageResults > table");
		var numberPages = Math.ceil($imageTables.length/imagesPerPage);
		
		if (numberPages > 0)
		{
			//only display the first {imagesPerPage}
			$imageTables.slice(imagesPerPage).hide();
			
			//show the pagination numbers
			imageSearch.displayPageNumbers(numberPages, imagesPerPage);
		}
	},
	
	displayPageNumbers: function(numPages,imagesPerPage) {
		for (i = 1; i <= numPages; i++)
		{
			$("#imageResultPagination").append("<a href=\"javascript:imageSearch.goToPage(" + i + "," + imagesPerPage + ");\" id=\"Page_" + i + "\">" + i + "</a>");
		}
		$("#Page_1").addClass("CurrentPage");
	},
	
	goToPage: function(pageNum,imagesPerPage) {
		var $imageTables = $("#imageResults > table");

		var startNumber = (pageNum-1)*imagesPerPage;
		var endNumber = startNumber + imagesPerPage > $imageTables.length ? $imageTables.length : startNumber + imagesPerPage;

		$imageTables.hide().slice(startNumber,endNumber).show();
		
		$("#Page_"+pageNum).addClass("CurrentPage").siblings(".CurrentPage").removeClass("CurrentPage");
	}
	
}
