For IE8 and IE9.
771837
function getTargetInstForInputEventIE(topLevelType, targetInst) {
	  if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {
	    // On the selectionchange event, the target is just document which isn't
	    // helpful for us so just check activeElement instead.
	    //
	    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire
	    // propertychange on the first input event after setting `value` from a
	    // script and fires only keydown, keypress, keyup. Catching keyup usually
	    // gets it and catching keydown lets us fire an event for the first
	    // keystroke if user does a key repeat (it'll be a little delayed: right
	    // before the second keystroke). Other input methods (e.g., paste) seem to
	    // fire selectionchange normally.
	    if (activeElement && activeElement.value !== activeElementValue) {
	      activeElementValue = activeElement.value;
	      return activeElementInst;
	    }
	  }
	}
734961
function () {
            var browser = api.browser.name, version = api.browser.version;

            switch (browser) {
                case "ie":
                    return version >= 9;
                    
                case "chrome":
                    return version >= 13;
                    
                case "ff":
                    return version >= 6;
                    
                case "ios":
                    return version >= 5;

                case "android":
                    return false;

                case "webkit":
                    return version >= 5.1;
                    
                case "opera":
                    return version >= 10;
                    
                default:
                    return false;
            }
        }
160976
function (e, xy) {
    getMousePos = (typeof e.pageX === 'number' && !window.opera) ?
    function (e, xy) {
      return [e.pageX - xy[0], e.pageY - xy[1]]
    } : function (e, xy) {
      return [e.clientX + xy[2] - xy[0], e.clientY + xy[3] - xy[1]]
    };
    return getMousePos(e, xy);
  }
1257089
function (key, value) {
                if (docMode8) { // IE8 setAttribute bug
                    this.element[key] = value;
                } else {
                    this.element.setAttribute(key, value);
                }
            }
283099
function (name) {
            var match, responseHeaders, self = this;    // ie8 will be lowercase for content-type
            // ie8 will be lowercase for content-type
            name = name.toLowerCase();
            if (self.state === 2) {
                if (!(responseHeaders = self.responseHeaders)) {
                    responseHeaders = self.responseHeaders = {};
                    while (match = HEADER_REG.exec(self.responseHeadersString)) {
                        responseHeaders[match[1].toLowerCase()] = match[2];
                    }
                }
                match = responseHeaders[name];
            }
            return match === undefined ? null : match;
        }
734891
function ( str ) {
            if ( $B.ua.DOC_MODE_IE9_LT ) {
                this.text = function ( str ) {
                    var el = this.element();
    
                    //setter
                    if ( str || str == 0) {
                        el.innerText = String(str);
                        //getter
                    } else {
                        var getStr = el.innerText;
                        return getStr.replace( /[\n\r]+/g, '' );
                    }
                };
            } else {
                this.text = function ( str ) {
                    var el = this.element();
    
                    //setter
                    if ( str || str == 0) {
                        el.textContent = String(str);
                        //getter
                    } else {
                        return el.textContent;
                    }
                };
            }
            return this.text( str );
        }
1242984
function isOff(node, nodeComputedStyle) {
    if (node === document.documentElement) return false;

    // Find the cached node (Array.prototype.find not available in IE9)
    for (var i = 0, length = isOffCache.length; i < length; i++) {
      if (isOffCache[i][0] === node) return isOffCache[i][1];
    }

    nodeComputedStyle = nodeComputedStyle || window.getComputedStyle(node);

    var result = false;

    if (nodeComputedStyle.display === 'none') {
      result = true;
    } else if (node.parentNode) {
      result = isOff(node.parentNode);
    }

    isOffCache.push([node, result]);

    return result;
  }
1193412
function () {
            if ( $B.ua.WINDOWS_PHONE || !$B.ua.DOC_MODE_IE9_LT ) {
                return this._getSizeType( this._sizeTarget[this._sizeProp] );
            } else {
                return this._positions[this._positions.length - 1].type;
            }
        }
1175702
function shouldUseClickEvent(elem) {
  // Use the `click` event to detect changes to checkbox and radio inputs.
  // This approach works across all browsers, whereas `change` does not fire
  // until `blur` in IE8.
  var nodeName = elem.nodeName;
  return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');
}
196999
function injectStyleToHead(){
      // set base before <style> element creating, because IE9+ set baseURI
      // for <style> element on element creation
      setBase(this.baseURI);

      // create <style> element for first time
      if (!this.element)
      {
        this.element = document.createElement('style');

        if (!STYLE_APPEND_BUGGY)
          this.element.appendChild(document.createTextNode(''));

        /** @cut */ this.element.setAttribute('src', this.url);
      }

      // add element to document
      documentInterface.head.add(this.element);

      // set css text after node inserted into document,
      // IE8 and lower crash otherwise (this.element.styleSheet is not defined)
      this.syncCssText();

      restoreBase();
    }
234897
function () {

            var aButtons = this.cfg.getProperty("buttons"),
                oButton,
                oElement;

            if (aButtons && Lang.isArray(aButtons)) {
                oButton = aButtons[0];
                if (oButton) {
                    oElement = this._getButton(oButton.htmlButton);
                    if (oElement) {
                        /*
                            Place the call to the "focus" method inside a 
                            try/catch block to prevent IE from throwing 
                            JavaScript errors if the element is disabled 
                            or hidden.
                        */
                        try {
                            oElement.focus();
                        } catch(oException) {
                            // ignore
                        }
                    }
                }
            }
        }
1323038
function mouseButton(event, button){
    if (typeof event.which == 'number')
      // DOM scheme
      return event.which == button.VALUE;
    else
      // IE6-8
      return !!(event.button & button.BIT);
  }
1191331
function () {
            try {
                if(browser.ie9below){

                    var nativeRange = _getIERange(this);
                    return !!(nativeRange && this.rangeInBody(nativeRange));
                }else{
                    return !!this.getNative().rangeCount;
                }
            } catch ( e ) {
                return false;
            }

        }
499927
function(e) {
        var posx = 0;
        var posy = 0;
        if (!e) { e = window.event; }
        if (e.type == "MSPointerMove" || e.type == "MSPointerDown" || e.type == "MSPointerUp") {
          return {
            x: e.pageX + window.pageXOffset,
            y: e.pageY + window.pageYOffset
          }
        }
        if (e.pageX || e.pageY) {
            // Good browsers
            return {
                x: e.pageX,
                y: e.pageY
            };
        } else if (e.clientX || e.clientY) {
            // Internet Explorer
            return {
                x: e.clientX,
                y: e.clientY
            };
        } else if (e.touches && e.touches.length === 1) {
            // Touch browsers
            return {
                x: e.touches[0].pageX,
                y: e.touches[0].pageY
            };
        }
    }
806267
function() {
        var w = 0;
        for (var p=0;p<this.pages.length;++p) {
            var cal = this.pages[p];
            w += cal.oDomContainer.offsetWidth;
        }
        if (w > 0) {
            this.oDomContainer.style.width = w + "px";
        }
    }
104969
function rule(analyzer) {
	var re = {
		property: /^(\*|-ms-filter)/,
		selector: /^(\* html|html\s?>\s?body) /,
		value: /progid:DXImageTransform\.Microsoft|!ie$/
	};

	analyzer.setMetric('oldIEFixes');

	// * html // below IE7 fix
	// html>body // IE6 excluded fix
	// @see http://blogs.msdn.com/b/ie/archive/2005/09/02/460115.aspx
	analyzer.on('selector', function(rule, selector) {
		if (re.selector.test(selector)) {
			analyzer.incrMetric('oldIEFixes');
			analyzer.addOffender('oldIEFixes', selector);
		}
	});

	// *foo: bar // IE7 and below fix
	// -ms-filter // IE9 and below specific property
	// !ie // IE 7 and below equivalent of !important
	// @see http://www.impressivewebs.com/ie7-ie8-css-hacks/
	analyzer.on('declaration', function(rule, property, value) {
		if (re.property.test(property) || re.value.test(value)) {
			analyzer.incrMetric('oldIEFixes');
			analyzer.addOffender('oldIEFixes', format('%s {%s: %s}', rule.selectors.join(', '), property, value));
		}
	});
}
850265
function ( e ) {
            
            if ( this.options.enableValidations !== false ) {
                if ( !this.isValid() ) {
                    
                    this.createEncryptedField( "false" );
                    
                    if ( e.preventDefault ) {
                        e.preventDefault();
                    }
                    // IE7 and lower
                    if ( window.event ) {
                        window.event.returnValue = false;
                    }
                    if ( e.originalEvent ) {
                        e.originalEvent.returnValue = false;
                    }
                    e.returnValue = false;

                    return false;
                }
            }
            
            this.createEncryptedField( this.encrypt() );

            this.onsubmit( e );
        }