
// Class representing info about a technote.
function TechNote (name, folder, dateadded) {
  this.name      = name;
  this.folder    = folder;
  this.dateadded = dateadded;
}

function TechNoteCategory (name) {
  this.name = name;
}


// Array of technotes.
var technotes = [
  new TechNoteCategory("datatypes"),
  new TechNote("octal, decimal, and hexadecimal numbers", 
               "basePrimer", new Date(2001, 4, 1)),
  new TechNote("why is a movieclip a separate datatype", 
               "movieclipDatatype", new Date(2002, 11, 3)),
  
  new TechNoteCategory("strings"),
  new TechNote("using special characters in actionscript",
               "usingSpecialCharacters", new Date(2003, 0, 30, 1)),
  new TechNote("why you shouldn't use System.useCodePage", 
               "againstUseCodePage", new Date(2003, 0, 30, 2)),
  new TechNote("mac string conversion bug", 
               "macStringBug", new Date(2001, 4, 1)),

  new TechNoteCategory("operators"),
  new TechNote("using the bitwise operators", 
               "bitwise", new Date(2002, 11, 13)),

  new TechNoteCategory("loop statements"),
  new TechNote("buttons and flash 5 for-in loops", 
               "buttonsAndForIn", new Date(2001, 8, 9)),

  new TechNoteCategory("arrays"),
  new TechNote("Array.sort() misbehaviours in Flash 5", 
               "arraySortBugs", new Date(2001, 7, 22)),
  new TechNote("how do i shuffle an array?", 
               "shuffleArray", new Date(2001, 4, 11)),

  new TechNoteCategory("textfields"),
  new TechNote("loadVariables() fails from asfunction", 
               "loadVarsASFunction", new Date(2001, 7, 22)),
  new TechNote("how do i measure the width of on-screen text?", 
               "getStringWidth", new Date(2001, 9, 1)),
  new TechNote("how do i display html source in an html text field?", 
               "sourceInHtmlField", new Date(2002, 5, 13)),
  new TechNote("handling enter in multiline text fields", 
               "handleEnterInMultilineFields", new Date(2003, 3, 29)),

  new TechNoteCategory("components"),
  new TechNote("skinning the V2 ProgressBar component", 
               "skinningV2ProgressBar", new Date(2005, 1, 11)),
  new TechNote("what is a Flash mx component", 
               "whatsAcomponent", new Date(2002, 11, 31)),
  new TechNote("how to consolidate data providers", 
               "consolidateProviders", new Date(2004, 5, 4)),
			   
  new TechNoteCategory("directives and pragmas"),
  new TechNote("#include bug (flash 5)", 
               "flash5includeBug", new Date(2002, 1, 14)),
  new TechNote("the undocumented #strict pragma", 
               "strict", new Date(2002, 11, 4)),

  new TechNoteCategory("debugging"),
  new TechNote("display flash player and system information", 
               "echoVersion", new Date(2003, 1, 27)),
  new TechNote("simulating trace() in a browser", 
               "traceInBrowser", new Date(2001, 5, 26)),
  new TechNote("flash 5 debugging techniques", 
               "debugging", new Date(2002, 11, 30)),

  new TechNoteCategory("local data storage"),
  new TechNote("save data to disk (flash 6+)", 
               "saveDataToDisk", new Date(2004, 3, 21)),
  new TechNote("fscommand: save to a file on pc (flash 5)", 
               "fscommandsave", new Date(2001, 4, 31)),

               
  new TechNoteCategory("sound"),
  new TechNote("Sound: pausing a sound", 
               "pauseSound", new Date(2001, 4, 31)),

  new TechNoteCategory("preloading"),
  new TechNote("how do i preload a movie, multiple movies, or attached sounds?", 
               "preloaders", new Date(2001, 4, 31)),

  new TechNoteCategory("masks"),
  new TechNote("duplicateMovieClip() and timeline masks", 
               "masksAndDuplicateMovieClip", new Date(2001, 1, 4)),

  new TechNoteCategory("working with server-side data"),
  new TechNote("cross domain policy files", 
               "crossDomainPolicyFiles/", new Date(2003, 8, 10)),
  new TechNote("loading xml across domains", 
               "crossDomainLoad/", new Date(2003, 1, 18)),
  new TechNote("multiuser communcations in flash", 
               "multiuser/", new Date(2003, 0, 1)),
  new TechNote("a flash hit counter", 
               "../../webdesign/flash/actionscript/hitcounter/", new Date(2002, 9, 19)),
  new TechNote("loadVariables: fails in mac projector", 
               "loadVarsMacProjector", new Date(2002, 0, 18)),
  new TechNote("loadVariables(): receive HTTP errors", 
               "loadVarsHTTPerrors", new Date(2001, 6, 6)),

  new TechNoteCategory("movie playback"),
  new TechNote("how do i measure a movie's framerate?", 
               "measureFPS", new Date(2001, 5, 27)),
  new TechNote("how do i pause a movie clip?", 
               "pauseMovieClip", new Date(2002, 11, 31)),

  new TechNoteCategory("functions"),
  new TechNote("Function.call() vs Function.apply()", 
               "callVsApply", new Date(2002, 10, 28)),
  new TechNote("function literals vs function statements", 
               "functionLiteralVsFunctionStatement", new Date(2002, 11, 31)),

  new TechNoteCategory("interface development"),
  new TechNote("repositioning content when a movie is resized", 
               "relayout", new Date(2003, 1, 4)),

  new TechNoteCategory("javascript and browsers"),
  new TechNote("sending and receiving javascript commands", 
               "../../webdesign/flash/fscommand/", new Date(1999, 0, 8)),
  new TechNote("popping up browser windows", 
               "popupWindows", new Date(1998, 3, 13)),
  new TechNote("importing javascript cookies", 
               "../../webdesign/flash/cookies/", new Date(2000, 6, 31)),
  new TechNote("detecting the flash player in a browser", 
               "playerDetection/", new Date(2000, 3, 26)),
  new TechNote("flash bugs in internet explorer 4.5 for macintosh", 
               "../../webdesign/flash/macie/", new Date(2000, 3, 7)),
  new TechNote("filling the entire browser window", 
               "../../webdesign/flash/fillthewindow.html", new Date(1998, 6, 22)),

  new TechNoteCategory("flash 4 (and older) programming"),
  new TechNote("actionscript for flash&nbsp;4", 
               "flash4actionscript", new Date(1999, 11, 12)),
  new TechNote("programmatic motion in flash&nbsp;4", 
               "../../webdesign/flash/actionscript/move/", new Date(1999, 9, 28)),
  new TechNote("collision detection in flash&nbsp;4", 
               "../../webdesign/flash/actionscript/collision/", new Date(1999, 6, 23)),
  new TechNote("trigonometric library for flash&nbsp;4", 
               "../../webdesign/flash/actionscript/trig/", new Date(2000, 4, 29)),
  new TechNote("basic text scrolling in flash&nbsp;4", 
               "../../webdesign/flash/actionscript/scrolltext/basicscroll.html", new Date(1999, 5, 13)),
  new TechNote("pressandhold scrolling for flash&nbsp; 4", 
               "../../webdesign/flash/actionscript/scrolltext/pressandhold.html", new Date(1999, 5, 13)),
  new TechNote("text ticker for flash&nbsp;4", 
               "../../webdesign/flash/actionscript/textticker", new Date(1999, 9, 27)),
  new TechNote("time/frame tracker for flash&nbsp;4", 
               "../../webdesign/flash/actionscript/timetracker", new Date(1999, 9, 15)),
  new TechNote("production tips for flash&nbsp;4", 
               "../../webdesign/flash/productiontips", new Date(2000, 2, 14)),
  new TechNote("flash 3 menu, scroller, clock, and film effect", 
               "flash3", new Date(1998, 9, 10))


];

