﻿function OpenParent(URL)
{	
	if(opener == null) 
	{
	    window.open(URL,'Parent').focus();
	} 
    else 
    {
        try 
        {
            opener.location = URL;       
            opener.focus();
        }
        catch(err)
        {
            window.open(URL,'Parent');
        }
    }
}

function CreateCookie(body)
{
    var ExpireDate = new Date();
    ExpireDate.setDate(ExpireDate.getDate() + 1);
    document.cookie = "fgf="+body+"; expires="+ExpireDate.toGMTString()+"; path=/";
}

function GetCookie(sName)
{
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }
  return null;
}




function DateToTime(date)
{
    var h=date.getUTCHours(); if (h<10) h="0"+h; var m=date.getUTCMinutes(); if (m<10) m="0"+m;
    return h+":"+m+"<span class='GMT'>GMT</span>";
}

function DateToLocalTime(date)
{
    var h=date.getHours(); if (h<10) h="0"+h; var m=date.getMinutes(); if (m<10) m="0"+m;
    return h+":"+m;
}

function UseLocalTime()
{
    document.getElementById("Body").className='UseLocalTime';
    document.cookie="timeZoneClass=UseLocalTime; expires=Thu, 31 Dec 2099 00:00:00 UTC; path=/";
}

function UseGMT()
{
    document.getElementById("Body").className='UseGMT';
    document.cookie="timeZoneClass=UseGMT; expires=Thu, 31 Dec 2099 00:00:00 UTC; path=/";
}

function SetTimezone()
{
    var timeZoneClass=GetCookie("timeZoneClass");
    if (timeZoneClass!="UseGMT" && timeZoneClass!="UseLocalTime") timeZoneClass="UseGMT";
    document.getElementById("Body").className=timeZoneClass;
}

function Start()
{
    SetTimezone();
}

function SwapNavImage(aImage,URL)
{
    var CurrentLoc = aImage.src;
    var i = CurrentLoc.lastIndexOf('/');
    aImage.src = CurrentLoc.substr(0,i+1) + URL;
}

function CharsLeft(check, max, update) 
{
    var toCheck = document.getElementById(check);
    var toUpdate = document.getElementById(update);
    toUpdate.value = max - toCheck.value.length;        
    if(toCheck.value.length > max) 
    {
        toCheck.value = toCheck.value.substr(0,300);
    }
}

function OpenConsole(URL)
{
	window.open(URL,'RaceConsole','resizable=no,scrollbars=no,menubar=no,location=no,toolbar=no,status=yes,top=40,left=40,width=1000,height=680').focus();
}

// Object for handling Ajax Calls
function ajaxObject(url, callbackFunction) {
  var that=this;
  this.updating = false;
  this.abort = function() {
    if (that.updating) {
      that.updating=false;
      that.AJAX.abort();
      that.AJAX=null;
    }
  }
  this.update = function(passData,postMethod) { 
    if (that.updating) { return false; }
    that.AJAX = null;
    if (window.XMLHttpRequest) {
      that.AJAX=new XMLHttpRequest();
    } else {
      that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (that.AJAX==null) {
      return false;
    } else {
      that.AJAX.onreadystatechange = function() {
        if (that.AJAX.readyState==4) {
          that.updating=false;
          that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);
          that.AJAX=null;
        }
      }
      that.updating = new Date();
      if (/post/i.test(postMethod)) {
        var uri=urlCall+'?'+that.updating.getTime();
        that.AJAX.open("POST", uri, true);
        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        that.AJAX.setRequestHeader("Content-Length", passData.length);
        that.AJAX.send(passData);
      } else {
        var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime());
        that.AJAX.open("GET", uri, true);
        that.AJAX.send(null);
      }
      return true;
    }
  }
  var urlCall = url;
  this.callback = callbackFunction || function () { };
}


function SetUnreadMessages(turfmasterID, reset) {
    var num;
    if ((GetCookie('UnreadMessages') == null) || (reset == true)) {
        var myRequest=new ajaxObject("/Mail/MailHandler.aspx");
        myRequest.update('command=getUnreadMessages&tmid='+turfmasterID);
        myRequest.callback=function(responseText, responseStatus, responseXML)
        {
            var ExpireDate=new Date();
            ExpireDate.setMinutes(ExpireDate.getMinutes()+1);
            var a = SiteURL.split('.');
            //document.cookie = "UnreadMessages="+responseXML.childNodes[0].childNodes[0].text+"; expires="+ExpireDate.toGMTString()+"; path=/; domain="+a[a.length-2] + "." + a[a.length-1]+";";
            document.cookie="UnreadMessages="+responseXML.getElementsByTagName('mail')[0].getElementsByTagName('unreadMessages')[0].firstChild.nodeValue+"; expires="+ExpireDate.toGMTString()+"; path=/; domain="+a[a.length-2] + "." + a[a.length-1]+";";
            num=parseInt(responseXML.getElementsByTagName('mail')[0].getElementsByTagName('unreadMessages')[0].firstChild.nodeValue);
            changeCommunityIcon(num);
        }
    } else {
        var num=parseInt(GetCookie('UnreadMessages'));
        changeCommunityIcon(num);
    }
}

function changeCommunityIcon(num) {
    var path=document.getElementById('communitynav').src.slice(0,document.getElementById('communitynav').src.lastIndexOf('/')+1);
    if(num > 0) {
        document.getElementById('communitynav').src=path+"Community_icon_mail-o.png";
        document.getElementById('unreadMessages').innerHTML=num;
    } else {
        document.getElementById('communitynav').src=path+"Community_icon-o.png";
        document.getElementById('unreadMessages').innerHTML='';
    }  
}




