var ipew_random_change_time = 0;
var ipew_randomize = false;
var ipew_mousemove = false;

var ipew_random_list = [];

function ipew_update(e, div_w, img_w) {
	var x = e.pageX - $(e.target).closest(".ipew_widget").offset().left;
	
	if ( !isNaN(x) ) {
		x = Math.min( 1.0, Math.max( 0.0, x / div_w ) );
		x = Math.floor( x * ( img_w / div_w ) ) * div_w;
		$(e.target,"img").css( "left", -x );
	}
}

function ipew_start(e) {
	var div_w = $(e.target).closest(".ipew_widget").width();
	var img_w = $(e.target).width();
	
	$(e.target).mousemove( function(e) { ipew_update( e, div_w, img_w ); } );
	ipew_update(e, div_w, img_w)
}

function ipew_end(e) {
	$(e.target).mousemove( null );
}

function ipew_random_changer() {
	
	if ( !ipew_random_list.length ) {
		// repopulate the list if empty
		$(".ipew_widget img").each( function() { ipew_random_list.push( this ); } );
		// randomize the list
		ipew_random_list.sort( function() { return (Math.round(Math.random())-0.5); } );
	}
	
	var img = ipew_random_list.pop()
	
	if ( img ) {
		var div_w = $(img).closest(".ipew_widget").width();
		var img_w = $(img).width();
		var x = Math.floor( Math.random() * (img_w / div_w) ) * div_w; 
		$(img).css('left', -x );
	}
}

function ipew_widget_init() {
	
	// turn on mousemove events
	if (ipew_mousemove) {
		$(".ipew_widget img").hover( ipew_start, ipew_end );
	}
	
	// randomize the images
	if (ipew_randomize) {
		$(".ipew_widget img").each( function() {
			var div_w = $(this).closest(".ipew_widget").width();
			var img_w = $(this).width();
			var x = Math.floor( Math.random() * (img_w / div_w) ) * div_w; 
			$(this).css('left', -x );
			}
		);
	}
	
	// turn on random changing - ipew_random_change_time time in milliseconds.
	if ( !isNaN(ipew_random_change_time) && ipew_random_change_time>0.0 ) {
		window.setInterval( "ipew_random_changer()", ipew_random_change_time );
	}
}

$(document).ready( ipew_widget_init );


