/**
 * DO NOT EDIT THIS FILE!
 * This is a generated file.  Your changes will be overwritten.
 */

var ControllerCommon = {loadTemplate: function(url, opts){var req = new Ajax.Request(url, {method: 'get',
onComplete: function(req){var data = req.responseText;var query = /(?:^|\n)\s*#\s*[a-z0-9_ ]+?\s*-{2,}\s*\n/ig;var templates = data.split(query);if(document.all){templates = [''].concat(templates);}
var titles = [''].concat(data.match(query).map(function(t){return t.match(/[a-z0-9_ ]+/i)[0].trim();}));if(!this.templates) this.templates = {};if(templates.length > 1){for(var i = 1;i < templates.length;i++){this.templates[titles[i]] = new Template(templates[i]);}
}
else{this.templates[opts.name] = data;}
if(opts.onComplete){opts.onComplete(opts.name);}
}.bind(this)
});}
};
var ModalBackdrop = Class.create();Object.extend(ModalBackdrop.prototype, {initialize: function(element, opts){return;element = (element) ? $(element) : element;this.opts = opts || {};this.isFlashHidden = false;this.scrollers = [];if($('modalBackdrop') && !element){this.element = $('modalBackdrop');}
else{this.container_element = element;this.element = document.createElement('div');this.element.style.zIndex = 100;if(!this.container_element){this.element.id = 'modalBackdrop';}
if(document.all)
this.element.className = 'modalBackdropIE';else
this.element.className = 'modalBackdrop';if(this.opts.className) {if(document.all)
Element.addClassName(this.element, this.opts.className +'IE');else
Element.addClassName(this.element, this.opts.className);}
if(this.opts.zindex) {this.element.style.zIndex = this.opts.zindex;}
this.element.style.display = 'none';Event.observe(window, 'resize', this.resize.bind(this));Event.observe(window, 'scroll', this.resize.bind(this));this.attach();}
Event.observe(this.element, 'click', this.handleClick.bindAsEventListener(this));},
attach: function(){if(document.body){if(this.container_element){this.container_element.appendChild(this.element);}
else{document.body.appendChild(this.element);}
}
else{Event.observe(window, 'load', function(){if(this.container_element){this.container_element.appendChild(this.element);}
else{document.body.appendChild(this.element);}
}.bind(this));}
},
resize: function(){if(this.container_element){this.element.style.height = this.container_element.offsetHeight +'px';this.element.style.width = this.container_element.offsetWidth +'px';}
else{this.element.style.width = document.documentElement.offsetWidth +'px';this.element.style.width = document.documentElement.scrollWidth +'px';if(document.documentElement.scrollHeight){this.element.style.height = document.documentElement.offsetHeight +'px';var ps = this.getPageSize();var height = ps[1] > document.documentElement.scrollHeight ? ps[1] : document.documentElement.scrollHeight;this.element.style.height = height +'px';}
else{this.element.style.height = window.innerHeight +window.scrollY +'px';}
}
},
getPageSize: function(){var xScroll, yScroll;if (window.innerHeight && window.scrollMaxY) {xScroll = document.body.scrollWidth;yScroll = window.innerHeight +window.scrollMaxY;} else if (document.body.scrollHeight > document.body.offsetHeight){// all but Explorer Mac
xScroll = document.body.scrollWidth;yScroll = document.body.scrollHeight;} else {// Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
xScroll = document.body.offsetWidth;yScroll = document.body.offsetHeight;}
var windowWidth, windowHeight;if (self.innerHeight) {// all except Explorer
windowWidth = self.innerWidth;windowHeight = self.innerHeight;} else if (document.documentElement && document.documentElement.clientHeight) {// Explorer 6 Strict Mode
windowWidth = document.documentElement.clientWidth;windowHeight = document.documentElement.clientHeight;} else if (document.body) {// other Explorers
windowWidth = document.body.clientWidth;windowHeight = document.body.clientHeight;}
if(yScroll < windowHeight){pageHeight = windowHeight;} else {pageHeight = yScroll;}
if(xScroll < windowWidth){pageWidth = windowWidth;} else {pageWidth = xScroll;}
arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;},
enable: function(options){options = options || {};this.removeClickEvent();if(options.clickEventHandler)
this.addClickEvent(options.clickEventHandler);this.element.style.display = 'block';this.resize();$NL(document.getElementsByClassName('scroller', this.container_element)).each(function(e){if(e.style.display != 'none'){e.style.display = 'none';this.scrollers.push(e);return true;}
return false;}.bind(this));if(!this.container_element){this.hideAllFlashInSafari();}
},
disable: function(){this.element.style.display = 'none';this.removeClickEvent();while(e = this.scrollers.shift()){e.style.display = '';}
if(!this.container_element){this.showAllFlashInSafari();}
},
removeClickEvent: function() {if(this.clickEvent) {Event.stopObserving(this.clickEvent);this.clickEvent = null;}
},
addClickEvent: function(clickEventHandler) {if(clickEventHandler) {this.clickEvent = Event.observe(this.element, 'click', clickEventHandler);}
},
hideAllFlashInSafari: function() {try{if (!this.isFlashHidden){var flashObjs = $A(document.getElementsByTagName('OBJECT')).concat($A(document.getElementsByTagName('EMBED')));flashObjs.each(function(flashObj) {flashObj.parentNode.style.visibility = 'hidden';});this.isFlashHidden = true;}
} catch(e) {}
},
showAllFlashInSafari: function() {try{if (this.isFlashHidden){var flashObjs = $A(document.getElementsByTagName('OBJECT')).concat($A(document.getElementsByTagName('EMBED')));flashObjs.each(function(flashObj) {flashObj.parentNode.style.visibility = 'visible';});this.isFlashHidden = false;}
} catch(e) {}
},
isMacBrowser: function() {if(navigator.userAgent.toLowerCase().indexOf('mac') > -1) {return true;}
return false;},
handleClick: function(event){if(this.opts.onClick){this.opts.onClick(event);}
}
});
var PopupCommon = {positionCenter: function(element){this.positionCenterX(element);this.positionCenterY(element);},
positionCenterX: function(element){var win_width = element.parentNode.offsetWidth;var box_width = element.offsetWidth;var scrollX = (element.parentNode == document.body)?document.documentElement.scrollLeft:0;element.style.left = Math.floor((win_width/2) - (box_width/2)) +'px';},
positionCenterY: function(element){var win_height = element.parentNode.offsetHeight;var box_height = element.offsetHeight;var scrollY = (element.parentNode == document.body)?document.documentElement.scrollTop:0;var pos = Math.floor((win_height/2) - (box_height/2) +scrollY);element.style.top = (pos > 0 ? pos : '0') +'px';},
positionAboveElement: function(element, target){var left = DOM.getLeftX(target);var top = DOM.getTopY(target);var leftpos = (left - (element.offsetWidth / 2 ) - 5);var toppos = (top - (element.offsetHeight));var scrollX = (document.all)?document.documentElement.scrollLeft:window.pageXOffset;var scrollY = (document.all)?document.documentElement.scrollTop:window.pageYOffset;var window_width = (document.all)?document.documentElement.clientWidth:window.innerWidth;if(window_width > 0 && (leftpos +element.offsetWidth >= (window_width +scrollX)) ){leftpos = ((window_width +scrollX) - element.offsetWidth) - 15;}
element.style.left = (leftpos > scrollX ? leftpos : scrollX) +'px';element.style.top = (toppos > scrollY ? toppos : scrollY) +'px';},
positionBelowElement: function(element, target){var left = Position.cumulativeOffset(target)[0];var top = Position.cumulativeOffset(target)[1];var leftpos = (left - (element.offsetWidth / 2 ) - 5);var toppos = (top +(target.offsetHeight));var scrollX = (document.all)?document.documentElement.scrollLeft:window.pageXOffset;var scrollY = (document.all)?document.documentElement.scrollTop:window.pageYOffset;var window_width = (document.all)?document.documentElement.clientWidth:window.innerWidth;if(leftpos +element.offsetWidth >= (window_width +scrollX)){leftpos = ((window_width +scrollX) - element.offsetWidth) - 15;}
element.style.left = (leftpos > scrollX ? leftpos : scrollX) +'px';element.style.top = (toppos > scrollY ? toppos : scrollY) +'px';}
};
var GlossaryPopup = Class.create();Object.extend(GlossaryPopup.prototype, PopupCommon);Object.extend(GlossaryPopup.prototype, ControllerCommon);Object.extend(GlossaryPopup.prototype, {initialize:function(){this.loadTemplate('/configurator/includes/glossary_definition.html', {name: 'glossary_definitions', onComplete: this.init_onpartials.bind(this)});this.events = [];this.element = document.createElement('div');this.element.className = 'glossary_definition';this.element.style.display = 'none';this.modalBackdrop;if(document.body){document.body.appendChild(this.element);}
else{Event.observe(window, 'load', function(){document.body.appendChild(this.element);}.bind(this));}
},
init_onpartials: function(){this.partials_loaded = true;},
reposition: function(element){try {this.positionAboveElement(this.element, element);} catch (e) {Debug.error(e);}
},
showDefinition: function(event,element, def_id){try {Event.stop(event);if(!this.modalBackdrop) {this.modalBackdrop = new ModalBackdrop(document.body, {className: 'glossaryModalBackdrop'});}
if(!this.scroll_box){this.element.innerHTML = this.templates['glossary_definitions'].evaluate({});}
var def = GlossaryTerm.getInstance(def_id);if(def){$('glossary_popup_content').innerHTML = this.templates['content'].evaluate(def);this.element.style.visibility = 'hidden';this.element.style.display = '';this.reposition(Event.element(event));this.modalBackdrop.enable({clickEventHandler:this.dismiss.bind(this)});this.element.style.visibility = '';this.scroll_box = new ScrollBox($('glossary_popup_content'));}
else{Debug.error('Could not find GlossaryTerm with id: ' +def_id);}
} catch (e) {Debug.error(e);}
},
dismiss: function(){this.events.each(function(e){Event.stopObserving(e);});this.events = [];if(this.scroll_box)
this.scroll_box.destroy();if(this.modalBackdrop)
this.modalBackdrop.disable();this.element.style.display = 'none';}
});var Glossary = new GlossaryPopup();
var ApplicationCommon = {fatalError: function(status){var messages = {510: 'Your session has expired.'
};var trace_num = status.message.match(/[0-9]+/);var trace_string = trace_num.length ? ' ('+trace_num+')' : '';ErrorDialog.trigger({name: 'Error',
description: messages[status.code] || 'An error has occurred while loading this page.' +trace_string,
closable: false,
options: [
{text: 'Return to Build Your Toyota Start Page', clickAction: function(){window.location.href = '/byt/pub/init.do';return false;}}
]
});},
redirect: function(url){window.location = url;return false;},
fix_pngs: function(){var pngs = document.getElementsByClassName('png', document.body, 'img');pngs.each(function(png){DOM.IEPNG(png);});}
};
var Cookie = Class.create();Object.extend(Cookie.prototype, {initialize: function(name){this.name = name;this.update();},
update: function(){this.value = this.read();},
read: function(){var nameEQ = this.name +"=";var ca = document.cookie.split(';');for(var i=0;i < ca.length;i++) {var c = ca[i];while (c.charAt(0)==' ') c = c.substring(1,c.length);if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);}
return null;},
set: function(value, days){if(!days) days = 30;if (days) {var date = new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires = ";expires="+date.toGMTString();}
else var expires = "";document.cookie = this.name+"="+value+expires+";path=/";this.value = value;},
erase: function(){this.set('', -1);}
});
if(window.console && !document.all && !(navigator.userAgent.toLowerCase().indexOf('safari') > -1)){Debug = console;Debug.log = Debug.debug;}
else{function Debug() {}
Debug.DEBUG_NONE = 0;Debug.DEBUG_ERROR = 1;Debug.DEBUG_WARN = 3;Debug.DEBUG_DEBUG = 5;Debug.DEBUG_ALL = 10;if(!Debug.debug_level){Debug.debug_level = Debug.DEBUG_NONE;}
Debug.log = function (message, objects) {if(Debug.debug_level < 10) return;if(document.all){if(window.Logger)
Logger.log( message);return;}
else if (navigator.userAgent.toLowerCase().indexOf('safari') > -1)
window.console.log("INFO: " +message);else if(window.console)
console.log.apply(window, arguments);};Debug.debug = function (message, objects) {if(Debug.debug_level < 5) return;if(document.all){if(window.Logger)
Logger.log( message);return;}
else if (navigator.userAgent.toLowerCase().indexOf('safari') > -1)
window.console.log("DEBUG: " +message);else if(window.console)
console.debug.apply(window, arguments);};Debug.warn = function (message, objects) {if(Debug.debug_level < 3) return;if(document.all){if(window.Logger)
Logger.log( message);return;}
else if (navigator.userAgent.toLowerCase().indexOf('safari') > -1)
window.console.log("WARNING: " +message);else if(window.console)
console.warn.apply(window, arguments);};Debug.error = function (message, objects) {if(Debug.debug_level < 1) return;if(document.all){if(window.Logger)
Logger.log( message);else{alert(message);}
return;}
else if (navigator.userAgent.toLowerCase().indexOf('safari') > -1)
window.console.log("ERROR: " +message);else if(window.console)
console.error.apply(window, arguments);};Debug.profile = function(){};Debug.profileEnd = function(){};Debug.timer = function(){};Debug.timerEnd = function(){};}

var _ErrorDialog = Class.create();Object.extend(_ErrorDialog.prototype, ControllerCommon);Object.extend(_ErrorDialog.prototype, PopupCommon);Object.extend(_ErrorDialog.prototype, {initialize: function(template_file){this.loadTemplate(template_file, {name: 'err_templates', onComplete: this.init_onpartials.bind(this)});this.events = [];this.element = document.createElement('div');this.element.className = 'error_dialog';this.element.style.display = 'none';if(document.body){this.modal_backdrop = new ModalBackdrop(null, {onClick: this.dismiss.bind(this)});document.body.appendChild(this.element);if(this.needs_trigger){this.trigger(this.needs_trigger);this.needs_trigger = false;}
}
else{Event.observe(window, 'load', function(){this.modal_backdrop = new ModalBackdrop(null, {onClick: this.dismiss.bind(this)});document.body.appendChild(this.element);if(this.needs_trigger){this.trigger(this.needs_trigger);this.needs_trigger = false;}
}.bind(this));}
},
init_onpartials: function(){this.partials_loaded = true;},
reposition: function(){this.positionCenter(this.element);},
trigger: function(opts){if(!this.modal_backdrop){this.needs_trigger = opts;}
this.modal_backdrop.enable();var list_items = [];if(opts.options){opts.options.each(function(o, i){list_items.push(this.templates['err_option'].evaluate(Object.extend({i:i}, o)));}.bind(this));}
this.element.innerHTML = this.templates['error_dialog'].evaluate(Object.extend({option_list: list_items.join('')}, opts));if(opts.closable !== false){this.events.push(Event.observe($('err_close_button'), 'click', this.dismiss.bind(this)));$('err_close_button').style.display = '';}
else{$('err_close_button').style.display = 'none';}
this.onClose = opts.onClose || false;if(opts.options){var links = document.getElementsByClassName('err_option', this.element, 'a');opts.options.each(function(o, i){if(o.clickAction && links[i]){this.events.push(Event.observe(links[i], 'click', o.clickAction));}
else{}
}.bind(this));}
this.element.style.visibility = 'hidden';this.element.style.display = '';this.reposition();this.element.style.visibility = '';},
dismiss: function(){this.events.each(function(e){Event.stopObserving(e);});this.events = [];this.element.style.display = 'none';this.modal_backdrop.disable();if(this.onClose){this.onClose();}
}
});
if(false){}
var requiredMajorVersion = 8;var requiredMinorVersion = 0;var requiredRevision = 0;var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;function ControlVersion()
{var version;var axo;var e;try {axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");version = axo.GetVariable("$version");} catch (e) {}
if (!version)
{try {axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version = "WIN 6,0,21,0";axo.AllowScriptAccess = "always";version = axo.GetVariable("$version");} catch (e) {}
}
if (!version)
{try {axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version = axo.GetVariable("$version");} catch (e) {}
}
if (!version)
{try {axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version = "WIN 3,0,18,0";} catch (e) {}
}
if (!version)
{try {axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");version = "WIN 2,0,0,11";} catch (e) {version = -1;}
}
return version;}
function GetSwfVer(){var flashVer = -1;if (navigator.plugins != null && navigator.plugins.length > 0) {if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";var flashDescription = navigator.plugins["Shockwave Flash" +swVer2].description;var descArray = flashDescription.split(" ");var tempArrayMajor = descArray[2].split(".");var versionMajor = tempArrayMajor[0];var versionMinor = tempArrayMajor[1];if ( descArray[3] != "" ) {tempArrayMinor = descArray[3].split("r");} else {tempArrayMinor = descArray[4].split("r");}
var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;var flashVer = versionMajor +"." +versionMinor +"." +versionRevision;}
}
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;else if ( isIE && isWin && !isOpera ) {flashVer = ControlVersion();}
return flashVer;}
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{versionStr = GetSwfVer();if (versionStr == -1 ) {return false;} else if (versionStr != 0) {if(isIE && isWin && !isOpera) {tempArray = versionStr.split(" ");// ["WIN", "2,0,0,11"]
tempString = tempArray[1];// "2,0,0,11"
versionArray = tempString.split(",");// ['2', '0', '0', '11']
} else {versionArray = versionStr.split(".");}
var versionMajor = versionArray[0];var versionMinor = versionArray[1];var versionRevision = versionArray[2];if (versionMajor > parseFloat(reqMajorVer)) {return true;} else if (versionMajor == parseFloat(reqMajorVer)) {if (versionMinor > parseFloat(reqMinorVer))
return true;else if (versionMinor == parseFloat(reqMinorVer)) {if (versionRevision >= parseFloat(reqRevision))
return true;}
}
return false;}
}
function AC_AddExtension(src, ext)
{if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');else
return src +ext;}
function AC_Generateobj(objAttrs, params, embedAttrs,destination) 
{var str = '<object ';for (var i in objAttrs) {if(i != 'name') {str += i +'="' +objAttrs[i] +'" ';}
}
str += '>';for (var i in params) {if(i != destination)
str += '<param name="' +i +'" value="' +params[i] +'" /> ';}
str += '<embed ';for (var i in embedAttrs) {if(i != destination) {str += i +'="' +embedAttrs[i] +'" ';}
}
str += ' ></embed></object>';if($(destination)) {$(destination).innerHTML = str;}
else {document.write(str);}
}
function AC_FL_RunContent(){var ret =
AC_GetArgs
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs, arguments[arguments.length -1]);}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){var ret = new Object();ret.embedAttrs = new Object();ret.params = new Object();ret.objAttrs = new Object();for (var i=0;i < args.length;i=i+2){var currArg = args[i].toLowerCase();switch (currArg){case "classid":
break;case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];break;case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);ret.embedAttrs["src"] = args[i+1];ret.params[srcParamName] = args[i+1];break;case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblClick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
case "id":
ret.objAttrs[args[i]] = args[i+1];break;case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];break;default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];}
}
ret.objAttrs["classid"] = classid;if (mimeType) ret.embedAttrs["type"] = mimeType;return ret;}

var LoadingPanel = Class.create();Object.extend(LoadingPanel.prototype, {initialize: function(showModalBackdrop){this.showModalBackdrop = showModalBackdrop || false;var waitscreen = document.createElement('div');waitscreen.style.display = 'none';waitscreen.id = "model_chooser_popup_wait";this.element = waitscreen;var waitscreenframe = document.createElement('div');waitscreenframe.id = "model_chooser_popup_wait_frame";waitscreen.appendChild(waitscreenframe);this.modal_backdrop = new ModalBackdrop('app');if(LoadingPanel.dom_loaded){this.init_onload();}
else if(!LoadingPanel.onload_fired) {Event.observe(window, 'load', this.init_onload.bind(this));}
else {setInterval(this.check_domLoad.bind(this), 500);}
},
check_domLoad: function() {if(LoadingPanel.dom_loaded){this.init_onload();}
},
init_onload: function(){if(!this.is_loaded){this.is_loaded = true;document.body.appendChild(this.element);if(this.fire_onload)
this.activate_onload();}
},
activate_onload: function() {if(!this.is_deactivated) {this.activate();}
},
activate: function(){if(!this.is_loaded){this.fire_onload = true;return;}
if(!this.is_active){if(this.showModalBackdrop)this.modal_backdrop.enable();this.element.style.display = 'block';PopupCommon.positionCenter(this.element);this.is_active = true;this.is_deactivated = false;}
},
deactivate: function(){if(this.is_active){this.element.style.display = 'none';if(this.showModalBackdrop)this.modal_backdrop.disable();this.is_active = false;}
this.is_deactivated = true;}
});Event.observe(window, 'load', function() {window.LoadingPanel.onload_fired = true;});Event.onDOMReady(function(){window.LoadingPanel.dom_loaded = true;});
var DataModel = {create: function(class_name){var m = Class.create();Object.extend(m.prototype, ModelCommon);Object.extend(m, {getInstance : function(id, create){return window[class_name].objects.findByProperty('id', id) || (create ? window[class_name].createInstance(id) : null);},
createInstance: function(id){return new window[class_name]({id: id});},
createWithXML: function(node){var id = node.getAttribute('id');var obj = obj = window[class_name].getInstance(id);if(!obj){var obj = new window[class_name];}
obj.initWithXML(node);return obj;},
objects: [],
class_name: class_name
});return m;}
};var ModelCommon = {basic_assign: function(names, node){var node_name = node.nodeName.unCamelCase();if(names.indexOf(node_name) > -1 && node.firstChild){this[node_name] = node.firstChild.data;return true;}
else{return false;}
},
int_assign: function(names, node){var node_name = node.nodeName.unCamelCase();if(names.indexOf(node_name) > -1 && node.firstChild){this[node_name] = parseInt(node.firstChild.data);return true;}
else{return false;}
},
float_assign: function(names, node){var node_name = node.nodeName.unCamelCase();if(names.indexOf(node_name) > -1 && node.firstChild){this[node_name] = parseFloat(node.firstChild.data);return true;}
else{return false;}
},
bool_assign: function(names, node){var node_name = node.nodeName.unCamelCase();if(names.indexOf(node_name) > -1 && node.firstChild){this[node_name] = node.firstChild.data.match(/true|yes/i) ? true : false;return true;}
else{return false;}
},
object_lookup: function(key, id, create){if(window[key]){var obj = window[key].getInstance(id);if(!obj && create){var obj = new window[key]({id:id});}
return obj;}
else{return null;}
},
register: function(classname, obj){this.class_name = classname;window[classname].objects.push(obj);},
getInstance: function(id){return window[this.class_name].objects.findByProperty('id', id) || null;}
};
var _NotificationCenter = Class.create();Object.extend(_NotificationCenter.prototype, {initialize: function(){this.subscribers = [];},
addSubscriber: function(message, object, callback, once){if(!once || this.subscribers.any(function(sub){return (message == sub.message && object == sub.object);}))
this.subscribers.push({message: message, object: object, callback: callback});},
removeSubscriber: function(message, object){this.subscribers = this.subscribers.reject(function(subscriber){if((!message || message == subscriber.message) && object == subscriber.object)
return true;else
return false;});},
sendNotification: function(message, params){var sent = 0;this.subscribers.each(function(subscriber){if(message == subscriber.message){if(typeof subscriber.callback == 'string'){subscriber.object[subscriber.callback].apply(subscriber.object, [subscriber.message].concat(params));++sent;}
else{subscriber.callback.apply(subscriber.object, [subscriber.message].concat(params));++sent;}
}
});}
});var NotificationCenter = new _NotificationCenter();
var Tabset = Class.create();Object.extend(Tabset.prototype, {initialize: function(element, options){this.element = element;this.tabs = document.getElementsByClassName('tab', this.element);this.panels = document.getElementsByClassName('panel', this.element);this.separators = document.getElementsByClassName('tab_sep', this.element);this.options = options || {};this.setCurrentPanel(this.panels.find(function(panel){if(Element.hasClassName(panel, 'default')){this.default_panel = panel;Element.removeClassName(panel, 'default');return true;}
else return false;}.bind(this)) || this.panels.first());this.tabs.each(function(tab){Event.observe(tab, 'click', function(){this.tab_click(tab);}.bind(this));Event.observe(tab, 'mouseover', function(){this.tab_hover(tab);}.bind(this));Event.observe(tab, 'mouseout', function(){this.tab_hoverout(tab);}.bind(this));}.bind(this));$NL(document.getElementsByTagName('area')).each(function(area){var tab = this.tabForName(area.getAttribute('name'));Event.observe(area, 'click', function(){this.tab_click(tab);}.bind(this));Event.observe(area, 'mouseover', function(){this.tab_hover(tab);}.bind(this));Event.observe(area, 'mouseout', function(){this.tab_hoverout(tab);}.bind(this));}.bind(this));NotificationCenter.addSubscriber('PanelComplete Status Change', this, this.panel_oncomplete_status_change);setTimeout(function(){this.precache_images();}.bind(this), 100);},
setCurrentPanel: function(panel){var tab = this.tabForPanel(panel);this.current_panel = panel;this.panels.each(function(panel){if(Element.hasClassName(panel, 'open') && panel != this.current_panel){Element.removeClassName(panel, 'open');}
}.bind(this));Element.addClassName(panel, 'open');this.tabs.each(function(t){var img = $NL(t.getElementsByTagName('img')).first();if(t == tab){Element.addClassName(t, 'current');img.src = img.src.replace(/_(off|hover)\./i, '_on.');}
else{Element.removeClassName(t, 'current');img.src = img.src.replace(/_(on|hover)\./i, '_off.');}
});this.separators.each(function(sep){var tabname = panel.getAttribute('name');var sepname = sep.getAttribute('name');var img = $NL(sep.getElementsByTagName('img')).first();if(sepname.match(new RegExp(tabname +'_.*', 'i'))){img.src = img.src.replace(/(on|off|hover)_(on|off|hover)/i, 'on_off');}
else if(sepname.match(new RegExp('.*_'+tabname, 'i'))){img.src = img.src.replace(/(on|off|hover)_(on|off|hover)/i, 'off_on');}
else if(sepname == tabname){img.src = img.src.replace(/(end)_(on|off|hover)/i, 'end_on');}
else{img.src = img.src.replace(/(on|off|hover)_(on|off|hover)/i, 'off_off');img.src = img.src.replace(/(end)_(on|off|hover)/i, 'end_off');}
});NotificationCenter.sendNotification('Tab Changed', [panel.getAttribute('name')]);},
tab_click: function(tab){var panel = this.panelForTab(tab);if(panel != this.current_panel){if(!this.options.ontabclick || this.options.ontabclick.apply(window, [tab.getAttribute('name')]))
this.setCurrentPanel(panel);}
},
tab_hover: function(tab){if(this.panelForTab(tab) != this.current_panel){var img = $NL(tab.getElementsByTagName('img')).first();img.src = img.src.replace(/_(off)\./i, '_hover.');this.separators.each(function(sep){var tabname = tab.getAttribute('name');var sepname = sep.getAttribute('name');var img = $NL(sep.getElementsByTagName('img')).first();if(sepname.match(new RegExp(tabname +'_.*', 'i'))){img.src = img.src.replace(/(on|off|hover)_(on|off|hover)/i, 'hover_$2');}
else if(sepname.match(new RegExp('.*_'+tabname, 'i'))){img.src = img.src.replace(/(on|off|hover)_(on|off|hover)/i, '$1_hover');}
else if(sepname == tabname){img.src = img.src.replace(/(end)_(on|off|hover)/i, 'end_hover');}
});}
},
tab_hoverout: function(tab){if(this.panelForTab(tab) != this.current_panel){var img = $NL(tab.getElementsByTagName('img')).first();img.src = img.src.replace(/_(off|hover)\./i, '_off.');this.separators.each(function(sep){var tabname = tab.getAttribute('name');var sepname = sep.getAttribute('name');var img = $NL(sep.getElementsByTagName('img')).first();if(sepname.match(new RegExp(tabname +'_.*', 'i'))){img.src = img.src.replace(/(on|off|hover)_(on|off|hover)/i, 'off_$2');}
else if(sepname.match(new RegExp('.*_'+tabname, 'i'))){img.src = img.src.replace(/(on|off|hover)_(on|off|hover)/i, '$1_off');}
else if(sepname == tabname){img.src = img.src.replace(/(end)_(on|off|hover)/i, 'end_off');}
});}
},
tabForPanel: function(panel){return this.tabs.find(function(tab){return panel.getAttribute('name') == tab.getAttribute('name');}) || false;},
panelForTab: function(tab){return this.panels.find(function(panel){return panel.getAttribute('name') == tab.getAttribute('name');}) || false;},
tabForName: function(name){return this.tabs.find(function(tab){return name == tab.getAttribute('name');}) || false;},
panelForName: function(name){return this.panels.find(function(panel){return panel.getAttribute('name') == name;}) || false;},
currentTabname: function(){return this.current_panel.getAttribute('name');},
panel_oncomplete_status_change: function(message, panel){if(!panel.complete_icon){var img = document.createImageNode();img.src = '/configurator/images/nav/completed_arrow.png';DOM.IEPNG(img);img.className = 'complete_icon';img.style.display = 'none';panel.complete_icon = img;this.tabForPanel(panel.pane).appendChild(img);}
if(panel.is_complete){panel.complete_icon.style.display = '';}
else{panel.complete_icon.style.display = 'none';}
},
precache_images: function(){this.tabs.each(function(tab){var tab_img = $NL(tab.getElementsByTagName('img')).first();precache_image(tab_img.src.replace(/_(off|hover|on)\./i, '_off.'));precache_image(tab_img.src.replace(/_(off|hover|on)\./i, '_on.'));precache_image(tab_img.src.replace(/_(off|hover|on)\./i, '_hover.'));});var sep = this.separators.first();var sep_img = $NL(sep.getElementsByTagName('img')).first();precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'off_off'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'off_on'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'on_off'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'off_hover'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'hover_off'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'on_hover'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'hover_on'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'nav_accessories_end_off'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'nav_accessories_end_hover'));precache_image(sep_img.src.replace(/(on|off|hover|end)_(on|off|hover)/i, 'nav_accessories_end_on'));}
});
var StringSet = Class.create();Object.extend(StringSet.prototype, {initialize: function(default_set){this.strings = {};this.addMany(default_set || {});},
add: function(string_name, template_string){this.strings[string_name] = new Template(template_string);},
addMany: function(string_list){$H(string_list).each(function(s){this.add(s[0], s[1]);}.bind(this));},
get: function(string_name, options){if(this.strings[string_name])
return this.strings[string_name].evaluate(options || {});else
return '';}
});var Strings = new StringSet();
var BYL_Backdrop = Class.create();Object.extend(BYL_Backdrop.prototype, {initialize: function(id, classname){this.element = document.createElement('div');this.element.id = id;if(document.all)
this.element.className = classname +'IE';else
this.element.className = classname;this.element.style.display = 'none';Event.observe(window, 'resize', function(){this.resize();}.bind(this));document.body.appendChild(this.element);},
resize: function() {var sizes = this.getPageSize();this.element.style.height = sizes[1] +'px';this.element.style.width = sizes[0] +'px';},
getPageSize: function(){var xScroll, yScroll;if (window.innerHeight && window.scrollMaxY) {xScroll = document.body.scrollWidth;yScroll = window.innerHeight +window.scrollMaxY;} else if (document.body.scrollHeight > document.body.offsetHeight){// all but Explorer Mac
xScroll = document.body.scrollWidth;yScroll = document.body.scrollHeight;} else {// Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
xScroll = document.body.offsetWidth;yScroll = document.body.offsetHeight;}
var windowWidth, windowHeight;if (self.innerHeight) {// all except Explorer
windowWidth = self.innerWidth;windowHeight = self.innerHeight;} else if (document.documentElement && document.documentElement.clientHeight) {// Explorer 6 Strict Mode
windowWidth = document.documentElement.clientWidth;windowHeight = document.documentElement.clientHeight;} else if (document.body) {// other Explorers
windowWidth = document.body.clientWidth;windowHeight = document.body.clientHeight;}
if(yScroll < windowHeight){pageHeight = windowHeight;} else {pageHeight = yScroll;}
if(xScroll < windowWidth){pageWidth = windowWidth;} else {pageWidth = xScroll;}
arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;},
enable: function(){this.element.style.height = document.body.scrollHeight +'px';this.element.style.width = document.body.scrollWidth +'px';this.element.style.display = 'block';this.resize();},
disable: function(){this.element.style.display = 'none';},
observe: function(action, func, bubble) {Event.observe(this.element, action, func, bubble);}
});
var DeepLink = Class.create();Object.extend(DeepLink.prototype, {initialize: function(){this.params;this.getParameters();},
getParameters: function(reload) {if(!reload && !this.params) {this.params = new Object();var search = unescape(window.location.search).replace('?','');if(search != '') {var items = search.split('&');for(var i=0;i<items.length;i++) {var keyValue = items[i].split('=');this.params[keyValue[0]] = keyValue[1];}
}
}
return this.params;},
getParameter: function (name) {this.getParameters();return (this.params[name]) ? this.params[name] : null;},
hasParamater: function (name) {var test = this.getParameter(name);return (this.getParameter(name)) ? true : false;}
});var deepLink = new DeepLink();
var CommonPopups = Class.create();Object.extend(CommonPopups.prototype, {initialize: function(){},
showApplyForCredit:function() {this.launchPopup('/byl/pub/applyForCredit.do', CommonPopups.POPUP_ID, "height=588,width=781,toolbar=no,menubar=no,status=yes,scrollbars=no,resizable=no");},
showPaymentEstimator:function() {this.launchPopup('/byl/pub/paymentEstimator.do', CommonPopups.POPUP_ID, "height=572,width=780,toolbar=no,scrollbars=no,resizable=no,menubar=no");},
launchPopup: function(link, popup, properties) {var targetWindow = window.open(link, popup, properties);if ( targetWindow != null ) {targetWindow.focus();}
}
});CommonPopups.POPUP_ID = "CONFIGURATOR_POPUP";
var DisclaimerPopup = Class.create();Object.extend(DisclaimerPopup.prototype, GlossaryPopup.prototype);Object.extend(DisclaimerPopup.prototype, {initialize:function(){this.loadTemplate('/configurator/includes/disclaimer_definition.html', {name: 'disclaimer_definitions', onComplete: this.init_onpartials.bind(this)});this.events = [];this.element = document.createElement('div');this.element.className = 'disclaimer_definition';this.element.style.display = 'none';if(document.body){document.body.appendChild(this.element);}
else{Event.observe(window, 'load', function(){document.body.appendChild(this.element);}.bind(this));}
},
showDefinition: function(event, element, def_id, index){try {Event.stop(event);if(!this.scroll_box){this.element.innerHTML = this.templates['definitions'].evaluate({});}
var disclaimer = Disclaimer.getInstance(def_id);if(disclaimer){Debug.log('Showing: ', disclaimer, this.scroll_box);$('disclaimer_popup_content').innerHTML = this.templates['content'].evaluate({disclaimer_text:disclaimer.description, disclaimer_index:index});this.element.style.visibility = 'hidden';this.element.style.display = '';this.reposition(element);this.element.style.visibility = '';this.scroll_box = new ScrollBox($('disclaimer_popup_content'));this.events.push(Event.observe(document.body, 'click', this.dismiss.bind(this)));}
else{Debug.error('Could not find Disclaimer with id: ' +def_id);}
} catch (e) {Debug.error(e);}
}
});var DisclaimerOverlay = new DisclaimerPopup();