var CallbackElementID;
var TabElementID;
var PostElementID;
var ReplyElementID;
var SubmitReplyElementID;
var olympicElement;
var olympicFadeElement;
var fantasyElement;
var fantasyFadeElement;

var roomElement;
var roomReplyElementID;
var roomSubmitReplyElementID;

var newsElement;


function newsCallback()
{
  if( newsHttp.readyState == 4 || newsHttp.readyState == "complete" )
  {
    newsElement.innerHTML = newsHttp.responseText;
    Lightbox.prototype.initialize();
  }
}
function loadNews( param )
{
	var url = 'fusion/roomNews.php';
  url = ( param == '' ) ? url : url + '?param=' + param;
  newsElement = document.getElementById( "roomNews" );
  newsElement.innerHTML = '';
  newsHttp = GetXmlHttpObject();
  newsHttp.onreadystatechange=newsCallback;
  newsHttp.open( "GET", url, true );           
  newsHttp.send( null );
  return false;
}


function GetXmlHttpObject( handler )
{
  var objXMLHttp = null;
  if( window.XMLHttpRequest )
    objXMLHttp = new XMLHttpRequest(); // firefox and Mozilla based browsers
  else if( window.ActiveXObject )
    objXMLHttp = new ActiveXObject( "Microsoft.XMLHTTP" ); // Internet Explorer based browsers
  return objXMLHttp;
}
function fnSearchSKUCallback()
{ // XMLhttp callback function
  if( xmlHttp.readyState == 4 || xmlHttp.readyState == "complete" )
  {
    replaceHTML( CallbackElementID, xmlHttp.responseText );
    Lightbox.prototype.initialize();
  }
}
function tabCallback()
{ // XMLhttp callback function
  if( tabxmlHttp.readyState == 4 || tabxmlHttp.readyState == "complete" )
  {
    replaceHTML( TabElementID, tabxmlHttp.responseText );
    Lightbox.prototype.initialize();
  }
}
function submitReplyCallback()
{ // XMLhttp callback function
  if( submitreplyxmlHttp.readyState == 4 || submitreplyxmlHttp.readyState == "complete" )
  {
    SubmitReplyElementID.parentNode.style.foo = SubmitReplyElementID.offsetHeight + 16;
    replaceHTML( SubmitReplyElementID, submitreplyxmlHttp.responseText );
    Lightbox.prototype.initialize();
      JSTweener.addTween( SubmitReplyElementID.parentNode.style, {
        time: 0.5,
        foo: SubmitReplyElementID.offsetHeight + 16,
        onUpdate: growPreview,
        onUpdateParams: [ SubmitReplyElementID.parentNode.style ]
      } );
  }
}
function latestPostCallback()
{ // XMLhttp callback function
  if( postxmlHttp.readyState == 4 || postxmlHttp.readyState == "complete" )
  {
    PostElementID.parentNode.style.foo = PostElementID.offsetHeight + 16;
    replaceHTML( PostElementID, postxmlHttp.responseText );
    Lightbox.prototype.initialize();
      JSTweener.addTween( PostElementID.parentNode.style, {
        time: 0.5,
        foo: PostElementID.offsetHeight + 16,
        onUpdate: growPreview,
        onUpdateParams: [ PostElementID.parentNode.style ]
      } );
  }
}
function quickReplyCallback()
{ // XMLhttp callback function
  if( replyxmlHttp.readyState == 4 || replyxmlHttp.readyState == "complete" )
  {
    ReplyElementID.parentNode.style.foo = ReplyElementID.offsetHeight + 16;
    replaceHTML( ReplyElementID, replyxmlHttp.responseText );
    Lightbox.prototype.initialize();
      JSTweener.addTween( ReplyElementID.parentNode.style, {
        time: 0.5,
        foo: ReplyElementID.offsetHeight + 16,
        onUpdate: growPreview,
        onUpdateParams: [ ReplyElementID.parentNode.style ]
      } );
  }
}
function replaceHTML( elem, str )
{
  elem.innerHTML = str;
}
function LoadContent( elementID, url, param )
{
  url = ( param == '' ) ? url : url + '?param=' + param;
  CallbackElementID = document.getElementById( elementID );
  CallbackElementID.innerHTML = '<div class="loader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
  xmlHttp = GetXmlHttpObject();
  xmlHttp.onreadystatechange=fnSearchSKUCallback;
  xmlHttp.open( "GET", url, true );           
  xmlHttp.send( null );
}
function LoadTabs( elementID, taburl, param )
{
  taburl = ( param == '' ) ? taburl : taburl + '?param=' + param;
  TabElementID = document.getElementById( elementID );
  TabElementID.innerHTML = '';
  tabxmlHttp = GetXmlHttpObject();
  tabxmlHttp.onreadystatechange=tabCallback;
  tabxmlHttp.open( "GET", taburl, true );           
  tabxmlHttp.send( null );
}
function getCheckedValue( radioObj )
{
	if( !radioObj )
		return "";
	var radioLength = radioObj.length;
	if( radioLength == undefined )
		if( radioObj.checked )
			return radioObj.value;
		else
			return "";
	for( var i=0; i<radioLength; i++ )
	{
		if( radioObj[i].checked )
			return radioObj[i].value;
	}
	return "";
}
function buzzFilterClick( obj )
{
  var buzzButtonArray = document.getElementsByName( 'rangeFilter' );
  for( i=0; i<buzzButtonArray.length; i++ )
  {
    buzzButtonArray[i].disabled = false;
    buzzButtonArray[i].className = 'buzz_button';
  }
  obj.className = 'button_current';
  obj.disabled = true;


}
function toggleLatestPost( roomID, threadID )
{
  document.getElementById( 'latestPostPreview_' + threadID ).style.display = 'none';
  var divID = 'latestPost_' + threadID;
  PostElementID = document.getElementById( divID );
  hidePreviews( PostElementID );
//  PostElementID.parentNode.style.height = '16px';
    PostElementID.parentNode.style.foo = PostElementID.offsetHeight + 16;
  PostElementID.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
      JSTweener.addTween( PostElementID.parentNode.style, {
        time: 0.5,
        foo: PostElementID.offsetHeight + 16,
        onUpdate: growPreview,
        onUpdateParams: [ PostElementID.parentNode.style ]
      } );
  postxmlHttp = GetXmlHttpObject();
  postxmlHttp.onreadystatechange=latestPostCallback;
  postxmlHttp.open( "GET", 'latestPostsAjax.php?room=' + roomID + '&thread=' + threadID, true );           
  postxmlHttp.send( null );
}
function toggleQuickReply( roomID, threadID, replyType )
{
  document.getElementById( 'latestPostPreview_' + threadID ).style.display = 'none';
  var divID = 'latestPost_' + threadID;
  ReplyElementID = document.getElementById( divID );
  hidePreviews( ReplyElementID );
//  ReplyElementID.parentNode.style.height = '16px';
    ReplyElementID.parentNode.style.foo = ReplyElementID.offsetHeight + 16;
  ReplyElementID.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
      JSTweener.addTween( ReplyElementID.parentNode.style, {
        time: 0.5,
        foo: ReplyElementID.offsetHeight + 16,
        onUpdate: growPreview,
        onUpdateParams: [ ReplyElementID.parentNode.style ]
      } );
  replyxmlHttp = GetXmlHttpObject();
  replyxmlHttp.onreadystatechange=quickReplyCallback;
  replyxmlHttp.open( "GET", 'quickReply.php?' + roomID + ',' + replyType + ',' + threadID, true );
  replyxmlHttp.send( null );
}
function submitQuickReply( obj )
{
  var fObj = obj;
  while( fObj.id != 'post_form' )
    fObj = fObj.parentNode;
  var thisPost = buildFormPost( fObj, obj.name )
  while( obj.className != 'latestPostBody' )
    obj = obj.parentNode;
  SubmitReplyElementID = obj;
  SubmitReplyElementID.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
  submitreplyxmlHttp = GetXmlHttpObject();
  submitreplyxmlHttp.onreadystatechange=submitReplyCallback;
  submitreplyxmlHttp.open( "POST", 'quickPosting.php?type=' + obj.name, true );
  submitreplyxmlHttp.send( thisPost );
}
function buildFormPost( fObj, btnName )
{
  var qs = '';
  for( i=0; i<fObj.elements.length; i++ )
  {
    if( fObj.elements[i].name != '' )
    {
      var n = fObj.elements[i].name;
      if( ( n == 'preview' || n == 'finish' || n == 'cancel' ) && n != btnName ) continue;
      qs += ( qs == '' ) ? '' : '&';
      qs += n + '=' + escape( fObj.elements[i].value );
    }
  }
  qs += "\n";
  return qs;
}
function hidePreviews( obj )
{
  var d = document.getElementsByTagName( 'div' );
  for( i=0; i<d.length; i++ )
  {
    if( d[i].className == 'latestPostBodyContainer' && d[i] != obj )
    {
      d[i].style.height = '0px';
    }
    if( d[i].className == 'latestPostPreview' )
    {
      d[i].style.display = 'block';
    }
  }
}
function shrinkPreview( obj )
{
  var oldHeight = obj.height.replace( /px/i, '' );
  oldHeight--;
  if( oldHeight > 0 )
    obj.height = oldHeight + 'px';
}
function growPreview( obj )
{
  var oldHeight = obj.height;
  if( oldHeight == '' )
    oldHeight = 0;
  else
    oldHeight = oldHeight.replace( /px/i, '' );
  oldHeight = parseInt( oldHeight );
  oldHeight = obj.foo;
  obj.height = oldHeight + 'px';
}
function cancelQuickPost( cText )
{
  var doCancel = confirm( cText );
  if( doCancel )
  {
    hidePreviews();
    return true;
  }
  else return false;
}
function setElemToBlock( elem )
{
  elem.style.display = 'block';
}
function noClick()
{
  return false;
}

function olympicCallback()
{

  if( olympicHttp.readyState == 4 || olympicHttp.readyState == "complete" )
  {
    olympicElement.innerHTML = olympicHttp.responseText;
    olympicFadeElement.style.height = olympicElement.parentNode.offsetHeight;
    opacity( olympicFadeElement.id, 100, 0, 500 );
    Lightbox.prototype.initialize();
  }
}
function olympicStats( obj, param )
{
	clearAllOlyBtns();
	obj.id = 'active';
	var url = 'fusion/olympics/olympicsBuzz.php';
  url = ( param == '' ) ? url : url + '?param=' + param;
  olympicFadeElement = document.getElementById( "oTickerFade" );
  olympicElement = document.getElementById( "olympicBuzzContainer" );
  olympicElement.innerHTML = '';
  olympicHttp = GetXmlHttpObject();
  olympicHttp.onreadystatechange=olympicCallback;
  olympicHttp.open( "GET", url, true );           
  olympicHttp.send( null );
  return false;
}
function clearAllOlyBtns()
{
	var p = document.getElementById( 'oly_buzz_contents' );
	var links = p.getElementsByTagName( 'a' );
	for( i=0; i<links.length; i++ )
	{
		if( links[i].parentNode.className == 'navBar' )
		{
			links[i].id = '';
		}
	}
}



function roomForum( obj, param )
{
	var url = 'roomForum.php';
  url = ( param == '' ) ? url : url + '?param=' + param;
  roomForumElement = document.getElementById( "roomForum" );
  roomForumElement.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
  roomForumHttp = GetXmlHttpObject();
  roomForumHttp.onreadystatechange = roomForumCallback;
  roomForumHttp.open( "GET", url, true );           
  roomForumHttp.send( null );
  return false;
}
function roomForumCallback()
{
  if( roomForumHttp.readyState == 4 || roomForumHttp.readyState == "complete" )
  {
    roomForumElement.innerHTML = roomForumHttp.responseText;
    Lightbox.prototype.initialize();
  }
}
function roomQuickReply( roomID, threadID, replyType )
{
  roomReplyElementID = document.getElementById( 'roomForum' );
  roomReplyElementID.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
  roomreplyxmlHttp = GetXmlHttpObject();
  roomreplyxmlHttp.onreadystatechange = roomQuickReplyCallback;
  roomreplyxmlHttp.open( "GET", 'roomReply.php?' + roomID + ',' + replyType + ',' + threadID, true );
  roomreplyxmlHttp.send( null );
}
function roomQuickReplyCallback()
{ // XMLhttp callback function
  if( roomreplyxmlHttp.readyState == 4 || roomreplyxmlHttp.readyState == "complete" )
  {
    replaceHTML( roomReplyElementID, roomreplyxmlHttp.responseText );
    Lightbox.prototype.initialize();
  }
}
function submitRoomQuickReply( obj, params )
{
  var n = obj.name;
  var fObj = obj;
  while( fObj.id != 'post_form' )
    fObj = fObj.parentNode;
  var thisPost = buildFormPost( fObj, n )
  while( obj.id != 'roomForum' )
    obj = obj.parentNode;
  roomSubmitReplyElementID = obj;
  roomSubmitReplyElementID.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
  roomsubmitreplyxmlHttp = GetXmlHttpObject();
  roomsubmitreplyxmlHttp.onreadystatechange = roomSubmitReplyCallback;
  roomsubmitreplyxmlHttp.open( "POST", 'roomPosting.php?type=' + n + '&' + params, true );
  roomsubmitreplyxmlHttp.send( thisPost );
}
function roomSubmitReplyCallback()
{ // XMLhttp callback function
  if( roomsubmitreplyxmlHttp.readyState == 4 || roomsubmitreplyxmlHttp.readyState == "complete" )
  {
    roomSubmitReplyElementID.parentNode.style.foo = roomSubmitReplyElementID.offsetHeight + 16;
    replaceHTML( roomSubmitReplyElementID, roomsubmitreplyxmlHttp.responseText );
    Lightbox.prototype.initialize();
  }
}
function cancelRoomPost( cText, obj, param )
{
  var doCancel = confirm( cText );
  if( doCancel )
    roomForum( obj, param );
  else
    return false;
}






function fantasyForum( obj, param )
{
	var url = 'fantasyForum.php';
  url = ( param == '' ) ? url : url + '?param=' + param;
  fantasyForumElement = document.getElementById( "fantasyForum" );
  fantasyForumElement.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
  fantasyForumHttp = GetXmlHttpObject();
  fantasyForumHttp.onreadystatechange=fantasyForumCallback;
  fantasyForumHttp.open( "GET", url, true );           
  fantasyForumHttp.send( null );
  return false;
}
function fantasyForumCallback()
{
  if( fantasyForumHttp.readyState == 4 || fantasyForumHttp.readyState == "complete" )
  {
    fantasyForumElement.innerHTML = fantasyForumHttp.responseText;
    Lightbox.prototype.initialize();
  }
}
function fantasyQuickReply( roomID, threadID, replyType )
{
  ReplyElementID = document.getElementById( 'fantasyForum' );
  ReplyElementID.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
  replyxmlHttp = GetXmlHttpObject();
  replyxmlHttp.onreadystatechange=quickReplyCallback;
  replyxmlHttp.open( "GET", 'fantasyReply.php?' + roomID + ',' + replyType + ',' + threadID, true );
  replyxmlHttp.send( null );
}
function submitFantasyQuickReply( obj, params )
{
  var n = obj.name;
  var fObj = obj;
  while( fObj.id != 'post_form' )
    fObj = fObj.parentNode;
  var thisPost = buildFormPost( fObj, n )
  while( obj.id != 'fantasyForum' )
    obj = obj.parentNode;
  SubmitReplyElementID = obj;
  SubmitReplyElementID.innerHTML = '<div class="latestLoader"><img src="images/ajax-loader.gif" alt="Loading" /></div>';
  submitreplyxmlHttp = GetXmlHttpObject();
  submitreplyxmlHttp.onreadystatechange=submitFantasyReplyCallback;
  submitreplyxmlHttp.open( "POST", 'fantasyPosting.php?type=' + n + '&' + params, true );
  submitreplyxmlHttp.send( thisPost );
}
function submitFantasyReplyCallback()
{ // XMLhttp callback function
  if( submitreplyxmlHttp.readyState == 4 || submitreplyxmlHttp.readyState == "complete" )
  {
    SubmitReplyElementID.parentNode.style.foo = SubmitReplyElementID.offsetHeight + 16;
    replaceHTML( SubmitReplyElementID, submitreplyxmlHttp.responseText );
    Lightbox.prototype.initialize();
  }
}
function cancelFantasyPost( cText, obj, param )
{
  var doCancel = confirm( cText );
  if( doCancel )
    fantasyForum( obj, param );
  else
    return false;
}


function fantasyStats( obj, param )
{
	clearAllFantasyBtns();
	obj.id = 'active';
	var url = 'fusion/fantasy/fantasyStats.php';
  url = ( param == '' ) ? url : url + '?param=' + param;
  fantasyFadeElement = document.getElementById( "fantasyFade" );
  fantasyElement = document.getElementById( "fantasyAdvContainer" );
  fantasyElement.innerHTML = '';
  fantasyHttp = GetXmlHttpObject();
  fantasyHttp.onreadystatechange=fantasyCallback;
  fantasyHttp.open( "GET", url, true );           
  fantasyHttp.send( null );
  return false;
}
function fantasyCallback()
{
  if( fantasyHttp.readyState == 4 || fantasyHttp.readyState == "complete" )
  {
    fantasyElement.innerHTML = fantasyHttp.responseText;
    fantasyFadeElement.style.height = fantasyElement.parentNode.offsetHeight;
    opacity( fantasyFadeElement.id, 100, 0, 500 );
    Lightbox.prototype.initialize();
  }
}
function clearAllFantasyBtns()
{
	var p = document.getElementById( 'fantasy_adv_contents' );
	var links = p.getElementsByTagName( 'a' );
	for( i=0; i<links.length; i++ )
	{
		if( links[i].parentNode.className == 'navBar' )
		{
			links[i].id = '';
		}
	}
}



// fade
function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
	//if an element is invisible, make it visible, else make it ivisible
	if(document.getElementById(id).style.opacity == 0) {
		opacity(id, 0, 100, millisec);
	} else {
		opacity(id, 100, 0, millisec);
	}
}

function blendimage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	
	//set the current image as background
	document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";
	
	//make image transparent
	changeOpac(0, imageid);
	
	//make new image
	document.getElementById(imageid).src = imagefile;

	//fade in image
	for(i = 0; i <= 100; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	}
}

function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpac = 100;
	
	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}

function fantasyPanelClick ( obj )
{
	fantasyClearAllBtns();
	obj.parentNode.id = 'current';
  return false;
}
function fantasyClearAllBtns()
{
	var p = document.getElementById( 'fantasy_heading_bar' );
	var links = p.getElementsByTagName( 'a' );
	for( i=0; i<links.length; i++ )
	{
		if( links[i].className == 'cross-link' )
		{
			links[i].parentNode.id = '';
		}
	}
}


function roomPanelClick ( obj )
{
	roomClearAllBtns();
	obj.parentNode.id = 'current';
  return false;
}
function roomClearAllBtns()
{
	var p = document.getElementById( 'room_heading_bar' );
	var links = p.getElementsByTagName( 'a' );
	for( i=0; i<links.length; i++ )
	{
		if( links[i].className == 'cross-link' )
		{
			links[i].parentNode.id = '';
		}
	}
}

function playerRoomPanelClick ( obj )
{
	playerRoomClearAllBtns();
	obj.parentNode.id = 'current';
  return false;
}
function playerRoomClearAllBtns()
{
	var p = document.getElementById( 'playerRoomHeader' );
	var links = p.getElementsByTagName( 'a' );
	for( i=0; i<links.length; i++ )
	{
		if( links[i].className == 'cross-link' )
		{
			links[i].parentNode.id = '';
		}
	}
}

function lockerRoomClearButtons ( obj )
{
	lockerRoomClearButtonsBtn();
	obj.parentNode.id = 'current';
  return false;
}
function lockerRoomClearButtonsBtn()
{
	var p = document.getElementById( 'stripNav3' );
	var links = p.getElementsByTagName( 'a' );
	for( i=0; i<links.length; i++ )
	{
		if( links[i].className == 'cross-link' )
		{
			links[i].parentNode.id = '';
		}
	}
}

