(function($) {
	var cache = [];
	// Arguments are image paths relative to the current page.
	$.preloadImages = function(images) {
		for (var i = images.length; i--;) {
			var cacheImage = document.createElement('img');
			cacheImage.src = images[i];
			cache.push(cacheImage);
		}
	}
})(jQuery)

$(document).ready(function() {
	// handle sign_in button
	$("a#sign_in").click(function(e) {
		e.preventDefault();
		// calculate form position
		var top_pos = $(window).height() * 0.2 +  'px';
		var left_pos = $(window).width() / 2 - $("#sign_in_wrapper").width() / 2 + 'px';
		$("#sign_in_wrapper").css('left',left_pos);
		$("#sign_in_wrapper").css('top',top_pos);
		// show modal div
		$("#login_modal").show();
		// show form
		$("#sign_in_wrapper").fadeIn('high');
	});
	// handle popup close button
	$(".popupClose").click(function(e) {
		e.preventDefault();
		$(this).parent().fadeOut('high');
		$(".modal").hide();
	});
	// images roulette
	if ($("div#indicator").length > 0) {
		var squares = $("div.square");
		var timeout = 7000;
		var total_width = $("div#indicator").width() - 4;
		var i_progress = $("div#indicator-progress");
		var i = 0; // itimer counter;
		var n = 0; // squares array index
		// fix indicator container width
		$("div#indicator-progress-empty").css('width',total_width-4+'px');

		// setup progress bar timer.
		var interval_func = function () {
			var w = i*100 / timeout;
			w = (w < 1) ? w * 100: 100;
			$(i_progress).css('width',w+'%');
			i += 1;
			if (w >= 100) {
				n = n >= squares.length - 1? 0 : n+1
				update_image(n);
				i = 0;
			}
		}
		var itimer = window.setInterval(interval_func, 100);
		// stop timer when mouse is on the picture
		$("div#imageroulette").hover(function() {
			clearInterval(itimer);
		}, function() {
			itimer = window.setInterval(interval_func, 100);
		});
		// set onlick to squares
		$("div.square").click(function() {
			n = squares.index(this);
			update_image(n);
			i = 0; // reset indicator width;
		});
	}

	function update_image(im) {
		$(i_progress).css('width', 0);
		$(squares).removeClass("before").removeClass("active");
		$(squares[im]).addClass("active");
		$(squares[im-1]).addClass("before");
		// fix progress line 
		if ( im == 0 ) {
			$("div#indicator-progress-empty").css('margin-left','4px');
		} else {
			$("div#indicator-progress-empty").css('margin-left','0');
		}
		// load new image
		var new_img = $("img#rouletteimg").attr('src').split('_')[0] + '_' + im + '.jpg';
		$("img#rouletteimg").attr('src',new_img);
	}

	// Oil widget
	if ($("a.oilprice-button").length > 0) {
		$("a.oilprice-button").click(function(event) {
			event.preventDefault()
		});
		$("a.oilprice-button").hover(function() {
			$("img#oilprice-chart").attr("src",$(this).attr("href"));
			$("a.oilprice-button").removeClass("oilprice-selected");
			$(this).addClass("oilprice-selected");
		});
	}
	// User menu on top
	$("a#user_link").toggle(function() {
		$("ul#user_link_menucontent").show();
	}, function() {
		$("ul#user_link_menucontent").hide();
	});
	/* handle mailman form */
		$('#mailman-form').submit(function(event) {
		event.preventDefault();
		var email = $('#email').val();
		if (!check_email(email)) {
			alert('Please provide valid email address');
			$('#email').focus();
			return false;
		}
		// sumbit form
		var form_url = $(this).attr('action');
		$.ajax({
			type: 'POST',
			url: form_url,
			data: 'submit=Subscribe&email='+email,
			success: function(data) {
				if (data.indexOf('Error') >= 0) {
					var msg = 'An error occured during subscribe request.'
				} else {
					var msg = '<b>You have been subscribed to mailing list oilrush-news[at]unigine.com</b>';
				}
				$('#mailman-form').html(msg)
			},
			error: function () {
				$('#mailman-form').html('<b>An error occured during subsribe request</b>');
			}
		});
	});
});

function check_email(email) {
	var filter  = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email)) {
		return true;
	}
	return false;
}


