//this file is used to patch the prototype library for backwards compatibility to v1.5.0_rc0


var browserDetect = {
    IE:     !!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
}

Object.extend(Event, {  
  charVal: function(event) {
    var code = (event.type.toLowerCase().indexOf("key") != -1) ? event.keyCode || event.which : 0;

    /* convert numeric keypad values to number */
    if (code >= 96 && code <= 105) code -= 48;

    return (code) ? String.fromCharCode(code) : code;
  },

  isMovementKey: function(event) {
    var code = (event.type.toLowerCase().indexOf("key") != -1) ? event.keyCode || event.which : 0;
    switch (code) {
		case this.KEY_BACKSPACE:
		case this.KEY_TAB:
		case this.KEY_RETURN:
		case this.KEY_ESC:
		case this.KEY_LEFT:
		case this.KEY_UP:
		case this.KEY_RIGHT:
		case this.KEY_DOWN:
		case this.KEY_DELETE:
			return true;
			break;
		default:
			return false;
	}
  }
});

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };

function iframeShim(elem, position){ //call this before setting elem positioning so the iframe is positioned first
	if(browserDetect.IE && navigator.userAgent.toLowerCase().charAt(30) <= '6'  && (elem != null || elem != undefined) && (position != null || position != undefined) ){
		var elem = $(elem);
		//$shim.height($elem.height()).width($elem.width());
		var shimHeight = 'height: ' + elem.getDimensions().height + 'px; ';
		var shimWidth = 'width: ' + elem.getDimensions().width + 'px; ';
		//$shim.css("z-index", $elem.css('z-index') - 1);
		var shimZ = 'z-index: ' + elem.getStyle('z-index') + '; ';
		var pos = '';
		if(position.top != undefined){pos += 'top: ' + position.top + 'px; '}
		if(position.left != undefined){pos += 'left: ' + position.left + 'px; '}
		if(position.right != undefined){pos += 'right: ' + position.right + 'px; '}
		if(position.bottom != undefined){pos += 'bottom: ' + position.bottom + 'px; '}
		var ifrm = '<iframe style="' + shimHeight + shimWidth + shimZ + pos + 'position:absolute; filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);" class="iframeShim" src="javascript:\'<html></html>\';" scrolling="no" frameborder="0" ></iframe>';
		new Insertion.Before(elem, ifrm);
	}
}