/** 
 * Loud3r Tools.js
 * Misc tools for Loud3r WP Theme
 */

/* Globals */
promo_lock = false; /* When set to true, prevents user from clicking
                     * twice on the promo image navigation in
                     * showPromoNav */

/* Document Read Function */
$(document).ready(function() {
    //$('.video-link').click(function(){ showVideo(this); return false; });
    $('#l3r-close-video').live('click', function(){ hideVideo(); return false; });
    set_hoverIntent();
	// expand first video
	//expandVideo($('#l3r-video-wall .l3r-video-link').first());
	// accordian behavior of video list
	//$('#l3r-video-wall .l3r-video-link').click(function(){ expandVideo(this); return false; });
    
	// only add hero graphic nav and timer if there is more than one promo
	if ($('#l3r-main-banner .l3r-homepage-promo').length > 1) {
		addHomepagePromoNav();
		promoTimer();
	}

    // hack to hide carousel nav if fewer than 4 photos
    if ($('.l3r-photo-strip li').length < 5) {
        $('.l3r-carousel-prev-page').css('display', 'none');
        $('.l3r-carousel-next-page').css('display', 'none');
    }
	
	// twitter style timestamp
	$(".easydate").easydate(); 
	
	// autoplay video
	var anchor = $.url.attr('anchor');
	if (anchor == 'autoplay') {
		var elem = $('#l3r-main-alpha li.l3r-media-video');
		var html = elem.html();
		var exp = /(\b(http?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
		elem.html(html.replace(exp,"$1&autoplay=1"));
	}
	
	
});

function set_hoverIntent()
{
	$('.l3r-photo-thumb').hoverIntent( function(){
        var elem = $(this);
		// write preview to body to break overflow
		var preview = $('<div id="l3r-photo-dialog" class="l3r-photo-preview">').html(elem.children('.l3r-photo-preview').html());
        $('#l3r-photo-dialog').remove(); // get rid of any lingering dialogs
		$('body').append(preview);
		var offset = elem.offset();
		// move dialog to location of thumb
		// bind mouseleave event to dialog instead of thumb to prevent flicker
		$('#l3r-photo-dialog').css('top',offset.top+95)
				.css('left',offset.left)
				.fadeIn('fast')
				.bind("mouseleave",function() {
		  				$(this).fadeOut('fast').remove();
					})
    }, function(){
	    // mouseleave event attached to photo-dialog 
	});
}

function expandVideo(elem) {
	var embed = $(elem).siblings('.l3r-video-embed'); 
	if(!embed.is(":visible")){
		// collapse all other videos
		$('.l3r-video-embed').each(function(){ 
			$(this).slideUp("fast");
		});
		embed.slideDown("fast");
	}
}

function hideVideo() {
    var v = $('#l3r-show_video_wrapper');
    v.remove();
}

function showVideo(elem) {
    var d = $(elem)
        .parent()
        .children('.l3r-embedded-video');
    var embed_code = d.html();
    var v = "<div id='l3r-show_video_wrapper'><div id='l3r-show_video'<div>" + embed_code + "</div><p><a href='#' id='l3r-close-video'>Close</a></p></div></div>";
    $('body').append(v);
}

function addHomepagePromoNav() { 
    var promos = $('.l3r-homepage-promo');
    var promo_nav = ['<div class="l3r-hp-promo-nav l3r-mini-nav">'];

    promo_nav.push('<a href="" class="l3r-prev" onclick="javascript:miniShowPrev(\'.l3r-hp-promo-nav > a\'); return false;"></a>');
    promos.each(function(i){
        var pid = $(this).attr('id');
        var c = '';
        if (!i) { c = 'l3r-selected' }
        promo_nav.push('<a href="" class="' + c  + '"onclick="javascript:showPromoNav(this, \'' + pid + '\'); return false;"><span class="l3r-hp-promo-nav-num">'+(i+1)+'</span></a>');
    });
    promo_nav.push('<a href="" class="l3r-next" onclick="javascript:miniShowNext(\'.l3r-hp-promo-nav > a\'); return false;"></a>');
    promo_nav.push('<div>');
    var promo_nav = promo_nav.join('');
    $('#l3r-main-banner').append(promo_nav);
}

function showPromoNav(a, eid){
    if (promo_lock) { return false; } else { promo_lock = true; }
    $('.l3r-hp-promo-nav > a').each(function(){
        $(this).removeClass("l3r-selected");
    });
    $(a).addClass("l3r-selected");
    $('.l3r-homepage-promo:visible').each(function(){
		$(this).fadeOut(50, function(){
			$('#' + eid).fadeIn(200, function(){
				promoTimer();
                promo_lock = false;
			});
		});
    });
}
function miniShowNext(promo_links) { 
    var a;
    var promo_links = $(promo_links);

    promo_links.each(function(i){
       if($(this).hasClass('l3r-selected')) {
           if (i + 2 < promo_links.length) {
               a = promo_links[i+1];
           } else { a = promo_links[1]; }
           $(a).trigger('click');
           return false;
       }
    });
}

function miniShowPrev(promo_links) { 
    var a;
    var promo_links = $(promo_links);

    promo_links.each(function(i){
       if($(this).hasClass('l3r-selected')) {
           if (i > 1) {
               a = promo_links[i-1];
           } else { a = promo_links[promo_links.length-1]; }
           $(a).trigger('click');
           return false;
       }
    });
}

function promoTimer() {
	if(homepagePromoDelay > 0) {
		$.doTimeout( 'clicking', homepagePromoDelay, function(){
			miniShowNext('.l3r-hp-promo-nav > a');
		});
	}
}
function showPhotos(divID, num, page, key, type, domain){
    $.ajax({ 
            url: '/wp-content/plugins/loud3r/loud3r_media_ajax.php',
            global: false,
            type: "GET",
            data: {d:domain, num:num, page:page, key:key, 
                   type:type, media_type:'photos'},
            dataType: "json",
            cache: false,
            success: function(data){
                var lst_str = '';
                if(data.length == 0) {
                    $("#"+divID).remove();
                    return true;
                }
                for(var i in data){
                    img = data[i]['item_data']['thumbnail'];
                    alt = data[i]['story_data']['title'].replace("'", "\'");
					story_link = "/stories/"+data[i]['story_data']['link_name'];
                    link = data[i]['item_data']['link']; 
                    // set up image tag itself
                    img_tag = "<img height='85' alt='"+alt+"' src='"+img+"'/>";
                    a_tag = "<a class='l3r-mini-thumb' href='"+story_link+"'>";
                    lst_str += "<li class='l3r-photo-thumb'>"+a_tag+img_tag+"</a>";
                    // setup meta data
                    src_name = data[i]['story_data']['source_name'];
                    src_url = data[i]['story_data']['source_url']; 
                    ppreview = "<div class='l3r-photo-preview' style='display:none;'>";
                    p_a_tag = "<a href='"+story_link+"'>";
                    p_img = p_a_tag+img_tag+'</a>';
                    p_src = "<div class='l3r-photo-meta'>Source:<br /><a href='"+src_url+"'>"+src_name+"</a></div>";
                    p_art = "<div class='l3r-photo-meta'>Article:<br /><a href='"+story_link+"'>"+alt+"</a></div>";
                    ppreview += p_img + p_src + p_art + "</div>";
                    lst_str += ppreview + "</li>";
                }
                $("#"+divID).after('<ul style="display:none;" class="'+divID+' clear" id="l3r-photo-wall">'+lst_str+'</ul>');
                $("#"+divID).remove();
                $("."+divID).toggle();
                set_hoverIntent();
            },
            error: function(message){
                $("#"+divID).html("<p>None Found</p>");
                $("h2.l3r-related-photos").fadeOut();
                $("#"+divID).fadeOut();
            }
       }
    );
}
function showVideos(divID, num, page, key, type, domain){
    $.ajax({ 
            url: '/wp-content/plugins/loud3r/loud3r_media_ajax.php',
            global: false,
            type: "GET",
            data: {d:domain, num:num, page:page, key:key, 
                   type:type, media_type:'videos'},
            dataType: "json",
            cache: false,
            success: function(data){
                var lst_str = '';
                if(data.length == 0) {
                    $("#"+divID).remove();
                    return true;
                }
                for(var i in data){
                    img = data[i]['item_data']['img_url'];
                    alt = data[i]['story_data']['title'].replace("'", "\'");
                    link = data[i]['story_data']['link_name']; 
                    // set up image tag itself
                    img_tag = "<img height='90' alt='"+alt+"' src='"+img+"'/>";
                    a_tag = "<a href='/stories/"+link+"'>";
                    lst_str += "<li class='l3r-video-thumb'>"+a_tag+img_tag+"</a>";
                }
                $("#"+divID).after('<ul style="display:none;" class="'+divID+' clear" id="l3r-video-wall">'+lst_str+'</ul>');
                $("#"+divID).remove();
                $("."+divID).toggle();
                set_hoverIntent();
            },
            error: function(message){
                $("#"+divID).html("<p>None Found</p>");
                $("h2.l3r-related-videos").fadeOut();
                $("#"+divID).fadeOut();
            }
       }
    );
}
function showTweets(divID, num, page, key, type, domain){
    $.ajax({ 
            url: '/wp-content/plugins/loud3r/loud3r_media_ajax.php',
            global: false,
            type: "GET",
            data: {d:domain, num:num, page:page, key:key, 
                   type:type, media_type:'tweet'},
            dataType: "json",
            cache: false,
            success: function(data){
                var lst_str = '';
                if(data.length == 0) {
                    $("#"+divID).html("<p>None Found</p>");
                    $("h2.l3r-related-tweets").fadeOut();
                    $("#"+divID).fadeOut();
                }
                for(var i in data){
                    thumb = data[i]['item_data']['image'];
                    name = data[i]['item_data']['author_name'];
                    link = data[i]['item_data']['url']; 
                    text = data[i]['item_data']['data'];
					date = data[i]['item_data']['published'];
					img_tag = "<img class='l3r-tweet-user-thumb' alt='"+name+"' src='"+thumb+"'>";
                    a_tag = "<a class='l3r-tweet-user-thumb' href='"+link+"'>"+img_tag+"</a>";
					content = "<span class='l3r-tweet-content'>"+text_to_link(text)+"</span>";
					user = "<span class='l3r-tweet-user-name'>"+name+"</span>";
					date = "<span class='l3r-tweet-date easydate' title='"+date+"'></span>";
                    lst_str += "<li class='clear'>"+a_tag+content+user+date+"</li>";
                }
                $("#"+divID).after('<ul style="display:none;" class="'+divID+' clear" id="l3r-tweet-wall">'+lst_str+'</ul>');
                $("#"+divID).remove();
                $("."+divID).toggle();
				$("#l3r-tweet-wall .easydate").easydate(); 
            },
            error: function(message){
                $("#"+divID).html("<p>None Found</p>");
                $("h2.l3r-related-tweets").fadeOut();
                $("#"+divID).fadeOut();
            }
       }
    );
}

function text_to_link(text)
{
	var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
	return text.replace(exp,"<a href='$1' target='_blank'>$1</a>");
}
