        var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
        var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');

        function LZ(x) {return(x<0||x>9?"":"0")+x}

        function formatDate(date,format)
        {
	        format=format+"";
	        var result="";
	        var i_format=0;
	        var c="";
	        var token="";
	        var y=date.getYear()+"";
	        var M=date.getMonth()+1;
	        var d=date.getDate();
	        var E=date.getDay();
	        var H=date.getHours();
	        var m=date.getMinutes();
	        var s=date.getSeconds();
	        var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	        var value=new Object();
	        if (y.length < 4) {y=""+(y-0+1900);}
	        value["y"]=""+y;
	        value["yyyy"]=y;
	        value["yy"]=y.substring(2,4);
	        value["M"]=M;
	        value["MM"]=LZ(M);
	        value["MMM"]=MONTH_NAMES[M-1];
	        value["NNN"]=MONTH_NAMES[M+11];
	        value["d"]=d;
	        value["dd"]=LZ(d);
	        value["E"]=DAY_NAMES[E+7];
	        value["EE"]=DAY_NAMES[E];
	        value["H"]=H;
	        value["HH"]=LZ(H);
	        if (H==0){value["h"]=12;}
	        else if (H>12){value["h"]=H-12;}
	        else {value["h"]=H;}
	        value["hh"]=LZ(value["h"]);
	        if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	        value["k"]=H+1;
	        value["KK"]=LZ(value["K"]);
	        value["kk"]=LZ(value["k"]);
	        if (H > 11) { value["a"]="PM"; }
	        else { value["a"]="AM"; }
	        value["m"]=m;
	        value["mm"]=LZ(m);
	        value["s"]=s;
	        value["ss"]=LZ(s);
	        while (i_format < format.length) {
		        c=format.charAt(i_format);
		        token="";
		        while ((format.charAt(i_format)==c) && (i_format < format.length)) {
		        	token += format.charAt(i_format++);
		        	}
		        if (value[token] != null) { result=result + value[token]; }
		        else { result=result + token; }
		        }
	        return result;
	    }

        function str_replace(sReplaceThis, sWithThis, sString)
        {
            if (sReplaceThis != "" && sReplaceThis != sWithThis)
            {
                var counter = 0;
                var start = 0;
                var before = "";
                var after = "";
                while (counter<sString.length)
                {
                    start = sString.indexOf(sReplaceThis, counter);
                    if (start == -1)
                    {
                        break;
                    }
                    else
                    {
                        before = sString.substr(0, start);
                        after = sString.substr(start + sReplaceThis.length, sString.length);
                        sString = before + sWithThis + after;
                        counter = before.length + sWithThis.length;
                    }
                }
            }
            return sString;
        }

        function simpleFindObj(name, inLayer)
        {
            if (dltypeof(name) == "domelement" || dltypeof(name) == "object" || dltypeof(name) == "jsobject")
            {
                return name;
            }

            return document[name] || (document.all && document.all[name])
                || (document.getElementById && document.getElementById(name))
                || (document.layers && inLayer && document.layers[inLayer].document[name]);
        }

        function nodeWrite(vNode, input)
        {
        	var oNode = simpleFindObj(vNode);
        	input = input;
        	if (oNode && oNode.innerHTML)
        	{
        		oNode.innerHTML = input;
        	}
        	else if (oNode && oNode.document)
        	{
        		oNode.document.writeln(input);
        		oNode.document.close();
        	}
        }

        function showLocalTime(container, servertime)
        {
            var time = new Date()
            var servertimestring = servertime;
            this.localtime = this.serverdate = new Date(servertimestring);
            this.localtime.setTime(this.serverdate.getTime()-(time.getTimezoneOffset()*60*1000)) ;

             var timeoffset = (time.getTimezoneOffset()/60);
             if (timeoffset > 0) timeoffset = '+'+timeoffset;
             else if (timeoffset == 0) timeoffset = '';
             nodeWrite(container, formatDate(this.localtime,"EE, MMM d, yyyy h:mm:ss a")+' (GMT'+timeoffset+')');
        }

        function showAllLocalTime()
        {
            var aTags = new Array('div', 'span');
            if ((document.all || document.getElementById) && aTags.length > 0)
            {
                var iNode, iNodeID, iTime;
                for (a = 0; a < aTags.length; a++)
		        {
                    iNode = document.getElementsByTagName(aTags[a]);
	                for (i = 0; i < iNode.length; i++)
		            {
		                iNodeID   = iNode[i].getAttribute('id');
		                if (iNodeID != '' && iNodeID != null &&
		                   (iNodeID.substring(0,9).toLowerCase() == 'datetime-' ||
		                    iNodeID.substring(0,9).toLowerCase() == 'timedate-'))
		                {
		                    iTime = iNodeID.substring(9,iNodeID.length);
		                    iTime = str_replace('_', ' ', iTime);
		                    iTime = str_replace('-', ',', iTime);
		                    showLocalTime(iNode[i], iTime);
		                }
                    }
		        }
		    }
        }

        function showEmailAddress(container)
        {
            var emailarray6131 = new Array(115,108,121,110,100,101,114,100,97,108,101,64,103,109,97,105,108,46,99,111,109);
            var postemail6131  = '';
            for (i=0;i<emailarray6131.length;i++)
                postemail6131 += String.fromCharCode(emailarray6131[i]);
            nodeWrite(container, '<a href="mailto:'+postemail6131+'">Slynderdale</a>');
        }

        function showAllEmailAddress()
        {
            var aTags = new Array('div', 'span');
            if ((document.all || document.getElementById) && aTags.length > 0)
            {
                var iNode, iNodeID, iTime;
                for (a = 0; a < aTags.length; a++)
		        {
                    iNode = document.getElementsByTagName(aTags[a]);
	                for (i = 0; i < iNode.length; i++)
		            {
		                iNodeID   = iNode[i].getAttribute('id');
		                if (iNodeID != '' && iNodeID != null &&
		                   iNodeID.toLowerCase() == 'email')
		                {
		                    showEmailAddress(iNode[i]);
		                }
                    }
		        }
		    }
        }

        function checkGameID(container)
        {
            var gameid = container.value;
            gameid = gameid.replace(/[^0-9]/gi, "");
            container.value = gameid;
        }

        function deleteGlobalVar(gname, container)
        {
            if (container == null || container == '')
                container = 'globalvars';

            var aDelete = new Array();
            var oGlobalVar = simpleFindObj(container);
            var sGlobalVar = oGlobalVar.value;
            if (sGlobalVar != null && sGlobalVar != '')
            {
                if (dltypeof(gname) != "array")
                {
                    aDelete[0] = gname;
                }
                else
                {
                    aDelete = gname;
                }

                var vname, varname, start, end, sBefore, sAfter;
                for(i=0;i<aDelete.length;i++)
                {
                    vname = aDelete[i];
                    if (vname)
                    {
                        sGlobalVar = oGlobalVar.value;
                        varname = vname + "=";
                        start = sGlobalVar.indexOf(vname + "=");
                        len = start + vname.length + 1;
                        if ((!start) && (varname != sGlobalVar.substring(0, varname.length))||start == -1)
		                    continue;
                        end = sGlobalVar.indexOf(';', len);
                        if (end == -1) end = sGlobalVar.length;
                        sBefore = sGlobalVar.substring(0, start);
                        sAfter  = sGlobalVar.substring(end+1, sGlobalVar.length);
                        oGlobalVar.value = sBefore+sAfter;
                    }
                }
            }
        }

        function getGlobalVar(vname, container)
        {
            if (container == null || container == '')
                container = 'globalvars';

            var oGlobalVar = simpleFindObj(container);
            var sGlobalVar = oGlobalVar.value;
            if (sGlobalVar != null && sGlobalVar != '')
            {
                var varname = vname + "=";
                var start = sGlobalVar.indexOf(vname + "=");
                var len = start + vname.length + 1;
                if ((!start) && (varname != sGlobalVar.substring(0, varname.length)))
                {
		            return null;
                }
                if (start == -1) return null;
                var end = sGlobalVar.indexOf(';', len);
                if (end == -1) end = sGlobalVar.length;
                return unescape(sGlobalVar.substring(len, end));
            }
            return null;
        }

        function setGlobalVar(vname, vvalue, container)
        {
            if (container == null || container == '')
                container = 'globalvars';

            var oGlobalVar = simpleFindObj(container);
            if ((dltypeof(oGlobalVar) == "jsobject" || dltypeof(oGlobalVar) == "object" || dltypeof(oGlobalVar) == "domelement") &&
               (vname!='' && vname!=null && dltypeof(vname)!="undefined"))
            {
                var sGlobalVar = oGlobalVar.value;
                if (sGlobalVar != null && sGlobalVar != '')
                {
                    var varname = vname + "=";
                    var start = sGlobalVar.indexOf(vname + "=");
                    var len = start + vname.length + 1;
                    if ((start >= 0) || (varname == sGlobalVar.substring(0, varname.length)))
                    {
                        var end = sGlobalVar.indexOf(';', len);
                        if (end == -1) end = sGlobalVar.length;

                        var iBefore = sGlobalVar.substring(0, len);
                        var iAfter = sGlobalVar.substring(end, sGlobalVar.length);
                        oGlobalVar.value = iBefore+escape(vvalue)+iAfter;
                        return true;
                    }
                }
                var chk = sGlobalVar.substring(sGlobalVar.length-1,sGlobalVar.length);
                oGlobalVar.value = sGlobalVar+((chk!=';'&&chk!=''&&chk!=null)?';':'')+vname+'='+escape(vvalue)+';';
                return true;
            }
            return false;
        }

        function disableButtons()
        {
            if (document.all || document.getElementById || document.elements)
            {
                for (i=0;i<document.length;i++)
                {
                    var tempobj = document.elements[i];
                    if(tempobj.type.toLowerCase()=="submit" ||
                       tempobj.type.toLowerCase()=="reset" ||
                       tempobj.type.toLowerCase()=="button" )
                        tempobj.disabled=true;
                }
            }
        }

        function clearGlobalForm(container)
        {
            if (container == null || container == '')
                container = 'globalvars';

            var oGlobalVar = simpleFindObj(container);
            oGlobalVar.value = '';
        }

        function submitGlobalForm(clearall, container)
        {
            if (container == null || container == '')
                container = 'globalvars';

            clearall = (clearall!=true)?false:true;
            if (clearall == true)
                clearGlobalForm(container);

            //disableButtons();
            document.forms[0].submit();
        }

        function ProcessGlobalForm(g,d,s)
        {
            var ddo = '', ddv = true, dc = (d==false||d==''||d==null||dltypeof(d)=="undefined")?false:true;
            if (dc == true)
            {
                var deleteArray = new  Array('v','n','m','g','d','r');
                d = d.toLowerCase();
                if (d == 'v' || d == 'view')
                {
                    ddo = 'v'; ddv = true;
                }
                else if (d == 'n' || d == 'nav')
                {
                    ddo = 'n'; ddv = true;
                }
                else if (d == 'm' || d == 'merge')
                {
                    ddo = 'm'; ddv = true;
                }
                else if (d == 'g' || d == 'gen')
                {
                    ddo = 'g'; ddv = true;
                }
                else if (d == 'r' || d == 's'|| d == 'direct' || d == 'skip')
                {
                    ddo = 'r'; ddv = true;
                }
                else if (d == 'd' || d == 'down')
                {
                    ddo = 'd'; ddv = true;
                }
                else
                {
                    ddo = 'g'; ddv = true;
                }
                if (ddo != '')
                {
                    deleteGlobalVar(deleteArray);
                    setGlobalVar(ddo,(ddv!=true?false:true));
                    if (d == 'u' || d == 'update')
                	  	setGlobalVar('u',true);
                }
            }

            if (ddo != 'n')
            {
                var gameid = simpleFindObj('game');
                if ((g==''||g==null||g <= 0||dltypeof(g)=="undefined") &&
                    (dltypeof(gameid)=="jsobject" || dltypeof(gameid)=="object" || dltypeof(gameid)=="domelement"))
                    g = gameid.value;
            }
            else
                g = g.charCodeAt(0);

            g = ''+g+'';
            g.replace(/[^0-9]/gi, "");
            if (g <= 0 || g >= 9999)
            {
                if (ddo != 'n' &&
                   (dltypeof(gameid)=="jsobject" || dltypeof(gameid)=="object" || dltypeof(gameid)=="domelement"))
                    alert('Invalid Game ID specified!');
                return false;
            }
            else
                setGlobalVar('i',g);

            if (s != '' && s != null)
                setGlobalVar('s',s);

            //disableButtons();
            document.forms[0].submit();
        }

        function DoNavSort(g,d,s,n,o)
        {
            var sortName, sortOrder;

            n = n.toLowerCase();
            if (n == 'id' || n == 'i')
                 sortName = 'id';
            else if (n == 'name' || n == 'n')
                sortName = 'name';
            else if (n == 'updated' || n == 'date' || n == 'u')
                sortName = 'date';
            else if (n == 'codes' || n == 'c')
                sortName = 'codes';
            else
                sortName = 'name';

            o = o.toLowerCase();
            if (o == "asc" || o == 'a')
                sortOrder = 'asc';
            else
                sortOrder = 'desc';

            setGlobalVar('sort', sortName+'|'+sortOrder);
            ProcessGlobalForm(g,d,s);
        }

        function CountdownRefresh(rcount, refreshnode, gameid)
        {
            if (gameid > 0)
            {
                if (rcount > 0)
                {
                    nodeWrite(refreshnode, 'The page will refresh in <strong>'+rcount+'</strong> seconds.');
                    setTimeout("CountdownRefresh("+(rcount-1)+", '"+refreshnode+"')", 1000);
                }
                else
                {
                    ProcessGlobalForm(gameid,'g');
                }
            }
        }

        function trim(string) {
          if (string == null) {
            return false;
          }
          return string.replace(/(^\s+)|(\s+$)/g,"");
        }

        function ToggleVisibility(toggleid, tdisplay) {
            var objTableBody = simpleFindObj(toggleid);
            var strDisplay = new String();
	          if (tdisplay) tdisplay = trim(tdisplay);
            if ((document.all || document.getElementById) && objTableBody) {
	              if ((objTableBody.style.display == 'none' && tdisplay != 'hide') || tdisplay == 'show') 
	              {
		                strDisplay = '';
	              }
	              else 
	              {
	                  strDisplay = 'none';
	              }
                objTableBody.style.display = strDisplay;
	          }
	          return;
        }

        function DoOnload()
        {
            showAllLocalTime();
            showAllEmailAddress();
            DynamicOnload();
        }
