var oldRate = new Array();
var flag = false;
$(document).ready(function () {
	initVoteSystem();
});

function initVoteSystem() {
	$('a[@class="rate"] > img').hover(
		function () {
			if (! flag) {
				var curr = $(this);
				flag = true;
				$(this).parents('div').eq(0).find('a[@class="rate"] > img').each(function(i){
					oldRate[i] = this.src;
					if (curr.attr('alt') >= i + 1) {
						if ($(this).parent().parent().attr('class') == 'playrating') {
							this.src = '/images/rating100_playrating.gif';
						} else {
							this.src = '/images/rating100.gif';
						}
					} else {
						this.src = '/images/rating.gif';
					}
				});
			}
		},
		function () {
			flag = false;
			$(this).parents('div').eq(0).find('a[@class="rate"] > img').each(function(i){
				this.src = oldRate[i];
			});
		}
	);
}

function vote (id, grade, isPreview, invoker) {
	var container = $(invoker).parent();
	$('body').append('<div id="darken"></div>');
	$.getJSON('/mults/vote/?id=' + id + '&grade=' + grade, function (json) {
		if (json.status == 'success') {
			$('body').append('<div id="darken"></div>');
			$.get('/mults/getVoteBar/?id=' + id + '&isPreview=' + isPreview, function (html) {
				container.empty();
				container.append(html);
				initVoteSystem();
				if (container.attr('class') == 'playrating') {
					$('span[@class="votes"]').text(parseInt($('span[@class="votes"]').text()) + 1);
				}
				$('#darken').remove();
			});
		}
		$('#darken').remove();
	});
}
function beforeSubmit (formArray, jqForm) {
	$(jqForm).showSplash();
}

function refreshScreen() {
	window.location = window.location;
}

function showMessages (messages) {
	var str = '';
	for (var i = 0; i < messages.length; i++) {
		str = str + messages[i].text + '\n';
	}
	if (str.length) {
		alert(str);
	}
}

$.fn.showSplash = function () {
    this.css('visibility', 'hidden');
    this.parent().css('background', "url('/images/splash.gif') #fff no-repeat 50% 50%");
}

$.fn.hideSplash = function (oldBg) {
	if (! oldBg) {
		oldBg = '#FFFFFF none repeat scroll 0%';
	}
    this.parent().css('background', oldBg);
    this.css('visibility', 'visible');
}

$.fn.highlightFields = function (fields, prefix) {
	if (! prefix) {
		prefix = 'highlight';
	}
	this.clearHighlight(prefix);
	var i = 0;
    var str = '';
    while (row = fields[i]) {
    	$('#' + prefix + '_' + row.field).css('color', '#ff0000');
        str = str + row.text + '\n';
        i++;
    }
    if (str.length > 0) {
        return str;
    } else {
        return false;
    }
}

$.fn.clearHighlight = function (prefix) {
	if (! prefix) {
		prefix = 'highlight';
	}
	this.find('[@name]').each(function (i) {
		$('#' + prefix + '_' + this.name).css('color', '#000');
	});
}

$.fn.showMessages = function (messages) {
	var i = 0;
    while (message = messages[i]) {
        var span = $('<span class="tl"></span>');
        if (message.type == 'error') {
            span.css('color', 'red');
        } else if(message.type == 'message') {
        	span.css('color', 'gray');
        }
        span.html(message.text);
        this.append(span);
        i++;
    }
    this.parent().css('display', 'block');
}

$.fn.clearMessages = function () {
	this.html('');
}

$.fn.setNewCapcha = function () {
	var image = this;
	$.getJSON('/generateCapcha/', {id: this.attr('id')}, function (json) {
		image.attr('src', json.url);
		image.attr('width', json.width);
		image.attr('height', json.height);
	});
}

$.fn.toggleDefaultText = function (defaultText) {
	if (this.val() == defaultText) {
		this.val('');
	} else if (this.val() == '') {
		this.val(defaultText);
	}
}

$.fn.confirm = function (text) {
    if(window.confirm(text)) {
        window.location = $(this).attr('href');
    } else {
    	return false;
    }
}