//--------->dynamic drop down menu vars//--------->//--------->
var dd_galleries = null;
var dd_albums = null;
var basepath = "http://media.ferrarichallenge.com/admin";
//--------->JS TO FLASH & VISA VERSA//--------->//--------->
var mainmovie = null;

//init
function flashjsInit()
{

	mainmovie = swfobject.getObjectById("image_flash_content"); 
	//$("dd_albums").onchange = loadNewXML;
	mediaInit();
}


//called from the swf back to js as confirmation
function varsFromFlash(ob)
{
	alert(ob.response)
}
//loaded
function confirmReady()
{
	mainmovie.sendVarsFromJS('ok');
}

//where all the magic happens
function loadNewXML(e)
{
	var ev = e || window.event;
	var tg = ev.target || ev.srcElement
	
	//get the value of the dd selected
	var xmlpath = tg.value;
	//make an object to pass to flash- Flash will parse this in the classes and take what it wants
	var ob = new Object()
	ob.xmlpath = xmlpath
	ob.xmltype = "Director";
	ob.album = tg.value;
	
	//ok, pass the object to flash
	var mainmovie = getFlashMovieObject();
	mainmovie.sendVarsFromJS(ob);
}

//define the flash movie on the page
function getFlashMovieObject()
{ 
	var movieName = "image_flash_content";
	if(document.embeds[movieName])
		return document.embeds[movieName];
	if(window.document[movieName])
		return window.document[movieName];
	if(window[movieName])
		return window[movieName];
	if(document[movieName])
		return document[movieName];
	return null;
}

//--------->END JS TO FLASH//--------->//--------->//--------->

//--------->START DROP DOWN MENU CODE//--------->//--------->
function mediaInit()
{
	setup();
}
//define the gallery dd, and the album (unpopulated at load time) dd
function setup()
{
	dd_galleries = $("dd_galleries");
	dd_galleries.onchange = ajaxCall;
	dd_albums = $("dd_albums");
	
	//dd_albums.style.display="none";
}

function creatDDAlbums()
{
	var fi= $("trackresults");
	var lbl = document.createElement("LABEL");
	lbl.id="dd_label";
	lbl.setAttribute("for","dd_albums");
	lbl.innerHTML = "Track: ";
	
	dd_albums = document.createElement("SELECT");
	dd_albums.name ="dd_albums";
	fi.appendChild(lbl)	
	fi.appendChild(dd_albums)
}
//here is the AJAX, and what to do in certain states
//need to add a spinning loading dealio
function ajaxCall(e)
{	
showLoader();
	var ev = e || window.event;
	var tg = ev.target || ev.srcElement;
	var value = tg.value;
	var url = "../../media/ajaxGetAlbums/"+value
	//var url = "../media/ajaxGetAlbums/"+value
	new Ajax.Request(url, 
	{
		method: 'get',
		
		onSuccess: function(transport) 
		{
			if(!dd_albums) creatDDAlbums()
			updateAlbumSelect(transport)
		},
		onFailure : function(transport)
		{
			alert('we have a failure');
		}
	});

}
function showLoader()
{
	var limage = $("loaderImage");
	limage.className=""
	
	if(dd_albums)dd_albums.style.display="none";
}
//ok, we have data, let's parse it
function updateAlbumSelect(data)
{
	var limage = $("loaderImage");
	limage.className="hide_div";
	
	parseXML(data.responseXML);
	
	dd_albums.style.display="";
}

//create option tags, populate, and assign 
function parseXML(xml)
{

	var albums = xml.getElementsByTagName("album");
	dd_albums.innerHTML = ""
	var options ="";
	for (var b=0;b<albums.length;b++)
	{
		var each_a = albums[b];
		var a_name = getNode(each_a,'name');

		var a_id = getNode(each_a,'id');
		
		//oh IE...i curse you! Why must you always do things your own way?
		if(document.all)
		{
			dd_albums.options[b] = new Option(a_name,basepath+"/images.php?album="+a_id);
		}else
		{
			options += "<option value='"+basepath+"/images.php?album="+a_id+"'>"+a_name+"</option>";
			/*
			 * 
			 * var option = document.createElement("OPTION");
			option.value = basepath+"/images.php?album="+a_id;
			option.innerHTML = a_name;
			dd_albums.appendChild(option) 
			
			 */
			dd_albums.innerHTML = options
		}
		
		
	}
	
}




//little function to do some leg work
function getNode(node,st)
{
	var n = node.getElementsByTagName(st)[0].firstChild.data;
	return n;
}

swfobject.addLoadEvent(flashjsInit)

//--------------------------DEBUGGING ONLY-------------------------->>
//delete after testing
function trace(m)
{
	var st = null;
	if(! document.getElementById('stat'))
	{
		st = document.createElement('div');
		st.id='stat';
		
var bd=document.body;
		   bd.appendChild(st)  ;
		   $(st).setStyle({
		   	position:"absolute",
			top:"0px",
			left:"20px",
			//height:"300px",
			width:"300px",
			border:"thin solid #ffffff"
		   })  

		   new Draggable (st)                                                 
	}else
	{
		st = document.getElementById("stat");
	}
	st.innerHTML += m+"<br>";
	document.onkeyup=clear;
}
