/**************************************************************************************************
* Goldfish Spinner JavaScript (works only with jQuery)
* This javascript is created by Goldfish from Fishbeam Software: http://www.fishbeam.com
* All rights reserved. © 2008 Yves Pellot
**************************************************************************************************/

//Shows the spinner
function showSpinner(callBack, inlineDiv) {
	var spinnerInlineDiv;
	if(inlineDiv)
		spinnerInlineDiv=$(inlineDiv);
	else
		spinnerInlineDiv=$("body");
	
	//Add spinner code
	$(spinnerInlineDiv).append('<div id="spinner"><div id="spinnerContainer"><img src="'+pathToSpinner+'spinner.gif" id="spinnerPic" alt="" /></div></div>');
	
	//Set spinner position
	if(inlineDiv) {
		$("#spinner").css({left: "50%", top: "50%"});
	}
	else {
		var pageSizes=getPageSize();
  		var pageScroll=getPageScroll();
		$("#spinner").css({left: (pageScroll[0]+(pageSizes[2]-48)/2+24)+"px", top: (pageScroll[1]+(pageSizes[3]-48)/2+24)+"px"});
	}
	
	//Shows the spnner
	$("#spinnerContainer").fadeIn("slow", callBack);
}

//Hides the spinner and removes spinner code
function hideSpinner(callBack) {
	$("#spinner").fadeOut("slow", function(){
		$("#spinner").remove();
		if(callBack!=undefined)
			callBack();
	});
}

/**
/ THIRD FUNCTION
* getPageSize() by quirksmode.com
*
* @return Array Return an array with page width, height and window width, height
*/
function getPageSize() {
  var xScroll, yScroll;
  if (window.innerHeight && window.scrollMaxY) {	
    xScroll = window.innerWidth + window.scrollMaxX;
    yScroll = window.innerHeight + window.scrollMaxY;
  } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
    xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
  } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
    xScroll = document.body.offsetWidth;
    yScroll = document.body.offsetHeight;
  }
  var windowWidth, windowHeight;
  if (self.innerHeight) {	// all except Explorer
    if(document.documentElement.clientWidth){
      windowWidth = document.documentElement.clientWidth; 
    } else {
      windowWidth = self.innerWidth;
    }
    windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  }	
  // for small pages with total height less then height of the viewport
  if(yScroll < windowHeight){
    pageHeight = windowHeight;
  } else { 
    pageHeight = yScroll;
  }
  // for small pages with total width less then width of the viewport
  if(xScroll < windowWidth){	
    pageWidth = xScroll;		
  } else {
    pageWidth = windowWidth;
  }
  arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
  return arrayPageSize;
}
/**
/ THIRD FUNCTION
* getPageScroll() by quirksmode.com
*
* @return Array Return an array with x,y page scroll values.
*/
function getPageScroll() {
  var xScroll, yScroll;
  if (self.pageYOffset) {
    yScroll = self.pageYOffset;
    xScroll = self.pageXOffset;
  } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
    yScroll = document.documentElement.scrollTop;
    xScroll = document.documentElement.scrollLeft;
  } else if (document.body) {// all other Explorers
    yScroll = document.body.scrollTop;
    xScroll = document.body.scrollLeft;	
  }
  arrayPageScroll = new Array(xScroll,yScroll) 
  return arrayPageScroll;
}
