@ -5,16 +5,21 @@ var Conn = (function() { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  var  pingIv ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  var  xoff  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  var  autoXoffTout ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  var  reconTout ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  var  pageShown  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  function  onOpen ( evt )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    console . log ( "CONNECTED" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    doSend ( "i" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  function  onClose ( evt )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    console . warn ( "SOCKET CLOSED, code "  +  evt . code  +  ". Reconnecting..." ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setTimeout ( function ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    clearTimeout ( reconTout ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    reconTout  =  setTimeout ( function  ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      init ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							 } ,  200 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     } ,  20 00 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // this happens when the buffer gets fucked up via invalid unicode.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // we basically use polling instead of socket then
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  }   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -27,12 +32,18 @@ var Conn = (function() { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  'T' :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  'S' :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          Screen . load ( evt . data ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          if ( ! pageShown )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            showPage ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            pageShown  =  true ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  '-' :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          //console.log('xoff');
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          xoff  =  true ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										autoXoffTout  =  setTimeout ( function ( ) { xoff = false ; } ,  250 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          autoXoffTout  =  setTimeout ( function  ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            xoff  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          } ,  250 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					          break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        case  '+' :   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -81,24 +92,16 @@ var Conn = (function() { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      showPage ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      return ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							heartbeat ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    clearTimeout ( reconTout ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    clearTimeout ( heartbeatTout ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ws  =  new  WebSocket ( "ws://"  +  _root  +  "/term/update.ws" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ws . onopen  =  onOpen ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ws . onclose  =  onClose ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ws . onmessage  =  onMessage ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    console . log ( "Opening socket." ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							// Ask for initial data
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							$ . get ( 'http://' + _root + '/term/init' ,  function ( resp ,  status )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								if  ( status  !==  200 )  location . reload ( true ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								console . log ( "Data received!" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Screen . load ( resp ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    heartbeat ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								showPage ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							} ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  function  heartbeat ( )  {   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -119,7 +122,7 @@ var Conn = (function() { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      } ,  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        timeout :  100 ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					      } ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							} ,  5 00 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } ,  10 00 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					  return  {