var IsUserOnline = false;

// loadGeracaoNet
loadGeracaoNet = function() {
	// preloads
	preloadCont('.cont1');
	preloadCont('.smallBanner1');
	// eventos, estilos e alinhamentos
	$('#modGeraNetVideos li:last-child').css('margin-right', '0px');
	$('#modGeraNetJogos li:even').css('margin-right', '16px');	
	$('#modGeraNetAprender li:even').css('margin-right', '16px');
	$('#modGeraNetPagina li:even').css('margin-right', '16px');
	$('#modTopTube li:last-child').css('border', 'none');
	retiraBorder('modGeraNetJogos');
	retiraBorder('modGeraNetAprender');
	retiraBorder('modGeraNetPagina');
	$('#modGeraNetAprender li, #modGeraNetPagina li').each(function(){
		$(this).mouseenter(function(){$(this).css({'background-image': 'url(Images/rollOverBright.png)'});});
		$(this).mouseleave(function(){$(this).css({'background-image': 'none'});});	
		alinhaLi(this,-2);
	});
	$('#modTopTube li').each(function(){
		$(this).mouseenter(function(){$(this).css({'background-image': 'url(Images/rollOverBright.png)'});});
		$(this).mouseleave(function(){$(this).css({'background-image': 'none'});});	
		alinhaLi(this,0);
	});	
	$('#modGeraNetJogos li').each(function(){
		$(this).mouseenter(function(){$(this).css({'background-image': 'url(Images/rollOverDark.png)'});});
		$(this).mouseleave(function(){$(this).css({'background-image': 'none'});});		
		alinhaLi(this,-2);
	});	
	$('#modGeraNetVideos li').each(function(){
		$(this).mouseenter(function(){$('.linkText',this).stop().animate({color: '#52b800'}, 300);});
		$(this).mouseleave(function(){$('.linkText',this).stop().animate({color: '#8c92ac'}, 300);});		
		var topSpace = Number((82-$('span',this).height())/2);
		if (topSpace > 0) $('span',this).css("top", topSpace);
	});
	// formPagina validator
	formPagina();
}

// loadLipdup
loadLipdup = function(x) {
	// preloads
	preloadCont('.cont1');
	preloadCont('.cont2');
	preloadSmallMultiBanner('#smallBanner1');
	preloadSmallMultiBanner('#smallBanner23');
	// eventos, estilos e alinhamentos
	$('#pstLipdupOrderedList li').each(function(intIndex){$(this).css({'backgroundPosition':'left '+(-(intIndex*100))+'px'});});
	$('#modPstAnt li:last-child').css('border', 'none');
	$('#modPstAnt li').each(function(){
		$(this).mouseenter(function(){$(this).css({'background-image': 'url(Images/rollOverBright.png)'});});
		$(this).mouseleave(function(){$(this).css({'background-image': 'none'});});		
		alinhaLi(this,0);
	});	
	$('#sliderRanking li').each(function(){
		$(this).mouseenter(function(){$(this).css({'background-image': 'url(Images/rollOverBright.png)'});});
		$(this).mouseleave(function(){$(this).css({'background-image': 'none'});});		
	});
	switch(x){
		case 1:
		case 4:
			sliderRanking();
			break;
		case 2:
			sliderRanking();
			formVideo();
			break;
		case 3:
			lipdupPartcps();
			sliderRanking();
			break;
		case 30:
		case 5:
			gostPartFavStats();
			comentList();
			formPartilhar();
			formComent();
			break;			
		default:
			break;
	}
}

// alinhamentos
alinhaLi = function(elemento,dif) {
	var topPadd = Number(($(elemento).height()-($('h2',elemento).height()+$('p',elemento).height()))/2)+dif;
	if (topPadd > 0) $('h2',elemento).css("paddingTop", topPadd);
}
alinhaSmallBanner = function(elem) {
	var oElem = elem;
	$('.bgImg img', elem).each(function(){
		var topPos = -Number($(this).height()/2-48);
		$(this).css("top", topPos);
		var leftPos = -Number($(this).width()/2-110);
		$(this).css("left", leftPos);
	});
	$('.text span', elem).each(function(){
		var topSpace = Number((82-$(this).height())/2);
		if (topSpace > 0) $(this).css("top", topSpace);
	});	
}
// retira border
retiraBorder = function(lista,x) {
	oLi = '#'+lista+' li:last-child';
	nLis = $('#'+lista+' li').length;
	$(oLi).css('border', 'none');
	if (numeroPar(nLis)) $('#'+lista+' li:nth-child('+(nLis-1)+')').css('border', 'none');
}
// par ou impar
numeroPar = function(value) {
	return (value%2 == 0);
}

// preloadCont
var preloadCont = function(contLoad) {
	if (contLoad=='.cont2'){
		var pCClasse = 'preloadDivBig2';
		var pCPontoClasse = '.preloadDivBig2';
	} else {
		var pCClasse = 'preloadDivSmall';
		var pCPontoClasse = '.preloadDivSmall';
	}
	if (contLoad=='.cont2') {
		$(contLoad).each(function(){
			var largura = $(this).outerWidth();
			var altura = $(this).outerHeight();
			$(this).prepend($('<div>').attr('class', pCClasse).css({top:0,left:0,width: largura,height: altura}));
			$(this).css({height: altura});
		});		
	} else { 
		$(contLoad).each(function(){
			var largura = $(this).outerWidth();
			var altura = $(this).outerHeight();
			$(this).wrapInner($('<div>').attr('class', 'abs').css({top:2,left:-largura,width: largura,height: altura}));
			$(this).wrapInner($('<div>').attr('class', pCClasse).css({top:0,left:0,width: largura,height: altura}));
			$(this).css({height: altura-4});
		});	
	}
	// NEW!
	var timed0 = setTimeout(function(){
		preloadCont(contLoad);clearTimeout(timed0);
	}, 3000);
	$(contLoad).onImagesLoad({
		itemCallback: itemImagesLoaded, 
		selectorCallback: itemImagesLoaded,
		callbackIfNoImagesExist: itemImagesLoaded 
	}); 
	function itemImagesLoaded(domObject){ 
		clearTimeout(timed0);
		$(pCPontoClasse, domObject).delay(300).fadeOut(600, function() {
			$(pCPontoClasse, domObject).replaceWith( $(pCPontoClasse, domObject).contents() );
			if (contLoad!='.cont2') {
				$('.abs', domObject).animate({left: 2}, 550, "easeOutBack");
			}
		});	
	} 
}	

// preloadCont
var preloadCont2 = function(contLoad) {
	var timed1 = setTimeout(function(){
		clearTimeout(timed1);
		$(contLoad).find('.preloadDiv').fadeOut(600);
	}, 10000);
	$(contLoad).onImagesLoad({
		itemCallback: itemImagesLoaded, 
		selectorCallback: itemImagesLoaded,
		callbackIfNoImagesExist: itemImagesLoaded 
	}); 
	function itemImagesLoaded(domObject){ 
		clearTimeout(timed1);
		$(domObject).find('.preloadDiv').fadeOut(600);
	} 
}	

// SmallBanner 'Classe'
function SmallBanner(oBanner, oBanNr, aImagem, oTexto, oLinkTexto, oLink) {
	this.oBanner = oBanner;
	this.oBanNr = oBanNr;	
	this.aImagem = aImagem;
	this.oTexto = oTexto;
	this.oLinkTexto = oLinkTexto;
	this.oLink = oLink;	
	this.zIndex = 10;
}
SmallBanner.prototype.primeiro = function() {
	this.zIndex = 15;
	$(this.aImagem).css({'zIndex':this.zIndex});
	var oLnk = this.oLink;
	$(this.oBanner).bind("click",function(){window.location.href = oLnk;});
	var oBan = this.oBanner;
	var oLnkTxt = this.oLinkTexto;	
	$(oBan).bind("mouseover",function(){$(oLnkTxt).stop().animate({color: '#7919c9'}, 300);});
	$(oBan).bind("mouseleave",function(){$(oLnkTxt).stop().animate({color: '#8c92ac'}, 300);});		
}
SmallBanner.prototype.outros = function() {
	$(this.aImagem).css({'left':'-250px'});		
	$(this.oTexto).css({'left':'-250px'});
	$(this.oLinkTexto).css({right: 300});
}
SmallBanner.prototype.esconde = function() {
	$(this.oTexto).css({'left':'-250px'});
	$(this.oLinkTexto).css({right: 300});
	this.zIndex -= 5;	
	$(this.aImagem).css({'zIndex':this.zIndex});
	$(this.aImagem).delay(500).animate({'left':'-250px'},100);	
}
SmallBanner.prototype.anima = function() {
	this.zIndex += 5;
	$(this.oBanner).unbind();
	$(this.aImagem).css({'zIndex':this.zIndex});
	$(this.aImagem).stop().animate({left:0}, 250);		
	$(this.oTexto).stop().animate({left:10}, 250);
	var oLnk = this.oLink;
	$(this.oBanner).bind("click",function(){window.location.href = oLnk;});
	var oBan = this.oBanner;
	var oLnkTxt = this.oLinkTexto;
	$(oLnkTxt).css({color: '#8c92ac',right: 5});
	$(oBan).bind("mouseover",function(){$(oLnkTxt).stop().animate({color: '#7919c9'}, 300);});
	$(oBan).bind("mouseleave",function(){$(oLnkTxt).stop().animate({color: '#8c92ac'}, 300);});	
}
// SmallBannerAnim 'Classe'
function SmallBannerAnim(oTotal, oBanNr) {
	this.oTotal = oTotal;
	this.oBanNr = oBanNr;
	this.oActual = 0;
	window['_banner' + this.oBanNr +0].primeiro();
	if (this.oTotal>1){
		for (var j = 1; j< this.oTotal; j++) {
			window['_banner' + this.oBanNr + j].outros();
		}
		var that = this;
		this.interval = setInterval(function() {
			window['_banner' + that.oBanNr + that.oActual].esconde();
			that.oActual == that.oTotal-1 ? that.oActual=0 : that.oActual++;
			window['_banner' + that.oBanNr + that.oActual].anima();
		}, 8000);  
	}
}

// preloadSmallMultiBanner
var preloadSmallMultiBanner = function(bannerLoad) {
	var bannerLoad = bannerLoad;
	$(bannerLoad).wrapInner($('<div>').attr('class', 'abs').css({top:2,left:-224,width:222,height:104}));
	$(bannerLoad).wrapInner($('<div>').attr('class', 'preloadDivSmall').css({top:0,left:0,width:224,height:104}));
	// START: json exemplo - carregar json para cada bannerLoad
	if (bannerLoad == '#smallBanner1' ){
		var mBannerJSONObj = {"bannersList": [
			{"File169":"Images/Uploads/img1.jpg","Link":"#1","LinkText":"VER VIDEO","SubTitle":"Mushiking Imagenes agora tamb&eacute;m em Jogo no BIGGS","Title":"VIDEOS"},
			{"File169":"Images/Uploads/img2.jpg","Link":"#2","LinkText":"V&Ecirc; AQUI OS VENCEDORES!","SubTitle":"Mushiking Imagenes. O jogo do BIGGS","Title":"PASSATEMPOS"}
		]};
	} else {
		var mBannerJSONObj = {"bannersList": [
			{"File169":"Images/geracaoNet.jpg","Link":"#1","LinkText":"VER VIDEO2","SubTitle":"Mushiking Imagenes agora tamb&eacute;m em Jogo no BIGGS","Title":"VIDEOS"},
			{"File169":"Images/Uploads/img3.jpg","Link":"#2","LinkText":"V&Ecirc; AQUI OS VENCEDORES!","SubTitle":"Mushiking Imagenes. O jogo do BIGGS","Title":"PASSATEMPOS"},
			{"File169":"Images/geracaoNet.jpg","Link":"#3","LinkText":"CLICA AQUI!","SubTitle":"Mushiking Imagenes. BIGGS3","Title":"BIGGS"},
			{"File169":"Images/Uploads/img2.jpg","Link":"#4","LinkText":"VER MAIS","SubTitle":"Grande BIGGS","Title":"JOGOS"}
		]};	
	}
	// END: json exemplo
	var qts = mBannerJSONObj.bannersList.length;
	var banNr = bannerLoad.substring(12,bannerLoad.length);
	
	for (var i = 0; i< qts; i++) {
		$('.abs', bannerLoad).append('<div id="sBImg'+banNr+i+'" class="bgImg"><img src="'+mBannerJSONObj.bannersList[i].File169+'" /></div>');
		$('.text', bannerLoad).append('<span id="sBText'+banNr+i+'"><h2>'+mBannerJSONObj.bannersList[i].Title+'</h2><p>'+mBannerJSONObj.bannersList[i].SubTitle+'</p></span>');
		$('.abs', bannerLoad).append('<div id="sBLink'+banNr+i+'" class="linkText">'+mBannerJSONObj.bannersList[i].LinkText+'</div>');
		window['_banner' + banNr + i] = new SmallBanner(bannerLoad, banNr, "#sBImg"+banNr+i, "#sBText"+banNr+i, "#sBLink"+banNr+i, mBannerJSONObj.bannersList[i].Link); // instanciar todos os items deste MultiBanner
    }
	$(bannerLoad).onImagesLoad({
		itemCallback: itemImagesLoaded, 
		selectorCallback: selectorImagesLoaded,
		callbackIfNoImagesExist: itemImagesLoaded 
	});
	function itemImagesLoaded(domObject){ 
		alinhaSmallBanner(bannerLoad);
		window['_bannerAnim' + banNr] = new SmallBannerAnim(qts, banNr);
		$('.preloadDivSmall', domObject).delay(300).fadeOut(600, function() {
			$('.preloadDivSmall', domObject).replaceWith( $('.preloadDivSmall', domObject).contents() );
			$('.abs', domObject).animate({left: 2}, 550, "easeOutBack");
		});	
	} 
	function selectorImagesLoaded($selector){}
}	

// formPagina
formPagina = function() {
	$('#enviaPaginaForm').validate({							   
		invalidHandler: function(form, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				$(".enviaPagina p").html("<span>Aten&ccedil;&atilde;o: O endere&ccedil;o (url) da p&aacute;gina n&atilde;o &eacute; v&aacute;lido.</span>");
			}
		},
		rules: {
			enviaPaginaInput: {required: true,url: true}			
		},
		messages: {
			enviaPaginaInput: " "
		},
		submitHandler: function() {
			var urlPagina = $("#enviaPaginaInput").val();
			$('#enviaPaginaForm').remove();
			$(".enviaPagina h3").html("OBRIGADO!");
			$(".enviaPagina p").html("O teu link foi enviado com sucesso, "+urlPagina);
			$('.enviaPagina h3').animate({'marginLeft': '52px'}, 300, "easeOutBack");
			$('.enviaPagina p').animate({'marginLeft': '52px'}, 300, "easeOutBack");
			$('.enviaPagina').append('<img src="Images/iconOk.png" class="iconOk" />');		
			$('.enviaPagina img').fadeIn(400);
		}
	 });
}

// sliderRanking
sliderRanking = function() {
	var itemIndex = 0;
	var itemsCount = $("#sliderRanking li").size();
	var containerWidth = 221*itemsCount;
	$("#sliderRanking").css({'width':containerWidth});
	$("#modLipdupRanking .esq").mouseenter(function(){
		if (itemIndex>0) $(this).css({backgroundPosition:'1px -24px','cursor':'pointer'});
	});	
	$("#modLipdupRanking .dir").mouseenter(function(){
		if (itemIndex<itemsCount-3) $(this).css({backgroundPosition:'1px -24px','cursor':'pointer'});
	});		
	$("#modLipdupRanking .esq, #modLipdupRanking .dir").mouseleave(function(){
		$(this).css({backgroundPosition:'1px 0','cursor':'default'});													
	});		
	$("#modLipdupRanking .esq").click(function(){
		if (itemIndex>0) {
			itemIndex -= 1;			
			$('#sliderRanking').stop().animate({left: '-'+(itemIndex*221)+'px'}, 600, "easeInOutExpo");
			if (itemIndex==0) $(this).css({backgroundPosition:'1px 0','cursor':'default'});
			return false;
		}
	});		
	$("#modLipdupRanking .dir").click(function(){
		if (itemIndex<itemsCount-3){
			itemIndex += 1;
			$('#sliderRanking').stop().animate({left: '-'+(itemIndex*221)+'px'}, 600, "easeInOutExpo");	
			if (itemIndex==itemsCount-3) $(this).css({backgroundPosition:'1px 0','cursor':'default'});
			return false;
		}
    });
    $('#sliderRanking li').each(function () {
        $(this).mouseenter(function () { $(this).css({ 'background-image': 'url(/Images/rollOverBright.png)' }); });
        $(this).mouseleave(function () { $(this).css({ 'background-image': 'none' }); });
    });

	
    if(itemsCount ==0)
    {
	
	//$("#modLipdupRanking").css("display","none");
     }		

}

// formVideo
formVideo = function() {
	$('#videoTituloInput, #videoDescrTextarea, #videoInput').focus(function(){$("#videoSubmitted").html("");});	
	$('#videoUpload').click(function(){$("#videoSubmitted").html("");});	
	$('#videoForm').validate({							 
 		errorPlacement: function(error, element) {
			error.hide();
			$(element).parent().nextAll('p:first').css('color', '#c00');
		},
		success: function(label) {
			qual = $(label).attr('for');
			$('#'+qual).parent().nextAll('p:first').css('color', '#8c92ac');
		},		
		rules: {
			videoTituloInput: {required: true},
			videoDescrTextarea: {required: true	},
			videoInput: {required: true}				
		},
		messages: {
			videoTituloInput: " ",videoDescrTextarea: " ",videoInput: " "
		},
		submitHandler: function() {
			$("#videoSubmitted").html("O TEU FICHEIRO FOI ENVIADO. OBRIGADO.");	
			$('#videoForm').each(function(){this.reset();});			
			return false;
		}
	 });
}

// lipdupPartcps
lipdupPartcps = function () {

    var lipdupLiTotal = $('#lipdupPartcps li').length;
    if (lipdupLiTotal == 6) $('#lipdupPartcps li:last-child').css('border', 'none');
    $('#lipdupPartcps li').each(function () {
        $('.gostoBtn, .naoGostoBtn', this).click(function () {

            var nodeId = $(this).attr("nodeid");
            var objthis = this;

            if ($(this).hasClass('gostoBtn')) {
                $.get('/base/PLipDub/VoteVideo/' + nodeId + '.aspx',
                    function (data) {
                        var jsonData = eval('(' + data + ')');

			/*if(jsonData.IsOver)	{
				$(objthis).prev().prev().html(jsonData.Message);
				console.log(jsonData.Message);
			    	$(objthis).prev().prev().show().delay(1500).fadeOut(500); 
			}
			else{	
			*/
                          if (jsonData.IsLogged) {
                            if (jsonData.Status) {
                                $(objthis).removeClass().addClass('naoGostoBtn');
                                $(objthis).text('Votado');
                                var qtsLikes = Number($(objthis).parent().find('.likes').text()) + 1;
                                $(objthis).parent().find('.likes').text(qtsLikes);
                            }
				
                        } else {
                            $(objthis).prev().prev().show().delay(1500).fadeOut(500);
                        }
			//}
                    }
                 );
            }
            /*else {

            $.get('/base/PLipDub/VoteVideo/' + nodeId + '.aspx',
            function(data) {
            var jsonData = eval('(' + data + ')');
            if (jsonData.Status) {
            $(objthis).removeClass().addClass('gostoBtn');
            $(objthis).text('Gosto');
            //alert(($(this).parent().find('.likes').text());
            var qtsLikes = Number($(objthis).parent().find('.likes').text()) - 1;
            $(objthis).parent().find('.likes').text(qtsLikes)
            }
            }
            );
            }*/
        });
    });

}

var isVoting=false;
// gostPartFavStats
gostPartFavStats = function () {
    $('.gostoBigBtn').click(function () {
	if(!isVoting)
	{
	 isVoting = true;		
       	 if (nodeId == passatempoNodeId) {
            if ($(this).hasClass('gostoBigBtn')) {
                $.get('/base/GenericActions/Vote/' + nodeId + '.aspx',
               	  function (data) {
                    var jsonData = eval('(' + data + ')');
                    if (jsonData.Status) {
                        getVotes();
                        voteState();
                    }
		    isVoting=false;
                 }
                );
            } else {
                $.get('/base/GenericActions/DeleteVote/' + nodeId + '.aspx',
                function (data) {
                    var jsonData = eval('(' + data + ')');
                    if (jsonData.Status) {
                        getVotes();
                        voteState();
                    }
		    isVoting=false;	
                }
            );
            }
        } else {
            $.get('/base/PLipDub/VoteVideo/' + nodeId + '.aspx',
                    function (data) {
                        var jsonData = eval('(' + data + ')');
                        if (jsonData.IsLogged) {
                            if (jsonData.Status) {
                                getVotes();
                                voteState();
                            }
                        } else {
                            $("#mustBeLoggedMessageRuller").show().delay(1500).fadeOut(500);
                        //qqcoisa
                        }
			 isVoting=false;
                    }
                 );


        }
	}
    });


    var partilhaArea = 0;
    $('.partilhaBigBtn').click(function () {
        if (partilhaArea) {
            $("#fechar").stop().fadeOut(300);
            $('#partilhar').stop().animate({ height: 44 }, 600, "easeInOutExpo");
            partilhaArea = 0;
        } else {
            $("#partilharForm").css({ 'display': 'block' });
            $("#partilhado").css({ 'display': 'none' });
            $('#fechar').stop().delay(600).fadeIn(300);
            $('#partilhar').stop().animate({ height: 300 }, 600, "easeInOutExpo");
            partilhaArea = 1;
        }
    });
    $('#fechar').click(function () {
        $(this).stop().fadeOut(300);
        $('#partilhar').stop().animate({ height: 44 }, 600, "easeInOutExpo");
        partilhaArea = 0;
        return false;
    });



    $('#btnAdicionaFav').click(function () {
        if ($(this).hasClass('adicionaBigBtn')) {

            $.get('/base/UserActions/AddFavorites/' + nodeId + '.aspx',
                function (data) {
                    var jsonData = eval('(' + data + ')');
                    if (jsonData.Status) {
                        $('#btnAdicionaFav').removeClass().addClass('removeBigBtn');
                    }
                });




        } else {
            //remove
            $.get('/base/UserActions/DeleteFavorite/' + nodeId + '.aspx',
                function (data) {
                    var jsonData = eval('(' + data + ')');
                    if (jsonData.Status) {
                        $('#btnAdicionaFav').removeClass().addClass('adicionaBigBtn');
                    }
                });


        }
    });

    $.get('/base/UserActions/IsFavorite/' + nodeId + '.aspx',
        function (data) {
            if (data == "True") {
                $('#btnAdicionaFav').removeClass().addClass('removeBigBtn');
            } else {
                $('#btnAdicionaFav').removeClass().addClass('adicionaBigBtn');
            }
        }
      );


}

// formPartilhar
formPartilhar = function() {
	jQuery.validator.addMethod("initialMessage", function (initial_message, element) {
		return this.optional(element) || initial_message != element.defaultValue;
	}, " ");  //adiciona metodo para mensagem inicial	
	$('#teuEmailInput, #amigoEmailInput1, #amigoEmailInput2, #amigoEmailInput3').focus(function () { if (this.value == this.defaultValue) this.value = ''; });
	$('#teuEmailInput, #amigoEmailInput1, #amigoEmailInput2, #amigoEmailInput3').blur(function () { if (this.value == '') this.value = this.defaultValue; });

	$('#partilharForm').validate({
		errorPlacement: function (error, errorElement) {
			error.hide();
			$(errorElement).css('color', '#c00');
		},
		success: function(label) {
			qual = $(label).attr('for');
			if (qual == "teuEmailInput") {
				$('#'+qual).css('color', '#55b800');
			} else {
				$('#'+qual).css('color', '#7a1ac9');
			}
		},			
		rules: {
			teuEmailInput: {initialMessage:true,email:true,required:true},
			amigoEmailInput1: {initialMessage:true,email:true,required:true},
			amigoEmailInput2: {required:false},
			amigoEmailInput3: {required:false}	
		},
		messages: {
			teuEmailInput: " ",
			amigoEmailInput1: " ",
			amigoEmailInput2: " ",
			amigoEmailInput3: " "
		},
submitHandler: function () {

    //envia
                 $.post('/base/GenericActions/ShareWithFriendsByEmail/' + nodeId + '.aspx',
                    { email: $('#teuEmailInput').val(), emailF1: $('#amigoEmailInput1').val(), emailF2:$('#amigoEmailInput2').val(), emailF3: $('#amigoEmailInput3').val() },
                function (data) 
                {
                    var jsonData = eval('(' + data + ')');
                    if (jsonData.Status) 
                    {
                        $("#videoSubmitted").html(jsonData.Message);
                        $("#partilharForm").css('display', 'none');
                        $("#partilhado").delay(100).fadeIn(500);
                        $('#partilharForm').each(function () { this.reset(); });
                    } else {
                        $("#videoSubmitted").html(jsonData.Message);
                    }
                });
            




    //end envia

			/*$("#videoSubmitted").html("O TEU V&Iacute;DEO FOI ENVIADO. OBRIGADO.");	
			$("#partilharForm").css('display', 'none');
			$("#partilhado").delay(100).fadeIn(500);	
			$('#partilharForm').each(function(){this.reset();});*/
			return false;
		}
	 });
}

// comentList
comentList = function(jsonData) {


    this.CallcomentListPage = function() {
        $.get('/base/GenericActions/GetCommentsByNodeId/' + nodeId + '.aspx?pageNumber=1',
        function(data) {
            var newData = eval('(' + data + ')');
            pageActual = 1;
            pageInicial = 1;
            comentListPage(newData);
        }
        );

    }



    var pageActual = 1;
    var pageInicial = 1;
    var pageComents = 0;
    var lastPageComents;
    var totalPages;
    var totalComents;
    if (jsonData != undefined) {
        comentListPage(jsonData);
    }
    function comentListPage(x) {
        var comentarios = x;  // variavel q contem objecto JSON
        totalPages = comentarios.NumOfPages;
        totalComents = comentarios.TotalItems;
        lastPageComents = pageComents;
        pageComents = comentarios.list.length;

        $('#comentsList .nav').show();
        if (pageInicial && pageComents > 0) {
            $('#comentsList .total').text('Existem ' + totalComents + ' coment\u00E1rios');
            $('#comentsList .nav p').html('<span>' + pageActual + '</span> DE ' + totalPages);
            pageInicial = 0;
            if ($('#comentsList > ul').length <= 0) {
                $('#comentsList').prepend('<ul />');
            }
            preencheComents(function() {
                mostraComents();
            });
        } else if (pageComents > 0) {
            $('#comentsList .nav p').html('<span>' + pageActual + '</span> DE ' + totalPages);
            removeComents(function() {
                preencheComents(function() {
                    mostraComents();
                });
            });
        } else {
            $('#comentsList .total').text('');
            $('#comentsList .nav p').html('');
            removeComents(function() {
                $('#comentsList > ul').remove();
                $('#comentsList .nav').hide();
                $('#comentsList').height(0);
            });


        }
        function preencheComents(handler) {
            osComents = "";
            for (var i = 0; i < pageComents; i++) {
                osComents += '<li id="li' + i + '"><a href="' + comentarios.list[i].Link + '"><img class="avatar" src="' + comentarios.list[i].Avatar + '" /></a><div class="dados"><h3><a href="' + comentarios.list[i].Link + '">' + comentarios.list[i].UserName + '</a></h3><p>' + comentarios.list[i].TimeStamp + '</p></div><p class="coment">' + comentarios.list[i].Comment + '</p><div class="denuncBtn" id=' + comentarios.list[i].Id + '>Denunciar</div></li>';

                if (i + 1 == pageComents) {
                    $('#comentsList ul').html(osComents);
                    $('#comentsList li').each(function(intIndex) {
                        $(this).append($('<div>').attr('class', 'vis').css({
                            backgroundColor: '#fff',
                            position: 'absolute',
                            top: 0,
                            left: 0,
                            padding: 0,
                            width: 702,
                            height: ($('#comentsList li:nth-child(' + Number(intIndex + 1) + ')').height() + 55),
                            opacity: 1,
                            zIndex: 300
                        }));
                    });
                    handler();
                }
            }
        }
        /*function mostraComents() {
        $('#comentsList').animate({ height: Number($('#comentsList ul').height() + 24) }, 400);
        $('#comentsList li').each(function (intIndex) {
        $('.vis', this).delay(Number(intIndex * 100)).fadeTo(200, 0);
        });
        }
        function removeComents(handler) {
        $($('#comentsList li').get().reverse()).each(function (intIndex) {
        $('.vis', this).delay(Number(intIndex * 100)).fadeTo(200, 1, function () { if (intIndex + 1 == lastPageComents) { $('#comentsList ul').empty(); handler(); } });
        });
        }*/
        function mostraComents() {
            denunc.init(); // NEW!
            $('#comentsList').css({ 'height': 'auto' }); // NEW!
            $('#comentsList li').each(function(intIndex) {
                $('.vis', this).delay(Number(intIndex * 100)).fadeTo(200, 0, function() {
                    $(this).css({ 'zIndex': '-1' });
                });
            });
        }
        function removeComents(handler) {
            $($('#comentsList li').get().reverse()).each(function(intIndex) {
                $('.vis', this).css({ 'zIndex': '300' });
                $('.vis', this).delay(Number(intIndex * 100)).fadeTo(200, 1, function() { if (intIndex + 1 == lastPageComents) { $('#comentsList ul').empty(); handler(); } });
            });
        }

    }


    $("#comentsList .esq").click(function() {

        if (pageActual > 1) {
            denunc.resetObj();
            pageActual -= 1;
            $.get('/base/GenericActions/GetCommentsByNodeId/' + nodeId + '.aspx?pageNumber=' + pageActual,
                function(data) {
                    var jsonData = eval('(' + data + ')');
                    comentListPage(jsonData);
                }
            );
        }
        return false;
    });
    $("#comentsList .dir").click(function() {

        if (pageActual < totalPages) {
            denunc.resetObj();
            pageActual += 1;
            //comentListPage(window['comentListJSONObj' + pageActual]);
            $.get('/base/GenericActions/GetCommentsByNodeId/' + nodeId + '.aspx?pageNumber=' + pageActual,
                function(data) {
                    var jsonData = eval('(' + data + ')');
                    comentListPage(jsonData);
                }
                );
        }
        return false;
    });

}

// formComent
formComent = function () {
    $('#enviaComentForm').validate({
        invalidHandler: function (form, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                $("#comentFormFeedback").html("<span class='erro'>Campo Coment\u00E1rio obrigat\u00F3rio</span>");
            }
        },
        errorPlacement: function (error, errorElement) {
            error.hide();
        },
        success: function (label) {
            $("#comentFormFeedback").html("Para comentares tens que fazer primeiro <span>login</span>");
        },
        rules: {
            comentTextarea: { required: true }
        },
        messages: {
            comentTextarea: " "
        },
        submitHandler: function () {
            $.get('/base/UserActions/IsUserOnline.aspx',
                function (data) {
                    IsUserOnline = data == "True" ? true : false;
                    if (IsUserOnline) {
                        $.post('/base/UserActions/AddComment.aspx', { nodeId: nodeId, comment: Encoder.htmlEncode($("#comentTextarea").val()) }, function (postData) {
                            
                            var jsonData = eval('(' + postData + ')');
                            if (jsonData.Status) {

                                $("#comentFormFeedback").html("<span class='sucesso'>" + jsonData.Message + "</span>");
                                $("#comentTextarea").val("");
                                getTotalComments();
                                CallcomentListPage();

                            } else {
                                $("#comentFormFeedback").html("<span class='erro'>" + jsonData.Message + "</span>");
                            }
                        });

                    } else {
                        $("#comentFormFeedback").html("<span class='erro'>Tens de estar logado no site.</span>");
                    }
                }
            );

            return false;
        }
    });
}

//Gerais

function voteState() {
    if (nodeId == passatempoNodeId) 
    {
        $.get('/base/GenericActions/VoteState/' + nodeId + '.aspx',
            function (data) 
            {
		
                var jsonData = eval('(' + data + ')');

                if (jsonData.Status) 
                {
                    $("#btnGosto").removeClass().addClass('gostoBigBtn');
                }
                else 
                {
                    $("#btnGosto").removeClass().addClass('naoGostoBigBtn');
                }
            }
        );

    } else {
        $.get('/base/PLipDub/VoteState/' + nodeId + '.aspx',
            function (data) 
            {
                var jsonData = eval('(' + data + ')');
                if (jsonData.Status) 
                {
                    $("#btnGosto").removeClass().addClass('naoVotarBigBtn');
                }
                else 
                {
                    $("#btnGosto").removeClass().addClass('votarBigBtn');
                    
                }
            }
        );
    }
}

function getVisits() {
    $.get('/base/GenericActions/GetVisits/' + nodeId + '.aspx',
        function (data) {
            $('.viewsBig > span').html(data);
        }
      );
}
function getVotes() {
    if (nodeId == passatempoNodeId) {
        $.get('/base/GenericActions/GetVotes/' + nodeId + '.aspx',
        function (data) {
            $('#likesCount').html("<span>" + data + "</span><br />Gostam");
            $('#likesCount').removeClass().addClass("likesBig");
        }
      );
    } else {
        $.get('/base/PLipDub/GetVotesVideo/' + nodeId + '.aspx',
        function (data) {
            $('#likesCount').html("<span>" + data + "</span><br />Votos");
            $('#likesCount').removeClass().addClass("votarBig");
        }
      );

    }
}
function getTotalComments() {
    $.get('/base/GenericActions/TotalComments/' + nodeId + '.aspx',
        function (data) {
            $('.commentsBig > span').html(data);
        }
      );
}

function getComments(page) {

    
        $.get('/base/GenericActions/GetCommentsByNodeId/' + nodeId + '.aspx?pageNumber=' + page,
            function (data) {
                var jsonData = eval('(' + data + ')');

                comentList(jsonData);
            }
          );
    
}


function GetUserState() {
      $.get('/base/UserActions/IsUserOnline.aspx',
        function (data) {
            IsUserOnline = data == "True" ? true : false;
            //comentFormFeedback
        }
      );

}


function InitStats() {
    getVisits();
    getVotes();
    getTotalComments();
    voteState();
    gostPartFavStats();
    getComments(1);
    GetUserState();
}

function updateStats() {
    getVisits();
    getVotes();
    getTotalComments();
    voteState();
    CallcomentListPage();
    
    GetUserState();
}

//Lip Dub

Date.prototype.setISO8601 = function (string) {
    var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
        "(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" +
        "(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
    var d = string.match(new RegExp(regexp));

    var offset = 0;
    var date = new Date(d[1], 0, 1);

    if (d[3]) { date.setMonth(d[3] - 1); }
    if (d[5]) { date.setDate(d[5]); }
    if (d[7]) { date.setHours(d[7]); }
    if (d[8]) { date.setMinutes(d[8]); }
    if (d[10]) { date.setSeconds(d[10]); }
    if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
    if (d[14]) {
        offset = (Number(d[16]) * 60) + Number(d[17]);
        offset *= ((d[15] == '-') ? 1 : -1);
    }

    offset -= date.getTimezoneOffset();
    time = (Number(date) + (offset * 60 * 1000));
    this.setTime(Number(time));
}

function getPassatemposAnteriores(pagina) {

    var months = ['Janeiro', 'Fevereiro', 'Mar\u00E7o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];

    $.get('/base/PLipDub/GetPassatemposAnteriores.aspx?pageNumber=' + pagina, function (data) {

        var jsonData = eval('(' + data + ')');

        if (jsonData.Status) {

            var navigation = '';
            if (pagina > 1) {
                navigation += '<a href="javascript:getPassatemposAnteriores(' + (pagina - 1) + ')" class="esq">anterior</a>';
            } else {
                navigation += '<a href="javascript:void(0)" class="esq">anterior</a>';
            }
            navigation += '<p><span>' + jsonData.PageNumber + '</span> DE ' + jsonData.NumOfPages + '</p>';
            if (pagina < jsonData.NumOfPages) {
                navigation += '<a href="javascript:getPassatemposAnteriores(' + (pagina + 1) + ')" class="dir">seguinte</a>';
            } else {
                navigation += '<a href="javascript:void(0)" class="dir">seguinte</a>';
            }


            $('#modPstAnt .nav').html(navigation);


            var list = '';
            for (i = 0; i < jsonData.list.length; i++) {
                var date = new Date(jsonData.list[i].StartDate);

		if (isNaN(date)) {
	            date = new Date();
		    date.setISO8601(jsonData.list[i].StartDate);
		}

                list += '<li onclick="location.href=\'' + jsonData.list[i].Url + '\'"><h2>' + jsonData.list[i].LinkTitle + '</h2><p>' + months[date.getMonth()] + ' ' + date.getFullYear() + '</p></li>'
            }
            $('#modPstAnt .bg ul').html(list);

        }
    });
}

function resetRuller() {
    
    CallUrlGet('/base/PLipDub/GetPassatempoVideoRanking/'+nodeId+'.aspx',
      function (data) {
          
          var content = "";
	  if(data=="Object reference not set to an instance of an object.")
		return ;

          var jsonData = eval("(" + data + ")");
          if (jsonData.Status) {
              for (i = 0; i < jsonData.list.length; i++) {
                  content += '<li onclick="LoadVideoDetail(\'' + jsonData.list[i].DetailUrl + '\',' + jsonData.list[i].Id + ')"><h2>' + (i + 1) + '</h2><img src="' + jsonData.list[i].File43 + '" alt="' + jsonData.list[i].Title + '" title="' + jsonData.list[i].Title + '" /><h3>' + jsonData.list[i].Title + '</h3><p class="likes">' + jsonData.list[i].Votes + '</p></li>'
              }
		$('#sliderRanking').show();
              $('#sliderRanking').html(content);
              preloadCont('.cont1');
	      sliderRanking();
	      
	      if(content=="" || content==" ")	
	      	$('#modLipdupRanking').hide();	
              //
          }
      }
      );
  }


  function VoteVideo(VideoId) {
      $.get('/base/PLipDub/VoteVideo/' + VideoId + '.aspx', function (data) {
          var jsonData = eval('(' + data + ')');
          if (jsonData.Status) {
            
          }
		});
	}


// NEW!
	var denunc = { //  denunciar coment
	    btns: 0,
	    btnOn: 0,
	    btnClose: 0,
	    btnSend: 0,
	    loading: 0,
	    msg: 0,
	    SelectedMsgId: "",
	    form: 0,
	    iating: false,
	    sending: false,
	    bind: function() {
	        denunc.btns.removeClass('off').bind('click', function() {
	            denunc.btns = $('.denuncBtn').not(this);
	            denunc.buildDen($(this).parent().attr('id'), $(this).attr('id'));
	        });
	    },
	    resetObj: function() {
	        denunc.btns = 0;
	        denunc.btnOn = 0;
	        denunc.btnClose = 0;
	        denunc.btnSend = 0;
	        denunc.loading = 0;
	        denunc.msg = 0;
	        denunc.SelectedMsgId = "";
	        denunc.form = 0;
	        denunc.iating = false;
	        denunc.sending = false;
	    },
	    unbind: function() {
	        denunc.btns.unbind('click');
	    },
	    init: function() {
	        denunc.btns = $('.denuncBtn');
	        denunc.bind();
	    },
	    buildDen: function(x, y) { //  constroi form
	        if (!denunc.iating) {
	            denunc.iating = true;
	            denunc.unbind();
	            var oComent = $('#' + x);
	            var denuncHtml = '<form id="denuncForm" method="post" action=""><h3>ACHAS ESTE COMENT\u00C1RIO<br />impr\u00F3prio ou ofensivo?</h3>';
	           // denuncHtml += '<p>Ninh euis mod tincidunt ut laoreet dolore magna liquam erat volutpat. Lorem ipsum dolor.</p>';
	            denuncHtml += '<textarea name="denuncTextarea" id="denuncTextarea">PORQU\u00CA?</textarea><p id="denuncMsg">&nbsp;</p>';
	            denuncHtml += '<div id="denuncSubmit" name="denuncSubmit" value="ENVIAR">ENVIAR</div><div id="denuncClose">FECHAR</div></form>';
	            denunc.SelectedMsgId = y;
	            oComent.append(denuncHtml);
	            setTimeout(function() {
	                denunc.form = $('#denuncForm');
	                denunc.msg = $('#denuncMsg');
	                denunc.form.css({ 'top': Number(oComent.height() + 55), 'display': 'block' });
	                denunc.btnClose = $('#denuncClose, #' + y);
	                denunc.btnSend = $('#denuncSubmit');
	                oComent.stop().animate({ height: '+=148' }, 600, "easeInOutExpo", function() {
	                    if (!denunc.sending) {
	                        denunc.btns.addClass('off');
	                        // bind close
	                        denunc.btnClose.removeClass('off').bind('click', function() {
	                            if (!denunc.sending) {
	                                denunc.SelectedMsgId = "";
	                                oComent.stop().animate({ height: '-=148' }, 600, "easeInOutExpo", function() {
	                                    denunc.form.remove();
	                                    denunc.iating = false;
	                                    denunc.btnClose.unbind('click');
	                                    denunc.btns = $('.denuncBtn');
	                                    denunc.bind('click');
	                                });
	                            }
	                        });
	                        $('#denuncTextarea').keypress(function() {
	                            $(this).removeClass('error');
	                        });
	                        verifCampo('denuncTextarea', $('#denuncTextarea').val());
	                        var form = denunc.form.get(0);
	                        // validate form
	                        $.removeData(form, 'validator');
	                        $('#denuncForm').validate({
	                            debug: true,
	                            errorPlacement: function(error, errorElement) {
	                                error.hide();
	                            },
	                            invalidHandler: function(form, validator) {
	                                denunc.msg.html('<span class="erro">Para denunciares este coment\u00E1rio tens que dizer porqu\u00EA.</span>');
	                            },
	                            success: function(label) {
	                            },
	                            rules: {
	                                denuncTextarea: { required: true }
	                            },
	                            onsubmit: false
	                        });

	                        // bind submit						
	                        denunc.btnSend.bind('click', function() {
	                            if (denunc.form.valid() && !denunc.sending) {
	                                if ($('#denuncTextarea').val() == 'PORQU\u00CA?') { // if initial message not working
	                                    denunc.msg.html('<span class="erro">Para denunciares este coment\u00E1rio tens que dizer porqu\u00EA.</span>');
	                                    $('#denuncTextarea').addClass('error');
	                                } else { // valid no client side
	                                    denunc.sending = true;
	                                    denunc.serverDenuncComment(function(jsonData) {
	                                        if (jsonData.Status) {
	                                            denunc.msg.html('Den\u00FAncia enviada. Obrigado.');
	                                            oComent.stop().delay(1000).animate({ height: '-=148' }, 600, "easeInOutExpo", function() {
	                                                denunc.form.remove();
	                                                denunc.iating = false;
	                                                denunc.btnClose.unbind('click');
	                                                denunc.btns = $('.denuncBtn');
	                                                denunc.bind('click');
	                                                denunc.sending = false;
	                                            });
	                                        }
	                                        else {
	                                            denunc.msg.html('<span class="erro">' + jsonData.Message + '</span>');
	                                        }
	                                        denunc.sending = false;
	                                    });
	                                }
	                            }
	                        });
	                    }

	                });


	            }, 200);
	        }
	    },
	    serverDenuncComment: function(handler) {

	        var motiveText = $("#denuncTextarea").val();
	        var commentId = denunc.SelectedMsgId;
	        var url = '/base/GenericActions/SendDenuncComment.aspx';

	        $.post(url, { "commentId": commentId, "motiveText": motiveText }, function(data) {
	            var jsonData = eval('(' + data + ')');
	            handler(jsonData);
	        });
	    }
	}
/* verifCampo */
var verifCampo = function(oCampo,oValorInic){ // NEW!
	$('#'+oCampo).focus(function () { if ($(this).val() == oValorInic) {$(this).val('');}});
	$('#'+oCampo).blur(function () { if ($(this).val() == '') { $(this).val(oValorInic); } });	
}
/* ha */
var ha = function(x){ // NEW!
	if ($(x).length > 0) return true;	
}
