var vendor = (/webkit/i).test(navigator.appVersion) ? 'webkit' :
		(/firefox/i).test(navigator.userAgent) ? 'moz' :
		'opera' in window ? 'o' : '';

function getEventTarget(e){
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;	
	return targ;
}

function mouseButtonClicked(e){
    if (e.which == null) /* IE case */
		return (e.button < 2) ? "LEFT" : ((e.button == 4) ? "MIDDLE" : "RIGHT");
    else /* All others */
		return (e.which < 2) ? "LEFT" : ((e.which == 2) ? "MIDDLE" : "RIGHT");	
}


jQuery.fn.get_translate = function(axis) {
	var t = $(this).css('-'+vendor+'-transform');
	t = t.split(',');
	return parseInt((axis=='x')?t[4]:t[5]);
}

function scroller_clicker(sc,cont) {
var parl = '';
var layeroffset;
var par = $(sc).parent();
var parw = parseInt($(sc).parent().width())-parseInt($(sc).width());
var w = parseInt($(sc).parent().width());
var gw = parseInt($(cont.scroller).width());
var dif = gw-parseInt($(cont.wrapper).width());
	$(par).unbind('mousedown').bind('mousedown',function(event)	{
		var layeroffset =(event.offsetX)?event.offsetX:event.layerX;
		var scrollbar_x = $(sc).get_translate('x');
		var dist = layeroffset -($(sc).width()/2);
		var rel_dist = scrollbar_x - dist;
		parw = (parseInt($(sc).parent().width())-parseInt($(sc).width()));
		dist = Math.max(dist,0);
		dist = Math.min(dist,parw);
		$(sc).get(0).style[vendor + 'transform'] ="translateX("+dist+"px)";
		var	l = Math.max(0,dist);
		l = Math.min(parw,l);
		var gl = (((parw-l)/parw)*dif)-dif;
		$(cont.scroller).get(0).style[vendor + 'transform'] = "translateX("+gl+"px)";
	});
	
	$(sc).unbind("click").bind('click',function(event){event.stopPropagation();});
	$(sc).unbind('mousedown').bind('mousedown',function(event)	{
		event.preventDefault();
		event.stopPropagation();
		parw = parseInt(par.width())-parseInt($(sc).width());
		w = parseInt(par.width());
		gw = parseInt($(cont.scroller).width());
		dif = gw-parseInt($(cont.wrapper).width());
		event.preventDefault();
		if( event.offsetX)
		{
			layeroffset = event.offsetX;
		}
		else
		{
			layeroffset = event.layerX;
		}
		parl =  par.offset().left;
		window.addEventListener('mousemove',scroll_gal);
		window.addEventListener('mouseup',stop_scroll);
	})
	
	function scroll_gal(event) {
		event.preventDefault();
		event.stopPropagation();
		var l = event.pageX - parl -layeroffset;
		l = Math.max(0,l);
		l = Math.min(parw,l);
		$(sc).get(0).style[vendor + 'transform'] ="translateX("+l+"px)";
		var gl = (((parw-l)/parw)*dif)-dif;
		$(cont.scroller).get(0).style[vendor + 'transform'] = "translateX("+gl+"px)";
	}
	
	function stop_scroll(event)	{
		window.removeEventListener('mousemove',scroll_gal);
	}
}
