// (C) 2007 www.ukneeq.com
// Author: Fedil Grogan (fedil@ukneeq.com)
// Program: ukiAnnounce
// Version: 0.9
// http://www.ukneeq.com/scripts/ukiAnnounce/
// Free for all users who use this for personal uses, but leave in this header.
// If you use this on a commercial site or use it to make money please send a 
// donation for my efforts.

var xmlHttp;
var ukiDragDiv = new Object();
ukiDragDiv.zIndex = 0;

var isDOM = false;
var isIE = false;

function ukiAnnounce()
{
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Your browser does not support AJAX!");
    return;
  }
  var url="ukiAnnounce.php";
  xmlHttp.onreadystatechange=stateChanged;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}
function stateChanged()
{
  if (xmlHttp.readyState==4)
  {
    if (document.getElementById("ukiAnnouncement") != null)
    {
      document.getElementById("ukiAnnouncement").innerHTML=xmlHttp.responseText;
    }
  }
}
function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)
  {
    // Internet Explorer
    try
    {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}

function ukiDragStart(event, divId)
{
  //window.status = 'Starting Drag';
  if (divId)
  {
    ukiDragDiv.targetNode = document.getElementById(divId)
  }
  else
  {
    if (!event)
    {
      var event = window.event;
    }
    if (event.target)
    {
      //alert('set by target');
      ukiDragDiv.targetNode = event.target;
    }
    else if (event.srcElement)
    {
      //alert('set by srcElement');
      ukiDragDiv.targetNode = event.srcElement;
    }
    else
    {
      //alert('NOT SET');
    }
    if (ukiDragDiv.targetNode.nodeType == 3)
    {
      ukiDragDiv.targetNode = ukiDragDiv.targetNode.parentNode;
    }
  }
  //alert('You clicked on ' + ukiDragDiv.targetNode.id);


  if (event.pageX || event.pageY)
  {
    x = event.pageX;
    y = event.pageY;
  }
  else if (event.clientX || event.clientY)
  {
    x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
    y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
  }

  ukiDragDiv.StartX = x;
  ukiDragDiv.StartY = y;

  var tmpPos = ukiGetElPosition(ukiDragDiv.targetNode);
  ukiDragDiv.targetStartLeft = tmpPos.x;
  ukiDragDiv.targetStartTop = tmpPos.y;

  if (isNaN(ukiDragDiv.targetStartLeft)) ukiDragDiv.targetStartLeft = 0;
  if (isNaN(ukiDragDiv.targetStartTop)) ukiDragDiv.targetStartTop = 0;

  //window.status = 'Start x = ' + ukiDragDiv.StartX + ', Start y = ' + ukiDragDiv.StartY + ' target x = ' + ukiDragDiv.targetStartLeft + ', Start y = ' + ukiDragDiv.targetStartTop;

  ukiDragDiv.targetNode.style.zIndex = ++ukiDragDiv.zIndex;

  if (document.attachEvent)
  {
    //alert('attaching event');
    document.attachEvent("onmousemove", ukiDrag);
    document.attachEvent("onmouseup", ukiDragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
    isIE = true;
  }
  else if (document.addEventListener)
  {
    //alert('attaching event');
    document.addEventListener("mousemove", ukiDrag, true);
    document.addEventListener("mouseup", ukiDragStop, true);
    event.preventDefault();
    isDOM = true;
  }
}
function ukiDrag(event)
{
  var x, y;
  if (!event)
  {
    var event = window.event;
  }
  if (event.pageX || event.pageY)
  {
    //alert('moving');
    x = event.pageX;
    y = event.pageY;
  }
  else if (event.clientX || event.clientY)
  {
    x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
    y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
  }

  ukiDragDiv.targetNode.style.left = (ukiDragDiv.targetStartLeft + x - ukiDragDiv.StartX) + "px"
  ukiDragDiv.targetNode.style.top = (ukiDragDiv.targetStartTop + y - ukiDragDiv.StartY) + "px"
  //window.status = "x = " + ukiDragDiv.targetNode.style.left + ", y = " + ukiDragDiv.targetNode.style.top;

  if (isIE)
  {
    event.cancelBuggle = true;
    event.returnValue = false;
  }
  else if (isDOM)
  {
    event.preventDefault();
  }
}
function ukiDragStop(event)
{
  //alert('Stopping Drag');
  if (document.detachEvent)
  {
    document.detachEvent("onmousemove", ukiDrag);
    document.detachEvent("onmouseup", ukiDragStop);
  }
  else if (document.removeEventListener)
  {
    document.removeEventListener("mousemove", ukiDrag, true);
    document.removeEventListener("mouseup", ukiDragStop, true);
  }
}
function ukiGetElPosition(ukiElement)
{
  var left = 0;
  var top = 0;

  while (ukiElement.offsetParent)
  {
    left += ukiElement.offsetLeft;
    top += ukiElement.offsetTop;
    ukiElement = ukiElement.offsetParent;
  }
  //left += ukiElement.offsetLeft;
  //top += ukiElement.offsetTop;
  //window.status = "getpos = " + left  + ", " + top;

  return {x:left, y:top};
}
function ukiAnnounceClose(divId)
{
  document.getElementById(divId).style.visibility = "hidden"; 
}
function ukiSwapImg(imgObj)
{
  var imgSrc = imgObj.src;
  //alert(imgObj.src);

  //var matches = imgSrc.match("winRtCnOver\.png");
  //var matches1 = imgSrc.match("winRtCn\.png");
  //alert('over = ' + matches + ' no = ' + matches1);

  if (imgSrc.match("winRtCnOver\.png"))
  {

    imgObj.src="images/ukiAnnounce/winRtCn.png";
  }
  else if (imgSrc.match("winRtCn\.png"))
  {

    imgObj.src="images/ukiAnnounce/winRtCnOver.png";
  }
}

