

// Preload ajax spinner
//if (document.images){
//	preload_image = new Image(16,16);
//	preload_image.src="http://photojojo.com/images/loader.gif";
//};


/* --------------------------------------------------
ajaxMagic
---------------------------------------------------
processUrl = the name of the php page which is doing processing
params     = an array of query strings to to be sent to the php page
	ex. params array may look like this:
	params[0] = "action=add";
	params[1] = "note=butterscotch";
	params[2] = "tags=dogs,cats,birds";
resultsTargetId = where the results should be put...div
*/


 
function ajaxMagic(processUrl,params,resultsTargetId,loaderDiv,doFade,doLoad,onCompleteFunction){	
 	

  	 
	// display loading graphic only of doLoad is set to "doLoad"
	// If a place for the loader is given, put it there
	if(doLoad == "doLoad") {		
		if(loaderDiv) {
			//document.getElementById(loaderDiv).style.display  = "block";
			document.getElementById(loaderDiv).innerHTML      = "<img src='/images/loader.gif' align='top'>";
		}
		// Otherwise put the loader in the results div
		else {
			document.getElementById(resultsTargetId).innerHTML = "<img src='/images/loader.gif' align='top'><span class='logoGreen'><\/span>";
		}
	}
	
	// START AJAX MAGIC
	// try to initiate xmlhttprequest
	var xmlHttp;
	try {
	  xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
	}
	catch (e){
	  // Internet Explorer
		try { 
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
	 	catch (e){
			try{ 
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){
		  		alert("Your browser does not support AJAX!");
		  		return false;
			}
		}
	 }
	  
	  

	 	
	
	// SEND INTO AJAX
	// grab info we're going to send to be processed
	var queryStrings = "";
	
	for(var i = 0; i < params.length; i++) {
		queryStrings += params[i] + "&";
	}	
	// remove the & off the end
	var queryStrings = queryStrings.substring(0,queryStrings.length-1);
	
	// Generate a random number to add as a qs to the url to make sure the results aren't cached
	var currentTime  = new Date();	
	var randomNumber = currentTime.getSeconds() + Math.floor(Math.random()*11);
	
	processUrl = processUrl + "?" + queryStrings + "&r=" + randomNumber;

	xmlHttp.open("GET",processUrl,true);
	xmlHttp.send(null);

	

	// GET OUT FROM AJAX
	 xmlHttp.onreadystatechange = function(){
		if(xmlHttp.readyState==4)
		  {
		  // this is what we get back from the process
		  response = xmlHttp.responseText; 
		 
	  	  // throw graph into div
	  	  if(document.getElementById(resultsTargetId)) {
	  	  	document.getElementById(resultsTargetId).innerHTML = response;
	  	  }
	  	  	  
	  	  // turn off loading graphic
	  	  if(loaderDiv && doLoad == "doLoad") {
	  	 	 document.getElementById(loaderDiv).innerHTML = "";
	  	 	// document.getElementById(loaderDiv).style.display  = "none";
	  	  }
	  	  
	  	  if(doFade == "doFade") {
	  	  	fade(resultsTargetId);
	  	  }
	    
		
		  // Do a post function if one was passed
		  if(onCompleteFunction) {
		  	onCompleteFunction();
		  	
		  }
		  
	
	  	 	
	  	 
	  	  // Finally return the stuff that was echoed in the ajax page - this isn't really neccesary is it?
	  	  return response;
	  	 
	  	  
	  	  
		  }
	 }
	
	
	
	    
} // end ajaxMagic();





/* --------------------------------------------------
FADE
---------------------------------------------------*/
var FADE_RED = 255;
var FADE_GREEN = 253;
var FADE_BLUE = 55;

// THE THREE VARIABLES BELOW DEFINE THE MOVEMENT OF THE FADE:
//
// 		FADE_HOLD 	= Time (in milliseconds) that your base color lasts
//					  before the fade begins.
//		FADE_SPEED 	= Time (in milliseconds) that each color of the fade lasts
//		FADE_STEP	= Increase in the RGB value per color change

var FADE_HOLD = 500;
var FADE_SPEED = 100;
var FADE_STEP = 25;




// FOR BASIC FUNCTIONALITY, LEAVE EVERYTHING BELOW THIS POINT AS IS.
var fade_r = FADE_RED
var fade_g = FADE_GREEN
var fade_b = FADE_BLUE

function fade(container) {
	if (fade_r == 0) fade_r == FADE_RED;
	if (fade_g == 0) fade_g == FADE_GREEN;
	if (fade_b == 0) fade_b == FADE_BLUE;
	
	if (fade_r + fade_g + fade_b != (255 * 3))
	{	
		document.getElementById(container).style.background = "rgb(" + fade_r + "," + fade_g + "," + fade_b + ")";
		
		if ((fade_r == FADE_RED) && (fade_g == FADE_GREEN) && (fade_b == FADE_BLUE))
		{
			setTimeout('fade("' + container + '")', FADE_HOLD)
		}
		else
		{	
			setTimeout('fade("' + container + '")', FADE_SPEED)
		}
		
		if ((fade_r >= 255) || (fade_r + FADE_STEP > 255)) fade_r = 255; else fade_r = fade_r + FADE_STEP;
		if ((fade_g >= 255) || (fade_g + FADE_STEP > 255)) fade_g = 255; else fade_g = fade_g + FADE_STEP;
		if ((fade_b >= 255) || (fade_b + FADE_STEP > 255)) fade_b  = 255; else fade_b = fade_b + FADE_STEP;
	}
	else
	{	
		document.getElementById(container).style.background = "rgb(" + fade_r + "," + fade_g + "," + fade_b + ")";
		fade_r = FADE_RED;
		fade_g = FADE_GREEN;
		fade_b = FADE_BLUE;
	}
}

