﻿// executed on page load
function loadPersonTest()
{
  // testing Student
  Sys.Debug.trace("Working with Student Joe");
  var student = new AjaxTutorial.Student("Joe");
  student.add_change(OnChangeHandler);
  student.set_name("Joe v2");
  student.describeYourself();

  Sys.Debug.trace("---");

  // testing Instructor  
  Sys.Debug.trace("Working with Instructor Pamela");
  var instructor = new AjaxTutorial.Instructor("Pamela");
  instructor.startWorking();
      
  Sys.Debug.trace("---");

  // testing Manager  
  Sys.Debug.trace("Working with Manager Mr. Barneson");
  var manager = new AjaxTutorial.Manager("Mr. Barneson");
  manager.add_change(OnChangeHandler);
  manager.startWorking();
  manager.describeYourself();
  manager.set_name("Mr. Listentomecarefully");
}

// handler for change event of Person and SmartPerson
function OnChangeHandler(sender, args)
{
  // display info for events fired by Person
  if (AjaxTutorial.Person.isInstanceOfType(sender))
  {
    Sys.Debug.trace(
      String.format("Person changed its {0} from {1} to {2}",
        args.get_propertyName(), args.get_oldValue(), 
        args.get_newValue()));
  }
  
  // display info for events fired by Person
  else if (AjaxTutorial.SmartPerson.isInstanceOfType(sender))
  {
    Sys.Debug.trace(
      String.format(
        "SmartPerson {0} changed its {1} from {2} to {3}",
        sender, args.get_propertyName(),  
        args.get_oldValue(), args.get_newValue())); 
  }
}