/* Variaveis globais */
var disableHotKeys = false;

jQuery.ajaxSetup({
	beforeSend : beforeAjax,
	complete : afterAjax,
	error : alertError
});

function sendAjaxFile(form, targetUrl, resultado) {
	var options = {
		success : function(responseText, statusText, xhr, $form) {
			jQuery('#' + resultado).html(responseText);
		},
		url : targetUrl
	};
	jQuery('#' + form).ajaxForm(options);
}

function startup() {
	afterAjax();

	jQuery('input[title!=""]').hint();

	jQuery('input[type="password"]').each(function() {
		this.value = "";
	});
}

function applyHotKey(key) {
	if (disableHotKeys) {
		return false;
	}
	if (jQuery(key).length) {
		jQuery(key)[0].click();
	}
	return false;
}

function alertError() {
	alert('erro no ajax');
}

var skipAjaxListeners = false;
function beforeAjax() {
	if (skipAjaxListeners){
		return;
	}
	disableHotKeys = true;
	jQuery('.msgs').hide();
	jQuery("#div-transparente").css({
		'display' : 'block',
		'width' : jQuery(document).width() + 'px',
		'height' : jQuery(document).height() + 'px'
	});
	jQuery('.ajax-loader').show();
}

function afterAjax() {
	if (skipAjaxListeners){
		return;
	}
	disableHotKeys = false;
	jQuery("#div-transparente").hide();
	// verificar msgs
	if (jQuery('.msgs li').length) {
		jQuery('.msgs').fadeIn();
	}

	jQuery('.ajax-loader').hide();
	jQuery('.input-date').each(function() {
		jQuery(this).keypress(function() {
			applyMask(this, data);
		});
		jQuery(this).blur(function() {
			if (!checkData(this)) {
				this.value = "";
			}
		});
		this.maxLength = 10;
	});
	for ( var i = 100; i < 501; i += 5) {
		jQuery('.maxlength-' + i).maxlength({
			maxCharacters : i,
			slider : true,
			status : true
		});
	}
	jQuery('label.required span').remove();
	jQuery('label.required').each(function() {
		var text = jQuery(this).text();
		jQuery(this).text("");
		jQuery(this).append("<span>* </span>");
		jQuery(this).append(text);
	});

	jQuery(document).bind('keydown', 'return', function(evt) {
		if (evt.target.tagName.toLowerCase() == "textarea") {
			return true;
		}
		return applyHotKey('.main-button');
	});
	jQuery('.captchaImage').css({
		'opacity' : '0.2',
		'cursor' : 'pointer',
		'width' : '32px'
	});
	jQuery('.captchaImage').each(function() {
		jQuery(this).click(function() {
			jQuery('.captchaImage').css({
				'opacity' : '0.2'
			});
			jQuery(this).css({
				'opacity' : '10'
			});
		});
	});
	jQuery('.site-fieldset').css({
		'background-image' : 'none'
	});
	setColumnsSize();
	loadGaleria();
}

/**
 * @param form -
 *            Id do formulario
 * @param action -
 *            A url alvo
 * @param result -
 *            o resultado (output) da url alvo.
 */
function submitAjax(form, action, result) {
	jQuery.post(action, jQuery('#' + form).serialize(), function(data) {
		jQuery('#' + result).html(data);
	});
}

jQuery(document).ready(startup);

(function($) {
	$.fn.poll = function(options) {
		var $this = $(this);
		// extend our default options with those provided
		var opts = $.extend({}, $.fn.poll.defaults, options);
		setInterval(update, opts.interval);

		// method used to update element html
		function update() {
			skipAjaxListeners = true;
			$.ajax({
				type : opts.type,
				url : opts.url,
				success : opts.success
			});
			skipAjaxListeners = false;
		}
		;
	};

	// default options
	$.fn.poll.defaults = {
		type : "POST",
		url : ".",
		success : '',
		interval : 2000
	};
})(jQuery);

jQuery("#online").poll({
	url : "polling.php",
	interval : 60000,
	type : "GET",
	success : function(data) {
		jQuery("#online").html("");
		jQuery("#online").append(data);
	}
});
