﻿

// Determine browser and version.

function Browser() {

  var ua, s, i;

  this.isChrome = false;
  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Chrome";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isChrome = true;
    this.isNS = true
    //this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.
  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    //this.version = 6.1;
    return;
  }
}
var browser = new Browser();    

    


function setPosition(event, obj, option)
{
    var x, y;
    
    switch (option)
    {
        case "centered":
            obj.style.left = "40%";
            obj.style.top  = "30%";

            break;
        case "cursor":
            // Get cursor position with respect to the page.

            if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft
              + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop
              + document.body.scrollTop;
            }
            if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
            }
            
            obj.style.left = (x) + "px";
            obj.style.top  = (y) + "px"

            break;
        default:
        
    }
    
}

function print(objName, theme)
{
    var content = document.getElementById(objName).innerHTML;
    var wnd = window.open("", "printContent", "width=800, height=500, status=no, scrollbars=yes, location=no, toolbar=n, resizeable=yes");
    wnd.document.write("<html><head><title>Print</title><link href='stylesheet1.css' rel='stylesheet' type='text/css' /><link href='App_Themes/" + theme + "/stylesheet1.css' rel='stylesheet' type='text/css' /><style> .padhead { display: none; } .pad2 { display: none; } body { padding: 10px; } body { overflow-y: auto; overflow-x: auto; }</style></head><body>" + content + "</body></html>");
    wnd.document.close();
    wnd.print();
    
    
}   


// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// AJAX main object
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function getXHTTP() {
  var xhttp;
   try {   // The following "try" blocks get the XMLHTTP object for various browsers…
      xhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
        xhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e2) {
 		 // This block handles Mozilla/Firefox browsers...
	    try {
          xhttp = new XMLHttpRequest();
	    } catch (e3) {
	    
	      xhttp = false;
	    }
      }
    }
  return xhttp; // Return the XMLHTTP object
}	




function Hide(objname)
{
    try {
	    var obj = document.getElementById(objname);
	    obj.style.visibility = "hidden";
	    obj.style.position = "absolute";
	}
	catch (e) {
	}
}

function Show(objname, displayTime)
{
    try {
	    var obj = document.getElementById(objname);
	    obj.style.visibility = "visible";
	    obj.style.position = "relative";
        if (displayTime!=undefined)
            setTimeout("Hide('" + objname + "')", displayTime);
	}
	catch (e) {
	}
}

function getKeyChar(e)
{
    var keynum;
    var keychar;
    var numcheck;
    if(window.event) // IE
      {
      keynum = e.keyCode;
      }
    else if(e.which) // Netscape/Firefox/Opera
      {
      keynum = e.which;
      }
    keychar = String.fromCharCode(keynum);
    
    return keychar

}

function getKeyNum(e)
{
    var keynum;
    var keychar;
    var numcheck;
    if(window.event) // IE
      {
      keynum = e.keyCode;
      }
    else if(e.which) // Netscape/Firefox/Opera
      {
      keynum = e.which;
      }
    //keychar = String.fromCharCode(keynum);
    
    return keynum

}


function ajaxLoaderImg(objId, mode)
{
    var obj = document.getElementById(objId);
    if (obj!=undefined)
    {
        switch (mode) {
            case 0:
                obj.innerHTML = "<img src='images/ajax-loader.gif' />";
                break;
            case 1:
                obj.innerHTML = "<img src='images/ajax-loader.gif' />";
                break;
            case 2:
                obj.innerHTML = "<img src='images/ajax-loader.gif' />";
                break;
            case 3:
                obj.innerHTML = "<img src='images/ajax-loader.gif' />";
                break;
            default:
                break;
        }
  
    }
}


function ajaxLoaderImg2(objId, mode)
{
    var obj = document.getElementById(objId);
    if (obj!=undefined)
    {
        switch (mode) {
            case 0:
                obj.innerHTML = "<img src='images/ajax-loader2.gif' />";
                break;
            case 1:
                obj.innerHTML = "<img src='images/ajax-loader2.gif' />";
                break;
            case 2:
                obj.innerHTML = "<img src='images/ajax-loader2.gif' />";
                break;
            case 3:
                obj.innerHTML = "<img src='images/ajax-loader2.gif' />";
                break;
            default:
                break;
        }
  
    }
}

function ajaxLoaderImgTxt(objId, mode)
{
    var obj = document.getElementById(objId);
    if (obj!=undefined)
    {
        switch (mode) {
            case 0:
                obj.innerHTML = "<p style='text-align: center; font-weight: bold; color: #ffcccc; font-size:10px;'><img src='images/ajax-loader.gif' /><br />initializing</p>";
                break;
            case 1:
                obj.innerHTML = "<p style='text-align: center; font-weight: bold; color: #ffcccc; font-size:10px;'><img src='images/ajax-loader.gif' /><br />loading</p>";
                break;
            case 2:
                obj.innerHTML = "<p style='text-align: center; font-weight: bold; color: #ffcccc; font-size:10px;'><img src='images/ajax-loader.gif' /><br />processing</p>";
                break;
            case 3:
                obj.innerHTML = "<p style='text-align: center; font-weight: bold; color: #ffcccc; font-size:10px;'><img src='images/ajax-loader.gif' /><br />completing</p>";
                break;
            default:
                break;
        }
  
    }
}

function ajaxLoaderImgSmall(objId, mode)
{
    var obj = document.getElementById(objId);
    if (obj!=undefined)
    {
        switch (mode) {
            case 0:
                obj.innerHTML = "<img src='images/ajax-loader-sm.gif' style='padding-top:2px;padding-right:5px;float-left;' /><small>initializing</small>";
                break;
            case 1:
                obj.innerHTML = "<img src='images/ajax-loader-sm.gif' style='padding-top:2px;padding-right:5px;float-left;' /><small>loading</small>";
                break;
            case 2:
                obj.innerHTML = "<img src='images/ajax-loader-sm.gif' style='padding-top:2px;padding-right:5px;float-left;' /><small>processing</small>";
                break;
            case 3:
                obj.innerHTML = "<img src='images/ajax-loader-sm.gif' style='padding-top:2px;padding-right:5px;float-left;' /><small>completing</small>";
                break;
            default:
                break;
        }
  
    }
}

function ajaxLoaderTxt(objId, mode)
{
    var obj = document.getElementById(objId);
    if (obj!=undefined)
    {
        switch (mode) {
            case 0:
                obj.innerHTML = "<div style='color: #ffcccc;'>initializing</div>";
                break;
            case 1:
                obj.innerHTML = "<div style='color: #ffcccc;'>loading</div>";
                break;
            case 2:
                obj.innerHTML = "<div style='color: #ffcccc;'>processing</div>";
                break;
            case 3:
                obj.innerHTML = "<div style='color: #ffcccc;'>completing</div>";
                break;
            default:
                obj.innerHTML = "";
                break;
        }
        
  
    }
}


function CheckCapsLock( e ) {
   var myKeyCode = 0;
   var myShiftKey = e.shiftKey;
   
   if ( document.all ) {
      // Internet Explorer 4+
      myKeyCode = e.keyCode;
   } else if ( document.getElementById ) {
      // Mozilla / Opera / etc.
      myKeyCode = e.which;
   }
   
   if ((myKeyCode >= 65 && myKeyCode <= 90 ) || (myKeyCode >= 97 && myKeyCode <= 122)) {
      if ( 
         // Upper case letters are seen without depressing the Shift key, therefore Caps Lock is on
         ( (myKeyCode >= 65 && myKeyCode <= 90 ) && !myShiftKey )

         ||

         // Lower case letters are seen while depressing the Shift key, therefore Caps Lock is on
         ( (myKeyCode >= 97 && myKeyCode <= 122 ) && myShiftKey )
       )
      {
         Show("divCapsLockWarn", 5000);
      }
      else {
         Hide("divCapsLockWarn");
      }
   }
}

//replace string
function replace(theString, subStr1, subStr2)
{
        //replaces subStr1 with subStr2 in theString
        var i = theString.indexOf(subStr1);
        if (i == -1) 
			return theString;  
        else 
			return(theString.substring(0,i) + subStr2 + replace(theString.substring(i+subStr1.length,theString.length),subStr1,subStr2));
}




function handleMenuClick(id, zoneId)
{

    switch (id) {
        case "home":
            document.location.href="default.aspx";
            break;
        case "teamspeak":
            document.location.href="teamspeak.aspx";
            break;
        case "links":
            document.location.href="links.aspx";
            break;
        case "news":
            document.location.href="news.aspx";
            break;
        case "login":
            document.location.href="login.aspx";
            break;
        case "logout":
            doLogout();
            break;
        case "forums":
            document.location.href="forums.aspx";
            break;
        case "profile":
            document.location.href="profile.aspx";
            break;
        case "gallery":
            document.location.href="gallery.aspx";
            break;
        case "admin":
            document.location.href="admin.aspx";
            break;
        case "search":
            document.location.href="search.aspx";
            break;
        case "calendar":
            document.location.href="calendar.aspx";
            break;
        case "dashboard":
            //var dashWin = window.open("dashboard.aspx", "Dashboard", "toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,height=768,width=1024");
            //dashWin.focus();
            document.location.href="dashboard.aspx";
            break;
                                
        default:
            alert("Action not yet supported");
            break;
    }
    

}

function initMenu(xml)
{
   try
    {
        
	    var menu = new dhtmlXMenuObject("menu", "dhx_black");
	    menu.setImagePath("dhtmlx/dhtmlxMenu/codebase/imgs/");
	    menu.setIconsPath("images/");
	    menu.attachEvent("onClick", handleMenuClick);
	    menu.loadXMLString(xml);
	    
	    
	    
	
    }
    catch (e)
    {
        alert("debug: " + e);
    }
    
}

function loadMenu(skipLoginCheck)
{
    
    
    var url = "_ajax/common.aspx";
    var params = "mode=getmenu";
    
    if (skipLoginCheck!=undefined)
        params += "&skiplogincheck=true";
    
    var http = getXHTTP();
    http.open("POST", url, true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");
    http.onreadystatechange = function () { completeLoadMenu(http); }
    
    http.send(params);
   
}

function completeLoadMenu(myHttp)
{

    try {
         var res = '';
       
        
         //ajaxLoaderTxt("menu", myHttp.readyState);
         
         if (myHttp.readyState == 4)
         {
            
            res = myHttp.responseText;  
            
            if (res != "Session timed out")
                initMenu(res);  
         }    
     }
     catch (e) {
        alert(e);
     }
}



function getListSelections(ctrlName)
{
    var val = "";
    
    if (document.getElementById(ctrlName)!=undefined)
        for (x=0;x<document.getElementById(ctrlName).length;x++)
            if (document.getElementById(ctrlName).options[x].selected)
            {
                if (val!="")
                    val += ",";
                val += document.getElementById(ctrlName).options[x].value;
            }
            

    return val;
}


function ajaxListControl(ctrlName, source, val, arg, doAfter)
{

    // if list control already initialized, retain selected value(s)
    if (val=="") 
        if (document.getElementById(ctrlName)!=undefined)
            val = getListSelections(ctrlName);
            
    var ctrl = document.getElementById("div_" + ctrlName);
//    if (ctrl!=undefined) 
//        ctrl.innerHTML = "<span style='text-align:center; font-family:<%=DEFAULT_FONT_FACE %>; font-size:10px; font-weight:bold; color:Gray;'>Loading...</span>";

    var url = "_ajax/_lists.aspx";
    var params = "source=" + source;
    params += "&ctrl=" + ctrlName;
    params += "&val=" + val;
    params += "&arg=" + arg;
    
    var http = getXHTTP();
    http.open("POST", url, true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");
    http.onreadystatechange = function () { completeAjaxListControl(http, ctrlName, doAfter); }
    
    http.send(params);

}

function completeAjaxListControl(myHttp, ctrlName, doAfter)
{
    try {
         var res = '';

         ajaxLoaderTxt("div_" + ctrlName, myHttp.readyState);
       
         if (myHttp.readyState == 4)
         {
            ajaxLoaderTxt("div_" + ctrlName, "");
            
            lstObj = document.getElementById("div_" + ctrlName);
            
            res = myHttp.responseText;  
            if (res == "Session timed out")
            {
                document.location.href = document.location.href;
                return
            }
            lstObj.innerHTML = res;
            
            if (doAfter!=undefined)
                eval(doAfter);
            
            //tabbar.adjustSize(); //force size update
                
         }    
     }
     catch (e) {
        alert(e);
     }         
}


function onEnterKeyDoLogin(event)
{
    var characterCode;
    
    if (event.which) //if which property of event object is supported (NN4)
        characterCode = event.which; //character code is contained in NN4's which property
    else
        characterCode = event.keyCode; //character code is contained in IE's keyCode property
    
    if(characterCode == 13) //if generated character code is equal to ascii 13 (if enter key)
    { 
        doLogin();
        return false; 
    }
    else
        return true; 
    

}

function doLogout()
{
    
    
    var url = "_ajax/common.aspx";
    var params = "mode=logout";
    
    var http = getXHTTP();
    http.open("POST", url, true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");
    http.onreadystatechange = function () { completeDoLogout(http); }
    
    http.send(params);
    
    
}

function completeDoLogout(myHttp)
{
    
    try {
         var res = '';
       
         if (myHttp.readyState == 4)
         {
            
            res = myHttp.responseText;  
            if (res!="ok")
                alert(res);
            else   
                document.location.href = "default.aspx";   
            //if (res != "Session timed out")
                  
         }    
     }
     catch (e) {
        alert(e);
     }
 
}



function loadContent(mode, objName, loaderStyle, extraParams, doAfter, skipLoginCheck)
{
    
    
    var url = "_ajax/common.aspx";
    params = "mode=" + mode;
    
    if (skipLoginCheck!=undefined)
        params += "&skiplogincheck=true";
    
    if (extraParams!=undefined)
        params += extraParams;
    
    var http = getXHTTP();
    http.open("POST", url, true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");
    http.onreadystatechange = function () { completeLoadContent(http, objName, loaderStyle, doAfter); }
    
    http.send(params);
    
    
}

function completeLoadContent(myHttp, objName, loaderStyle, doAfter)
{
    
    try {
         var res = '';
         
         switch (loaderStyle) {
             case "img":
                ajaxLoaderImg(objName, myHttp.readyState);
                break;
             case "img2":
                ajaxLoaderImg2(objName, myHttp.readyState);
                break;
             case "txt":
                ajaxLoaderTxt(objName, myHttp.readyState);
                break;
             case "imgtxt":
                ajaxLoaderImgTxt(objName, myHttp.readyState);
                break;
             default:
         }
       
         if (myHttp.readyState == 4)
         {
            
            res = myHttp.responseText;  
            document.getElementById(objName).innerHTML = res;
                  

            if (doAfter!=undefined)
               if (doAfter!="")
                   eval(doAfter);
         }    
     }
     catch (e) {
        alert(e);
     }
 
}



function ajaxUtil(params, doAfter)
{

    var url = "_ajax/common.aspx";
    
    var http = getXHTTP();
    http.open("POST", url, true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");
    http.onreadystatechange = function () { completeAjaxUtil(http, doAfter); }
    
    http.send(params);
}

function completeAjaxUtil(myHttp, doAfter)
{
     var res = '';
     if (myHttp.readyState == 4) { 
         res = myHttp.responseText;  
         if (res!='ok')
             alert(res);
         
         if (doAfter!=undefined)
            if (doAfter!="")
                eval(doAfter);
     }
     
}



function trim(str)
{

	while(''+str.charAt(0)==' ')
		str=str.substring(1,str.length);
	while(''+str.charAt(str.length)==' ')
		str=str.substring(0,str.length-1);
	return str
}



function printThread(fDesc, tDesc)
{

    if (fDesc == "")
        if (document.getElementById("divThreadHeader")!=undefined)
            fDesc = document.getElementById("divThreadHeader").innerHTML;
        
    if (tDesc == "")
        tDesc = document.getElementById("divMessageHeader").innerHTML;
        
        
    var thrd = document.getElementById("divMessages").innerHTML;
    
    var wnd = window.open("", "printThread", "width=624, height=500, status=no, scrollbars=yes, location=no, toolbar=no, resizeable=yes");
    wnd.document.write("<html><head><title>MTS - Print Thread</title><link href='StyleSheet1-print.css' rel='stylesheet' type='text/css' /></style></head><body>" + fDesc + "" + tDesc + "" + thrd + "</body></html>");
    wnd.document.close();
    wnd.print();
    
    
}   



function checkSecurity(lvl)
{
    
    var url = "_ajax/common.aspx";
    var params = "mode=checksecurity";
    params += "&lvl=" + lvl;
    
    var http = getXHTTP();
    http.open("POST", url, true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");
    http.onreadystatechange = function () { completeCheckSecurity(http); }
    
    http.send(params);
   
}

function completeCheckSecurity(myHttp)
{

    try {
         var res = '';
       
         //ajaxLoaderImg("div_grxUsers", myHttp.readyState);
         
         if (myHttp.readyState == 4)
         {
            
            res = myHttp.responseText;  
            // if not ok, then user is not authorized to view page
            if (res!="ok")
                document.location.href="default.aspx";
         }    
     }
     catch (e) {
        alert(e);
     }

}