var common={
	getElementsByClassName:function(searchClass,node,tag) {
        var classElements = new Array();
        if ( node == null )
                node = document;
        if ( tag == null )
                tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;
        var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        for (i = 0, j = 0; i < elsLen; i++) {
                if ( pattern.test(els[i].className) ) {
                        classElements[j] = els[i];
                        j++;
                }
        }
        return classElements;
	}
}



function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function MouseFollow(){
	
}

MouseFollow.prototype.getMousePosition = function(e){
	e || (e = window.event);
	var targ=e.target?e.target:e.srcElement;
	
	var targDiv = document.getElementById('testDiv');
	var pageX = document.body.scrollLeft + document.documentElement.scrollLeft;
	var pageY = document.body.scrollTop + document.documentElement.scrollTop;;
	var mouseX= e.clientX + pageX;
	var mouseY = e.clientY + pageY;
	targDiv.style.left=(mouseX+10)+'px';
	
	var x,y;
	if (self.innerHeight){
		x = self.innerWidth;
		y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight){
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}   else if (document.body){
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}

	var topDist=mouseY+20;
	if(topDist>(pageY+y-targDiv.scrollHeight)){
		topDist=pageY+y-targDiv.scrollHeight;
	}
	targDiv.style.top=topDist+'px';
	targDiv.style.display='block';
	targDiv.getElementsByTagName('img')[0].src=targ.rel;
}

MouseFollow.prototype.hideDiv = function(){
	var targDiv=document.getElementById('testDiv');
	targDiv.style.display='none';
	targDiv.getElementsByTagName('img')[0].src='/templates/vogels_offroad_v2/images/loading.gif';
}

MouseFollow.prototype.bufferPicture = function(e){
	e || (e = window.event);
	var targ=e.target?e.target:e.srcElement;
	var targDiv=document.getElementById('testDiv');
	MF.getMousePosition(e);
	imgPreload1=new Image();
	imgPreload1.onload=MF.loadPicture;
	imgPreload1.src=targ.src.replace(/3.jpg/,'2.jpg');
}
MouseFollow.prototype.loadPicture = function(e){
	e || (e = window.event);
	var targ=e.target?e.target:e.srcElement;
	var targDiv=document.getElementById('testDiv');
	targDiv.getElementsByTagName('img')[0].src=targ.src.replace(/3.jpg/,'2.jpg');
	MF.getMousePosition(e);
}

function mfInit(){
	var imgtags=common.getElementsByClassName('mouseFollow');
	for(i in imgtags){
		if(imgtags[i].attributes){
			addEvent(imgtags[i],'mouseover',MF.getMousePosition);
			addEvent(imgtags[i],'mousemove',MF.getMousePosition);
			addEvent(imgtags[i],'mouseout',MF.hideDiv);
		}
	}

}

MF=new MouseFollow();
