// JScript File
var GameShowAPI = {};
var registeredModules = [];

var gameInProgress = false;
var currentGameId = -1;


GameShowAPI = function()
{
  //empty constructor
}


//Static Functions
GameShowAPI.Search = function(termToSearch, typeOfSearch, formCode)
{
	//alert("Search " + termToSearch + " : " + typeOfSearch + " : " + formCode);

	if (formCode == null) {
		var formCode = "MICC11";
	}
    var ifSearchResult = document.getElementById("ifSearchResult");
    //get the search results
    if (typeOfSearch == "images") {
      ifSearchResult.src = "http://search.live.com/images/results.aspx?q=" + termToSearch + "&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;
    } else if (typeOfSearch == "news") {
      ifSearchResult.src = "http://search.live.com/news/results.aspx?q=" + termToSearch + "&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;
    } else if (typeOfSearch == "videos") {
      ifSearchResult.src = "http://search.live.com/video/results.aspx?q=" + termToSearch + "&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;
    } else if (typeOfSearch == "books") {
      ifSearchResult.src = "http://search.live.com/results.aspx?q=" + termToSearch + "&scope=books&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;
    } else if (typeOfSearch == "products") {
      ifSearchResult.src = "http://products.live.com/products/results.aspx?q=" + termToSearch + "&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;
    } else if (typeOfSearch == "maps") {
      ifSearchResult.src = "http://maps.live.com/?q=" + termToSearch + "&mkt=en-ca&setlang=en-ca&FORM=" + formCode;
    } else if (typeOfSearch == "local") {
      ifSearchResult.src = "http://localsearch.live.com/localsearch/results.aspx?what=" + termToSearch + "&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;
    } else if (typeOfSearch == "advanced") {
      ifSearchResult.src = "http://search.live.com/?q=" + termToSearch + "&qb=1&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;
    } else if (typeOfSearch == "academic") {
      ifSearchResult.src = "http://search.live.com/results.aspx?scope=academic&q=" + termToSearch + "&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;  
    } else if (typeOfSearch == "url") {
    // not actually searching, just passing a URL through. Use this for any pages MS wants the user to go to directly.
      ifSearchResult.src = termToSearch;
    } else {
      ifSearchResult.src = "http://search.live.com/results.aspx?q=" + termToSearch + "&mkt=en-ca&setlang=en-ca&adlt=strict&FORM=" + formCode;
    }
}


GameShowAPI.GameStarted = function()
{
//alert("GameStarted");

  gameInProgress = true;
  
  //lock links / do something
  GameShowAPI.ExecuteModuleFn("OnGameStarted");
//  alert("Game started, locking screen");
}

GameShowAPI.GameEnded = function()
{
//alert("GameEnded");
  //validate game Id?
  gameInProgress = false;
  
  //Unlock links
  //Refresh Modules
  GameShowAPI.RefreshModules();
  GameShowAPI.ExecuteModuleFn("OnGameEnded");
  
//  alert("Game ended, unlocking screen");
}

GameShowAPI.RegisterModule = function(moduleNamespace)
{
  registeredModules.push(moduleNamespace);
}


GameShowAPI.RefreshModules = function()
{
//	alert("RefreshModules");
//  GameShowAPI.ExecuteFn("Refresh");
}

GameShowAPI.ExecuteModuleFn = function(strFn)
{
  for (var i =0; i < registeredModules.length; ++i)
  {
    //check object
    if (registeredModules[i] != null && registeredModules[i] != "")
    {
      //check function
      if (registeredModules[i][strFn] !== undefined && registeredModules[i][strFn] !== null)
      {
        eval(registeredModules[i] + "." + strFn + "()");  
      }
    }
  }
}

GameShowAPI.Test = function(fn)
{
  fn();
}