//---------------------------------------------------------------------------------
//  (c) 2008 Guardian Networks
//---------------------------------------------------------------------------------
 
function CheckForIE7( tempurl )
{
  var pos = navigator.userAgent.indexOf( 'MSIE' );
  
  var version = '';

  if ( pos > -1 )
  {
    version = navigator.userAgent.substring( pos + 5 ).substring( 0, 1 );
  }

  if ( version == '7' )
  {
    if ( window.XMLHttpRequest )
    {
      self.location = tempurl + '/IE7.asp';
    } 
  }
}

CreateNamespace( 'MainPage' );
MainPage = 
{ 
  Initialize : function()
  {
  },
  
  CheckKey : function()
  {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    
    if ( ( keyCode == 13 ) && ( document.all.txtName.value != '' ) )
    {
      if ( document.all.txtPassword.value != '' )
      {
        MainPage.SubmitOnClick( document.all.txtName.value, document.all.txtPassword.value );
      }
      else
      {
        document.all( 'txtPassword' ).focus();
      }
    } 
  },
  
  SubmitOnClick : function( UserName, Password )
  {
    $e('LoginError').innerText = '';
    $e('loading').style.display='block';
    $e('login').style.display='none';
    
    var ParamString = '<UserName>' + UserName +  '</UserName>';
    ParamString += '<Password>' + Password + '</Password>';
    
    XMLRequest.SetNewSessionKey( 0 );
    XMLRequest.Send( 'Auth' , 'Login' , ParamString , 'GetSessionID' );
    
    return false;
  },
  
  SetFocus : function ()
  {
    if ( document.getElementById('txtName').value  != '' )
    {
     document.LoginForm.txtPassword.focus();
    }
    else
    {
      document.LoginForm.txtName.focus();
    }
  },

  SessionID : function( XmlResponse )
  {
    var Error = XmlResponse.GetElement( 'LoginError' , 0 );

    
    if ( Error.length == 0 )
    {
        var Result = XmlResponse.GetElements( 'Result' );
      
	    XMLRequest.SetNewSessionKey( Result[0].getAttribute( 'SessionKey' ) );
	    
	    $e('txtSessionKey').value = Result[ 0 ].getAttribute( 'SessionKey' );

        var dftInstallation = XmlResponse.GetElements( 'DefaultInstallation' );
      
	    $e( 'DefaultInstallationID' ).value = dftInstallation[0].getAttribute ( "Id" );


	    var pmInstallationType = XmlResponse.GetElements( 'PMInstallationType' );

                                           
	    $e( 'PMInstallationType' ).value = pmInstallationType[0].getAttribute ( "Type" );
	    
	    var PermissionItems = XmlResponse.GetElements( 'PermissionItems' );
	    
	    $e( 'MenuPermissions' ).value = PermissionItems[0].getAttribute( 'TabItems' );
	    
	    var WebServiceAddress = XmlResponse.GetElements( 'WebServiceAddress' );
	    
	    $e( 'WebServiceAddress' ).value = WebServiceAddress[ 0 ].text;   
	    
      XMLRequest.Send( 'Users', 'GetAssetTypes', '', 'DevicePermissionsResponse' );
	  }
	  else
	  {
	    $show('login');
			$hide('loading');
      
	    alert( 'Invalid Login: ' + Error );
	  }
  },
   
  PDAEventAcknowledge : function( XmlResponse )
  {   
	  var Error = XmlResponse.GetElement( 'LoginError' , 0 );
	  if ( Error.length != 0 )
	  {
		  alert( 'Invalid Login: ' + Error );
	  }
	  else
	  {
		  var PDAError = XmlResponse.GetElement( 'NoPDA' , 0 );
		  if ( PDAError.length != 0 )
		  {
			  alert( 'Login Error: ' + PDAError );
		  }
		  else
		  {
			  var PDACommand = XmlResponse.GetElement( 'PDACommand' , 0 );
			  if ( PDACommand.length != 0 )
			  {
				  alert( PDACommand );
				  
				  $e( 'txtName' ).value = '';
				  $e( 'txtPassword' ).value = '';
			  }
		  }
	  }	
  },
   
  ProcessDevicePermissions : function( XmlResponse )
  {
		var WOPermissions = XmlResponse.GetElements('WOPermissions');
		if (WOPermissions.length > 0)
		{
			$e('WOCommandPermissions').value = WOPermissions[0].getAttribute('Commands');
			$e('WOFunctionalPermissions').value = WOPermissions[0].getAttribute('Functional');
			$e('WOReportsPermissions').value = WOPermissions[0].getAttribute('Report');
		}
		
		var PMPermissions = XmlResponse.GetElements('PMPermissions');
		if (PMPermissions.length > 0)
		{
			$e('PMGeneralPermissions').value = PMPermissions[0].getAttribute('PMGeneral');
			$e('PMFunctionalPermissions').value = PMPermissions[0].getAttribute('PMFunctional');
			$e('PMReportsPermissions').value = PMPermissions[0].getAttribute('PMReport');
			$e('PMAdminPermissions').value = PMPermissions[0].getAttribute('PMAdmin');
		}
		
		var VTPermissions = XmlResponse.GetElements('VTPermissions');
		if (VTPermissions.length > 0)
		{
			$e('VTFunctionalPermissions').value = VTPermissions[0].getAttribute('VTFunctional');
			$e('VTReportsPermissions').value = VTPermissions[0].getAttribute('VTReport');
		}		
		
    var PermissionItems = XmlResponse.GetElements( 'AssetTypes' );
    
    $e( 'DevicePermissions' ).value = PermissionItems[0].getAttribute( 'AssetTypes' );
		if ($v( 'DevicePermissions' ).indexOf("Vehicles") > -1 )
    {
			XMLRequest.Send( 'Users', 'GetVehicleTypes', '', 'VehicleTypesResponse' );
		}
		else
		{
		  $e( 'LoginForm' ).submit();
		}
	},
	
	ProcessVehicleTypes : function (XmlResponse)
	{
		var VehicleItems = XmlResponse.GetElements ( 'VehicleTypes' );

		if ( $l( VehicleItems ) > 0 )
		{
			$e( 'VehicleTypes' ).value = VehicleItems[0].getAttribute( 'VehicleTypes' );
		}
		else
		{
			$e( 'VehicleTypes' ).value = '';
		}

		$e( 'LoginForm' ).submit();
	}
}
  
Gutenberg.Subscribe ( 'GetSessionID', MainPage.SessionID );
Gutenberg.Subscribe ( 'ACKPDAEvent', MainPage.PDAEventAcknowledge );
Gutenberg.Subscribe ( 'Initialize', MainPage.Initialize );
Gutenberg.Subscribe ( 'DevicePermissionsResponse', MainPage.ProcessDevicePermissions );
Gutenberg.Subscribe ( 'VehicleTypesResponse', MainPage.ProcessVehicleTypes );

Gutenberg.Start(300);

MainPage.Initialize();



 