var jsReady 		= false;
var inWidth;
var inHeight;
var scrollPos		= 0;
var flashPos		= 0;
var MSIE		= false;
var MSIE6		= false;
var FF			= false;
var OPERA		= false;
var CHROME		= false;
var SAFARI		= false;

var container;
var flashObject;
var printPreview;
var footer;
var footerTop;
var footerTopLeft;
var footerTopRight;
var footerBottom;
var footerHaze;
var currHeight		= 500;


function trace(args)
{
  alert(args);
}

function start()
{
  printPreview 		= document.getElementById("print-preview");
  footer 		= document.getElementById("footer_i");
  footerTop 		= document.getElementById("footer_top_i");
  footerTopLeft 	= document.getElementById("footer_left_i");
  footerTopRight	= document.getElementById("footer_right_i");
  footerBottom          = document.getElementById("footer_bottom_i");
  footerHaze		= document.getElementById("footer_haze_i");
  container 		= document.getElementById("container");

  if(swfobject.getFlashPlayerVersion().major != "10")
  {
    footer.style.marginLeft = "-478px";//545
    return;
  }

  determineUserAgent();
  getDimensions();
  setHeight(inHeight);
  addEventListener2(window, "resize", handleResize, false);
  addEventListener2(window, "scroll", handleScroll, false);
  jsReady 		= true;
	
  $('#footer_top').supersleight();
}

function setPrintData(data)
{
  printPreview.innerHTML = data;
  //alert(printPreview.innerHeight);
}

function printPage()
{
  window.print();
}

function setFooter(data)
{
  //alert(data);
  if(data == "")
  {
    //trace(data);
    footerTop.style.height 	= "0px";
    footerTop.style.visibility	= "hidden";
    footerTopLeft.innerHTML	= "";
    footerTopRight.innerHTML	= "";
    return;
  }

  $('#footer_image_right_i').supersleight();

  footerTop.style.height 	= "140px";
  footerTop.style.visibility 	= "visible";

  var tmp 			= new Array();
  var s				= "" + data;//weird, but this is necessary to split a string to an array
  tmp 				= s.split("@@@");
  footerTopLeft.innerHTML 	= "<div class='footer_link_left'><div class='footer_link_arrow'></div><div class='footer_link2'><a href='" + tmp[0] + "' target='_blank'>" + tmp[1] + "</a></div></div><div class='footer_text_left'>" + tmp[2] + "</div>";
  footerTopRight.innerHTML 	= "<div id='footer_right_container'>" +
  "<div id='footer_image_right'><img src='" + tmp[6] + "'></img></div>" +
  "<div class='footer_text_right'>" + tmp[5] + "</div>" +
  "<div class='footer_link_right'><div class='footer_link_arrow'></div><div class='footer_link2'><a href='" + tmp[3] + "' target='_blank'>" + tmp[4] + "</a></div></div>" +
  "</div>";
/*	
*/
}

/**
 * called from flash
 * 
 * @param method
 * @param value
 * @return
 */
function talkToJavaScript(method,args) 
{
  //alert(method + ":" + args);
  switch(method)
  {
    case "getInHeight":
      //flashObject.executeASMethod("getInHeight",inHeight);
      flashObject.executeASMethod("height",scrollPos + "|" + inHeight + "|" + inWidth);
      break;
			
    case "setHeight":
      //document.body.scrollTop = 0;
      setHeight(args);
      break;

    case "setFooter":
      //document.body.scrollTop = 0;
      setFooter(args);
      break;
		
    case "footerHaze":
      hazeFooter(args);
      break;

  case "setPrintData":
      setPrintData(args);
      break;

  case "printPage":
      printPage();
      break;
/*
case "setStageHeight":
      setStageHeight(args);
      break;
*/
  }
}
/**
 * called from flash
 */
function setHeight(value)
{
  currHeight                    = value;
  container.style.height        = value + "px";

  /*
  if(flashObject != null)
  {
    console.log(value  + " :: " + container.style.height);
    flashObject.executeASMethod("getStageHeight","");
  }
}

function setStageHeight(value)
{
   console.log(currHeight + ":" + value);
   //flashObject.height          = value + "px";
   flashObject.height             = value + "px";
   container.style.height        = value + "px";
  */
}

/**
 * called from flash
 */
function javaScriptReady()
{
  //alert("jsReady called:" + jsReady);
  flashObject                   = getObject("app");
  return jsReady;
}

/**
 * called from flash
 */
function hazeFooter(toggle)
{
  footerHaze.style.visibility = toggle == "1" ? "visible" : "hidden";
	
  var alpha 		= toggle == "1" ? .8 : 0;
  var duration	= toggle == "1" ? 300 : 200;
  var ease		= toggle == "1" ? 'easeOutSine' : 'easeInSine';
  $('#footer_haze_i').animate({
    opacity:alpha
  },duration,ease);
}

function handleResize(e)
{
  getDimensions();
  if(flashObject != null)
  {
    flashObject.executeASMethod("resize",scrollPos + "|" + inHeight + "|" + inWidth);
  }
}

function handleScroll(e)
{
  scrollPos = document.body.scrollTop;
  if (scrollPos == 0)
  {
    if(window.pageYOffset)
    {
      scrollPos = window.pageYOffset;
    }
    else
    {
      scrollPos = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }
  }
	
  if(flashObject != null)
  {
    flashObject.executeASMethod("scroll",scrollPos + "|" + inHeight + "|" + flashPos);
  }
}

/* utils */

function getObject(objectName) 
{
  if (navigator.appName.indexOf("Microsoft") != -1)
  {
    return window[objectName];
  }
  else
  {
    return document[objectName];
  }
}

//get current dimensions of browser and document
function getDimensions()
{
  inWidth 	= MSIE?document.documentElement.clientWidth:window.innerWidth;
  inHeight 	= MSIE?document.documentElement.clientHeight:window.innerHeight;
	
  docWidth 	= MSIE?document.documentElement.scrollWidth:document.body.scrollWidth;
  docHeight 	= MSIE?document.documentElement.scrollHeight:document.body.scrollHeight;
	
  docHeight   = (FF || OPERA)?document.documentElement.scrollHeight:docHeight;
}

function determineUserAgent()
{
  switch(true)
  {
    case (navigator.userAgent.indexOf('Chrome') != -1):
      CHROME		= true;
      break;
    case (navigator.userAgent.indexOf('Opera') != -1):
      OPERA		= true;
      break;
    case (navigator.userAgent.indexOf('Firefox') != -1):
      FF			= true;
      break;
    case (navigator.userAgent.indexOf('MSIE 6') != -1):
      MSIE6		= true;
    case (navigator.userAgent.indexOf('MSIE') != -1):
      MSIE		= true;
    case (navigator.userAgent.indexOf('Safari') != -1):
      SAFARI		= true;
      break;
  }
}

function addEventListener2(element, event_name, observer, capturing) 
{  
  if(element.addEventListener)
  {
    element.addEventListener(event_name, observer, capturing);
  }
  else if(element.attachEvent)
  {
    element.attachEvent("on" + event_name, observer);
  }
}

/*
function setFooter()
{
	var showFooterTop 	= false;
	var url				= "" + window.location;
	var segments		= new Array();
	if(url.indexOf("#") != -1)
	{
		url				= url.substring(url.indexOf("#") + 1,url.length);
		if(url.indexOf("/") == 0)
		{
			url			= url.substring(1,url.length);
		}
		if(url != "")
		{
			segments		= url.split("/");
		}
		//trace(segments.length);
	}
	
	footerTop 		= document.getElementById("footer_top");
	footerBottom	= document.getElementById("footer_bottom");
	
}
*/
