function xBrowser()
{
	if(navigator.appName.indexOf("Netscape") != -1)
	{
		this.getCanvasWidth	= function() {return innerWidth;}
		this.getCanvasHeight	= function() {return innerHeight;}
		this.getWindowWidth 	= function() {return outerWidth;}
		this.getWindowHeight	= function() {return outerHeight;}
		this.getScreenWidth 	= function() {return screen.width;}
		this.getScreenHeight	= function() {return screen.height;}
		this.getMinX		= function() {return(pageXOffset);}
		this.getMinY		= function() {return(pageYOffset);}
		this.getMaxX		= function() {return(pageXOffset+innerWidth);}
		this.getMaxY		= function() {return(pageYOffset+innerHeight);}

		this.getYOffSet		= function() {return(0);}

		this.centerY		= function() {return parseFloat( parseFloat(pageYOffset) + (parseFloat(innerHeight) / 2 ));}
		this.centerX		= function() {return parseFloat(innerWidth) / 2 ;}

	}
	else
	if(document.all)
	{
		this.getCanvasWidth	= function() {return document.body.clientWidth;}
		this.getCanvasHeight	= function() {return document.body.clientHeight;}
		this.getScreenWidth	= function() {return screen.width;}
		this.getScreenHeight	= function() {return screen.height;}
		this.getMinX		= function() {return(document.body.scrollLeft);}
		this.getMinY		= function() {return(document.body.scrollTop);}
		this.getMaxX		= function() {
			return(document.body.scrollLeft + document.body.clientWidth);
		}
		this.getMaxY		= function() {
				return(document.body.scrollTop
					+document.body.clientHeight);
		}

		this.getYOffSet		= function() {return(document.documentElement.scrollTop);}

		this.centerY		= function() {return parseFloat( parseFloat(document.documentElement.scrollTop) + (parseFloat(document.documentElement.clientHeight) / 2 ));}
		this.centerX		= function() {return parseFloat(document.documentElement.clientWidth) / 2 ;}
	}
	return(this);
}

function getObject(nameStr) {
	var ie  = (document.all);
	var ns4 = document.layers? true : false;
	var dom = document.getElementById && !document.all ? true : false;
	
	if (dom) {
	    return document.getElementById(nameStr);
	} else if (ie) {
	    return document.all[nameStr];
	} else if (ns4) {
	    return document.layers[nameStr];
	}
}

function openNewsArticle(newsID,newsHeadline){
    Shadowbox.open({
        player:     'iframe',
        title:      newsHeadline,
        content:    'news.cfm?newsID=' + newsID,
        height:     768,
        width:      1024
    });
}

function changeBackground(){
	
	if(getActiveStyleSheet() == 'grey'){
		setActiveStyleSheet('white');
	}else{
		setActiveStyleSheet('grey');
	}
}


function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
  
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

//var cookie = readCookie("style");
//var title = cookie ? cookie : getPreferredStyleSheet();
//setActiveStyleSheet(title);

function createXMLHTTPObject(){
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	 try {
	  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	  try {
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (E) {
	   xmlhttp = false;
	  }
	 }
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}

	return xmlhttp;
}

	function opacity(id, sStart, sEnd, tMs) {

		var speed = Math.round(tMs / 100);
		var timer = 0;

		if(sStart > sEnd) {
			for(i = sStart; i >= sEnd; i--) {
				setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
				timer++;
			}
		} else if(sStart < sEnd) {
			for(i = sStart; i <= sEnd; i++)
				{
				setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
				timer++;
			}
		}
		

	}

	function shiftOpacity(id, tMs) {
		
		if(getObject(id).style.opacity == 0) {
			
			opacity(id, 0, 100, tMs);
		} else {
			opacity(id, 100, 0, tMs);
		}

	}

	function shiftOpacityWithValue(id, tMs,iVal) {
		if(getObject(id).style.opacity == 0) {
			opacity(id, 0, iVal, tMs);
		} else {
			opacity(id, iVal, 0, tMs);
		}
	}

	function fadeIn(sID){
		
		var object = getObject(sID);
		object.style.opacity = 0;
		object.style.MozOpacity = 0;
		object.style.KhtmlOpacity = 0;
		object.style.filter = "alpha(opacity=0)";
		shiftOpacity(sID,700);
	}

	function fadeInWithValue(sID,iVal){
			var object = getObject(sID);
			object.style.opacity = 0;
			object.style.MozOpacity = 0;
			object.style.KhtmlOpacity = 0;
			object.style.filter = "alpha(opacity=0)";
			shiftOpacity(sID,iVal);
	}

	function changeOpac(iOpac, sId) {
		var object = getObject(sId).style;
		object.opacity = (iOpac/ 100);
		object.MozOpacity = (iOpac / 100);
		object.KhtmlOpacity = (iOpac / 100);
		object.filter = "alpha(opacity=" + iOpac + ")";
	}
	var globalDIV = 'middleholder';
	function gotoPage(sPage){
		showWait();
		var threecol = false;
		if(getColsOfTargetPage(sPage)<cols||getColsOfTargetPage(sPage)>cols){
			globalDIV = 'center';
			threecol = true;
		}else{
			globalDIV = 'middleholder';	
			threecol = false;
		}
			
		if(sPage.indexOf('?') > 0){
			var url = sPage;
		}else{
			var url = sPage + '.cfm';
		}
		var tMs	   = 300; 
		opacity(globalDIV, 100, 0, tMs);
		setTimeout("var myRequest = new ajaxObject('" + url + "', feedCenter);myRequest.update('threecol=' + " + threecol +");",500)

	}
	
	function gotoArtist(artistID){
		showWait();
		var threecol = false;
		if(getColsOfTargetPage('artist')<cols||getColsOfTargetPage('artist')>cols){
			globalDIV = 'center';
			threecol = true;
		}else{
			globalDIV = 'middleholder';	
			threecol = false;
		}
		var url="artist.cfm";
		var tMs	   = 300; 
		opacity(globalDIV, 100, 0, tMs);
		setTimeout("var myRequest = new ajaxObject('" + url + "', feedArtist);myRequest.update('artistid=' + " + artistID +" + '&threecol=' + " + threecol + ");",500)
	}
	
	function ajaxObject(url, callbackFunction) {
	  var that=this;      
	  this.updating = false;
	  this.abort = function() {
	    if (that.updating) {
	      that.updating=false;
	      that.AJAX.abort();
	      that.AJAX=null;
	    }
	  }
	  this.update = function(passData,postMethod) { 
	    if (that.updating) { return false; }
	    that.AJAX = null;                          
	    if (window.XMLHttpRequest) {               
	      that.AJAX=createXMLHTTPObject();
	    } else {                                  
	      that.AJAX=createXMLHTTPObject();
	    }                                             
	    if (that.AJAX==null) {                             
	      return false;                               
	    } else {
	      that.AJAX.onreadystatechange = function() {  
	        if (that.AJAX.readyState==4) {             
	          that.updating=false;                
	          that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);        
	          that.AJAX=null;                                         
	        }                                                      
	      }                                                        
	      that.updating = new Date();                              
	      if (/post/i.test(postMethod)) {
	        var uri=urlCall+'?'+that.updating.getTime();
	        that.AJAX.open("POST", uri, true);
	        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	        that.AJAX.setRequestHeader("Content-Length", passData.length);
	        that.AJAX.send(passData);
	      } else {
	        var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime()); 
	        that.AJAX.open("GET", uri, true);                             
	        that.AJAX.send(null);                                         
	      }              
	      return true;                                             
	    }                                                                           
	  }
	  var urlCall = url;        
	  this.callback = callbackFunction || function () { };
}

var cols=2;

function getColsOfTargetPage(sPage){
	var result;
	switch(sPage){
		case 'artists' :
			result = 2;
			break;
		case 'releases' :
			result = 2;
			break;
		case 'artist' :
			result = 3;
			break; 
		case 'release' :
			result = 3;
			break;
		case 'shop' :
			result = 2;
			break;
	}
	//alert('result = ' + result + ' cols = ' + cols);
	return result;
}

function feedCenter(responseText, responseStatus) {
  if (responseStatus==200||responseStatus==0) {
	var aResponse = responseText.split('|+|');
  	cols = aResponse[1];
	var tMs	   = 300;
   	var oMid   = getObject(globalDIV);
   	oMid.innerHTML = aResponse[0];
   	setTimeout("opacity(globalDIV, 0, 100," + tMs +");",tMs)
	var sideheight = parseInt(aResponse[2]) + 2;
	getObject('container').style.height = parseInt(aResponse[2]).toString() + 'px';
	getObject('sideright').style.height = sideheight + 'px';
	hideWait();
  } else {
    alert('buuuurp! code hiccup. why not try again?');
  }
}

function feedArtist(responseText, responseStatus) {
  if (responseStatus==200||responseStatus==0) {
	hideWait();
  	var aResponse = responseText.split('|+|');
  	cols = aResponse[1];
	var tMs	   = 500;
   	var oMid   = getObject(globalDIV);
   	oMid.innerHTML = aResponse[0];
   	setTimeout("opacity(globalDIV, 0, 100," + tMs +");",tMs)
	if(globalDIV == "center"){
		setTimeout("setArtistsScroller();",tMs);
	}
	var sideheight = parseInt(aResponse[2]) + 2;
	getObject('container').style.height = parseInt(aResponse[2]).toString() + 'px';
	getObject('sideright').style.height = sideheight + 'px';
	
  } else {
    alert('buuuurp! code hiccup. why not try again?');
  }
}

function fadeBackground(theme){
	var oBrowser = new xBrowser();
	
	var oOverlay = getObject('overlay');
	var oLoad = getObject('loading');
	
	if(getActiveStyleSheet() != theme){
		oOverlay.style.display 	= 'block';
		oOverlay.style.opacity 	= '0.7';

		oOverlay.style.height	= (oBrowser.getCanvasHeight() ) + 'px';
		oOverlay.style.width	= (oBrowser.getCanvasWidth() ) + 'px';
		oLoad.style.marginTop = ((oBrowser.getCanvasHeight() -20)/2) -10 + 'px';
		oLoad.style.marginLeft    = ((oBrowser.getCanvasWidth() -40)/2) -20 + 'px';

		setTimeout("opacity('overlay', 70, 0, 500)",1500);
		setTimeout("getObject('overlay').style.display = 'none';",2000);
	}
	if(theme == 'theme2' && getActiveStyleSheet() != 'theme2'){
	
		soak.colours = [{"fadeto":"#B33600"},{"fadeto":"#FF8A00"},{"fadeto":"#FFC887"},{"fadeto":"#CC5400"},{"fadeto":"#D1560D"}];
		soak.basecolour = {"fadeto":"#D1560D"};
		soak.gotocolour = {"fadeto":"#B31E00"};
		soak.number = 5;
		soak.setDelay();
		
		colman.setACO();
		togglePanel(true,'fadeBackground...');
		setTimeout("setActiveStyleSheet('theme2');",100);
		//setTimeout("performTransition2({'fadeto':'#D1560D'})",1000);
		
		mySlide.toggle();
		mySlide2.toggle();
	}else if(theme == 'theme1' && getActiveStyleSheet() !='theme1'){
		
		
		setTimeout("setActiveStyleSheet('theme1');",100);
		soak.colours = [{"fadeto":"#49192B"},{"fadeto":"#8E3557"},{"fadeto":"#83815B"},{"fadeto":"#ACCF4F"},{"fadeto":"#F7F2B1"},{"fadeto":"#959DB0"}],
		soak.basecolour = {"fadeto":"#959DB0"};
		soak.gotocolour = {"fadeto":"#83815B"},
		soak.number=6;
		soak.setDelay();
		
		colman.setACO();
		togglePanel(true,'fadeBackground');
		mySlide.toggle();
		mySlide2.toggle();
	}else if(theme == 'theme3' && getActiveStyleSheet() != 'theme3'){
		
		setTimeout("setActiveStyleSheet('theme3');",100);
		soak.colours = [{"fadeto":"#ACCF4F"},{"fadeto":"#49192B"},{"fadeto":"#83815B"},{"fadeto":"#ACCF4F"},{"fadeto":"#F7F2B1"},{"fadeto":"#959DB0"}],
		soak.basecolour = {"fadeto":"#7F8BA1"};
		soak.gotocolour = {"fadeto":"#CC5400"},
		soak.number=6;
		soak.setDelay();
		colman.setACO();
		togglePanel(true,'fadeBackground');
		mySlide.toggle();
		mySlide2.toggle();
	}
}

function togglePanel(colorFadeActive, calledfrom){
	window.scroll(0,0);
	getObject('controlpanel').style.visibility = 'visible';
	/*soak.debugFunction('togglePanel',1);
	soak.debugEvent('*event[TOGGLE PANEL CALLED:::: call from - ' + calledfrom + ']*');*/
	
	var oBrowser = new xBrowser();
	/*alert(oBrowser.getCanvasWidth());
	var left = (((oBrowser.getCanvasWidth()-800)/2) -9);*/
	//getObject('innerpanel').style.left = parseInt(left) + 'px';
	//getObject('controlpanel').style.left = parseInt(left) + 'px';

	if(getObject('stucklinks').style.display == 'none'){
		
		
		setTimeout("getObject('stucklinks2').style.display = 'none';",450);
		setTimeout("getObject('stucklinks').style.display = 'block';",450);
			
		//		if((colman.activeco.cc1start||colman.activeco.cc2start)||(colman.activeco.cc1end&&colman.activeco.cc2end)){
//					colman.activeco.isGo 		= true;
//					colman.activeco.isTrue 	= true;
//				};
//
//				if(!colorFadeActive){
//					if(soak.override){	
//						setTimeout("quickFade(soak.basecolour)",1500);
//					}
//					colman.activeco.triggerCycle();
//					setTimeout("soak.debugFunction('togglePanel',0);soak.determineCC();if(!colman.activeco.cc1start&&!colman.activeco.cc2start){colman.activeco.colourCycle('bottom');}",600);
//				}else{
//					soak.debugVar('colorFadeActive = ' + colorFadeActive);
//					var isccactive = 'no';
//					if((colman.oldco.cc1start||colman.oldco.cc2start||colman.oldco.prime||colman.activeco.cc1start||colman.activeco.cc1start||colman.activeco.prime)&&(!soak.override)){
//						soak.override=true;
//						colman.activeco.isGo = false;
//						isccactive = 'yes';
//					}
//				
//					setTimeout("soak.debugFunction('togglePanel',0);if('" + isccactive +"'=='yes'){soak.override=false;colman.activeco.isGo = true;colman.activeco.primeCycle();};colman.activeco.triggerCycle();colman.activeco.colourCycle('verybottom');",5000);
//					if(soak.override){				
//						setTimeout("quickFade(soak.basecolour); ",1500);
//					}				
//				}
			}else{
				
				getObject('stucklinks2').style.display = 'block';
				getObject('stucklinks').style.display = 'none';
				//soak.debugFunction('togglePanel',0);
//				fx.stop();
		}
}

function protect(){
	soak.protect = true;
	getObject('theme1').style.opacity = 0.5;
	getObject('theme2').style.opacity = 0.5;
	getObject('theme3').style.opacity = 0.5;
	setTimeout("unprotect();",soak.protectdur);	
}

function unprotect(){
	soak.protect = false;
	getObject('theme1').style.opacity = 1;
	getObject('theme2').style.opacity = 1;
	getObject('theme3').style.opacity = 1;
}

function repospanel(){
	var oBrowser = new xBrowser();
	var left = (((oBrowser.getCanvasWidth()-800)/2) -9);
	transfx.start({'left': parseInt(left),
								'top':0
	});
	transfx2.start({'left': parseInt(left),
						'top':0
	});
}

function getElementSize(Elem) {
		var elem = getObject(Elem);
		var xPos = elem.offsetHeight;
		var xWid = elem.offsetWidth;
		return {elemheight:xPos, elemwidth:xWid};
}

function getElementPosition(elemID){
	var offsetTrail = document.getElementById(elemID);
	var offsetLeft = 0;
	var offsetTop = 0;
	while (offsetTrail){
		offsetLeft += offsetTrail.offsetLeft;
		offsetTop += offsetTrail.offsetTop;
		offsetTrail = offsetTrail.offsetParent;
	}
	if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined'){
		offsetLeft += document.body.leftMargin;
		offsetTop += document.body.topMargin;
	}
	return {left:offsetLeft,top:offsetTop};
}

function RGBtoHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B)}
function toHex(N) {
 if (N==null) return "00";
 N=parseInt(N); if (N==0 || isNaN(N)) return "00";
 N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
 return "0123456789ABCDEF".charAt((N-N%16)/16)
      + "0123456789ABCDEF".charAt(N%16);
}

function getHexKey(){
	
	var sMainHex = getObject('main').style.background.toString();
	
	var aSort = getObject('main').style.background.split(',');
	var aSort2 = aSort[0].split('(');
		
	var hexkey = '#' + RGBtoHex(aSort2[1],aSort[1],aSort[2].substring(0,2));
		
	return hexkey;

}

function d2h(d) {return d.toString(16);}
function h2d(h) {return parseInt(h,16);}

// Performs our colour morph transitions.
var performTransition = function(colour){
		
		var lcdec = h2d(soak.lastcolour.replace('#',''));
		var ccdec = h2d(getHexKey().replace('#',''));
		soak.debugEvent('SYNCH REPORT LASTCOL = ' + lcdec + ' hexkey -  ' + ccdec + ' DIFF = ' + (lcdec - ccdec));

		if(colman.activeco.isGo && colman.activeco.isTrue && !soak.override){
			if((lcdec - ccdec) > soak.ccthresh && soak.lastcolour!='N'){
				soak.debugVar(' OUT OF SYNCH LASTCOL = ' + soak.lastcolour + ' hexkey -  ' + getHexKey());
				soak.debugVar(' OUT OF SYNCH LASTCOL = ' + lcdec + ' hexkey -  ' + ccdec + ' DIFF = ' + (lcdec - ccdec));
				soak.testForBadConfig();
				
			}else{
				soak.colchangeOk();
			}
			soak.debugVar(colour.fadeto.toString());
			fx.start({'background-color': colour.fadeto});
			soak.lastcolour = colour.fadeto;
			soak.debugVar('error buffer level : ' +soak.cccount);
			//fadeColor('main',colour.fadeto,colour.end,colour.increment,colour.delay,'b');
		}
}

function cccheck(){
		if(soak.disablecc){
			alert('this option is disabled because it was determined your browser was having issues with the colour cycles. it will now renable, should you wish to try again our friend...');
			document.forms['frmControl'].colourcheck.disabled = false;
			soak.disablecc = false;
			getObject('colourpicker').style.textDecoration = 'none';
		getObject('colourpicker').style.cursor = 'default'; 		
		}	
}

function endColChains(){
	fx.stop();
	soak.override = true;
	colman.obj1.isGo = false;
	colman.obj2.isGo = false;
	colman.obj1.isTrue = false;
	colman.obj2.isTrue = false;
	setTimeout("quickFade(soak.basecolour);",5000);
	document.forms['frmControl'].colourcheck.checked 	= false;
	document.forms['frmControl'].colourcheck.disabled = true;	

	getObject('colourpicker').style.textDecoration = 'underline';
	getObject('colourpicker').style.cursor = 'pointer'; 
	setTimeout("getObject('main').style.background = soak.basecolour.fadeto;",10000);
}

// Performs our colour morph transitions.
var performTransition2 = function(colour){
	soak.debugVar(colour.fadeto.toString());
	fx.start({'background-color': colour.fadeto});
	soak.lastcolour = colour.fadeto;
}

// Performs our colour morph transitions.
var quickFade = function(colour){
	soak.debugVar('QF - ' + colour.fadeto.toString());
	qf.start({'background-color': colour.fadeto});
	soak.lastcolour = colour.fadeto;
}

// Our onLoad function. Sorts out any cached form variables, and sets a few random things up.
function setUpPage(){
	mySlide.hide();
	mySlide2.hide();
	//setCorners();
	// Fix the z-indexes that the curvyCorners has altered behaviour of.
	//getObject('container').style.zIndex = 0;
	getObject('innerpanel').style.zIndex = 3;
	 
	document.forms['frmInterupt'].hasStarted.value = 'false';
	document.forms['frmDebug'].output2.value = '';
	document.forms['frmControl'].colourcheck.checked = false;
	document.forms['frmControl'].debugcheck.checked = false;
	soak.clearDebugs();
//	getObject('theme1').style.zIndex = '20';
//	getObject('theme2').style.zIndex = '20';
	var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
  if(getActiveStyleSheet()=='theme2'){
  	soak.basecolour = {"fadeto":"#D1560D"};
	}else if(getActiveStyleSheet()=='theme3'){
		soak.basecolour = {"fadeto":"#7F8BA1"};
	}
	getObject('main').style.background = soak.basecolour.fadeto;
	document.forms['frmControl'].colourcheck.disabled = false;
}

function setCorners(){
	
    	settings 		={
          tl: { radius: 0 },
          tr: { radius: 0},
          bl: { radius: 0 },
          br: { radius: 0},
          antiAlias: false,
          autoPad: false,
          validTags: ["div"]
      }
  
      this.myBoxObject =  new curvyCorners(settings, "theme1");
      this.myBoxObject2 = new curvyCorners(settings, "theme2");
      this.myBoxObject3 = new curvyCorners(settings, "theme3");
      this.myBoxObject4 = new curvyCorners(settings, "container");
      this.myBoxObject.applyCornersToAll();
      this.myBoxObject2.applyCornersToAll();
      this.myBoxObject3.applyCornersToAll();
	  this.myBoxObject4.applyCornersToAll();
}
var startStop = 'stop';
var currentArtistID = 1; 
var currentReleaseID = 1;
function showInfo(artistID){
	
	if(startStop=='stop'&&currentArtistID!=artistID){
		startStop = 'start';
		showWait();
		currentArtistID=artistID;
		opacity('loadinfo', 0, 70,350);
		var myRequest = new ajaxObject('showinfo.cfm', feedInfo);
		myRequest.update("artistID=" + artistID);
	}
}
function showRelInfo(releaseID){
	
	if(startStop=='stop'&&currentReleaseID!=releaseID){
		startStop = 'start';
		showWait();
		currentReleaseID=releaseID;
		opacity('loadinfo', 0, 70,350);
		var myRequest = new ajaxObject('showrelinfo.cfm', feedInfo);
		myRequest.update("releaseID=" + releaseID);
	}
}

function showRelInfoForBuy(releaseID){
	
	if(startStop=='stop'&&currentReleaseID!=releaseID){
		startStop = 'start';
		showWait();
		currentReleaseID=releaseID;
		opacity('loadinfo', 0, 70,350);
		var myRequest = new ajaxObject('showrelinfoshop.cfm', feedInfo);
		myRequest.update("releaseID=" + releaseID);
	}
}

var globalResponse = '';
function feedInfo(responseText, responseStatus){
	
	if(responseStatus=='200'){
		globalResponse = responseText;
		setTimeout("getObject('artistInfo').innerHTML = globalResponse",600);
		setTimeout("opacity('loadinfo', 70, 0,350);startStop='stop';hideWait();",600);
		
	}
}

function setArtistsScroller(){
		var scroll2 = new Scroller('artistscroll', {area: 100, velocity: 0.2});
		// Mousemove
		$('artistscroll').addEvent('mouseover', scroll2.start.bind(scroll2));
		$('artistscroll').addEvent('mouseout', scroll2.stop.bind(scroll2));
}

function gotoRelease(releaseID,artistID){
	showWait();		
	var threecol = false;
	if(getColsOfTargetPage('release')<cols||getColsOfTargetPage('release')>cols){
		globalDIV = 'center';
		threecol = true;
	}else{
		globalDIV = 'middleholder';	
		threecol = false;
	}
	var url="release.cfm";
	var tMs	   = 300; 
	opacity(globalDIV, 100, 0, tMs);
	setTimeout("var myRequest = new ajaxObject('" + url + "', feedRelease);myRequest.update('releaseID=' + " + releaseID +" + '&artistID=' + " + artistID + " + '&threecol=' + " + threecol + ");",500)
}

function feedRelease(responseText, responseStatus) {
  if (responseStatus==200||responseStatus==0) {
	hideWait();
  	var aResponse = responseText.split('|+|');
  	cols = aResponse[1];
	var tMs	   = 500;
   	var oMid   = getObject(globalDIV);
   	oMid.innerHTML = aResponse[0];
   	setTimeout("opacity(globalDIV, 0, 100," + tMs +");",tMs)
	setTimeout("setArtistsScroller();",tMs);
	var sideheight = parseInt(aResponse[2]) + 2;
	getObject('container').style.height = parseInt(aResponse[2]).toString() + 'px';
	getObject('sideright').style.height = sideheight + 'px';
	
  } else {
    alert('buuuurp! code hiccup. why not try again?');
  }
}

function setPlayer(sID,iMode){
	//if(iMode==1)Release Mode	
	var myRequest = new ajaxObject('getplayer.cfm');
	myRequest.update('sID=' + sID + '&imode=' + iMode,'GET');
	myRequest.callback = function(responseText,responseStatus){
			if(responseStatus=='200'){
				getObject('player').innerHTML = responseText;
				mySlide.toggle();
				mySlide2.toggle();
				togglePanel(false,'stuck');
				getObject('overlay').style.display = 'block';
			}else{
				alert('i appear to have gone a bit wonky... what a wonkey horse i am.');	
			}	
	}	
}

function openShadowBoxLink(page, width, height, title) {
	
	var oPopup = new Element("a", {"href": page,"title":title});
	
	Shadowbox.setup(oPopup, {
		"displayNav": false,
		"width":        width + 'px',
		"height":       height + 'px'
	});
	Shadowbox.open(oPopup);
}


function addToBasket(releaseID,releaseFormat){
	
//	alert("releaseID = " + releaseID + "releaseFormat = " + releaseFormat);
	var ajaxAdd = new ajaxObject('addtobasket.cfm');
	ajaxAdd.callback = function(responseText,responseStatus){
		if(responseStatus==200){
			updateBasket();
			setTimeout("getObject('overlay').style.display = 'block';",500);
			Shadowbox.close();
			mySlide.toggle();
			mySlide2.toggle();
			togglePanel(false,'stuck');
			
			
			//alert(getObject('overlay').style.display);
		}
	}
	ajaxAdd.update('releaseID=' + releaseID + '&formatID=' + releaseFormat)
}

function updateBasket(){
	showWait();
	var updateAjax = new ajaxObject('getbasket.cfm',feedBasket);	
	updateAjax.update();
}

function feedBasket(responseText,responseStatus){
	if(responseStatus=='200'){
		hideWait();
		var aResponse = responseText.split('|');
		getObject('innercart').innerHTML = aResponse[0];
		getObject('totalprice').innerHTML = aResponse[1];
		
	}
}

function adjustQty(releaseID,releaseFormat,sPlusMinus){

	var oQty = getObject('qty_' + releaseID + '_' + releaseFormat);
	var qty = oQty.value;
	var newqty;
	var bDoUpdate = true;
	if(sPlusMinus=='-'){
		if(qty>1){
			newqty = (qty - 1);
		}else{
			removeFromBasket(releaseID,releaseFormat);
			bDoUpdate = false;
		}
	}else{
		newqty = parseInt(qty) + 1;
	}
	var ajaxQty = new ajaxObject('addtobasket.cfm');
	ajaxQty.callback=function(responseText,responseStatus){
		if(responseStatus==200){
			updateBasket();
		}
	}
	if(bDoUpdate){
		ajaxQty.update('releaseID=' + releaseID + '&formatID=' + releaseFormat + '&qty=' + newqty);
	}
}

function removeFromBasket(releaseID,releaseFormat){
	var oQty = getObject('qty_' + releaseID + '_' + releaseFormat);
	var qty = oQty.value;
	var ajaxRemove = new ajaxObject('addtobasket.cfm');
	ajaxRemove.callback=function(responseText,responseStatus){
		if(responseStatus==200){
			updateBasket();
		}
	}
	ajaxRemove.update('releaseID=' + releaseID + '&formatID=' + releaseFormat + '&qty=' + qty + '&remove=true');
}

function emptyBasket(){
	var ajaxEmpty =  new ajaxObject('resetbasket.cfm');
	ajaxEmpty.callback = function(responseText,responseStatus){
		if(responseStatus==200){
			updateBasket();
		}
	}
	ajaxEmpty.update();
}

function showEvent(eventID,eventTitle){
	openShadowBoxLink('event.cfm?eventID=' + eventID,500,250,eventTitle);
}

function checkout(){
	openShadowBoxLink('checkout.cfm',1000,1000,'Checkout - FREE WORLDWIDE SHIPPING!');
}

function fixScroll(){
	try{
			getObject('datesinner_mcontentwrapper').style.zIndex = 1;
			getObject('news_mcontentwrapper').style.zIndex = 1;
			getObject('news_vscrollerbar').style.zIndex = 1;
			getObject('datesinner_vscrollerbar').style.zIndex = 1;
	}catch(e){
			setTimeout("fixScroll();",200);
	}
}

var waitStartStop = 'stop';

function showWait(){
	getObject('ajaxwait').style.display = 'block';
}
function hideWait(){
	getObject('ajaxwait').style.display = 'none';
}