// JavaScript Document


function createRequestObject() {
	var ro;
    var browser = navigator.appName;

	if( navigator.userAgent.indexOf('Opera') != -1 ) {
        ro = new XMLHttpRequest();
	} else if(browser == "Microsoft Internet Explorer") {
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        ro = new XMLHttpRequest();
    }
    return ro;
}

var ajaxConnect = createRequestObject();
var Artist_ID = '';
var Album_ID = '';
var SortOrder = 'asc';
var OldSortBy = 'release';
var headerImages = Array( );
var isBusy = false;

headerImages['artist'] = 'headerArtist';
headerImages['album'] = 'headerAlbum';
headerImages['release'] = 'headerRelease';
headerImages['genre'] = 'headerGenre';
headerImages['label'] = 'headerLabel';
headerImages['cat_no'] = 'headerCat';

function doLoading() {
	var releaseField = document.getElementById( 'releaseResultsField' );
	var loadingOverlay = document.getElementById( 'loadingOverlay' );
	var loadingImage = document.getElementById( 'loadingImage' );

	loadingOverlay.style.left = findPosX(releaseField) + "px";
	loadingOverlay.style.top = findPosY(releaseField) + "px";
	loadingOverlay.style.height = releaseField.clientHeight + "px";
	loadingOverlay.style.width = releaseField.clientWidth + "px";

	loadingImage.style.marginTop =  ( ( releaseField.clientHeight / 2 ) - 9 ) + "px";
	
	if( releaseField.clientHeight > 20 ) {
		loadingOverlay.style.visibility = 'visible';
	}	
}

function completeLoading() {
	var loadingOverlay = document.getElementById( 'loadingOverlay' );

	loadingOverlay.style.visibility = 'hidden';

}

function sendReleasesSearch(artist,album,sortby) {

	if( !isBusy ) {
		doLoading();

		if( sortby == OldSortBy ) {
			if( SortOrder == 'asc' ) {
				SortOrder = 'desc';
			} else {				
				SortOrder = 'asc';
			}
		} else {
			SortOrder = 'asc';
		}
		

		ajaxConnect.open('get', '../../includes/ajax/getReleases.php?sort=' + sortby + '&order=' + SortOrder );
		ajaxConnect.onreadystatechange = handleReleasesSearchRequest;
		ajaxConnect.send(null);

		if( OldSortBy != sortby && OldSortBy != '' ) {
			image = document.getElementById( OldSortBy );
			image.src  = 'template/TrueNorthRecords/images/mainSite/releases/' + headerImages[OldSortBy] + '.gif';
			image.oSrc = '';
		} 

		image = document.getElementById( sortby );
		image.src  = 'template/TrueNorthRecords/images/mainSite/releases/' + headerImages[sortby] + '-' + SortOrder + '.gif';
		image.oSrc = '';
		
		OldSortBy = sortby;
	
	}
		
}

function handleReleasesSearchRequest() {
	
	isBusy = true;
	
    if(ajaxConnect.readyState == 4){
        var response = ajaxConnect.responseText;
		var releaseField = document.getElementById( 'releaseResultsField' );

		isBusy = false;

		releaseField.innerHTML = response;
		
		completeLoading();
		
	}
	
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}