// taken from adobe livedocs
function getFlashMovie(movieName) {
     if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}

function loadPHP(phpURL, id) {
	new Ajax.Request(phpURL, {
		method: 'get',
		onSuccess: function(r) {
			if (r.responseText == "no_user_found") {
				window.location = "http://testbot.cs.northwestern.edu/karaokecallout/"
				$(id).innerHTML = "<p>You must be logged in to view this page. Redirecting to the home page.</p>";
			} else {
				$(id).innerHTML = r.responseText;
			}
		}});
}

function showAlert(s) { alert(s); }

function setUserInFlash(userID) {
	getFlashMovie("karaoke").setUserID(userID);
}

function setCalloutInFlash(calloutID) {
	getFlashMovie("karaoke").setCalloutID(calloutID);
}

function loadHeader(page, myBase) {
	new Ajax.Request(myBase + 'scripts/header.php', { 
					 method: 'get', 
					 parameters: {url: page,
					 			  base: myBase},
			  	 	 onSuccess: function(r) {
			  	 		$('header').innerHTML = r.responseText; 
	  	 				firstRun();
			  	 	 }
			  		 });
}

function queryString(parameter) { 
  var loc = location.search.substring(1, location.search.length);
  var param_value = false;
  var params = loc.split("&");
  for (i=0; i<params.length;i++) {
      param_name = params[i].substring(0,params[i].indexOf('='));
      if (param_name == parameter) {
          param_value = params[i].substring(params[i].indexOf('=')+1)
      }
  }
  if (param_value) {
      return param_value;
  }
  else {
      return false; //Here determine return if no parameter is found
  }
}

function setSongIfNeeded() {
	var songID = queryString("songID");
    if (songID) { 
   		//alert('setting song: ' + songID);
        getFlashMovie("karaoke").gotoSong(songID);
    }
}

function setCalloutIfNeeded() {
	var calloutID = queryString("calloutID");
	if (calloutID) {
		//alert('setting callout: ' + calloutID);
		setCalloutInFlash(calloutID);
	}
}
     

function loadXMLwithXSL(xmlUrl, xslUrl, dstId) {
    var dst = document.getElementById(dstId);
    //append new htmlfragment
    dst.appendChild(getHtmlFragment(xmlUrl, xslUrl));     
}

function getHtmlFragment(xmlUrl, xslUrl) {
    var xslStylesheet;
    var xsltProcessor = new XSLTProcessor();   

    //load the xml file
    var xmlSource = getResponseXml(xmlUrl).responseXML;

    //load the xsl file into the xslt Processor
    xslStylesheet = getResponseXml(xslUrl).responseXML;      
    xsltProcessor.importStylesheet(xslStylesheet);
    
    return xsltProcessor.transformToFragment(xmlSource, document); 
}

function getResponseXml(xmlUrl) {
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open("GET", xmlUrl, false);
    xmlHttp.send(null);
    return xmlHttp;   
}

var xmlhttp;
function loadXMLDoc(url, dstId) {
	xmlhttp=null;
	if (window.XMLHttpRequest) {
		// code for all new browsers
		xmlhttp=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// code for IE5 and IE6
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  	}
  	
  	if (xmlhttp!=null) {
  		xmlhttp.onreadystatechange = state_Change(dstId);
		xmlhttp.open("GET",url,false);
		xmlhttp.send(null);
		state_Change(dstId);
  	} else {
  		alert("Your browser does not support XMLHTTP.");
  	}
}

function state_Change(dstId) {
	if (xmlhttp.readyState==4) {
		// 4 = "loaded"
		if (xmlhttp.status==200) {
			// 200 = OK
		    var dst;
		    dst = document.getElementById(dstId);
		    dst.innerHTML = xmlhttp.responseText;
   		} else {
		    alert("Problem retrieving XML data: " + xmlhttp.status);
    	}
	}
}

