function htmlUnescape(value) {
	var nv = value.replace(/&lt;/gi, '<');
	nv = nv.replace(/&gt;/gi, '>');
	return nv;
}

function htmlentities(value) {
	var nv = value.replace(/</gi, '&lt;');
	nv = nv.replace(/>/gi, '&gt;');
	return nv;
}
/*

function loadImage(galleryObject) {
	document.getElementById('gallery_item_details').innerHTML = 
	'<br><center><img src="storage/large/'+galleryObject['id']+'.jpg"><br><br>'+
	'<b>Name: </b>'+htmlentities(galleryObject['name'])+'<br>'+
	'<b>Tags: </b>'+htmlentities(galleryObject['tags'])+'<br>'+
	'<b>Description: </b>'+htmlentities(galleryObject['description'])+'<br>'+
	'<b>Date: </b>'+htmlentities(galleryObject['date'])+'<br>'+
	'<b>Gallery: </b>'+htmlentities(galleryObject['gallery'])+'</center>';
}
*/

function loadImage(galleryObject) {
	document.getElementById('gallery_item_details').innerHTML = 
	'<center></center>';
}


function addToGallery(Id, Name, Tags, Description, DateModified, GalleryName) {
	var div = document.createElement('div');
	div.className = 'gallery_thumbnail';
	//div.innerHTML = htmlUnescape('id='+Id+',name='+Name+',tags='+Tags+',description='+Description+',date='+DateModified);
	
	var img_holder = document.createElement('div');
	img_holder.className = 'thumb_holder';
	img_holder.style.backgroundImage = 'url(storage/thumbs/'+Id+'.jpg)';
	div.appendChild(img_holder);
	
	img_holder.onmouseover = function() {
		this.className = 'medium_holder';
		this.style.backgroundImage = this.style.backgroundImage.replace('/thumbs/', '/medium/');
		this.style.zIndex = 2000;
		this.parentNode.style.zIndex = 2000;
	}
	
	img_holder.onmouseout  = function() {
		this.className = 'thumb_holder';
		this.style.backgroundImage = this.style.backgroundImage.replace('/medium/', '/thumbs/');
		this.style.zIndex = '';
		this.parentNode.style.zIndex = '';
	}
	
	img_holder.imageInfo = {};
	img_holder.imageInfo['id'] = Id;
	img_holder.imageInfo['name'] = Name;
	img_holder.imageInfo['tags'] = Tags;
	img_holder.imageInfo['description'] = Description;
	img_holder.imageInfo['date'] = DateModified;
	img_holder.imageInfo['gallery'] = GalleryName;
	
	img_holder.title = Name;
	
	img_holder.onclick = function() {
		loadImage(this.imageInfo);
		showOverlay(this.imageInfo);
	}
	
	var name_holder = document.createElement('div');
	name_holder.className = 'name_holder';
	name_holder.innerHTML = htmlentities(Name);
	
	div.appendChild(name_holder);
	
	var description_holder = document.createElement('div');
	description_holder.className = 'description_holder';
	description_holder.innerHTML = htmlentities(Description);
	
	div.appendChild(description_holder);
	
	description_holder.title = Description;
	name_holder.title = Name;
	
	document.getElementById('gallery_holder').appendChild(div);
}

function clearGallery() {
	var existingPictures = document.getElementById('gallery_holder').getElementsByTagName('div');
	for (var i = existingPictures.length - 1; i>=0; i--) {
		if (existingPictures[i].className == 'gallery_thumbnail') {
			document.getElementById('gallery_holder').removeChild(existingPictures[i]);
		}
	}
}

function putGalleryPageNumbers(current_page, max_pages, onclickFunction) {
	try {
		document.getElementById('gallery_pagenumbers').innerHTML = 'Page: ';
	} catch (ex) {}
	var a;
	for (var i=1; i<=max_pages; i++) {
		a = document.createElement('a');
		a.onclick = onclickFunction;
		a.innerHTML = i;
		if (i == current_page) {
			a.style.fontWeight = 'bold';
			a.style.textDecoration = 'underline';
		}
		a.src = 'javascript:;';
		document.getElementById('gallery_pagenumbers').appendChild(a);
	}
}

var lastCategoryID = 0;

function loadByCategory(categoryID, current_page) {
	lastCategoryID = categoryID;
	
	var rsp = $_GET('gallery_load_by_category.php?cat_id='+categoryID+'&page='+current_page);
	//we must get a response from server in the following format:
	//max_results<TAB>max_pages<TAB>current_page<ENTER>
	//id<TAB>name<TAB>tags<TAB>description<TAB>dateModified<ENTER>
	//...
	//id<TAB>name<TAB>tags<TAB>description<TAB>dateModified<ENTER>
	var lines = rsp.split('\n');
	var arr = lines[0].split('\t');
	
	var max_results = arr[0];
	var max_pages   = arr[1];
	var current_page= arr[2];
	
	putGalleryPageNumbers(current_page, max_pages, function() {
		loadByCategory(lastCategoryID, this.innerHTML);
	});
	
	clearGallery();
	
	for (var i=1; i<lines.length; i++) {
		arr = lines[i].split('\t');
		if (arr.length == 6)
		addToGallery(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]);
	}
	
}

var lastKeywords = '';

function loadByKeywords(keywords, current_page) {
	lastKeywords = keywords;
	
	var rsp = $_GET('gallery_load_by_tags.php?q='+encodeURIComponent(keywords)+'&page='+current_page);
	
	//we must get a response from server in the following format:
	//max_results<TAB>max_pages<TAB>current_page<ENTER>
	//id<TAB>name<TAB>tags<TAB>description<TAB>dateModified<ENTER>
	//...
	//id<TAB>name<TAB>tags<TAB>description<TAB>dateModified<ENTER>
	var lines = rsp.split('\n');
	var arr = lines[0].split('\t');
	
	var max_results = arr[0];
	var max_pages   = arr[1];
	var current_page= arr[2];
	
	putGalleryPageNumbers(current_page, max_pages, function() {
		loadByKeywords(lastKeywords, this.innerHTML);
	});
	
	clearGallery();
	
	for (var i=1; i<lines.length; i++) {
		arr = lines[i].split('\t');
		if (arr.length == 6)
		addToGallery(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]);
	}
	
}