//Global variables
var timeID;
var refreshRate = 2000; // two seconds
var rnd = Math.random();

var isFirefox;
var isIE;

//var XmlHttp;
var AjaxServerPageName;
AjaxServerPageName = "Server.aspx";

//Creating and setting the instance of appropriate XMLHTTP Request object to a “XmlHttp” variable  
function getAjax()
{
	var XmlHttp;
	
	//Creating object of XMLHTTP in IE
	try
	{
		XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc)
		{
			XmlHttp = null;
		}
	}
	//Creating object of XMLHTTP in Mozilla and Safari 
	if(!XmlHttp && typeof XMLHttpRequest != "undefined") 
	{
		XmlHttp = new XMLHttpRequest();
	}
	return XmlHttp;
}

// Get browser type
function sniffBrowserType() {
	isFirefox = ( navigator.appName == "Netscape" );
	isIE = (navigator.appName == "Microsoft Internet Explorer" ); 
}


// Capture the enter key on the input box and post message
function captureReturn( event )
{
	if(event.which || event.keyCode)
	{
		if ((event.which == 13) || (event.keyCode == 13)) 
		{
			postText();
			return false;
		}
		else {
			return true;
		}
	}	
}

// Start the update timer
function setTimers()
{
	timeID = window.setTimeout( "updateAll()", refreshRate );
}

// Start to update and reset the update timer
function updateAll()
{
	window.clearTimeout( timeID );
	getUserList();
	setTimers();
}

function getUserList()
{
	rnd++;
	url = 'Server.aspx?action=UserList&session=' + rnd;
	req = getAjax();

	req.onreadystatechange = function(){
	
		if( req.readyState == 4 && req.status == 200 ) {
		
			obj = getElement( "userlist" );
			obj.innerHTML = req.responseText;
			getBufferText();
		}
	
	}
	
	req.open( 'GET', url, true );
	req.send( null );
}

function getBufferText()
{
    rnd++;
	url = 'Server.aspx?action=GetMsg&session=' + rnd;
	req = getAjax();
	
	req.onreadystatechange = function(){
	
		if( req.readyState == 4 && req.status == 200 ) {
		
			obj = getElement( "chatbuffer" );
			obj.innerHTML = req.responseText;
			scrollChatPane();
			//FocusWindow();
		}
	}
	
	req.open( 'GET', url , true );
	req.send( null );
}

function postText()
{
	rnd++;
	chatbox = getElement( "mytext" );
	chat = chatbox.value;
	chatbox.value = "";
	
	userid = location.search.substring( 1, location.search.length );
	url = 'Server.aspx?action=PostMsg&u=' + userid + '&t=' + encodeURIComponent(chat) + '&session=' + rnd;
	
	req = getAjax();
	
	req.onreadystatechange = function(){
	
		if( req.readyState == 4 && req.status == 200 ) {
			updateAll();
		}
	
	}
	
	req.open( 'GET', url, true );
	req.send( null );
}

function getElement( id ) 
{
	if( isIE ) {
		return document.all[ id ];
	}
	else {
		return document.getElementById( id );
	}
}

function showLoadScreen()
{
	var loading = "<div style=\"text-align:center;color:red;\"><h5>Loading...</h5></div>";

	chat = getElement( "chatbuffer" );
	chat.innerHTML = loading;
	
	user = getElement( "userlist" );
	user.innerHTML = loading;
}

function scrollChatPane()
{
	var obj = document.getElementById("chatpane");
	obj.scrollTop = obj.scrollHeight;
}

function setFocus(ControlName)
{
	var control = document.getElementById(ControlName);
	if( control != null )
	{
		control.focus();
	}
}
function FocusWindow()
{

	//TODO: FireFox doesn't work?
	window.focus();

}

/////////*****************Chat Layer functions***************///////////////////////
				
function createChatLayer(x,y)
{
 if(document.getElementById('divLayer')!=null)
        {
         if(document.getElementById('divLayer').style.display !='block')
        
          {
                document.getElementById('divLayer').style.display='block';
                document.getElementById('divLayer').style.left=x+"px";
                document.getElementById('divLayer').style.top=y+"px";
               
         }
        return;
      }
 else
     {
var divLayer=document.createElement('DIV');
    divLayer.setAttribute('id','divLayer');
    divLayer.style.left=x+"px";
    divLayer.style.top=y+"px";
    divLayer.style.overflow="hidden";
    divLayer.style.position="absolute";
    divLayer.style.display='block';
    document.body.appendChild(divLayer);
    divLayer.innerHTML='<table border="0" cellpadding="0" cellspacing="0" style="border-right: #cbcbcb 1px solid; border-left: #cbcbcb 1px solid; width: 272px; border-bottom: #cbcbcb 1px solid;height: 130px; background-color: #f9fafa; border-top-width: 1px; border-top-color: #cbcbcb;">'+
                        '<tr><td align="left" background="http://www.aikminute.com/images/heading_bg.gif" height="31" style="width: 303px" valign="top"><table cellpadding="0" cellspacing="0" style="width: 99%">'+
                        '<tr><td align="left" style="padding-left: 14px; font-weight: bold; font-size: 12px;width: 72%; color: #0077b4; font-family: Tahoma" valign="middle">Login to Aik Minute Chat'+
                         '</td><td align="right" valign="top" width="40%"><img height="31" src="http://www.aikminute.com/images/close_normal.jpg" width="24" id="ImgClose" onmouseover="MouseOver()" onmouseout="MouseOut()" onclick="return imgClose_onclick()" /></td> </tr> </table>'+
                         ' </td></tr><tr><td id="tdLoading" class="caption" style="width: 303px; height: 30px">&nbsp;<span id="nick">Nickname:</span><span id="txtValidator" style="color:Red; display:none;">&nbsp;Required</span></td></tr><tr><td style="padding-left: 15px">&nbsp;<input id="txtUsername" style="width: 229px;" type="text" class="textfield" tabindex="1" onkeydown="captureEvent()" /></td>'+
                        '</tr><tr><td style="width: 303px; height: 24px">&nbsp;<span id="lblErrorMsg" style="display:none; font-size:11px; color:Red">ErrorMessage</span></td></tr><tr><td align="right" class="greycaption" style="padding-right: 20px; text-align: right"><img id="btnLogin" tabindex="2" src="http://www.aikminute.com/images/login_bt.gif" onclick="btnLogin_onclick()" /></td>'+
                        '</tr></table>';
				

				}
				
	}			
				
	function btnLogin_onclick()
   {
    if(document.getElementById('txtUsername').value!="")
        {       
            Hide_n_Display(new Array("txtUsername","txtValidator","btnLogin"),"none");
             document.getElementById('nick').innerText="Loading...";
            document.getElementById('tdLoading').style.textAlign="center";

            CallbackChatServer();
        }
    else
        document.getElementById('txtValidator').style.display='';
   }
   
   		 
function captureEvent()
{            
      if(event.which || event.keyCode)
        {
            if ((event.which == 13) || (event.keyCode == 13))
            {
                document.getElementById('btnLogin').click();return false;
            }
        } 
       
       else {return true};
}


function openchatpage()
    {
     
     createChatLayer(posx-200,posy-220);
     document.getElementById('lblErrorMsg').style.display='none';
     document.getElementById('txtUsername').innerText="";
     Hide_n_Display(new Array("txtUsername","btnLogin"),"block");
     document.getElementById('nick').innerText="Nickname:";
     document.getElementById('tdLoading').style.textAlign="left";
     
    }
    function LoadChatServer(result)
   {
           var resultList=result.split("|");
           if(resultList[0]=="Valid")
                {
                //open chat server
                window.open("http://www.aikminute.com/chat/Server.aspx?action=Login&u="+resultList[1],"Aikminute","width=924,height=670,location=0,menubar=0,resizable=0,scrollbars=0,status=0,titlebar=no,toolbar=no,left=70,top=100");
                //hide chat layer
                imgClose_onclick();
                }
           else if(resultList[0]=="InValid")
            {
            
            document.getElementById('lblErrorMsg').innerText=resultList[1];
            document.getElementById('lblErrorMsg').style.display='';
            document.getElementById('nick').innerText='';
                
            }
   }











;
