$(function(){ 	
	accordion();
    slider();
    sliderControls();
	upDownRefresh();
	loginTabs();
	tooltips();
	tabs();

    //share_arrow();
    share_fb();
	
	//setInterval(refreshAll, 120000);
	$('#refreshAll').click(function() {
		refreshAll();
		return false
	});
});
function accordion() {
	$('.element').hide();
	$('.element:first').show().addClass('activeElement');
	$('.toggler').live('click', function() {
			if(!$('.element').is(':animated')) {
				if($(this).next().hasClass('activeElement')) {
					$(this).next().slideUp().removeClass('activeElement');
				} else {
					$('.element').slideUp().removeClass('activeElement');
					$(this).next().slideDown().addClass('activeElement');
				}
			}
            return false;
	});
}

function slider() {
    $('.element').css({overflow: 'hidden'}).wrapInner("<div class='slider'></div>");
    $('.slider').each(function() {
        var sliderWidth = $('.column', this).length * 364;
        $(this).css({width: sliderWidth});
    }).css('background-image', $('.element').css('background-image'));
    $('.element').css('background', 'none');
    $('.slider').after('<div class="prevNext clear"><div class="slideTrack"></div></div>');

    $('.slideTrack').each(function() {
        var width = $(this).parent('.prevNext').siblings().children('.column').length * 364;
        $(this).slider({
            max: width-728,
            steps: $(this).parent('.prevNext').siblings().children('.column').length - 1,
            slide: function(e, ui) {
                $(this).parent('.prevNext').siblings().css('margin-left', -ui.value);
            }
        });
    });
}
function sliderControls() {
    $('.next').live('click', function() {
        var slider = $(this).parent().siblings().filter('.slider');
        var sliderWidth = $(slider).children().length * 364;
        var margin = parseInt($(slider).css('margin-left'));
        var newVal = $(this).siblings('.slideTrack').slider('value') + 364;
        var remainder = newVal % 364;
        newVal += remainder;

        /*if(!$(slider).is(':animated')) {
            if(margin*-1 < sliderWidth-728) {
              $(slider).animate({marginLeft: margin - 364 - remainder}, 500);
            } else {
              $(slider).animate({marginLeft: -(sliderWidth-728)}, 500);
            }
            var handle = (margin - remainder + 1092) / sliderWidth * 100;
            $(slider).siblings().children('.slideTrack').children().css('left', handle + "%");
        }*/
        $(this).siblings('.slideTrack').slider('value', newVal);
        $(this).siblings('.slideTrack').click();
        return false;
    });
    $('.prev').live('click', function() {
        /*var slider = $(this).parent().siblings().filter('.slider');
        var sliderWidth = $(slider).children().length * 364;
        var margin = parseInt($(slider).css('margin-left'));
        var remainder = margin % 364;
        
        if(!$(slider).is(':animated')) {
            if(margin < 0) {
              $(slider).animate({marginLeft: margin + 364 + remainder}, 500);
            } else {
              $(slider).animate({marginLeft: 0}, 500);
            }
        }
        var handle = (margin + remainder + 364) / sliderWidth * 100;
        $(slider).siblings().children('.slideTrack').children().css('left', handle + "%");*/
        $(this).siblings('.slideTrack').slider('moveTo', '-=364')
        return false;
    });
}
function refreshAll() {
	    showLoader('body');
	    $('#accordion').children().remove();
	    $('#accordion').load('index.php #accordion', function() {
	    	hideLoader();
            slider();
           	$('.element').hide();
            $('.element:first').show().addClass('activeElement');
	    });
}

function hideLoader() {
	$(".loading").fadeOut('slow', removeLoader);
	function removeLoader(){
		$('#loading').remove();
	}
}

function showLoader(where) {
	$(where).append('<span class="loading">LOADING...</span>');
}

function upDownRefresh() {
	$('a.down, a.up, .refresh').live('click', function(){
        var href=$(this).attr('href');
		var parent=$(this).parents('.column');
		var list = $('.list, .iconList', parent);
		$(list).animate({ opacity : 0}, 250);
		showLoader(parent);
		$.getJSON(href, '', function(data) {
            data.start = parseInt(data.start);
            data.itemCount = parseInt(data.itemCount);
            data.total = parseInt(data.total);
            
            $('.refresh', parent).attr('href', data.baseURL + '/id/' + data.id + '/start/0/itemCount/' + data.itemCount + '/isCustom/' + data.isCustom + '/active_tab/' + data.active_tab);

            if(data.start != 0) {
                $('.up, .noUp', parent).attr('href', data.baseURL + '/id/' + data.id + '/start/' + (data.start-data.itemCount)  + '/itemCount/' + data.itemCount + '/isCustom/' + data.isCustom + '/active_tab/' + data.active_tab)
                    .attr('class', 'up');
            } else {
                $('.up, .noUp', parent).attr('class', 'noUp').attr('href', '');
            }

            if(data.start+data.itemCount < data.total) {
                $('.down, .noDown', parent).attr('href', data.baseURL + '/id/' + data.id + '/start/' + (data.start+data.itemCount)  + '/itemCount/' + data.itemCount + '/isCustom/' + data.isCustom + '/active_tab/' + data.active_tab)
                    .attr('class', 'down');
            } else {
                $('.down, .noDown', parent).attr('class', 'noDown').attr('href', '');
            }

            hideLoader();

            $('.where span', parent).animate({
                width: data.itemCount / data.total * 100 + "%",
                left: data.start / data.total * 100 + "%"
            }, 250);

            var header = $('.feedHeader', parent).hide().appendTo('body');
            $(parent).html(data.html);
            $(header).prependTo(parent);
            $('.feedHeader', parent).show();
			$(list).animate({ opacity : 1}, 250);
		});
	    return false;
	});
    $('.noUp, .noDown').live('click', function() { return false; });
}

function loginTabs(){
	var loginOpen = false;
	var signupOpen = false;
	$('#loginLink').click(function(){
		if (!loginOpen){
			$('#signupLink').removeClass('active');
			$('#signup').slideUp('fast', function(){
				signupOpen = false;
				$('#login').slideDown();
				$('#loginLink').addClass('active');
				loginOpen = true;
   			});
        } else {
			$('#login').slideUp('fast');
			$('#loginLink').removeClass('active');
			loginOpen = false;
        }
        return false;
	});
	$('#signupLink').click(function(){
		if (!signupOpen){
			$('#loginLink').removeClass('active');
			$('#login').slideUp('fast', function(){
				loginOpen = false;
				$('#signup').slideDown();
				$('#signupLink').addClass('active');
				signupOpen = true;
			});
        } else {
			$('#signup').slideUp('fast');
			$('#signupLink').removeClass('active');
			signupOpen = false;
        }
        return false;
	});
	$('.close, #accordion').click(function(){
		$('#login, #signup').slideUp('fast');
		$('#loginLink, #signupLink').removeClass('active');
		signupOpen = false;
		loginOpen = false;
	});
}

function tooltips() {
	var t = null
	var text = null
	$('.up, .down, .refresh').live('mouseover', function(e) {
		switch ($(this).attr('class')) {
			case 'up':
                text = 'Up';
                break;
			case 'down':
                text = 'Down';
                break;
			case 'refresh':
                text = 'Refresh';
                break;
		}
		t = setTimeout(function() {
			$('body').append("<div id='tooltip'>" + text + "</div>");
			$('#tooltip').fadeIn().css({ 
				top: e.pageY + 20,
				left: e.pageX + 20
			}); 
		}, 500); 
	}).live('mouseout', function(e) {
		clearTimeout(t);
		$('#tooltip').fadeOut(function() { $("#tooltip").remove(); });
	}).live('mousemove', function(e) {
		$('#tooltip').css({ 
        	top: e.pageY + 20, 
        	left: e.pageX + 20 
      	}); 
	});
}

function tabs() {
	$('ul.feedTabs li a').live('click', function(){
		var href = $(this).attr('href');
		var parent = $(this).parents('.column');
		$(this).parent().siblings().removeClass('active');
		$(this).addClass('active');
		$('.list, .iconList', parent).animate({opacity: 0}, 250);
		showLoader(parent);
		$.getJSON(href, '', function(data){
                var header = $('.feedHeader', parent);
                $(parent).html(data.html);
                $(header).prependTo(parent);

                $('.refresh', parent).attr('href', data.baseURL + '/id/' + data.id + '/start/0/itemCount/' + data.itemCount + '/isCustom/' + data.isCustom + '/active_tab/' + data.active_tab);

                if(data.start != 0) {
                    $('.up, .noUp', parent).attr('href', data.baseURL + '/id/' + data.id + '/start/' + (data.start-data.itemCount)  + '/itemCount/' + data.itemCount + '/isCustom/' + data.isCustom + '/active_tab/' + data.active_tab)
                        .attr('class', 'up');
                } else {
                    $('.up, .noUp', parent).attr('class', 'noUp').attr('href', '');
                }

                if(data.start+data.itemCount < data.total) {
                    $('.down, .noDown', parent).attr('href', data.baseURL + '/id/' + data.id + '/start/' + (data.start+data.itemCount)  + '/itemCount/' + data.itemCount + '/isCustom/' + data.isCustom + '/active_tab/' + data.active_tab)
                        .attr('class', 'down');
                } else {
                    $('.down, .noDown', parent).attr('class', 'noDown').attr('href', '');
                }
                $('.feedHeader', parent).show();
                $('.where span', parent).animate({
                    width: data.itemCount / data.total * 100 + "%",
                    left: data.start / data.total * 100 + "%"
                }, 250);
                $('.list, .iconList', parent).animate({ opacity : 1}, 250);
				hideLoader();
		});
		return false;
	});
}
function share_fb() {
    $('.share_fb').live('click', function() {
        /*var link = $(this).parents('.shareList').siblings('a').not('.shareLink');
        attachment = {
            name : $(link).text(),
            href : $(link).attr('href')
        }
        FB_RequireFeatures(['Connect'], function() {
            FB.init('a86901a8a3d88b13cac008e4d378f909');
            FB.Connect.streamPublish('Check out this link I found on notFacebook.', attachment);
        });*/

        var href = $(this).attr('href');
        window.open(href, 'share_fb', 'width=700,height=350,toolbar=no');
        return false;

    });
}