// funções para o blog de olimpíadas 2008 (template Wordpress)
// Ricardo Tomasi 
// Terra Networks BR

// verifica IE 6 ou inferior
var ie6;
// verifica suporte a XHR
window.XMLHttpRequest ? ie6=0 : ie6=1;

/*
tabs mais recentes / mais comentados
*/

// libera o objeto '$' para o prototype
jQuery.noConflict();
// jQuery acessível por $j
$j = jQuery;

function ativaTabs(){

	var lmc=document.getElementById('lnk-mc');
	var lmr=document.getElementById('lnk-mr');
	var mc=$j('#mod-mc');
	var mr=$j('#mod-mr');
	if (!ie6 && !jQuery.browser.msie) {
	lmc.onclick = function(event){mc.fadeIn();mr.hide();lmr.className='';lmc.className='most-active';cancelclick(event)};
	lmr.onclick = function(event){mr.fadeIn();mc.hide();lmc.className='';lmr.className='most-active';cancelclick(event)};
	} else {
	lmc.onclick = function(){mc.fadeIn();mr.hide();lmr.className='';lmc.className='most-active';cancelclick(event)};
	lmr.onclick = function(){mr.fadeIn();mc.hide();lmc.className='';lmr.className='most-active';cancelclick(event)};
	}
	
	// apaga campo de busca no primeiro clique
	var busca=document.getElementById('fld-busca');
	busca.firstclick = true;
	busca.onclick = function(){ if(this.firstclick){this.value='';this.firstclick=false;} else {this.onclick=null;} };
}
	
/*
caixa de comentarios
*/

	function addComment(e,post_id) {
		
		// colocar formulario no fim do body pra evitar problemas com z-index
		if ( !$j('#commentform').is(':last-child') ) $j('body').append( $j('#commentform'));
		
		//mover captcha pra baixo
		setTimeout(function(){$j('#captcha_div').appendTo('#captcha_aqui')},100);
		
		// criar div lightbox se não existe
		if ( !$j('#lightbox_overlay').is('div') ) $j(document.body).append('<div id="lightbox_overlay"></div>');
		// esconde object e iframe para evitar sobreposicao	
		function objs_vis(p) {
			$j('object,embed').each( function(){this.style.visibility = p} );
		}

		var $form = $j('#commentform');

		// passa ID do post para o form
		$j("#commentform input[name='comment_post_ID']").val(post_id);
		
		//resolucao baixa
		if ( (window.innerHeight||document.documentElement.clientHeight) < 580 ) {
			$j('head').append('<style type="text/css">.blog-ctn-sendcomment label { margin:2px 0 3px; line-height:1 }.blog-ctn-sendcomment .btns { margin-top:0 }</style>');
			$j('#comment').attr('rows','3');
		};

		//posicao	
		if ($j.browser.msie && $j.browser.version < 7 && ie6) { //IE6
			//posiciona caixa
			$form.css({
				position :'absolute',
				marginTop :'0px',
				left : mouseX(e)-$form.width(),
				top : mouseY(e)
			});
			// confere posição pra nao ficar fora da tela
			var formtop = $form.css('top').split('px')[0];
			if (document.documentElement.scrollTop+300 < formtop ) {
				$form.css('top',document.documentElement.scrollTop+300 + 'px');
			}
		} else {
			$j('#commentform').css('margin-top','-'+parseInt( $j('#commentform').height()/2 )+'px');
		}
															
		//reposicionar com captcha
		if (typeof show_captcha != 'undefined') {
			old_show_captcha = show_captcha;
			show_captcha = function(transport){
				old_show_captcha(transport);
				setTimeout(function(){$j('#commentform').css('margin-top','-'+parseInt( $j('#commentform').height()/2 )+'px')},300);
			}
		}
											  
		// estende o overlay para a altura da pagina
		$j('#lightbox_overlay').height( docSize().h ).show();
		// esconde objects
		objs_vis('hidden');
		// exibe formulario
		$form.slideDown('slow');

		// botao fechar / cancelar
		$j('#btn-close, #btn-cancel, #lightbox_overlay').click( function() {
			$form.get(0).reset(); // limpa os campos do formulario
			$j('#lightbox_overlay').hide();
			$form.slideUp('');
			objs_vis('visible');
			
		});
		
		// cancelar clique
		cancelclick(e);

	}

	function abuseReport(e,url) {
		$abuso = $j('#abusereport');
		
		// passa url do post#comentario para o form
		$j('#fld-abuseReportURL').val(url);
		// posiciona e exibe form
		$abuso.css('left', mouseX(e) );
		$abuso.css('top', mouseY(e) );
		$abuso.slideDown('');
		// botão cancelar
		$j('#abusereport .btn-toolboxcancel').click( function() {
			$abuso.get(0).reset(); // limpa form
			$abuso.slideUp();
		});
		
		cancelclick(e);
	}

	function docSize(){
		var b0dy = document.body;
		if( window.innerHeight && window.scrollMaxY ) { // Firefox 
			var W = window.innerWidth + window.scrollMaxX;
			var H = window.innerHeight + window.scrollMaxY;
		} else if( b0dy.scrollHeight > b0dy.offsetHeight ) { // all but Explorer Mac
			var W = b0dy.scrollWidth;
			var H = b0dy.scrollHeight;
		} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
			var W = b0dy.offsetWidth + b0dy.offsetLeft; 
			var H = b0dy.offsetHeight + b0dy.offsetTop;
		}
		page = {w:W,h:H};
		return page;
	}
	
	// cancela click (return false nao funciona no firefox)
	function cancelclick(e) {
		(e && e.preventDefault) // FF
			? e.preventDefault()
			: e.returnValue = false; //IE7
		return false; // IE, outros
	}
	
// paginacao dos comentarios
	pag_comments = {
		
		current : 0,
			
		pag : function(x){
			this.current = x;
			var menor = this.n*(x-1);
			var maior = this.n*x;
			$j('ol.blog-ctn-commentlist li').hide();
			if (x == 1)	{
				$j('ol.blog-ctn-commentlist li:lt('+ this.n +')').fadeIn();
				} else if (x < this.n_pages) {
				$j('ol.blog-ctn-commentlist li:lt('+ maior +'):gt('+ (menor-1)*1 +')').fadeIn();
				} else if (x == this.n_pages) {
				$j('ol.blog-ctn-commentlist li:gt('+ (menor-1)*1 +')').fadeIn();
				}
			this.display(menor,maior);
		},
		
		next : function(){
			if (this.current < this.n_pages) this.pag(this.current+1);
		},
		
		prev : function(){
			if (this.current > 1) this.pag(this.current-1);
		},
		
		showall : function(){
			$j('ol.blog-ctn-commentlist li').fadeIn();
			$j('.cbtn_prev,.cbtn_next,.cbtn_all').hide();
			$j('.cpag_N,.cpag_NT').hide().parent().hide();
			$j('.cpag_ALL').show();
		},
		
		display : function(men,mai){
			$j('.cbtn_prev,.cbtn_next,.cbtn_all').show();
			$j('.cpag_N').html(this.current);
			if (this.current == 1) $j('.cbtn_prev').hide();
			if (this.current == this.n_pages) $j('.cbtn_next').hide();
		},
		
		set : function(n) {
			
			// quantidade de comentários por página
			this.n = n;
			// total de comentarios (ja aproveita pra esconder todos)
			this.total = $j('ol.blog-ctn-commentlist li').length;		
			//caso haja link direto pra um comentário, exibir todos
			if (location.hash != '' && location.hash != '#comentarios') {
				this.showall();
			// se nao preencher uma pagina esconder navegacao
			} else if (this.total <= n) {
				$j('.cbtn_prev,.cbtn_next,.cbtn_all').hide();
				$j('.cpag_N,.cpag_NT').hide().parent().hide();
				$j('.cpag_ALL').show();
			} else { // iniciar na pagina 1
				this.pag(1);
			}
			
			this.n_pages = Math.ceil(this.total/n);
			$j('.cpag_NT').html(this.n_pages);
			$j('.cbtn_next').click( function(){pag_comments.next();return false;} );
			$j('.cbtn_prev').click( function(){pag_comments.prev();return false;} );
			$j('.cbtn_all').click( function(){pag_comments.showall();return false;} );
				
		}
	}
	
// mouse position
function mouseX(evt) {if (!evt) evt = window.event; if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return 0;}
function mouseY(evt) {if (!evt) evt = window.event; if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return 0;}

// functions.js
$j(document).ready(function(){							 
	function backgroundCache(){if($j.browser.msie&&$j.browser.version==6){try{document.execCommand("BackgroundImageCache",false,true);}catch(err){}}}function elementOver(className,obj,action){if(action==1){$j(obj).addClass(className);}else{$j(obj).removeClass(className);}}function toggleToolbox(action){if(action==1){$j(".ctn-toolbox").addClass("over");}else{$j(".ctn-toolbox").removeClass("over");}}var subToolboxTime=null;function toggleSubToolbox(obj,action){if(obj!=null){var subToolbox=$j("."+$j(obj).attr("rel"));}if(action==1){subToolbox.css("top",$j(obj).offset().top+23);subToolbox.css("left",$j(obj).offset().left);if(subToolbox.css("display")=="none"){clearTimeout(subToolboxTime);$j(".ctn-subtoolbox").hide();$j(".ctn-toolbox a").removeClass("selected");$j(obj).addClass("selected");subToolbox.slideDown(200);subToolboxTime=setTimeout("toggleSubToolbox(null,0)",2000);}}else if(action==0){clearTimeout(subToolboxTime);$j(".ctn-toolbox a").removeClass("selected");$j(".ctn-subtoolbox:visible").slideUp(200);}else{clearTimeout(subToolboxTime);}}function clickOut(e){var obj=$j(".clickout:visible");if(obj.size()>0){var leftMin=parseInt(obj.offset().left);var leftMax=leftMin+parseInt(obj.width());var topMin=parseInt(obj.offset().top);var topMax=topMin+parseInt(obj.height());var posX=parseInt(e.pageX);var posY=parseInt(e.pageY);if(!((posX>=leftMin&&posX<=leftMax)&&(posY>=topMin&&posY<=topMax))){$j(".ctn-toolbox a").removeClass("selected");$j(".clickout:visible").hide();}}}function fontResize(size){if(size==1){$j(".fontresize").css("font-size","100%");}else if(size==2){$j(".fontresize").css("font-size","130%");}else{$j(".fontresize").css("font-size","160%");}}
	
// events.js
backgroundCache();$j(".ctn-toolbox").hover(function(){toggleToolbox(1);},function(){toggleToolbox(0);});$j(".ctn-toolbox a").click(function(){toggleSubToolbox(this,1);return false;});$j(".ctn-subtoolbox").hover(function(){toggleSubToolbox(null,2);},function(){if($j(this).attr("class").indexOf("ctn-share")>-1){toggleSubToolbox(this,0);}});$j(".lnk-closetoolbox").click(function(){toggleSubToolbox(null,0);return false;});$j(".btn-toolboxcancel").click(function(){toggleSubToolbox(null,0);});$j(document).click(function(e){clickOut(e);});$j(".lnk-fontresize").click(function(){fontResize($j(this).attr("href").replace("#",""));return false;});
});

/* INICIALIZAÇÃO
*/

$j(document).ready(function(){
	
	ativaTabs();
	
	// limita imagens a 575px de largura
	$j('#content img').each(function(){
		if ($j(this).width() > 565)
			($j(this).parent().hasClass('img-horizontal'))
				? $j(this).width(592)
				: $j(this).width(565);
	});
	
	// ajusta altura do conteúdo
	$j('.col-content').css('min-height',$j('.col-modules').height());
	if (ie6 && $j('.col-content').height() < $j('.col-modules').height()) $j('.col-content').css('height',$j('.col-modules').height());
		
}); //document.ready