
Element.addMethods({

	round:	function(element,options) {
	
		if (element = $(element)) {

			if (Prototype.Browser.IE && parseFloat(navigator.appVersion.split('MSIE ')[1].substr(0,3)) < 7) return;

			element
			
				.insert(new Element('div',{'class': 'corner tl'}).insert(new Element('div',{'class': 'tl'})))
				.insert(new Element('div',{'class': 'corner tr'}).insert(new Element('div',{'class': 'tr'})))
				.insert(new Element('div',{'class': 'corner bl'}).insert(new Element('div',{'class': 'bl'})))
				.insert(new Element('div',{'class': 'corner br'}).insert(new Element('div',{'class': 'br'})));

			return element;
		
		}
	
	},
	
	flare:	function(element,options) {
		
		if (element = $(element)) {
		
			var height = options['height'] || 0.5;
			
			var opacity = options['opacity'] || 0.5;
			
			element.insert(new Element('div',{'class': 'flare'}).setStyle({
			
				position:	'absolute',
				top:	'0px',
				left:	'0px',
				width:	'100%',
				height:	Math.round(element.getHeight() * height) + 'px',
				backgroundColor:	'#fff',
				zIndex:	'1'
			
			}).setOpacity(opacity)).makePositioned();
			
			return element;
		
		}
	
	},
	
	fade:	function(element,options) {
	
		if (element = $(element)) {
			
			element.insert(new Element('div',{'class': 'fade'}).setStyle({
			
				position:	'absolute',
				bottom:	'-1px',
				left:	'0px',
				width:	'100%',
				height:	options['distance'] + 'px',
				background:	'url(' + options['img'] + ') 0 0 repeat-x',
				zIndex:	'100'
			
			})).makePositioned();
			
			return element;
		
		}
	
	},
	
	findQuery:	function(element,queryString) {
		
		var element = $(element) || document.body;
		
		element.select('.description').each(function(desc) {
		
			desc.innerHTML = desc.innerHTML.gsub(
			
				new RegExp(queryString.toUpperCase(),'i'),
				
				function(match) {
				
					return '<span class="query">' + match + '</span>'; 
					
				}
			
			);
		
		});

		return element.select('.query');
	
	},
	
	highlight: function(element) {
	
		if (element = $(element)) {
		
			element.setStyle({
			
				background:	'#ffc', fontWeight: 'bolder'
			
			});
			
			return element;
		
		}
		
	},
	
	print:	function(element) {
	
		function doPrint(event,context) {
		
			if (context == 'page') {
				
				window.print();
			
			}
		
		}
	
		if (element = $(element)) {
		
			element.observe('click', doPrint.bindAsEventListener(element,element.readAttribute('context')));
		
		}
	
	},
	
	redraw:		function(element, display){
	
		if (!(element = $(element))) return false;
		
		element.style.display = 'none';
		
		var redrawFix = element.offsetHeight;
		
		element.style.display = display ? display : '';
		
		return element;
	
	},
	
	getNaturalSize:		function(img) {
	
		if( img.naturalHeight ) {
		
			return { height: img.naturalHeight, width: img.naturalWidth };
			
		} else {
		
			lgi = new Image();
			
			lgi.src = img.src;
			
			return { height: lgi.height, width: lgi.width };
			
		}
		
	}
   
});

function setCookie(name,value,days) {
	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 = name+"="+value+expires+"; path=/";
}

function getCookie(name) {
	var nameEQ = 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;
}

Event.keyCode = function(event) {
	
	return event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

}

