From: "Saved by Windows Internet Explorer 8"
Subject: Table of Contents
Date: Tue, 4 Sep 2012 11:27:23 -0400
MIME-Version: 1.0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://mgt.buffalo.edu/Sites/MBA/Handbook2012-13/
X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=3D(0014)about:internet --><HTML=20
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Table of =
Contents</TITLE><!--=20
    Smart developers always View Source.=20
   =20
    This application was built using Adobe Flex, an open source =
framework
    for building rich Internet applications that get delivered via the
    Flash Player or to desktops via Adobe AIR.=20
   =20
    Learn more about Flex at http://flex.org=20
    // -->
<META content=3D"text/html; charset=3Dutf-8" http-equiv=3DContent-Type>
<META name=3DKeywords content=3D"">
<META name=3DDescription content=3D"">
<META name=3DGENERATOR content=3D"MSHTML 8.00.7601.17874"><!-- Include =
CSS to eliminate any default margins/padding and set the height of the =
html element and=20
       the body element to 100%, because Firefox, or any Gecko based =
browser, interprets percentage as=20
    the percentage of the height of its parent container, which has to =
be set explicitly.  Initially,=20
    don't display flashContent div so it won't show if JavaScript =
disabled.
  -->
<STYLE type=3Dtext/css media=3Dscreen>HTML {
	HEIGHT: 100%
}
BODY {
	HEIGHT: 100%
}
BODY {
	TEXT-ALIGN: center; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; =
MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; OVERFLOW: auto; =
PADDING-TOP: 0px
}
#flashContent {
	DISPLAY: none
}
</STYLE>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
        =20
         /*! SWFObject v2.2 <http://code.google.com/p/swfobject/>=20
 is released under the MIT License =
<http://www.opensource.org/licenses/mit-license.php>=20
*/

var swfobject =3D function() {
=20
 var UNDEF =3D "undefined",
  OBJECT =3D "object",
  SHOCKWAVE_FLASH =3D "Shockwave Flash",
  SHOCKWAVE_FLASH_AX =3D "ShockwaveFlash.ShockwaveFlash",
  FLASH_MIME_TYPE =3D "application/x-shockwave-flash",
  EXPRESS_INSTALL_ID =3D "SWFObjectExprInst",
  ON_READY_STATE_CHANGE =3D "onreadystatechange",
 =20
  win =3D window,
  doc =3D document,
  nav =3D navigator,
 =20
  plugin =3D false,
  domLoadFnArr =3D [main],
  regObjArr =3D [],
  objIdArr =3D [],
  listenersArr =3D [],
  storedAltContent,
  storedAltContentId,
  storedCallbackFn,
  storedCallbackObj,
  isDomLoaded =3D false,
  isExpressInstallActive =3D false,
  dynamicStylesheet,
  dynamicStylesheetMedia,
  autoHideShow =3D true,
=20
 /* Centralized function for browser feature detection
  - User agent string detection is only used when no good alternative is =
possible
  - Is executed directly for optimal performance
 */=20
 ua =3D function() {
  var w3cdom =3D typeof doc.getElementById !=3D UNDEF && typeof =
doc.getElementsByTagName !=3D UNDEF && typeof doc.createElement !=3D =
UNDEF,
   u =3D nav.userAgent.toLowerCase(),
   p =3D nav.platform.toLowerCase(),
   windows =3D p ? /win/.test(p) : /win/.test(u),
   mac =3D p ? /mac/.test(p) : /mac/.test(u),
   webkit =3D /webkit/.test(u) ? =
parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // =
returns either the webkit version or false if not webkit
   ie =3D !+"\v1", // feature detection based on Andrea Giammarchi's =
solution: =
http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browse=
r-is-ie.html
   playerVersion =3D [0,0,0],
   d =3D null;
  if (typeof nav.plugins !=3D UNDEF && typeof =
nav.plugins[SHOCKWAVE_FLASH] =3D=3D OBJECT) {
   d =3D nav.plugins[SHOCKWAVE_FLASH].description;
   if (d && !(typeof nav.mimeTypes !=3D UNDEF && =
nav.mimeTypes[FLASH_MIME_TYPE] && =
!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // =
navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin =
indicates whether plug-ins are enabled or disabled in Safari 3+
    plugin =3D true;
    ie =3D false; // cascaded feature detection for Internet Explorer
    d =3D d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
    playerVersion[0] =3D parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
    playerVersion[1] =3D parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), =
10);
    playerVersion[2] =3D /[a-zA-Z]/.test(d) ? =
parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
   }
  }
  else if (typeof win.ActiveXObject !=3D UNDEF) {
   try {
    var a =3D new ActiveXObject(SHOCKWAVE_FLASH_AX);
    if (a) { // a will return null when ActiveX is disabled
     d =3D a.GetVariable("$version");
     if (d) {
      ie =3D true; // cascaded feature detection for Internet Explorer
      d =3D d.split(" ")[1].split(",");
      playerVersion =3D [parseInt(d[0], 10), parseInt(d[1], 10), =
parseInt(d[2], 10)];
     }
    }
   }
   catch(e) {}
  }
  return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, =
mac:mac };
 }(),
=20
 /* Cross-browser onDomLoad
  - Will fire an event as soon as the DOM of a web page is loaded
  - Internet Explorer workaround based on Diego Perini's solution: =
http://javascript.nwbox.com/IEContentLoaded/
  - Regular onload serves as fallback
 */=20
 onDomLoad =3D function() {
  if (!ua.w3) { return; }
  if ((typeof doc.readyState !=3D UNDEF && doc.readyState =3D=3D =
"complete") || (typeof doc.readyState =3D=3D UNDEF && =
(doc.getElementsByTagName("body")[0] || doc.body))) { // function is =
fired after onload, e.g. when script is inserted dynamically=20
   callDomLoadFunctions();
  }
  if (!isDomLoaded) {
   if (typeof doc.addEventListener !=3D UNDEF) {
    doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, =
false);
   } =20
   if (ua.ie && ua.win) {
    doc.attachEvent(ON_READY_STATE_CHANGE, function() {
     if (doc.readyState =3D=3D "complete") {
      doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
      callDomLoadFunctions();
     }
    });
    if (win =3D=3D top) { // if not inside an iframe
     (function(){
      if (isDomLoaded) { return; }
      try {
       doc.documentElement.doScroll("left");
      }
      catch(e) {
       setTimeout(arguments.callee, 0);
       return;
      }
      callDomLoadFunctions();
     })();
    }
   }
   if (ua.wk) {
    (function(){
     if (isDomLoaded) { return; }
     if (!/loaded|complete/.test(doc.readyState)) {
      setTimeout(arguments.callee, 0);
      return;
     }
     callDomLoadFunctions();
    })();
   }
   addLoadEvent(callDomLoadFunctions);
  }
 }();
=20
 function callDomLoadFunctions() {
  if (isDomLoaded) { return; }
  try { // test if we can really add/remove elements to/from the DOM; we =
don't want to fire it too early
   var t =3D =
doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
   t.parentNode.removeChild(t);
  }
  catch (e) { return; }
  isDomLoaded =3D true;
  var dl =3D domLoadFnArr.length;
  for (var i =3D 0; i < dl; i++) {
   domLoadFnArr[i]();
  }
 }
=20
 function addDomLoadEvent(fn) {
  if (isDomLoaded) {
   fn();
  }
  else {=20
   domLoadFnArr[domLoadFnArr.length] =3D fn; // Array.push() is only =
available in IE5.5+
  }
 }
=20
 /* Cross-browser onload
  - Based on James Edwards' solution: =
http://brothercake.com/site/resources/scripts/onload/
  - Will fire an event as soon as a web page including all of its assets =
are loaded=20
  */
 function addLoadEvent(fn) {
  if (typeof win.addEventListener !=3D UNDEF) {
   win.addEventListener("load", fn, false);
  }
  else if (typeof doc.addEventListener !=3D UNDEF) {
   doc.addEventListener("load", fn, false);
  }
  else if (typeof win.attachEvent !=3D UNDEF) {
   addListener(win, "onload", fn);
  }
  else if (typeof win.onload =3D=3D "function") {
   var fnOld =3D win.onload;
   win.onload =3D function() {
    fnOld();
    fn();
   };
  }
  else {
   win.onload =3D fn;
  }
 }
=20
 /* Main function
  - Will preferably execute onDomLoad, otherwise onload (as a fallback)
 */
 function main() {=20
  if (plugin) {
   testPlayerVersion();
  }
  else {
   matchVersions();
  }
 }
=20
 /* Detect the Flash Player version for non-Internet Explorer browsers
  - Detecting the plug-in version via the object element is more precise =
than using the plugins collection item's description:
    a. Both release and build numbers can be detected
    b. Avoid wrong descriptions by corrupt installers provided by Adobe
    c. Avoid wrong descriptions by multiple Flash Player entries in the =
plugin Array, caused by incorrect browser imports
  - Disadvantage of this method is that it depends on the availability =
of the DOM, while the plugins collection is immediately available
 */
 function testPlayerVersion() {
  var b =3D doc.getElementsByTagName("body")[0];
  var o =3D createElement(OBJECT);
  o.setAttribute("type", FLASH_MIME_TYPE);
  var t =3D b.appendChild(o);
  if (t) {
   var counter =3D 0;
   (function(){
    if (typeof t.GetVariable !=3D UNDEF) {
     var d =3D t.GetVariable("$version");
     if (d) {
      d =3D d.split(" ")[1].split(",");
      ua.pv =3D [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], =
10)];
     }
    }
    else if (counter < 10) {
     counter++;
     setTimeout(arguments.callee, 10);
     return;
    }
    b.removeChild(o);
    t =3D null;
    matchVersions();
   })();
  }
  else {
   matchVersions();
  }
 }
=20
 /* Perform Flash Player and SWF version matching; static publishing =
only
 */
 function matchVersions() {
  var rl =3D regObjArr.length;
  if (rl > 0) {
   for (var i =3D 0; i < rl; i++) { // for each registered object =
element
    var id =3D regObjArr[i].id;
    var cb =3D regObjArr[i].callbackFn;
    var cbObj =3D {success:false, id:id};
    if (ua.pv[0] > 0) {
     var obj =3D getElementById(id);
     if (obj) {
      if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk =
< 312)) { // Flash Player version >=3D published SWF version: Houston, =
we have a match!
       setVisibility(id, true);
       if (cb) {
        cbObj.success =3D true;
        cbObj.ref =3D getObjectById(id);
        cb(cbObj);
       }
      }
      else if (regObjArr[i].expressInstall && canExpressInstall()) { // =
show the Adobe Express Install dialog if set by the web page author and =
if supported
       var att =3D {};
       att.data =3D regObjArr[i].expressInstall;
       att.width =3D obj.getAttribute("width") || "0";
       att.height =3D obj.getAttribute("height") || "0";
       if (obj.getAttribute("class")) { att.styleclass =3D =
obj.getAttribute("class"); }
       if (obj.getAttribute("align")) { att.align =3D =
obj.getAttribute("align"); }
       // parse HTML object param element's name-value pairs
       var par =3D {};
       var p =3D obj.getElementsByTagName("param");
       var pl =3D p.length;
       for (var j =3D 0; j < pl; j++) {
        if (p[j].getAttribute("name").toLowerCase() !=3D "movie") {
         par[p[j].getAttribute("name")] =3D p[j].getAttribute("value");
        }
       }
       showExpressInstall(att, par, id, cb);
      }
      else { // Flash Player and SWF version mismatch or an older Webkit =
engine that ignores the HTML object element's nested param elements: =
display alternative content instead of SWF
       displayAltContent(obj);
       if (cb) { cb(cbObj); }
      }
     }
    }
    else { // if no Flash Player is installed or the fp version cannot =
be detected we let the HTML object element do its job (either show a SWF =
or alternative content)
     setVisibility(id, true);
     if (cb) {
      var o =3D getObjectById(id); // test whether there is an HTML =
object element or not
      if (o && typeof o.SetVariable !=3D UNDEF) {=20
       cbObj.success =3D true;
       cbObj.ref =3D o;
      }
      cb(cbObj);
     }
    }
   }
  }
 }
=20
 function getObjectById(objectIdStr) {
  var r =3D null;
  var o =3D getElementById(objectIdStr);
  if (o && o.nodeName =3D=3D "OBJECT") {
   if (typeof o.SetVariable !=3D UNDEF) {
    r =3D o;
   }
   else {
    var n =3D o.getElementsByTagName(OBJECT)[0];
    if (n) {
     r =3D n;
    }
   }
  }
  return r;
 }
=20
 /* Requirements for Adobe Express Install
  - only one instance can be active at a time
  - fp 6.0.65 or higher
  - Win/Mac OS only
  - no Webkit engines older than version 312
 */
 function canExpressInstall() {
  return !isExpressInstallActive && hasPlayerVersion("6.0.65") && =
(ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
 }
=20
 /* Show the Adobe Express Install dialog
  - Reference: =
http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=3D6a253b75
 */
 function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
  isExpressInstallActive =3D true;
  storedCallbackFn =3D callbackFn || null;
  storedCallbackObj =3D {success:false, id:replaceElemIdStr};
  var obj =3D getElementById(replaceElemIdStr);
  if (obj) {
   if (obj.nodeName =3D=3D "OBJECT") { // static publishing
    storedAltContent =3D abstractAltContent(obj);
    storedAltContentId =3D null;
   }
   else { // dynamic publishing
    storedAltContent =3D obj;
    storedAltContentId =3D replaceElemIdStr;
   }
   att.id =3D EXPRESS_INSTALL_ID;
   if (typeof att.width =3D=3D UNDEF || (!/%$/.test(att.width) && =
parseInt(att.width, 10) < 310)) { att.width =3D "310"; }
   if (typeof att.height =3D=3D UNDEF || (!/%$/.test(att.height) && =
parseInt(att.height, 10) < 137)) { att.height =3D "137"; }
   doc.title =3D doc.title.slice(0, 47) + " - Flash Player =
Installation";
   var pt =3D ua.ie && ua.win ? "ActiveX" : "PlugIn",
    fv =3D "MMredirectURL=3D" + =
encodeURI(window.location).toString().replace(/&/g,"%26") + =
"&MMplayerType=3D" + pt + "&MMdoctitle=3D" + doc.title;
   if (typeof par.flashvars !=3D UNDEF) {
    par.flashvars +=3D "&" + fv;
   }
   else {
    par.flashvars =3D fv;
   }
   // IE only: when a SWF is loading (AND: not available in cache) wait =
for the readyState of the object element to become 4 before removing it,
   // because you cannot properly cancel a loading SWF file without =
breaking browser load references, also obj.onreadystatechange doesn't =
work
   if (ua.ie && ua.win && obj.readyState !=3D 4) {
    var newObj =3D createElement("div");
    replaceElemIdStr +=3D "SWFObjectNew";
    newObj.setAttribute("id", replaceElemIdStr);
    obj.parentNode.insertBefore(newObj, obj); // insert placeholder div =
that will be replaced by the object element that loads =
expressinstall.swf
    obj.style.display =3D "none";
    (function(){
     if (obj.readyState =3D=3D 4) {
      obj.parentNode.removeChild(obj);
     }
     else {
      setTimeout(arguments.callee, 10);
     }
    })();
   }
   createSWF(att, par, replaceElemIdStr);
  }
 }
=20
 /* Functions to abstract and display alternative content
 */
 function displayAltContent(obj) {
  if (ua.ie && ua.win && obj.readyState !=3D 4) {
   // IE only: when a SWF is loading (AND: not available in cache) wait =
for the readyState of the object element to become 4 before removing it,
   // because you cannot properly cancel a loading SWF file without =
breaking browser load references, also obj.onreadystatechange doesn't =
work
   var el =3D createElement("div");
   obj.parentNode.insertBefore(el, obj); // insert placeholder div that =
will be replaced by the alternative content
   el.parentNode.replaceChild(abstractAltContent(obj), el);
   obj.style.display =3D "none";
   (function(){
    if (obj.readyState =3D=3D 4) {
     obj.parentNode.removeChild(obj);
    }
    else {
     setTimeout(arguments.callee, 10);
    }
   })();
  }
  else {
   obj.parentNode.replaceChild(abstractAltContent(obj), obj);
  }
 }=20

 function abstractAltContent(obj) {
  var ac =3D createElement("div");
  if (ua.win && ua.ie) {
   ac.innerHTML =3D obj.innerHTML;
  }
  else {
   var nestedObj =3D obj.getElementsByTagName(OBJECT)[0];
   if (nestedObj) {
    var c =3D nestedObj.childNodes;
    if (c) {
     var cl =3D c.length;
     for (var i =3D 0; i < cl; i++) {
      if (!(c[i].nodeType =3D=3D 1 && c[i].nodeName =3D=3D "PARAM") && =
!(c[i].nodeType =3D=3D 8)) {
       ac.appendChild(c[i].cloneNode(true));
      }
     }
    }
   }
  }
  return ac;
 }
=20
 /* Cross-browser dynamic SWF creation
 */
 function createSWF(attObj, parObj, id) {
  var r, el =3D getElementById(id);
  if (ua.wk && ua.wk < 312) { return r; }
  if (el) {
   if (typeof attObj.id =3D=3D UNDEF) { // if no 'id' is defined for the =
object element, it will inherit the 'id' from the alternative content
    attObj.id =3D id;
   }
   if (ua.ie && ua.win) { // Internet Explorer + the HTML object element =
+ W3C DOM methods do not combine: fall back to outerHTML
    var att =3D "";
    for (var i in attObj) {
     if (attObj[i] !=3D Object.prototype[i]) { // filter out prototype =
additions from other potential libraries
      if (i.toLowerCase() =3D=3D "data") {
       parObj.movie =3D attObj[i];
      }
      else if (i.toLowerCase() =3D=3D "styleclass") { // 'class' is an =
ECMA4 reserved keyword
       att +=3D ' class=3D"' + attObj[i] + '"';
      }
      else if (i.toLowerCase() !=3D "classid") {
       att +=3D ' ' + i + '=3D"' + attObj[i] + '"';
      }
     }
    }
    var par =3D "";
    for (var j in parObj) {
     if (parObj[j] !=3D Object.prototype[j]) { // filter out prototype =
additions from other potential libraries
      par +=3D '<param name=3D"' + j + '" value=3D"' + parObj[j] + '" =
/>';
     }
    }
    el.outerHTML =3D '<object =
classid=3D"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + =
par + '<\/object>';
    objIdArr[objIdArr.length] =3D attObj.id; // stored to fix object =
'leaks' on unload (dynamic publishing only)
    r =3D getElementById(attObj.id);=20
   }
   else { // well-behaving browsers
    var o =3D createElement(OBJECT);
    o.setAttribute("type", FLASH_MIME_TYPE);
    for (var m in attObj) {
     if (attObj[m] !=3D Object.prototype[m]) { // filter out prototype =
additions from other potential libraries
      if (m.toLowerCase() =3D=3D "styleclass") { // 'class' is an ECMA4 =
reserved keyword
       o.setAttribute("class", attObj[m]);
      }
      else if (m.toLowerCase() !=3D "classid") { // filter out IE =
specific attribute
       o.setAttribute(m, attObj[m]);
      }
     }
    }
    for (var n in parObj) {
     if (parObj[n] !=3D Object.prototype[n] && n.toLowerCase() !=3D =
"movie") { // filter out prototype additions from other potential =
libraries and IE specific param element
      createObjParam(o, n, parObj[n]);
     }
    }
    el.parentNode.replaceChild(o, el);
    r =3D o;
   }
  }
  return r;
 }
=20
 function createObjParam(el, pName, pValue) {
  var p =3D createElement("param");
  p.setAttribute("name", pName);=20
  p.setAttribute("value", pValue);
  el.appendChild(p);
 }
=20
 /* Cross-browser SWF removal
  - Especially needed to safely and completely remove a SWF in Internet =
Explorer
 */
 function removeSWF(id) {
  var obj =3D getElementById(id);
  if (obj && obj.nodeName =3D=3D "OBJECT") {
   if (ua.ie && ua.win) {
    obj.style.display =3D "none";
    (function(){
     if (obj.readyState =3D=3D 4) {
      removeObjectInIE(id);
     }
     else {
      setTimeout(arguments.callee, 10);
     }
    })();
   }
   else {
    obj.parentNode.removeChild(obj);
   }
  }
 }
=20
 function removeObjectInIE(id) {
  var obj =3D getElementById(id);
  if (obj) {
   for (var i in obj) {
    if (typeof obj[i] =3D=3D "function") {
     obj[i] =3D null;
    }
   }
   obj.parentNode.removeChild(obj);
  }
 }
=20
 /* Functions to optimize JavaScript compression
 */
 function getElementById(id) {
  var el =3D null;
  try {
   el =3D doc.getElementById(id);
  }
  catch (e) {}
  return el;
 }
=20
 function createElement(el) {
  return doc.createElement(el);
 }
=20
 /* Updated attachEvent function for Internet Explorer
  - Stores attachEvent information in an Array, so on unload the =
detachEvent functions can be called to avoid memory leaks
 */=20
 function addListener(target, eventType, fn) {
  target.attachEvent(eventType, fn);
  listenersArr[listenersArr.length] =3D [target, eventType, fn];
 }
=20
 /* Flash Player and SWF content version matching
 */
 function hasPlayerVersion(rv) {
  var pv =3D ua.pv, v =3D rv.split(".");
  v[0] =3D parseInt(v[0], 10);
  v[1] =3D parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" =
instead of "9.0.0"
  v[2] =3D parseInt(v[2], 10) || 0;
  return (pv[0] > v[0] || (pv[0] =3D=3D v[0] && pv[1] > v[1]) || (pv[0] =
=3D=3D v[0] && pv[1] =3D=3D v[1] && pv[2] >=3D v[2])) ? true : false;
 }
=20
 /* Cross-browser dynamic CSS creation
  - Based on Bobby van der Sluis' solution: =
http://www.bobbyvandersluis.com/articles/dynamicCSS.php
 */=20
 function createCSS(sel, decl, media, newStyle) {
  if (ua.ie && ua.mac) { return; }
  var h =3D doc.getElementsByTagName("head")[0];
  if (!h) { return; } // to also support badly authored HTML pages that =
lack a head element
  var m =3D (media && typeof media =3D=3D "string") ? media : "screen";
  if (newStyle) {
   dynamicStylesheet =3D null;
   dynamicStylesheetMedia =3D null;
  }
  if (!dynamicStylesheet || dynamicStylesheetMedia !=3D m) {=20
   // create dynamic stylesheet + get a global reference to it
   var s =3D createElement("style");
   s.setAttribute("type", "text/css");
   s.setAttribute("media", m);
   dynamicStylesheet =3D h.appendChild(s);
   if (ua.ie && ua.win && typeof doc.styleSheets !=3D UNDEF && =
doc.styleSheets.length > 0) {
    dynamicStylesheet =3D doc.styleSheets[doc.styleSheets.length - 1];
   }
   dynamicStylesheetMedia =3D m;
  }
  // add style rule
  if (ua.ie && ua.win) {
   if (dynamicStylesheet && typeof dynamicStylesheet.addRule =3D=3D =
OBJECT) {
    dynamicStylesheet.addRule(sel, decl);
   }
  }
  else {
   if (dynamicStylesheet && typeof doc.createTextNode !=3D UNDEF) {
    dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + =
"}"));
   }
  }
 }
=20
 function setVisibility(id, isVisible) {
  if (!autoHideShow) { return; }
  var v =3D isVisible ? "visible" : "hidden";
  if (isDomLoaded && getElementById(id)) {
   getElementById(id).style.visibility =3D v;
  }
  else {
   createCSS("#" + id, "visibility:" + v);
  }
 }

 /* Filter to avoid XSS attacks
 */
 function urlEncodeIfNecessary(s) {
  var regex =3D /[\\\"<>\.;]/;
  var hasBadChars =3D regex.exec(s) !=3D null;
  return hasBadChars && typeof encodeURIComponent !=3D UNDEF ? =
encodeURIComponent(s) : s;
 }
=20
 /* Release memory to avoid memory leaks caused by closures, fix hanging =
audio/video threads and force open sockets/NetConnections to disconnect =
(Internet Explorer only)
 */
 var cleanup =3D function() {
  if (ua.ie && ua.win) {
   window.attachEvent("onunload", function() {
    // remove listeners to avoid memory leaks
    var ll =3D listenersArr.length;
    for (var i =3D 0; i < ll; i++) {
     listenersArr[i][0].detachEvent(listenersArr[i][1], =
listenersArr[i][2]);
    }
    // cleanup dynamically embedded objects to fix audio/video threads =
and force open sockets and NetConnections to disconnect
    var il =3D objIdArr.length;
    for (var j =3D 0; j < il; j++) {
     removeSWF(objIdArr[j]);
    }
    // cleanup library's main closures to avoid memory leaks
    for (var k in ua) {
     ua[k] =3D null;
    }
    ua =3D null;
    for (var l in swfobject) {
     swfobject[l] =3D null;
    }
    swfobject =3D null;
   });
  }
 }();
=20
 return {
  /* Public API
   - Reference: http://code.google.com/p/swfobject/wiki/documentation
  */=20
  registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, =
callbackFn) {
   if (ua.w3 && objectIdStr && swfVersionStr) {
    var regObj =3D {};
    regObj.id =3D objectIdStr;
    regObj.swfVersion =3D swfVersionStr;
    regObj.expressInstall =3D xiSwfUrlStr;
    regObj.callbackFn =3D callbackFn;
    regObjArr[regObjArr.length] =3D regObj;
    setVisibility(objectIdStr, false);
   }
   else if (callbackFn) {
    callbackFn({success:false, id:objectIdStr});
   }
  },
 =20
  getObjectById: function(objectIdStr) {
   if (ua.w3) {
    return getObjectById(objectIdStr);
   }
  },
 =20
  embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, =
swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
   var callbackObj =3D {success:false, id:replaceElemIdStr};
   if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr =
&& widthStr && heightStr && swfVersionStr) {
    setVisibility(replaceElemIdStr, false);
    addDomLoadEvent(function() {
     widthStr +=3D ""; // auto-convert to string
     heightStr +=3D "";
     var att =3D {};
     if (attObj && typeof attObj =3D=3D=3D OBJECT) {
      for (var i in attObj) { // copy object to avoid the use of =
references, because web authors often reuse attObj for multiple SWFs
       att[i] =3D attObj[i];
      }
     }
     att.data =3D swfUrlStr;
     att.width =3D widthStr;
     att.height =3D heightStr;
     var par =3D {};=20
     if (parObj && typeof parObj =3D=3D=3D OBJECT) {
      for (var j in parObj) { // copy object to avoid the use of =
references, because web authors often reuse parObj for multiple SWFs
       par[j] =3D parObj[j];
      }
     }
     if (flashvarsObj && typeof flashvarsObj =3D=3D=3D OBJECT) {
      for (var k in flashvarsObj) { // copy object to avoid the use of =
references, because web authors often reuse flashvarsObj for multiple =
SWFs
       if (typeof par.flashvars !=3D UNDEF) {
        par.flashvars +=3D "&" + k + "=3D" + flashvarsObj[k];
       }
       else {
        par.flashvars =3D k + "=3D" + flashvarsObj[k];
       }
      }
     }
     if (hasPlayerVersion(swfVersionStr)) { // create SWF
      var obj =3D createSWF(att, par, replaceElemIdStr);
      if (att.id =3D=3D replaceElemIdStr) {
       setVisibility(replaceElemIdStr, true);
      }
      callbackObj.success =3D true;
      callbackObj.ref =3D obj;
     }
     else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe =
Express Install
      att.data =3D xiSwfUrlStr;
      showExpressInstall(att, par, replaceElemIdStr, callbackFn);
      return;
     }
     else { // show alternative content
      setVisibility(replaceElemIdStr, true);
     }
     if (callbackFn) { callbackFn(callbackObj); }
    });
   }
   else if (callbackFn) { callbackFn(callbackObj); }
  },
 =20
  switchOffAutoHideShow: function() {
   autoHideShow =3D false;
  },
 =20
  ua: ua,
 =20
  getFlashPlayerVersion: function() {
   return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
  },
 =20
  hasFlashPlayerVersion: hasPlayerVersion,
 =20
  createSWF: function(attObj, parObj, replaceElemIdStr) {
   if (ua.w3) {
    return createSWF(attObj, parObj, replaceElemIdStr);
   }
   else {
    return undefined;
   }
  },
 =20
  showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
   if (ua.w3 && canExpressInstall()) {
    showExpressInstall(att, par, replaceElemIdStr, callbackFn);
   }
  },
 =20
  removeSWF: function(objElemIdStr) {
   if (ua.w3) {
    removeSWF(objElemIdStr);
   }
  },
 =20
  createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
   if (ua.w3) {
    createCSS(selStr, declStr, mediaStr, newStyleBoolean);
   }
  },
 =20
  addDomLoadEvent: addDomLoadEvent,
 =20
  addLoadEvent: addLoadEvent,
 =20
  getQueryParamValue: function(param) {
   var q =3D doc.location.search || doc.location.hash;
   if (q) {
    if (/\?/.test(q)) { q =3D q.split("?")[1]; } // strip question mark
    if (param =3D=3D null) {
     return urlEncodeIfNecessary(q);
    }
    var pairs =3D q.split("&");
    for (var i =3D 0; i < pairs.length; i++) {
     if (pairs[i].substring(0, pairs[i].indexOf("=3D")) =3D=3D param) {
      return =
urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=3D") + 1)));
     }
    }
   }
   return "";
  },
 =20
  // For internal usage only
  expressInstallCallback: function() {
   if (isExpressInstallActive) {
    var obj =3D getElementById(EXPRESS_INSTALL_ID);
    if (obj && storedAltContent) {
     obj.parentNode.replaceChild(storedAltContent, obj);
     if (storedAltContentId) {
      setVisibility(storedAltContentId, true);
      if (ua.ie && ua.win) { storedAltContent.style.display =3D "block"; =
}
     }
     if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
    }
    isExpressInstallActive =3D false;
   }=20
  }
 };
}();

//]]>

</SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
					 var ua =3D navigator.userAgent.toLowerCase(),
		platform =3D navigator.platform.toLowerCase(),
		UA =3D =
ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|=
version[\s\/:]([\w\d\.]+)|$)/) || [null, 'unknown', 0],
		mode =3D UA[1] =3D=3D 'ie' && document.documentMode;
	=09
		var BR =3D {
				extend: Function.prototype.extend,
				name: (UA[1] =3D=3D 'version') ? UA[3] : UA[1],
				version: mode || parseFloat((UA[1] =3D=3D 'opera' && UA[4]) ? UA[4] =
: UA[2]),
				Platform: {
					name: ua.match(/ip(?:ad|od|hone)/) ? 'ios' : =
(ua.match(/(?:webos|android|bada|symbian|palm|blackberry)/) || =
platform.match(/mac|win|linux/) || ['other'])[0]
				},
				Features: {
					xpath: !!(document.evaluate),
					air: !!(window.runtime),
					query: !!(document.querySelector),
					json: !!(window.JSON)
				},
				Plugins: {}
			};
      // BR.Platform.name =3D'ios';    =20
        if(BR.Platform.name =3D=3D 'ios'||BR.Platform.name =3D=3D =
'android') window.location =3D "mobile/index.html";
        if( BR.Platform.name =3D=3D 'webos' || BR.Platform.name =3D=3D =
'bada' || BR.Platform.name =3D=3D 'symbian' || BR.Platform.name =3D=3D =
'palm' || BR.Platform.name =3D=3D 'blackberry') window.location =3D =
dir+"assets/seo/page1.html";
	=09


          function getURLParam(strParamName){
       var strReturn =3D "";
      var strHref =3D window.location.href;
       if ( strHref.indexOf("?") > -1 ){
       var strQueryString =3D =
strHref.substr(strHref.indexOf("?")).toLowerCase();
       var aQueryString =3D strQueryString.split("&");
       for ( var iParam =3D 0; iParam < aQueryString.length; iParam++ ){
       if (  aQueryString[iParam].indexOf(strParamName.toLowerCase() + =
"=3D") > -1 ){
       var aParam =3D aQueryString[iParam].split("=3D");
       strReturn =3D aParam[1];
       break;
       }
       }
       }
       return unescape(strReturn);
     }=20
     var pageIndex=3DgetURLParam('pageIndex');
     if(!pageIndex){
      pageIndex=3D1;
     }
     var alwaysShowBookMark=3DgetURLParam('alwaysShowBookMark');
      if(!alwaysShowBookMark){
       alwaysShowBookMark=3Dfalse;
     }
     var alwaysShowThumbnails=3DgetURLParam('alwaysShowThumbnails');
      if(!alwaysShowThumbnails){
       alwaysShowThumbnails=3Dfalse;
     }
     var alwaysMinimeStyle=3DgetURLParam('alwaysMinimeStyle');
      if(!alwaysMinimeStyle){
       alwaysMinimeStyle=3Dfalse;
     }
     var currentHTMLURL=3DencodeURI(window.location.href);
      if(!currentHTMLURL){
       currentHTMLURL=3D'';
     }
    =20
     var pice=3DgetURLParam('pice');
      if(!pice){
       pice=3Dfalse;
     }
     var lang=3DgetURLParam('lang');
      if(!lang){
       lang=3D"NONE";
     }
     var itemValues=3DgetURLParam('itemValues');
      if(!itemValues){
       itemValues=3D"NONE";
     }
    =20
    =20
        =20
        =20
            <!-- For version detection, set to min. required Flash =
Player version, or 0 (or 0.0.0), for no version detection. -->=20
            var swfVersionStr =3D "9.0.0";
            <!-- To use express install, set to =
playerProductInstall.swf, otherwise the empty string. -->
            var xiSwfUrlStr =3D "";
            var flashvars =3D =
{pageIndex:pageIndex,alwaysShowBookMark:alwaysShowBookMark,alwaysShowThum=
bnails:alwaysShowThumbnails,
            =
alwaysMinimeStyle:alwaysMinimeStyle,currentHTMLURL:currentHTMLURL,pice:pi=
ce,lang:lang,itemValues:itemValues};
            var params =3D {};
            params.quality =3D "high";
            params.bgcolor =3D "#ffffff";
            params.allowscriptaccess =3D "always";
            params.allowfullscreen =3D "true";=20
            params.wmode =3D "transparent2";         =20
            var attributes =3D {};
            attributes.id =3D "FlipBookBuilder";
            attributes.name =3D "FlipBookBuilder";
            attributes.align =3D "middle";
            swfobject.embedSWF(
                "book.swf", "flashContent",=20
                "100%", "100%",=20
                swfVersionStr, xiSwfUrlStr,=20
                flashvars, params, attributes);
   <!-- JavaScript enabled so display the flashContent div in case it is =
not replaced with a swf object. -->
   swfobject.createCSS("#flashContent", =
"display:block;text-align:left;");
//]]>
</SCRIPT>
</HEAD>
<BODY><!-- SWFObject's dynamic embed method replaces this alternative =
HTML content with Flash content when enough=20
    JavaScript and Flash plug-in support is available. The div is =
initially hidden so that it doesn't show
    when JavaScript is disabled.
  -->
<DIV id=3DflashContent>
<P>To view this page ensure that Adobe Flash Player version 9.0.0 or =
greater is=20
installed.</P>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
=20
    var pageHost =3D ((document.location.protocol =3D=3D "https:") ? =
"https://" : "http://");=20
    document.write("<a =
href=3D'http://www.adobe.com/go/getflashplayer'>Get Adobe Flash =
Player<\/a>" );=20
//]]>
</SCRIPT>
</DIV><NOSCRIPT>
<OBJECT id=3DFlipBookBuilder =
classid=3Dclsid:D27CDB6E-AE6D-11cf-96B8-444553540000=20
width=3D"100%" height=3D"100%"><PARAM NAME=3D"movie" =
VALUE=3D"book.swf"><PARAM NAME=3D"quality" VALUE=3D"high"><PARAM =
NAME=3D"bgcolor" VALUE=3D"#ffffff"><PARAM NAME=3D"allowScriptAccess" =
VALUE=3D"always"><PARAM NAME=3D"allowFullScreen" VALUE=3D"true">
<!--[if !IE]>--><object type=3D"application/x-shockwave-flash" =
data=3D"book.swf"=20
width=3D"100%" height=3D"100%"><param name=3D"quality" value=3D"high" =
/><param=20
name=3D"bgcolor" value=3D"#ffffff" /><param name=3D"allowScriptAccess" =
value=3D"always"=20
/><param name=3D"allowFullScreen" value=3D"true" /><param name=3D"wmode" =

value=3D"transparent2" /><!--<![endif]--><!--[if gte IE 6]>--><p>Either =
scripts=20
and active content are not permitted to run orAdobe Flash Player version =
9.0.0=20
or greater is not installed.</p><!--<![endif]--> <a href=3D
"http://www.adobe.com/go/getflashplayer">Get Adobe Flash =
Player</a><!--[if=20
!IE]>--></object> <!--<![endif]--><!--[if !IE]>-->
<object type=3D"application/x-shockwave-flash" data=3D"book.swf" =
width=3D
"100%" height=3D"100%"><param name=3D"quality" value=3D"high" />
<param name=3D"bgcolor" value=3D"#ffffff" />
<param name=3D"allowScriptAccess" value=3D"always" />
<param name=3D"allowFullScreen" value=3D"true" />
<param name=3D"wmode" value=3D"transparent2" />
<!--<![endif]--><!--[if gte IE 6]><!--[if !IE]>--></object> =
<!--<![endif]--></OBJECT></NOSCRIPT></BODY></HTML>
