$(document).ready(init);

function init() {
	/* +ie6 hacks */
	if (isIe6()) {
		ieFlickerFix(); 
	}
	/* end ie6 hacks */
	
	/* +search */
	search(); // função com as funcionalidades básicas da busca (abrir e fechar o busca avançada)
	/* end search */
	
	/* +defaults */
	rels();
	htmlActions();
	_disabled('.disabled');
	boxMedia();
	roundedCorner();
	/* end defaults */
	
	
	/* +pages */
	home();
	/* end pages */
	
	iconLinks(); // ie icon hack
}

$(window).load(
	function(){
		galleryInit($('#projects-details div.gallery-menu .carousel'),'442px','image');
	}
);

/* +search */
var inFocus; // está com focus (true ou false)
var inMouseEnter; // está com o ponteiro do mouse sobre (true ou false)
function search() {
    var searchForm = $('#search-form');
    var searchInput = $('#search-form :input');

    searchInput.blur();

    $('#advanced-search').css('display', 'none');
    searchForm.css('height', '77px').removeClass('open').addClass('close');

    if (isIe6()) // background ie6 hack
        searchForm.addClass('png_bg');

    $('<a href="javascript:void(0)" class="open-close-arrow opened hide-text"></a>').insertBefore($('label[for=search]'));
    var arrow = $('.open-close-arrow');
    arrow.removeClass('opened');

    arrow.click(
	function() {
	    if (searchForm.hasClass('close')) {
	        inFocus = true;
	        $('#search').focus();
	    }
	    else {
	        inFocus = false;
	        $('#search').blur();
	    }
	}
);

    searchInput.focus(
	function() {
	    inFocus = true;
	    if (searchForm.hasClass('close'))
	        advancedSearch();
	}
);

    searchInput.blur(
	function() {
	    inFocus = false;
	}
);

    setInterval( // listener
	function() {
	    if (!inFocus && !inMouseEnter && searchForm.hasClass('open')) {
	        $('.open-close-arrow').removeClass('opened');

	        $('#advanced-search').fadeOut("slow",
				function() {
				    searchForm.stop().animate({
				        height: '77px'
				    }, "slow").removeClass('open').addClass('close');
				}
			);
	    }
	},
1500);
}
/* end search */

/* +defaults */
function _enable(selector) { // funcao para habilitar botoes (parametro seletor css)
	var el = $(selector);
	el.css({ opacity:'1', cursor:'pointer' });
	el.attr('title',el.attr('title').replace(' (botão desabilitado)',''));
	el.click(function() {
		return false;
	});
}

function _disabled(selector) { // funcao para desabilitar botoes (parametro seletor css)
	var el = $(selector);
	el.css({ opacity:'0.5', cursor:'default' });
	el.attr('title',el.attr('title') + ' (botão desabilitado)');
	el.click(function() {
		return false;
	});
}

function rels() { // função que atribui ações conforme o valor do atributo relationship da tag a
	
	$("a[rel*=external]").attr("target", "_blank");
	
}

function htmlActions() {
	$('#box-cultural-memory a, #memory a').click( //pop-up memória cultural
		function() {
			newWindow($(this).attr('href'), 'cultural_window', 800, 600, 0, true);
		
			return false;
		}
	).removeAttr('target');
	
	$('a[href="http://www2.petrobras.com.br/minisite/MemoriaCultural/port/index.asp"]').click(
		function() {
			newWindow($(this).attr('href'), 'MemoriaCultural', 800, 600, 0, true);
			
			return false;
		}
	);

	function trackerSearch() {//build tracker for the search form
	    var searchField = $('#search-container #search');
	    var categoryField = $('#search-container #combo-category');
	    var stateField = $('#search-container #combo-state');

	    $('<input type="hidden" id="receiveSearch" value="" />').insertAfter(searchField);
	    $('<input type="hidden" id="receiveCategory" value="" />').insertAfter(categoryField);
	    $('<input type="hidden" id="receiveState" value="" />').insertAfter(stateField);

	    searchField.stringToSlug({
	        getPut: $('#receiveSearch')
	    });
	    categoryField.stringToSlug({
	        getPut: $('#receiveCategory')
	    });
	    stateField.stringToSlug({
	        getPut: $('#receiveState')
	    });

	    $('#search-form').submit(
		    function() {
	            tracker('/cultura/projetos-patrocinados/filtro/' + $('#receiveSearch').val());

		        if (categoryField != null && categoryField != "") {
		            tracker('/cultura/projetos-patrocinados/filtro/' + $('#receiveCategory').val());
		        }
		        if (stateField != null && stateField != "") {
		            tracker('/cultura/projetos-patrocinados/filtro/' + $('#receiveState').val());
		        }
		        
		    }

	    );
	}
	trackerSearch();

}


function boxMedia() {
	
	var selector = '.box-media ul.tabs a';
	var links = $(selector);
	
	$('.box-media-container').css({ height:'35.7em', overflow:'hidden' });
	$('.box-media .content').css('height','30.5em');
	$('.box-media .content h5').hide();
	$('.box-media-container div:first').show();

	links.bind('click', function() {
	    links.removeClass('selected');
	    $(this).addClass('selected');

	    var index = $(selector).index(this);

	    $('.box-media .content:eq(' + index + ')').show();
	    $('.box-media .content:gt(' + index + '), .box-media .content:lt(' + index + ') ').hide();

	    return false;
	});
}

function roundedCorner() {
	var html = '<div class="image-border image-lt png_bg"></div>';
	html += '<div class="image-border image-rt png_bg"></div>';
	html += '<div class="image-border image-lb png_bg"></div>';
	html += '<div class="image-border image-rb png_bg"></div>';
	
	$('.rounded-image').append(html);
}

function tracker(name){
		try {
			var pageTracker = _gat._getTracker("UA-12109202-1");
			pageTracker._trackPageview(name);
		} catch(err) {}
}

/* end defaults */

/* +Galeria Multimídia */
function galleryInit(elm, width, type) {
    if ($('#gallery-menu-container li').length >= 8)
        galleryMenuCarousel(elm, width);
    
    if(type.search('image') != -1)
        galleryClickImage();

    galleryGeneric('#media .video', '.video-view');
    galleryGeneric('#media .audio', '.audio-view');
    galleryGeneric('#media .reading', '.reading-view');
}

function galleryMenuCarousel(elm, width) {
	if(elm[0]) {
		
		elm.parent().prepend('<ul class="scroll"><li class="previous"><a href="javascript:void(0)" class="hide-text png_bg"> &lt; </a></li><li class="next"><a href="javascript:void(0)" class="hide-text png_bg"> &gt; </a></li></ul>');
		
		elm.jMyCarousel({  
			visible: width,
			btnPrev: $('div.gallery-menu .scroll .previous a'),
			btnNext: $('div.gallery-menu .scroll .next a'),
			circular: false,
			vertical:false
		 });  

		$('div.gallery-menu .carousel').css('width', $('div.gallery-menu .carousel').width() - 4 + 'px');
		
	}
}

function galleryClickImage() {
	var current;
	var view = $('.gallery .image-view');
	var img = view.find('img');
	$('.gallery .gallery-menu .carousel a').bind('click', function() {
		if ($(this).equals(current)==false) {
			var src = $(this).attr('href');
			var alt = $(this).find('img').attr('alt');
			
			img.fadeOut('1000',function() {
				view.find('p').html(alt).end().addClass('loading');
				preloadImage(src, function() {
					view.removeClass('loading');
					img.attr({ src:src, alt:alt }).fadeIn();
				});
			});
			current = $(this);
		}
		return false;
	});
}

function galleryGeneric(selector, viewport) {
    var el = $(selector);
    var links = el.find('ul li a');
    links.bind('click', function() {
        links.removeClass('selected');
        $(this).addClass('selected');
        var options = {
            type: 'POST',
            url: $(this).attr('href'),
            data: '',
            success: function(response) {
                el.find(viewport).html(response);
            }
        }
        $.ajax(options);
        return false;
    });
}



/* end Galeria Multimídia */

/**************************************** + SUPPORT FUNCTIONS ***********************************************/
function advancedSearch() {
    $('.open-close-arrow').addClass('opened');

    $('#search-form').stop().animate({
        height: '186px'
    }, 'slow',
		function() {
		    $('#advanced-search').fadeIn("slow");
		}
	).removeClass('close').addClass('open');
}

function clickFade(anchor, fadeElement) {

    var showed_href;
    var animating = false;

    $(anchor).bind('click', function() {

        var link = $(this);
        var link_href = link.attr('href');

        if ((animating == false) && (link_href != showed_href)) {

            showed_href = $(this).attr('href');
            animating = true;

            $(fadeElement + ':visible').fadeOut("slow");
            $(link_href).fadeIn("slow", function() {
                animating = false;
            });

            $(this).parent().siblings(".selected").toggleClass("selected");
            $(this).parent().toggleClass("selected");

        }

        return false;

    });
}

function newWindow(mypage,myname,w,h,scroll,center){ // função para abrir popup
	if(center == true) {
		var winl = (screen.width-w) / 2;
		var wint = (screen.height-h) / 2;
	}
	
	var settings ='height='+h+',';
	
	settings +='width='+w+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars='+scroll+',';
	settings +='resizable=yes';
	
	var win=window.open(mypage,myname,settings);
	
	win.focus();
}
/************************************** end SUPPORT FUNCTIONS *********************************************/


/*************************************************** +PAGES ************************************************/
/* +home */
function home() {
	if($('#home')[0] ) {
		$('.carousel-highlights').carouselHighlights({ interval: 5000 });
		
		/* +vars */
		var extrasAjaxContainer; //container ajax das thumbs
		var thumbsLinks; //links das thumbs
		var queryId; 
		var itemId; // id do item detalhado
		var type; // tipo de mídia
		var currentThumbs;
		/* end vars */
		
		homeExtrasInit();
	}
}

/******************************************** +home box-extras ***********************************************/
function homeExtrasInit() {
	if($('#home #box-extras')[0]) {
		extrasAjaxContainer = $("#extras-ajax"); //container ajax das thumbs
		
		homeExtras(); // executa a função homeExtras para os itens que já estão carregados

		$('#box-extras .see-others').bind('click', // recarrega com ajax as thumbs com um padrão de posicionamento diferente do atual (3 padrões de posicionamento identificados pelas classes module-a, module-b e module-c)
			function() {
				refreshThumbs($(this), extrasAjaxContainer);
				
				return false;
			}
		).attr('href','javascript:void(0)');
		
	}
}

function refreshThumbs(elm, extrasAjaxContainer) {
	elm.unbind('click');

	currentThumbs = $('#extras-ajax #gallery-thumbs').attr('class');
	if (currentThumbs == undefined) currentThumbs = ""
				
	if($('#gallery-details')[0] && $('#gallery-details').css('display') == 'block') {
	// se existir #gallery-details retira seu conteúdo e o fecha
		$('#extras #gallery-details').css('display','none'); 
		$('.details-container').css('display','none');
	}
	
	extrasAjaxContainer.html('<img src="'+ rootUrl +'Content/imgs/others/loader.gif" alt="Carregando..." class="loader" />');
	
	$.get(rootUrl + 'index/extras/' + currentThumbs,
		function(data) {
			extrasAjaxContainer.find('.loader').css('display','none');
			extrasAjaxContainer.html(data);
			extrasAjaxContainer.find('#gallery-thumbs').fadeIn();
			
			homeExtras(); // rebind
			
			elm.bind('click', function() { refreshThumbs(elm, extrasAjaxContainer); });
		}
	);
	
}

function homeExtras() {
	thumbsLinks = $('#extras #gallery-thumbs a'); //links das thumbs
	
	thumbsLinks.each( // insere as imagens ampliadas para cada  thumb
		function() {
			$(this).find('.image-container').clone().prependTo($(this).find('.zoom')).removeClass('thumb');
		}
	);

	/*
		click para resolver bug do IE
	*/
	thumbsLinks.bind('click',
	    function() {
	        window.location = thumbsLinks.attr('href');
	    }
	);
	
	thumbsLinks.bind('focus', function() { homeExtrasTooltip($(this), 'open'); }); // abre tooltip
	thumbsLinks.bind('blur', function() { homeExtrasTooltip($(this), 'close'); }); // fecha tooltip
	
	thumbsLinks.hoverIntent({    
		sensitivity: 5,
		interval: 50,
		timeout: 50,
		over: function() { // abre tooltip
			homeExtrasTooltip($(this), 'open');
		},	
		out: function() { // fecha tooltip
			homeExtrasTooltip($(this), 'close');
		}
	});
	
}

function homeExtrasTooltip(elm, action) {
	if(action == 'open') {
		elm.parent().siblings().find('a').blur();
		elm.parent().siblings().find('.zoom').css('display','none');
		
		elm.parent().css('zIndex','2');
		
		if(!$.support.opacity)
			elm.find('.zoom').attr('style','filter:alpha(opacity=100)').fadeIn(250);
		else
			elm.find('.zoom').css('opacity','1').fadeIn(250);
	}
	
	if(action == 'close') {
		elm.parent().css('zIndex','1');
		elm.find('.zoom').fadeOut(250);
	}	
}

function closeDetails(elm) {
	elm.unbind('click').attr('href','javascript:void(0)');
	
	elm.parent().fadeOut('normal',
		function() {
			$(this).css('display','none');
			$(this).parent().css('display','none');
			$('#extras #gallery-thumbs').fadeIn(
				function() {
					
					if(!$.support.opacity)
						$(this).find('.zoom').attr('style','filter:alpha(opacity=0)');
					else
						$(this).find('.zoom').css({display:'none', opacity:'0'});
				
				}
			);
			
			elm.bind('click',function() { closeDetails(elm); return false; });
		}
	);	
}
/******************************************** end home box-extras ***********************************************/
/* end home */
/***************************************************** end PAGES ***********************************************/


/*************************************************** +plugins ***************************************************/
// check if the image is loaded
function preloadImage(src, callback) {
	var preloadImg = new Image();
	jQuery(preloadImg).load(callback
	).attr({ src:src });
}

// compare jquery objects
$.fn.equals = function(compareTo) {
	if (!compareTo || !compareTo.length || this.length!=compareTo.length) {
		return false;
	}
	for (var i=0; i<this.length; i++) {
		if (this[i]!==compareTo[i]) {
			return false;
		}
	}
	return true;
}

jQuery.fn.locale = function(ref) {
	
	var lang = 'pt';
	var translation = new Array();
	
	if (lang=='pt') {
		translation['scrollHighlightsUp'] = 'Rolar destaques para cima',
		translation['scrollHighlightsDown'] = 'Rolar destaques para baixo'
	}
	else {
		translation['scrollHighlightsUp'] = 'Scroll highlights up',
		translation['scrollHighlightsDown'] = 'Scroll highlights down'
	}
	
	if (lang && ref) return translation[ref];
	else return false;

}

/* +highlights-carousel  */
jQuery.fn.carouselHighlights = function(options){ 

	var list = this.find('.headlines ul');
	var details = this.find('.highlights ul');
	
	var items = list.find('li');
	var detailsItems = details.find('li');
	
	var btUp = '.headlines a.up';
	var btDown = '.headlines a.down';
	var btsDisabled = '.headlines a.jcarousel-prev-disabled, .headlines a.jcarousel-next-disabled';
	
	var scrolling;
	
	list.jcarousel({
		vertical: true,
		scroll: 1,
		visible: 4,
		initCallback: controller,
		buttonNextCallback: disableButtons,
		buttonPrevCallback: disableButtons,
		buttonPrevHTML: '<a href="javascript:void(0)" title="'+jQuery.fn.locale('scrollHighlightsUp')+'" class="up hide-text">'+jQuery.fn.locale('scrollHighlightsUp')+'</a>',
		buttonNextHTML: '<a href="javascript:void(0)" title="'+jQuery.fn.locale('scrollHighlightsDown')+'" class="down hide-text">'+jQuery.fn.locale('scrollHighlightsDown')+'</a>'
	});
	
	function disableButtons() {
		_enable(btUp);
		_enable(btDown);
		_disabled(btsDisabled); 
	}
	
	function adjustments(carousel) {
		
		//list.addClass('show-'+items.length);
		details.find('li').css({ position:'absolute', top:'0', left:'0' });
		details.find('li:not(:first)').hide();
		
		jQuery(btUp).after('<span class="invisible"> | </span>');
		
		if(items.length <= carousel.options.visible) {
			jQuery(btUp).hide();
			jQuery(btDown).hide();
		}
		
	}
	
	function controller(carousel) {
	
		adjustments(carousel);
		interval(1);
		
		items.hoverIntent({    
			sensitivity: 5,
			interval: 150,
			timeout: 150,
			over: function() {
				clearInterval(scrolling);
				var index = items.index(this);
				show(index);
			},	
			out: function() {
				var current = items.index(items.filter('.selected'));
				var index = (current+1 >= items.length) ? 0 : current+1;
				interval(index);
			}
		});
		
		function interval(inc) {
			scrolling = setInterval(function() {
				show(inc);
				inc++;
				if (inc >= items.length) inc = 0;
			},options.interval);
		}
		
		function show(index) {
			items.removeClass('selected');
			items.eq(index).addClass('selected');
			var current = detailsItems.filter(':visible');
			var toShow = detailsItems.eq(index);
			if (!current.equals(toShow)) {
				current.fadeOut(100, function() {
					toShow.fadeIn();
				});
			}
			if (index==0) carousel.scroll(jQuery.jcarousel.intval(1)); // back to first item
			else if (index > (carousel.options.visible-1)) carousel.next(); // scroll down
		}
	
	}
}
/* end highlights-carousel  */
/*************************************************** end plugins *************************************************/


/******************************************* +sIFR **********************************************************/
function textReplacement() {
	try{
		
		var dinRegular = { src: rootUrl+'Content/swf/din-regular.swf' };
		
		sIFR.activate(dinRegular);
		
		sIFR.replace(dinRegular, { selector: '.sifr-title', css: '.sIFR-root { color:#318FCA; leading:-4; } a { color:#318FCA; text-decoration:none; } a:hover { color:#318FCA; text-decoration:underline; }', wmode: 'transparent' });
		sIFR.replace(dinRegular, { selector: '.sifr-text', css: '.sIFR-root { color:#5FC001; leading:-4; } a { color:#5FC001; text-decoration:none; } a:hover { color:#5FC001; text-decoration:underline; }', wmode: 'transparent'});
	
	} catch(e){}
}
/****************************************** end sIFR ********************************************************/


/***************************************** +ie hacks *********************************************************/
function iconLinks() {
	if(isIe6() || $.browser.msie && $.browser.version >= 7 && $.browser.version <= 8) { // ie (6 e 7) hack
		$('.external-link').wrapInner('<span></span>').removeClass('external-link').append('<span class="external-link">&nbsp;</span>');
		
		var extLink = $('.external-link'); // links externos
		
		extLink.parents('a').mouseenter(
			function() {
				$(this).css('textDecoration','none');
				$(this).find('span:first').css('textDecoration','underline');
			}
		);
		
		extLink.parents('a').mouseleave(
			function() {
				$(this).find('span:first').css('textDecoration','none');
			}
		);
	}
}

function ieFlickerFix(){
	try {
		document.execCommand("BackgroundImageCache", false, true);

	} catch(err) {}
}

function isIe6() {
	if (typeof document.body.style.maxHeight === "undefined") return true;
	else return false;
}
/***************************************** end ie hacks ******************************************************/