
var MEScot1="Sorry, your current browser does not support this content. \nPlease upgrade your browser. Refer to the CengageNOW System Requirements to determine the appropriate browser and version for your system.";

var browserDOMVersion;
if (document.getElementById)
browserDOMVersion = "getElementById";
else if (document.all)
browserDOMVersion = "all";
else if (document.layers)
browserDOMVersion = "layers";
else
browserDOMVersion = "";

if (!(document.getElementById))
document.getElementById = getDocElement;

function getDocElement( elemID )
{
if (document.all)
return document.all[elemID];
else if (document.layers)
return document.layers[elemID];
else
alert(MEScot1);
}

function getAnswerForSafari(uid){
i = 1;
ans = null;
while (i < 6 ) {
script = "ans = " + uid + ".getAnswer" + i + "();";
try {
eval( script);
return ans;
}catch (e) {
ans = null;
}
i ++;
}
return ans;
}
function getInvokeMethodForSafari(uid,err,args){
i = 1;
ermessage = null;
while (i < 6 ) {
script = "ermessage = " + uid + ".invokePluginMethod" + i + "(\""+err+"\",\" "+args+"\");";
try {
eval( script);
return;
}catch (e) {
ermessage = null;
}
i ++;
}
return;
}
function setFocusToFirstApplet(){
var applets = document.getElementsByTagName("APPLET");
if (applets.length==0)
return;
for (var i=0; i < applets.length; i++) {
try{
if (!applets[i].isComplete()){
setTimeout("setFocusToFirstApplet()", 100);
return;
}
}
catch(e){
continue;
}

}
try {
var applet=applets[0];
applet.invokeAppletMethod('focusGainedForJS','');
}
catch(e){
return;
};
};

if(typeof(HTMLElement) != "undefined") {
if (!HTMLElement.prototype.insertAdjacentElement) {
HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
{
switch (where)
{
case 'beforeBegin':
this.parentNode.insertBefore(parsedNode,this);
break;
case 'afterBegin':
this.insertBefore(parsedNode,this.firstChild);
break;
case 'beforeEnd':
this.appendChild(parsedNode);
break;
case 'afterEnd':
if (this.nextSibling) 
this.parentNode.insertBefore(parsedNode,this.nextSibling);
else 
this.parentNode.appendChild(parsedNode);
break;
}
}

HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
{
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.insertAdjacentElement(where,parsedHTML);
}


HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
{
var parsedText = document.createTextNode(txtStr);
this.insertAdjacentElement(where,parsedText);
}
}
} else {
function insertAdjacentText(target, where, txtStr) {
var parsedText = document.createTextNode(txtStr);
insertAdjacentElement(target, where, parsedText);
}

function insertAdjacentHTML(target, where, htmlStr) {
var r = target.ownerDocument.createRange();
r.setStartBefore(target);
var parsedHTML = r.createContextualFragment(htmlStr);
insertAdjacentElement(target, where, parsedHTML);
}

function insertAdjacentElement(target, where, parsedNode) {
switch (where) {
case 'beforeBegin':
target.parentNode.insertBefore(parsedNode, target);
break;
case 'afterBegin':
target.insertBefore(parsedNode, target.firstChild);
break;
case 'beforeEnd':
target.appendChild(parsedNode);
break;
case 'afterEnd':
if (target.nextSibling) 
target.parentNode.insertBefore(parsedNode, target.nextSibling);
else 
target.parentNode.appendChild(parsedNode);
break;
}
}
}

if (encodeURIComponent == null)
{
function utf8(wide)
{
var c, s;
var enc = "";
var i = 0;
while(i < wide.length)
{
c = wide.charCodeAt(i++);
if (c >= 0xDC00 && c < 0xE000)
continue;
if (c >= 0xD800 && c < 0xDC00)
{
if (i >= wide.length)
continue;
s = wide.charCodeAt(i++);
if (s < 0xDC00 || c >= 0xDE00)
continue;
c = ((c - 0xD800) << 10) + (s - 0xDC00) + 0x10000;
}
if (c < 0x80) enc += String.fromCharCode(c);
else if (c < 0x800)
enc += String.fromCharCode(0xC0+(c >> 6),0x80 + (c & 0x3F));
else if
(c < 0x10000) enc += String.fromCharCode(0xE0 + (c >> 12), 0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));
else
enc += String.fromCharCode(0xF0 + (c >> 18), 0x80 + (c >> 12 & 0x3F), 0x80 + (c >> 6 & 0x3F), 0x80+(c & 0x3F));
}
return enc;
}

function toHex(n)
{
var hexChars = "0123456789ABCDEF";

return hexChars.charAt(n >> 4) + hexChars.charAt(n & 0xF);
}

function encodeURIComponent(inputString)
{

if(inputString == null)
return "";

var validURIcharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";

var convertedInputString = utf8(inputString);
var newEncoding = "";
for (var i = 0; i < inputString.length; i++)
{
if (validURIcharacters.indexOf(convertedInputString.charAt(i)) == -1)
newEncoding += "%" + toHex(convertedInputString.charCodeAt(i));
else
newEncoding += convertedInputString.charAt(i);
}
return newEncoding;
}
}
