//***********************************************************************************
//
// Player Message Script
//
//***********************************************************************************

var timeoutId = -1;

function sendASMessage(messager, messageObject)
{
   messager.sendMessage(messageObject);
}

function getMessager (messagerId){
  var messager = null;
  
  if(document[messagerId]){
    messager = document[messagerId];
  }else{
    messager = window[messagerId];
  }
  
  return messager;
}

function receiveASMessage (message) 
{
  /** 
   * message contains the following fields:
   * message.type:String
   * message.messagerId:String;
   * message.content:Object
   **/
    switch(message.type)
    {
        case "jsReady":
            handleJsReady(message);
            break;
        case "complete":
            handleComplete(message);
            break;
        case "down":
            handleDown(message);
            break;
        case "over":
            handleOver(message);
            break;
        case "out":
            handleOut(message);
            break;
        default:
           alert("No case for type: " + messageObject.type);
           break;
    } 
}

function handleJsReady(message)
{  
    sendASMessage(getMessager(message.messagerId), message);
}

function testMessager ()
{
    sendASMessage(getMessager('WireFramer'), {type: "this is the message I would like to send"});
}

function handleComplete(message)
{
    var messagePanel = document.getElementById("messagePanel");
    messagePanel.innerHTML = message.content;
}

function handleDown(message)
{
    //if(!message.hasChildren){
        window.location = message.href;     
    //}
}

function log(plog){
    var logWindow = document.getElementById("logWindow")
    logWindow.innerHTML += "<p>" + plog + "</p>"; 
}

function traceProps(object){
	for(props in object){
		log(props + ": " + object[props]);
	}
}

function handleOver(message)
{        
	
	   if(message.messagerId == "TommyNav"){
            removeMenu();
        }
         
        if(message.hasChildren){
            var div = document.getElementById("thil_categoryNavigation_sub");
            var mainNav = document.getElementById("thil_categoryNavigation");            
                                    
            div.style.display = "block";
            div.style.backgroundColor = "#FFF";
            div.style.marginTop = "17px";
            div.style.borderLeft = "solid 2px #f1f0ef";
            div.style.borderBottom = "solid 4px #f1f0ef";
            div.style.paddingLeft = "14px";
            div.style.paddingTop = "20px";
           	div.style.width = "220px";
            div.style.height = (message.numLinkChildren*24) + "px";
            div.style.position = "absolute";
            
            var offset = message.x + mainNav.parentNode.offsetLeft;
            div.style.left = offset+"px";
            
			var flashvars = {};
	        flashvars.orientation = "vertical";
	        flashvars.fontSize = "11";
	        flashvars.topMargin = "0";
	        flashvars.leftMargin = "0";
	        flashvars.spacing = "5";
	        flashvars.nav_data = message.encodedXML;
			
			var params = {};
			params.id = message.childXMLId;
            params.name = message.childXMLId;
			params.bgcolor = "#ffffff";

            swfobject.embedSWF("/tommy/navigation/gadgets/flash/nav.swf", "subNavTarget", 220, message.numLinkChildren*24, "9.0.0", "expressInstall.swf", flashvars, params);
            
        }  
}

function removeMenu()
{
	 var openMenu = document.getElementById("thil_categoryNavigation_sub");
	 openMenu.style.display = "none";    
}

function clearTimer()
{
	window.clearTimeout(timeoutId);
	timeoutId = -1;
}

function startTimer()
{
	timeoutId = window.setTimeout ( "removeMenu();", 200 );
}

