
function tourArchivePageShowPreviousOrNext(direction) {

	var newIndex = (direction == "next") ? currentPage + 1 : currentPage - 1;
	
	if (newIndex < 1 || newIndex > totalPageCount) {
		return;	
	}
	//updatePreviousNextButtons();
	//document.getElementById("previous_page_link").style.visibility = (newIndex == totalPageCount) ? "hidden" : "visible";
	//document.getElementById("next_page_link").style.visibility = (newIndex == 1) ? "hidden" : "visible";	
	loadTourArchivePage(newIndex);
}


function doUploadTourImageOnclick() {
	if (!window.upUserName) {
		showLoginForm('http://' + location.hostname + location.pathname + "?page=" + currentPage);
	} else {
		var newWin = window.open("popups/upload_tour_photo.php", "newWin", "width=500, height=630, scrollbars=no, location=no, status=no");	
		newWin.focus();
	}
}

function doUploadTourReviewOnclick() {
	if (!window.upUserName) {
		showLoginForm('http://' + location.hostname + location.pathname + "?page=" + currentPage);
	} else {
		var newWin = window.open("popups/upload_tour_review.php", "newWin", "width=500, height=630, scrollbars=no, location=no, status=no");	
		newWin.focus();
	}
}

function recenterElement(el) {
	try {
		el.style.marginTop = -(el.offsetHeight/2) + "px";
		el.style.marginLeft = -(el.offsetWidth/2) + "px";
	} catch (e) {
		alert(e);	
	}	
}

function ArchivedTourDate(id, dateString, venue, location, imageCount, textCount) {
	this.id = id;
	this.date = dateString;
	this.venue = venue;
	this.location = location;
	this.imageCount = imageCount;
	this.textCount = textCount;	
}

function ArchivedTourDateImage(id, eventId, url, caption, uploadedByName, uploadedDate) {
	this.id = id;
	this.eventId = eventId;
	this.url = url;
	this.caption = caption;
	this.uploadedByName = uploadedByName;	
	this.uploadedDate = uploadedDate;
}

function ArchivedTourDateText(id, eventId, text, uploadedByName, uploadedDate) {
	this.id = id;
	this.eventId = eventId;
	this.text = text;
	this.uploadedByName = uploadedByName;	
	this.uploadedDate = uploadedDate;
}

function hideUploadsLayer() {
	//document.getElementById("uploadsCenterer").style.visibility = "hidden";
	document.getElementById("uploadsLayer").style.display = "none";
	document.getElementById("uploadsLayer").className = "hidden";
	document.getElementById("uploadLayerContent").innerHTML = "&nbsp;";	
	document.getElementById("uploadsLayerSubTitle").innerHTML = "&nbsp;";	
	showHideScrim("hidden");
}

function showTourImages(aisEventId) {
	var onSuccessFunc = function(req) { handleShowTourImagesResponse(req); }
	var onErrorFunc = function(req) { alert('Error!\nStatusText='+req.statusText+'\nContents='+req.responseText); }
	var onTimeOutFunc = function(req) { alert('Timed Out!'); }
	var reqUrl = 'ajax_requests/archived_tour_images.php';
	var req = AjaxRequest.post({'url':reqUrl, 'eventId':aisEventId, 'onSuccess': onSuccessFunc, 'onError': onErrorFunc, 'onTimeout': onTimeOutFunc });
}

function handleShowTourImagesResponse(reqObj) {
	var retObj = eval("(" + reqObj.responseText + ")");	
	
	if (retObj.type != "event images" || retObj.count < 1) {
		return;	
	}
	var preImg = new Image();
	
	for (var i=0; i<retObj.count; i++) {
		preImg.src = retObj.images[i].url;	
	}
	document.getElementById("uploadsLayerTitle").innerHTML = 'TOUR PHOTOS';  //"tour photos";
	document.getElementById("uploadsLayerSubTitle").innerHTML = retObj.longDate + " at " + retObj.venue + ", " + retObj.location;
	var lyr = document.getElementById("uploadLayerContent");	
	
	for (var i=0; i<retObj.count; i++) {
		var tmp = document.createElement("img");
		tmp.setAttribute("src", retObj.images[i].url);
		tmp.setAttribute("alt", retObj.images[i].caption);
		tmp.setAttribute("title", retObj.images[i].caption);
		tmp.setAttribute("className", "tourArchiveImage");
		lyr.appendChild(tmp);
		// Add the caption:
		tmp = document.createElement("div");
		tmp.className = "tourArchiveImageCaption";
		tmp.innerHTML = retObj.images[i].caption;
		lyr.appendChild(tmp);
		// Add the submiited by info:
		tmp = document.createElement("div");
		tmp.className = "tourArchiveImageSubmittedBy";
		tmp.innerHTML = "submitted by <strong>" + retObj.images[i].uploadedByName + "</strong> on " + retObj.images[i].uploadedDate;
		lyr.appendChild(tmp);		
	}
	document.getElementById("uploadsLayer").style.display = "block";
	recenterElement(document.getElementById("uploadsLayer"));
	document.getElementById("uploadsLayer").className = "visible"; //UploadsLayer";
	showHideScrim("visible");	
} // End handleShowTourImagesResponse()

function tourArchivePhotoShowPreviousOrNext(direction) {
	var newIndex = (direction == "next") ? currentTourArchiveImageIndex + 1 : currentTourArchiveImageIndex - 1;
	
	if (tourArchiveImages[newIndex]) {
		currentTourArchiveImageIndex = newIndex;
		var el = document.getElementById("archivedTourImage");
		var wrap = document.getElementById("uploadLayerContent");
		var newDisp = new Image();
		newDisp.src = tourArchiveImages[currentTourArchiveImageIndex].url;
		newDisp.onload = function(){
			document.getElementById("archivedTourImage").src = newDisp.src;
			document.getElementById("previous_pagE_link").style.visibility = (currentTourArchiveImageIndex == (tourArchiveImages.length - 1)) ? "hidden" : "visible";
			document.getElementById("next_page_link").style.visibility = (currentTourArchiveImageIndex == 0) ? "hidden" : "visible";		
		}
	} 
}

function showTourReviews(aisEventId) {
	var onSuccessFunc = function(req) { handleShowTourTextResponse(req); }
	var onErrorFunc = function(req) { alert('Error!\nStatusText='+req.statusText+'\nContents='+req.responseText); }
	var onTimeOutFunc = function(req) { alert('Timed Out!'); }
	var reqUrl = 'ajax_requests/archived_tour_text.php';
	var req = AjaxRequest.post({'url':reqUrl, 'eventId':aisEventId, 'onSuccess': onSuccessFunc, 'onError': onErrorFunc, 'onTimeout': onTimeOutFunc });

} // End showTourReviews()

function handleShowTourTextResponse(reqObj) {

	var retObj = eval("(" + reqObj.responseText + ")");	
	var lyr = document.getElementById("uploadLayerContent");	
	document.getElementById("uploadsLayerTitle").innerHTML = 'FAN JOURNALS'; //"tour reviews";
	document.getElementById("uploadsLayerSubTitle").innerHTML = retObj.longDate + " at " + retObj.venue + ", " + retObj.location;
	var lyr = document.getElementById("uploadLayerContent");	

	for (var i=0; i<retObj.count; i++) {
		var tmp = document.createElement("div");
		tmp.setAttribute("className", "tourReview");
		tmp.innerHTML = "<p>" + retObj.texts[i].text + '</p><div class="tourArchiveReviewSubmittedBy">submitted by <strong>' + retObj.texts[i].uploadedByName + "</strong> on " + retObj.texts[i].uploadedDate + "</div>";
		lyr.appendChild(tmp);
		if (i != (retObj.count - 1)) {
			lyr.appendChild(document.createElement("hr"));	
		}
	}
	document.getElementById("uploadsLayer").style.display = "block";
	recenterElement(document.getElementById("uploadsLayer"));
	document.getElementById("uploadsLayer").className = "visible";
	showHideScrim("visible");
}

function loadTourArchivePage(pageNumber) {
	//var el = document.getElementById("tour_archive_paginator_control");
	//var pageNumber = el[el.selectedIndex].value;
	
	if (pageNumber == currentPage) {
		return;	
	}
	currentPage = pageNumber;
	
	var onSuccessFunc = function(req) { handleLoadTourArchivePageResponse(req); }
	var onErrorFunc = function(req) { alert('Error!\nStatusText='+req.statusText+'\nContents='+req.responseText); }
	var onTimeOutFunc = function(req) { alert('Timed Out!'); }
	var reqUrl = 'ajax_requests/archived_tour.php';
	var req = AjaxRequest.post({'url':reqUrl, 'aisArtistId':aisArtistId, 'recsPerPage':recsPerPage, 'pageNumber':currentPage, 'onSuccess': onSuccessFunc, 'onError': onErrorFunc, 'onTimeout': onTimeOutFunc });
} // End loadTourArchivePage()

function handleLoadTourArchivePageResponse(reqObj) {
	var retObj = eval("(" + reqObj.responseText + ")");	
	var len = retObj.tourDates.length;
	var wrap = document.getElementById("tour_details");
	wrap.innerHTML = "";
	updatePreviousNextButtons();	
	
	for (var i=0; i<len; i++) {
		var tmp = document.createElement("div");
		tmp.onmouseover = doTourRowHover;
		tmp.onmouseout = doTourRowHover;
		tmp.className = "tour_entry";
		tmp.id = retObj.tourDates[i].id;

		
		var tmpInner = '<div class="tour_date">' + retObj.tourDates[i].date + '</div>';
		tmpInner += '<div class="tour_venue">' + retObj.tourDates[i].venue + '</div>';
		tmpInner += '<div class="tour_location_past">' + retObj.tourDates[i].location + '</div>';

		tmpInner += '<div class="tour_reviews">';
		//tmpInner += (retObj.tourDates[i].textCount > 0) ? retObj.tourDates[i].textCount : 'no';		
		if (retObj.tourDates[i].textCount > 0) {
			tmpInner += '<a href="#" onclick="showTourReviews(' + retObj.tourDates[i].id + '); return false;">' + retObj.tourDates[i].textCount +  ' review(s)</a>';	
		} else {
			tmpInner += 'no reviews';
		}
		tmpInner += '</div>';


		tmpInner += '<div class="tour_photos">';
		if (retObj.tourDates[i].imageCount > 0) {
			tmpInner += '<a href="#" onclick="showTourImages(' + retObj.tourDates[i].id + '); return false;">' + retObj.tourDates[i].imageCount +  ' photo(s)</a>';	
		} else {
			tmpInner += 'no photos';
		}
		//tmpInner += (retObj.tourDates[i].imageCount > 0) ? retObj.tourDates[i].imageCount : 'no';	
		tmpInner += '</div>';

		tmp.innerHTML = tmpInner;

		wrap.appendChild(tmp);
	} // for each event
	// Update the pagination control:
} // End handleLoadTourArchivePageResponse()

function updatePreviousNextButtons() {
	document.getElementById("previous_page_link").style.visibility = (currentPage == (totalPageCount)) ? "hidden" : "visible";
	document.getElementById("next_page_link").style.visibility = (currentPage == 1) ? "hidden" : "visible";		
	updatePaginationHighlight();
}

function updatePaginationHighlight() {
	var prnt = document.getElementById("pagination_wrapper");
	var els = prnt.getElementsByTagName("a");
	for (var i=0; i<els.length; i++) {
		els[i].className = (els[i].innerHTML == currentPage) ? "current": "";
	}	
}
