function getHTTPObject() {
	var xhr = false;
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xhr = false;
			}
		}
	}
	return xhr;
}

//Respond only when ready
function displayResponse(request) {
	if (request.readyState == 4) {
		if (request.status == 200 || request.status == 304) {
			var response = request.responseXML //.responseText
			var target = document.getElementById('gallery_target_image');
			if (target) {
				// MASK AND DISPLAY
				if (response) {
					// DIV
					// CLOSE (a) gallery_target_closer
					// IMAGE
					var img = document.createElement('img');
					img.setAttribute('class','gallery image');
					img.setAttribute('src',response.getElementsByTagName('src')[0].firstChild.nodeValue);
					img.setAttribute('title',response.getElementsByTagName('title')[0].firstChild.nodeValue);
					img.setAttribute('alt',response.getElementsByTagName('alt')[0].firstChild.nodeValue);
					img.setAttribute('onclick','removeImg(); return false;')
					// LINK
					var text = document.createTextNode('link:');
					var span = document.createElement('span')
					span.appendChild(text);
					span.setAttribute('class','smaller');
					var text = document.createTextNode(' '+response.getElementsByTagName('alt')[0].firstChild.nodeValue);
					var link = document.createElement('a')
					link.appendChild(span);
					link.appendChild(text);
					link.setAttribute('href',response.getElementsByTagName('link')[0].firstChild.nodeValue);
					// TITLE
					var title = document.createElement('h2');
					title.appendChild(link);
					// REMOVE EXSISTING OBJECTS
					while (target.hasChildNodes()) {
						target.removeChild(target.lastChild);
					}
					document.getElementById('gallery_target').style.display='block';
					// APPEND IMAGE
					target.appendChild(img);
					// APPEND TITLE
					target.appendChild(title);
				}
			}
		}
	}
}
function getImage(file) {
	var request = getHTTPObject();
	if (request) {
		request.onreadystatechange = function() {
			displayResponse(request);
		};
		request.open("GET", file, true);
		request.send(null);
	}
}
function removeImg() {
	document.getElementById('gallery_target').style.display='none';
}
// SET GALLERY LINKS TO USE AJAX AND CALL `getImage;`
function gallery() {
	var target = document.getElementById('gallery_target');
	// BACKGROUND
	var target_background = document.createElement('div');
	target_background.setAttribute('id','gallery_target_background');
	target.appendChild(target_background);
	// CREATE IMAGE TARGET
	var target_image = document.createElement('div');
	target_image.setAttribute('id','gallery_target_image');
	target.appendChild(target_image);
	// CREATE CLOSER BUTTON
	var target_closer = document.createElement('a')
	target_closer.setAttribute('id','gallery_target_closer')
	target_closer.setAttribute('onclick','removeImg(); return false;')
	target.appendChild(target_closer);
	if (target_image && target_closer) {
		// REDIRECT LINKS
		var gallery = document.getElementById('gallery');
		if (gallery) {
			var links = gallery.getElementsByTagName('a');
			for (i=0; i<links.length; i++) {
				links[i].setAttribute('onclick','getImage(this.href+"?ajax=true&xml=true"); return false;');
			}
		}
	}
}





// SEARCH INPUT FIELD
function searchinput() {
	var input = document.getElementById('search_input');
	if (input) {
		input.setAttribute('onclick', 'searchinputclear(this, "Search");');
		input.setAttribute('onblur', 'searchinputrecall(this, "Search");');
	}
	var input = document.getElementById('large_search_input');
	if (input) {
		input.setAttribute('onclick', 'searchinputclear(this, "Search");');
		input.setAttribute('onblur', 'searchinputrecall(this, "Search");');
	}
}
// WORK TO BE DONE
function searchinputclear(thisfield, defaulttext) {
	if (thisfield.value == defaulttext) {
		thisfield.value = "";
	}
}
function searchinputrecall(thisfield, defaulttext) {
	if (thisfield.value == "") {
		thisfield.value = defaulttext;
	}
}





// ALLOWS MULTIPLE onload EVENTS PER A PAGE
// replaces window.onload=addLoadEvent;
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}
//addLoadEvent(EVENT;);
addLoadEvent(gallery);
addLoadEvent(searchinput);
