$(document).ready(function() {});

$utils = {}

$utils.parseIntDefault = function(value, defaultValue) {
	if (isNaN(parseInt(value, 10))) {
		return defaultValue;
	} else {
		return parseInt(value, 10);
	}
}

$utils.parseSQLDate = function(value) {
	var year = $utils.parseIntDefault(value.substr(0, 4), 0);
	var month =  $utils.parseIntDefault(value.substr(5, 2), 0);
	var day =  $utils.parseIntDefault(value.substr(8, 2), 0);
	var hours =  $utils.parseIntDefault(value.substr(11, 2), 0);
	var minutes =  $utils.parseIntDefault(value.substr(14, 2), 0);	
	var seconds =  $utils.parseIntDefault(value.substr(18, 2), 0);
	var date = new Date(year, (month - 1), day, hours, minutes, seconds);
	return date;
}

$utils.dateToString = function(value, time) {
	var year = value.getFullYear();
	var month =  $utils.pad(value.getMonth() + 1, 2, '0', 1);
	var day =  $utils.pad(value.getDate(), 2, '0', 1);
	var hours =  $utils.pad(value.getHours(), 2, '0', 1);
	var minutes =  $utils.pad(value.getMinutes(), 2, '0', 1);
	var seconds = $utils.pad(value.getSeconds(), 2, '0', 1);
	var date = day  + "/" + month + "/" + year
	if (time) {
		date = date + " " + hours + ":" + minutes;
	}
	return date;
}

$utils.pad = function (str, len, pad, dir) {
	var str = str + "";
	var len = (typeof(len) == "undefined")?0:len;
	var pad = (typeof(pad) == "undefined")?0:pad;
	var dir = (typeof(pad) == "undefined")?0:dir;

	if (len + 1 >= str.length) {
 		switch (dir){
 			case 1:
				str = Array(len + 1 - str.length).join(pad) + str;
			break;
 			case 2:
				var right = Math.ceil((padlen = len - str.length) / 2);
				var left = padlen - right;
				str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
			break;
 			default:
				str = str + Array(len + 1 - str.length).join(pad);
			break;
		} 
	}
	return str;
}

$utils.getTopLeft = function(elm){
	var x, y, i = 0;
	x = elm.offsetLeft;
	y = elm.offsetTop;
	elm = elm.offsetParent;
	while(elm != null)	{
		i++
		x = parseInt(x) + parseInt(elm.offsetLeft);
		y = parseInt(y) + parseInt(elm.offsetTop);	
		if (elm.offsetParent) {
			if (parseInt(elm.offsetLeft) == parseInt(elm.offsetParent.offsetLeft)) {
				elm = elm.offsetParent.offsetParent;
			} else {
				elm = elm.offsetParent;
			}
		} else {
			elm = null;
		}
	}
    return {top:y, left: x};
}

$utils.getPageSize = function () {
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){// all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else {// Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}

	return {width:pageWidth, height: pageHeight};
}


$utils.createMask = function(selector, alpha, color, loading) {
	var element = $($(selector).get(0));
	if (element) {
		mask_id = "div_mask_" + (new Date()).getTime();

		var mask_attr = selector;
		
		var mask = $("div[mask=" + mask_attr + "]").get(0); 
		
		if (!mask) {
			mask = document.createElement("DIV");
		}
		
		var maskWidth = element.outerWidth() + "px";
		var maskHeight = element.outerHeight() + "px";

		if (element.get(0).tagName == 'BODY') {
			var page = $ajax.getPageSize();
			maskWidth = page.width + "px";
			maskHeight = page.height + "px";	
		}

		var pos = $ajax.getTopLeft(element.get(0));
		$(mask).attr("id", mask_id);
		$(mask).attr("mask", mask_attr);
		$(mask).css("position", "absolute");
		$(mask).css("top", pos.top + "px");
		$(mask).css("left", pos.left + "px");
		$(mask).css("width", maskWidth);
		$(mask).css("height", maskHeight);
		$(mask).css("z-index", 101);
		$(mask).css("background-color", color);
		$(mask).css("text-align", "center");
		
		if (loading) {			
			var img = $("#" + mask_id + " img").get(0); 			
			if (!img) {
				img = document.createElement("IMG");
			}
			$(img).attr("src", "images/ajax-loader.gif");
			$(img).css("width", "32px");
			$(img).css("height", "32px");
			$(img).css("margin-top", (element.outerHeight() / 2 + 16) + "px");
	
			$(mask).append($(img));
		}
		
		if (alpha > 0) {
			if((navigator.appName.indexOf('Explorer') > -1)){
				$(mask).css('filter', 'alpha(opacity=' + (alpha * 100) + ')');
			}
			else{
				$(mask).css('filter', 'alpha(' + alpha + ')');
				$(mask).css('moz-opacity', alpha);
				$(mask).css('khtm-opacity', alpha);
				$(mask).css('opacity', alpha);
			}
		}

		$(mask).show();

		$('body').append($(mask));
	}
}

$utils.removeMask = function(selector) {
	var element = $(selector);

	if (element) {
		var mask_attr = selector;
		var mask = $("div[mask=" + mask_attr + "]"); 
		mask.remove();
	}
}

$utils.formatDate = function(field){
	fieldValue = field.value + "";
	if ((fieldValue.length == 2) || (fieldValue.length == 5)){
		field.value = fieldValue + "/";
	}
}

$utils.acceptNumbers = function(e) {
	var charCode = 0;
	if ($.browser.msie) {
		charCode = (e.which) ? e.which :((event)?event.keyCode:0);
	} else {
		charCode = e.which;
	}
	return (!(charCode > 31 && (charCode < 48 || charCode > 57)));
}

$utils.trim = function(str) {
	str = str + "";
	return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

$utils.ltrim = function(str) {
	return str.replace(/^\s+/,"");
}

$utils.rtrim = function(str) {
	return str.replace(/\s+$/,"");
}

$ajax = {}

$ajax.showEvent = function(a) {
	if ($(a).is('select')) {
		var json = $(a).children('option[selected]').attr('entity_json');
	} else {
		var json = $(a).attr('entity_json');
	}
	if (json != undefined) {
		var ev = eval('(' + json + ')');
		var start_date = $utils.parseSQLDate(ev.ev_start_date);
		var end_date = $utils.parseSQLDate(ev.ev_end_date);	
		
		if (start_date.getTime() == end_date.getTime()) {
			$('#titulo2').html(ev.ev_title + " - " + $utils.dateToString(start_date));
		} else {
			$('#titulo2').html(ev.ev_title + " - " + $utils.dateToString(start_date) + " - " + $utils.dateToString(end_date));
		}
	
		$('#descricao').html(ev.ev_text);
	
		if (!$(a).is('select')) {
			$('#logomarcas').hide();
			$('#loading_logomarcas').show();			
			//$('#descricao').columnize({columns:2});	
			$('#eventos_intro').hide();	
			$('#conteudo_evento').show();
			$('#logomarcas').load('eventos_imagens.php?id=' + ev.ev_id, $ajax.showPhotos);			
		} else {
			$('#img_logo_evento').attr('src', ev.ev_image_path);
			$('#eventos_dados').show();
			$('#slogan_evento').hide();	
		}
	} else {
		if (!$(a).is('select')) {
			$('#eventos_intro').show();	
			$('#conteudo_evento').hide();	
		} else {
			$('#eventos_dados').hide();
			$('#slogan_evento').show();	
		}
	}
}

$ajax.showPhotos = function() {
	$('#loading_logomarcas').hide();	
	if ($('#logomarcas').find('a').length > 0) { 
		$('#logomarcas').show();
	}
}

$ajax.showAds = function(a) {
	var json = $(a).attr('entity_json');
	if (json != undefined) {
		var ads = eval('(' + json + ')');
		$('#logomarcas').hide();
		$('#loading_logomarcas').show();			

		$('#titulo2').html(ads.ss_title);
		$('#descricao').html(ads.ss_text);
		//$('#descricao').columnize({columns:2});			
		$('#publicidade_intro').hide();	
		$('#publicidade_dados').show()
		
		$('#logomarcas').load('publicidade_imagens.php?id=' + ads.ss_id, $ajax.showPhotos);
	}
}

$ajax.sendContact = function() {
	var nome = $('#frm_contato :input[name=nome]').val();
	var email = $('#frm_contato :input[name=email]').val();
	var email2 = $('#frm_contato :input[name=email2]').val();
	var mensagem = $('#frm_contato :input[name=mensagem]').val();
	
	
	if ($utils.trim(nome).length == 0) {
		alert("Por favor, digite seu nome.");
		$('#frm_contato :input[name=nome]').focus();
		return;
	}
	
	if ($utils.trim(email).length == 0) {
		alert("Por favor, digite seu e-mail.");
		$('#frm_contato :input[name=email]').focus();
		return;
	}

	if ($utils.trim(mensagem).length == 0) {
		alert("Por favor, digite sua mensagem.");
		$('#frm_contato :input[name=mensagem]').focus();
		return;
	} 
	
	if (email != email2) {
		alert("E-mail e confirmação de e-mail estão diferentes.");
		$('#frm_contato :input[name=email]').focus();
		return;
	} 
	
	$('#frm_contato').submit();
}

$ajax.sendEvent = function() {
	var nome = $('#frm_evento :input[name=nome]').val();
	var email = $('#frm_evento :input[name=email]').val();
	var email2 = $('#frm_evento :input[name=email2]').val();
		
	if (parseInt($("#cmbEvento").val(), 10) <= 0) {
		alert("Por favor, selecione o evento.");
		$("#cmbEvento").focus();
		return;
	}
	
	if ($utils.trim(nome).length == 0) {
		alert("Por favor, digite seu nome.");
		$('#frm_evento :input[name=nome]').focus();
		return;
	}
	
	if ($utils.trim(email).length == 0) {
		alert("Por favor, digite seu e-mail.");
		$('#frm_evento :input[name=email]').focus();
		return;
	}

	if (email != email2) {
		alert("E-mail e confirmação de e-mail estão diferentes.");
		$('#frm_evento :input[name=email]').focus();
		return;
	} 
	
	$('#frm_evento').submit();
}

function closePhoto() {
	$('#photo_container').hide();
}

function showPhoto(img, count, index, label) {
	if (count == index) {
		$('#photo_next').css('visibility','hidden');
		$('#photo_prev').css('visibility','visible');		
	} else if (1 == index) {
		$('#photo_next').css('visibility','visible');
		$('#photo_prev').css('visibility','hidden');				
	} else {
		$('#photo_next').css('visibility','visible');
		$('#photo_prev').css('visibility','visible');		
	}
	$('#photo').css('background-image', img);
	$('#photo_label').html(label);
	$('#photo_current').html(index);
	$('#photo_last').html(count);	
	$('#photo_container').show();
}

function showPreviousPhoto() {
	var photo = parseInt($('#photo_current').text());
	if (!isNaN(photo)) {
		photo = (photo - 1);
		if (photo > 0) {
			$('#link_image_' + photo).click();
		}
	}
}

function showNextPhoto() {
	var photo = parseInt($('#photo_current').text());
	var last = parseInt($('#photo_last').text());	
	if ((!isNaN(photo)) && (!isNaN(last))) {
		photo = (photo + 1);
		if (photo <= last) {
			$('#link_image_' + photo).click();
		}
	}
}


function showPreviousPage() {
	var page = parseInt($('#page_current').text());
	if (!isNaN(page)) {
		page = (page - 1);
		if (page > 0) {
			$('[id^=div_image_]').hide();
			$('#page_current').html(page);
			$('#div_image_' + page).show();
			if (page == 1) {
				$('#page_prev').css('visibility','hidden');
				$('#page_next').css('visibility','visible');
			} else {
				$('#page_prev').css('visibility','visible');
			}
		}
	}
}

function showNextPage() {
	var page = parseInt($('#page_current').text());
	var last = parseInt($('#page_last').text());	
	if ((!isNaN(page)) && (!isNaN(last))) {
		page = (page + 1);
		if (page <= last) {
			$('[id^=div_image_]').hide();			
			$('#page_current').html(page);
			$('#div_image_' + page).show();
			
			if (page == last) {
				$('#page_next').css('visibility','hidden');
				$('#page_prev').css('visibility','visible');
			} else {
				$('#page_next').css('visibility','visible');
			}			
		}
	}
}

function showVideo() {
	var innerWindow = new InnerWindow();
	innerWindow.title = "";
	innerWindow.windowWidth = 400;
	innerWindow.windowHeight = 450;
	innerWindow.openWindow(true);
	$('#' + innerWindow.windowBox.id).load("movie_empresa.html");
}

function showScrollEvents() {
	$('#conteudo').jScrollPane({showArrows:true, scrollbarWidth:15,	scrollbarMargin:15,	arrowSize:15, scrollbarMargin: 8});
}
