function Rating()
{
	this.obj = $('#rating-thumb');
	this.aid = 0;
	this.url = '';
}
$.extend(Rating.prototype, {
	init: function() {
		this.obj.attr('href', '#').removeAttr('class').addClass('like-thumb ignore');
		this.obj.bind('click', function(){$.rating.rate()});
	},
	rate: function() {
		if (this.obj.hasClass('like-thumb-visited')) return false;
		this.obj.removeAttr('href').removeAttr('class').addClass('like-thumb-visited');
		
		$.ajax({
			type: 'POST',
			url: this.url,
			data: 'article_id=' + this.aid,
			dataType: 'json',
			success: function(resp) {
				if (resp.status == 'Ok') {
					$.rating.obj.parent().fadeOut(100).fadeIn(100);
					$.rating.obj.prev().html(resp.rating);
				} else {
					// alert(resp.msg);
				}
			},
			error: function() {
				//
			}
		});
	}
});
function Subscription()
{
	this.form = $('#turbo-subscribe-form');
	this.url = '';
}
$.extend(Subscription.prototype, {
	init: function() {
		var form = this.form;
		form.find("input[type='image']").attr('disabled', 'TRUE').attr('src', '/i/turbo-btn1.gif');
		form.bind('submit', function(e){
			e.preventDefault();
			$.sub.subscribe();
		});
		form.find("input[name='email']").bind('focus', function(){
			if($(this).val() == 'Please enter email address') {
				$(this).val('');
			}
			form.find("input[type='image']").attr('disabled', '').attr('src', '/i/turbo-btn.gif');
		});
		form.find("input[name='email']").bind('blur', function(){
			if($(this).val() == '') {
				$(this).val('Please enter email address');
			}
			form.find("input[type='image']").attr('src', '/i/turbo-btn1.gif');
		});
	},
	subscribe: function() {
		var form = this.form;
		// check email
		var email = form.find("input[name='email']").val();
		if (email == '' || email == 'Please enter email address') {
			alert('Please enter email address');
			return false;
		} else if (!this.emailValid(email)) {
			alert('Error occured. Please check the format of your email.');
			return false;
		}
		
		// disable submit button
		form.find("input[type='image']").attr('disabled', 'TRUE').attr('src', '/i/turbo-btn1.gif');
		
		$.ajax({
			type: 'POST',
			url: this.url,
			data: 'email=' + email,
			dataType: 'json',
			success: function(resp) {
				if (resp.status == 'Ok') {
					form.prev().removeClass('slepti');
					form.empty();
				} else {
					form.prev('#turbo-subscribe-error-msg').html(resp.msg);
					form.find("input[type='image']").attr('disabled', '').attr('src', '/i/turbo-btn.gif');
				}
			},
			error: function() {
				//
			}
		});
		return false;
	},
	emailValid: function(email) {
		var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
		return pattern.test(email);
	}
});
