var	getElementsByClassName =
	document.getElementsByClassName ?

	/*best thing would be to use built in functionality if it's there*/
	function (class_name, scope){
		return (scope || document).getElementsByClassName(class_name);
	}
	
	:
	
	/*xpath if supported should be pretty fast*/
	document.evaluate ?
		function (class_name, scope) {
			var re = [];
			var xpathResult = document.evaluate(".//*[contains(concat(' ', @class, ' '), ' " + class_name + " ')]", scope || document, null, 0, null);
			var	ele;
			while (ele = xpathResult.iterateNext())
				re.push(ele)
			return re;
		}
		
		:
		/*or DIY*/
		function (class_name, scope) {
			var re = [];
			var objRegExp=new RegExp("\\b" + class_name + "\\b");
			var elements = (scope || document).getElementsByTagName('*');
			for(var ele,i=0;ele=elements[i];i++)
				if(ele.className && objRegExp.test(ele.className))re[re.length]=ele;
			return re;
		};

/*http://www.dustindiaz.com/rock-solid-addevent*/
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){listEvents.push(arguments)},
		flush : function(){
			for(var item,i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener) item[0].removeEventListener(item[1], item[2], item[3]);
				if(item[1].substring(0, 2) != "on") item[1] = "on" + item[1];
				if(item[0].detachEvent) item[0].detachEvent(item[1], item[2]);
				item[0][item[1]] = null;
			}
		}
	};
}();
function addEvent( obj, type, fn ) {
	if (obj.addEventListener){
		obj.addEventListener(type, fn, false);
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent){
		obj["e"+type+fn] = fn;
		obj[type+fn] = function(){obj["e"+type+fn](window.event)}
		obj.attachEvent("on"+type, obj[type+fn]);
		EventCache.add(obj, type, fn);
	}
	else obj["on"+type] = obj["e"+type+fn];
}

function checkClassMoreInfo(){
	var arElem=getElementsByClassName('moreInfo',document.getElementById('pageMiddleRightBox'));
	var obj;
	for(var ele,i=0;ele=arElem[i];i++){
		obj=document.createElement('img');
		obj.width=10;
		obj.height=8;
		obj.src='images/return.png';
		ele.appendChild(obj);
	}
}
function getQuoteFormat(){
	var f=document.getElementById('getQuoteHeaderForm');
	if(!f)return;
	var t=f.vrm;
	t.setAttribute('defaultValue','enter reg no.');
	t.onfocus=function(){if(this.value==this.defaultValue)this.value=''}
	t.onblur=function(){if(this.value=='')this.value=this.defaultValue}
	t.onblur();
}
function checkBookMark(){
	var obj=document.getElementById('linkBookmark');
	if(obj)obj.onclick=bookMark;
}
function bookMark(){
	if(window.sidebar && window.sidebar.addPanel) window.sidebar.addPanel(document.title,location.href,'');
	else if(window.opera && window.print){var obj=document.getElementById('linkBookmark');if(obj){obj.setAttribute('href',location.href);obj.setAttribute('title',document.title);obj.setAttribute('rel','sidebar')}}
	else if(window.external) window.external.AddFavorite(location.href,document.title);
	else alert('Please press Ctrl+D or Command+D on a Mac, alternatively please refer to your browser\'s instructions or help file');
	//var obj=new Image();obj.src='about:blank'; /*replace this with tracking code*/
}
function removeChildren(ele){
	if(ele)while(ele.firstChild)ele.removeChild(ele.firstChild);
}
function checkControlButtons(){
	var tmp,arElem=getElementsByClassName('btnBack');
	for(var ele,i=0;ele=arElem[i];i++)ele.onclick=function(){history.go(-1)};
/*
	arElem=getElementsByClassName('buttons');
	for(var ele,i=0;ele=arElem[i];i++){
		tmp=document.getElementsByTagName('button');
		for(var eleX,iX=0;eleX=tmp[i];i++)removeChildren(eleX);
	}
*/
}
addEvent(window,'load',function(){
	checkClassMoreInfo();
	checkControlButtons();
	getQuoteFormat();
	checkBookMark();
});
addEvent(window,'unload',EventCache.flush);

//var x=new Image(10,8);x.src="images/return.png";
