////////////////////////////////////////////////////////////
// Main
// 0 - disconnected, 1 - connected
var Connected = 0; 

// 0 - Unable to connect, 
// 1 - Connection closed by remote party/network, 
// 2 - Disconnected by user request
var DisconnectReason    = 0; 
var DefaultScreenNumber = 4;


//=====================Displaying Waiting Text===============

function hideOnError()
{
  	objControl.style.visibility = 'hidden';
	objControl.style.display = 'none';
}

//===========================================================
// OnWindowLoad
//
function window_onload() 
{
  try
  {
	if( View )
		Connect();
  }
  catch(e)
  {
	alert("Error Connecting " + e.description + " Please Try Again Later and Click 'YES' Button on Security Prompt!");
  }
	hideOnError()
}

//===========================================================
// Set default view when we've already connected
//
function View_OnServerReady() 
{
   SetSingleCamView ( 0 );  
}

//===========================================================
// Events
//
function View_OnServerConnected() 
{
   Connected = 1;   
}

//===========================================================
// Events
//
function View_OnServerDisconnected() 
{
   Connected = 0;   
   switch(DisconnectReason)
   {
     case 0:
       alert("Could not connect to remote host");
       break;
    
    case 1:
      alert("Network connection has been closed.");
      break;
   }
}

//====================================================
// GetAllPrameters
//
function GetParam(sName, sDefaultValue)
{
   var sResult = sDefaultValue;
   var sParamString = location.search;
  
   if( sParamString != "" )
   {
     var r = "?" + sName + "=";
     var i = sParamString.indexOf(r);
     if(i < 0)
     {
       r = "&" + sName + "=";
       i = sParamString.indexOf(r);
     }
     if(i >= 0)
     {
       var t = sParamString.substring(i + r.length);
       var j = t.indexOf("&");
       if(j >= 0)
         t = t.substr(0, j);
       sResult = unescape(t);
     }
    }
    return sResult;
}

//===========================================================
// Called through page objects
//
function Connect()
{

   var Hostname = GetParam("CmbHost",     "66.161.190.210");
   var Username = GetParam("EdtUsername", "Remote");
   var Password = GetParam("EdtPassword", "Remote");

   // NOTE: We may be connected, so in order to reconnect we
   //       are closing possible current connection
   DisconnectReason = 2;
   View.Disconnect();
  
   DisconnectReason = 0;
   View.Connect( Hostname, Username, Password);
   
   SetMultiCamView( DefaultScreenNumber );
}

//===========================================================
//
//
function Disconnect()
{
   Connected = 0;     
   DisconnectReason = 2;
   View.Disconnect();
}

//===========================================================
// Set Single camera view ( 360 X 480 )
//
function SetSingleCamView (CamNumber)
{
   if ( Connected == 0 )
   {
      return;
   }

   View.SetCamera (0, CamNumber);
   View.ScreenSet.ScreenCount  = "1";
   View.ScreenSet.ScreenHeight = "360";
   View.ScreenSet.ScreenWidth  = "480";
}

//===========================================================
// Set Multi camera view ( 360 X 480 )
//
function SetMultiCamView( nScreens )
{
   if ( Connected == 0 )
   {
     return;
   }

   var nSplitParts = 1;

   switch( nScreens )
   {
     case 4:
       nSplitParts = 2;
       break;
     case 8:
       nSplitParts = 3;
       break;
     case 12:
       nSplitParts = 4;
       break;
     case 16:
       nSplitParts = 4;
       break;
   }

    //var nWidth = 480 / nSplitParts;  
    //var nHeight= 360 / nSplitParts; 

    for ( Index = 0; Index < nScreens; Index++ )
    { 	  
       View.SetCamera( Index, Index ); 
    }
    	
    View.ScreenSet.ScreenHeight = "180";
    View.ScreenSet.ScreenWidth  = "240";
    View.ScreenSet.ScreenCount  = nScreens;
   
}