var forcemap = {
    markers: null,
    gmarkers: null,
    
    overlay: null,
    spinner: null,
    mapdiv: null,
    
    center: null,
    zoom: 7,
    
    marker_img: '/resources/site_images/icn-force-marker.png',
    
    init: function() {
        // attach click handlers to the list items
        var clublistitems = $('#force-map .featured li');
        if (clublistitems.length > 0) {
            clublistitems.each(function(){
                var listurl = $(this).attr('data-overlay');
                if (listurl.length > 0) {
                    $(this).find('img').click(function(e){
                        forcemap.load_overlay(listurl);
                        e.preventDefault();
                        return false;
                    });
                    $(this).find('h5').click(function(e){
                        forcemap.load_overlay(listurl);
                        e.preventDefault();
                        return false;
                    });
                }
            });
        }
        
        // set up the map
        forcemap.mapdiv = $('#force-map #map');
        if (forcemap.mapdiv.length < 1) {
            return;
        }
        
        forcemap.overlay = $('#force-map #map-wrapper .overlay').first();
        forcemap.spinner = $('#force-map #map-wrapper .spinner').first();
        
        forcemap.markers = new Array();
        $('#force-map #map li').each(function(i, el){
            forcemap.marker = {};
            forcemap.marker.url = $(this).find('a').attr('href');
            forcemap.marker.lat = parseFloat($(this).attr('data-lat'), 10);
            forcemap.marker.lng = parseFloat($(this).attr('data-long'), 10);
            
            forcemap.markers.push(forcemap.marker);
            delete forcemap.marker;
        });
        
        forcemap.center = new google.maps.LatLng(53.4227778, -7.9372222);
        forcemap.map = new google.maps.Map(document.getElementById("map"), {
                                                zoom: forcemap.zoom,
                                                center: forcemap.center,
                                                mapTypeId: google.maps.MapTypeId.ROADMAP
                                                });
        
        // create the basic markers
        forcemap.gmarkers = new Array();
        $.each(forcemap.markers, function(index, marker){
            forcemap.gmarker = new google.maps.Marker({
                position: new google.maps.LatLng(marker.lat, marker.lng),
                icon: new google.maps.MarkerImage(forcemap.marker_img,
                                                    new google.maps.Size(37, 37),
                                                    new google.maps.Point(0, 0),
                                                    new google.maps.Point(18, 18)
                                                )
            });
            forcemap.gmarkers.push(forcemap.gmarker);
            delete forcemap.gmarker;
        });
        
        // attach the click handlers to the markers
        $.each(forcemap.gmarkers, function(index, gmarker){
            google.maps.event.addListener(gmarker, 'click', function() {
                forcemap.load_overlay(forcemap.markers[index].url);
            });
        });
        
        // show the markers
        $.each(forcemap.gmarkers, function(index, gmarker){
            gmarker.setMap(forcemap.map);
        });
        
        google.maps.event.addListener(forcemap.map, 'click', function() {
            forcemap.hide_overlay();
        });
        forcemap.overlay.click(function(){
            forcemap.hide_overlay();
        });
    },
    
    load_overlay: function(url) {
        forcemap.overlay.hide();
        forcemap.spinner.show();
        
        $.get(url, {}, function(data, status, jqXHR){
            forcemap.overlay.html(data);
            forcemap.show_overlay();
        }, 'html');
    },
    
    show_overlay: function() {
        forcemap.spinner.hide();
        forcemap.overlay.find('.close').click(function(e){
            forcemap.hide_overlay();
            
            e.preventDefault();
            return false;
        });
        forcemap.overlay.show();
    },
    
    hide_overlay: function(marker_index) {
        forcemap.overlay.hide();
        forcemap.overlay.html('');
    }
};

$(document).ready(function(){
	menu();
	init_tabs();
	login();
	poll();
	stars();
	news();
	blog();
	fans();
	ub_events();
	leaders();
	rollovers();
	video_overlays();
	forcemap.init();
});

// and stuff that we want after the page assets are totally loaded
$(window).load(function(){
	facebook_frames();
})

function menu()
{
	// hide sub-menus by default
	$("#nav ul").hide();
	
	// parse through each parent list item
	$.each($("#nav > li"), function(){
		
		// get child ul
		var parent_li = $(this);
		var child_ul = parent_li.find('ul');
		
		// set min width of ul to width of parent list items
		if (child_ul){
			child_ul.css('min-width', parent_li.width()+'px');
		}
		
		// setup show event
		parent_li.mouseenter(function(){
			child_ul.show();
		});
		
		// setup hide event
		parent_li.mouseleave(function(){
			child_ul.hide();
		});
	
	});
	
	// set popup functionality on links with class "opener"
	$("a.opener").click(function(){
		var href = $(this).attr('href');
		var day = new Date();
		var id = day.getTime();
		eval("page" + id + " = window.open(href, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=400,left = 383,top = 184');");
		return false;
	});
}

function facebook_frames()
{
	$('.social .fbgraph iframe, #social-feeds #social-feeds-facebook iframe').each(function(){
		var iframe = $(this);
		var url = iframe.attr('rel');
		if (url != ''){
			iframe.attr('src', url);
		}
	});
}

function init_tabs()
{
	function showTab(tabId){
		var tab = $(tabId);
		var container = tab.parent().parent();
		var tabs = container.find('.tabs li');
		var slides = container.find('.tab-content > div');
		tabs.removeClass('active');
		tabs.removeClass('permanentlyActive')
		slides.hide();
		tab.addClass('active');
		tab.addClass('permanentlyActive')
		$(tab.find('a').attr('href')).show();
	}	

	// show first tab from each tab set
	var tabSets = $(".tab-set");
	$.each(tabSets, function(index, tabSet){
		showTab('#'+($(tabSet).find('.tabs li').eq(0).attr('id')));
	});

	// set up events to show other tabs
	$('.tabs li').click(function(){
		showTab('#'+$(this).attr('id'));
		return false;
	});

	// rollovers on tabs
	$.each($('.tabs li, .statictabs li'), function(index, tab_li){
		$(tab_li).mouseover(function(){
			li = $(this);
			if (li.hasClass('active') == false) {
				li.addClass('active');
			} else {
				li.addClass('permanentlyActive')
			}
		});
		$(tab_li).mouseout(function(){
			li = $(this);
			if (li.hasClass('permanentlyActive') == false) {
				li.removeClass('active');
			}
		});
	});
}

function login()
{
	// hide login form
	$("#login").hide();


	// pulsing register button
	$("#registerorlogin #choose_county").change(function(){
	    $("#registerbutton").animate({'opacity': "0.2"}, 250).animate({'opacity': "1"}, 250);
	});


	// show register or login forms
	$("#registerorlogin #registerbutton").click(function(e){
	    // show registration lightbox
	    var regformurl = "/index.php/includes/register/" + $("#choose_county").val();
	    var overlay = $("#regoverlay");
	    overlay.html("");
	    overlay.load(regformurl);
	    overlay.show();
	    $("#regclose").live('click', function(f){
            overlay.hide();
    	    f.preventDefault();
	    });

	    // rollovers
	    $("#regform #submit").live('mouseover', function(){
	       $(this).css('background', "#468bba url('/resources/site_images/btn-reg-submit-on.png') no-repeat left top"); 
	    });
	    $("#regform #submit").live('mouseout', function(){
	       $(this).css('background', "#468bba url('/resources/site_images/btn-reg-submit-off.png') no-repeat left top"); 
	    });

	    e.preventDefault();
	});

	$("#registerorlogin #loginbutton").click(function(e){
	    $("#registerorlogin").fadeOut(function(){
	        $("#login").fadeIn();
	    });
	    e.preventDefault();
	});


	// login form behaviours
	// placeholder text
	var email_placeholder = "Member Email";
	var password_placeholder = "Password";

	$("#login #username").val(email_placeholder).css("color", "#999");;
	$("#login #password").val(password_placeholder).css("color", "#999");;

	$("#login #username").focus(function(){
	    if ($(this).val() == email_placeholder) {
	        $(this).val("").css("color", "#000");
	    }
	});
	$("#login #username").blur(function(){
	    if ($(this).val() == "") {
	        $(this).val(email_placeholder).css("color", "#999");
	    }
	});

	$("#login #password").live("focus", function(){
	    if ($(this).val() == password_placeholder) {
	        // swap out for a password field
	        var oldField = $(this);
	        var newField = oldField.clone();

	        newField.attr("type", "password");
	        newField.attr("id", "newPassword");
	        newField.insertBefore(oldField);
	        oldField.remove();
	        newField.attr("id", "password");

    	    newField.val("").css("color", "#000");
    	    newField.focus();
	    }
	});
	$("#login #password").live("blur", function(){
	    if ($(this).val() == "") {
	        // swap out for a text field
	        var oldField = $(this);
	        var newField = oldField.clone();

	        newField.attr("type", "text");
	        newField.attr("id", "newPassword");
	        newField.insertBefore(oldField);
	        oldField.remove();
	        newField.attr("id", "password");

	        newField.val(password_placeholder).css("color", "#999");
	    }
	});

}

function poll()
{
	$("#poll-results").hide();

   // show fan reporters
   //$(".toggle-poll-results").click(
   //function(){
	 //  $("#poll-results").toggle();
	 //  $("#poll-question").toggle();	   
   //});

    $('#poll').ajaxForm({

        success: function() {
	        target: '#poll-success';
		    $("#poll-question").hide();
			$("#poll-results").fadeIn('slow');		    
            $('#poll-success').fadeIn('slow'); 
        },

        error: function() {
		    $("#poll-question").hide();
        }
    })

}

function stars()
{
	// hide accordions if there's more then one post visible
   var lis = $("#stars .stories").children("li");
   if (lis.length > 1) {
       lis.find(".accordion").hide();
   }
   else {
       lis.find(".morelink,.commentslink").hide();
       lis.find(".teaser").hide();
   }

   // expand posts
   $("#stars .stories .morelink, #stars .stories .commentslink").click(function(e){
       $("#stars .stories .accordion").hide();
       $(".teaser").show();
       $(".morelink, .commentslink").show();

       var post = $(this).closest("li");
       post.find(".morelink, .commentslink").hide();
       post.find(".accordion").show();
       post.find(".teaser").hide();

       e.preventDefault();
   });
}

function news()
{
	// hide accordions if there's more then one post visible
   var lis = $("#news-latest .stories, #home-agg-news .stories").children("li");
   if (lis.length > 1) {
       lis.find(".accordion").hide();
   }
   else {
       lis.find(".morelink").hide();
   }

   // expand posts
   $("#news-latest .morelink, #home-agg-news .morelink").click(function(e){
       $("#news-latest .stories .accordion, #home-agg-news .stories .accordion").hide();
       $(".morelink").show();

       var post = $(this).closest("li");
       post.find(".morelink").hide();
       post.find(".accordion").show();

       e.preventDefault();
   });
}

function blog()
{
   // hide accordions if there's more then one post visible
   var lis = $("#news-blog .stories").children("li");
   if (lis.length > 1) {
       lis.find(".accordion").hide();
   }
   else {
       lis.find(".morelink, .commentslink").hide();
       lis.find(".teaser").hide();
   }

   // expand posts
   $("#news-blog .morelink, #news-blog .commentslink").click(function(e){
       $("#news-blog .stories .accordion").hide();
       $(".teaser").show();
       $(".morelink, .commentslink").show();

       var post = $(this).closest("li");
       post.find(".morelink, .commentslink").hide();
       post.find(".accordion").show();
       post.find(".teaser").hide();

       e.preventDefault();
   });


   // comment form rollovers
   $(".stories .submit").live('mouseover', function(){
      $(this).css('background', "transparent url('/resources/site_images/btn-submitcomment-on.png') no-repeat left top"); 
   });
   $(".stories .submit").live('mouseout', function(){
      $(this).css('background', "transparent url('/resources/site_images/btn-submitcomment-reallyoff.png') no-repeat left top"); 
   });

   // validation
    $(".stories form").each(function(){
        $(this).validate({
              rules: {
                      name: {required: true},
                      email: {required: true, email: true},
                      comment: {required: true}
                  },
              messages:{
                      name: "!",
                      email: "!",
                      comment: ""
                  }
          });
   });
}

function fans()
{
	//$("#fan-reporter-profiles").hide();


   // hide accordions if there's more then one post visible
   var lis = $("#news-fans .stories, #home-agg-fans .stories").children("li");
   if (lis.length > 1) {
       lis.find(".accordion").hide();
   }
   else {
       lis.find(".morelink, .commentslink").hide();
       lis.find(".teaser").hide();
   }

   // expand posts
   $("#news-fans .morelink, #news-fans .commentslink").click(function(e){
       $("#news-fans .stories .accordion").hide();
       $(".morelink, .commentslink").show();

       var post = $(this).closest("li");
       post.find(".morelink, .commentslink").hide();
       post.find(".accordion").show();
       post.find(".teaser").hide();

       e.preventDefault();
   });


   // show fan reporters
   $(".viewprofiles").toggle(
   function(){
	   $("#fan-reporter-profiles").show();
       $(this).css("background","url(/resources/site_images/hide-profiles.gif) no-repeat top left");
   },
   function(){
	   $("#fan-reporter-profiles").hide();
       $(this).css("background","url(/resources/site_images/view-profiles.gif) no-repeat top left");
	});
}

function ub_events()
{
   // hide accordions if there's more then one post visible
   var lis = $(".event-list").children("li");
   if (lis.length > 1) {
       lis.find(".accordion").hide();
   }
   else {
       lis.find(".morelink").hide();
   }

   // expand posts
   $(".event-list .morelink, .show-arrow").click(function(e){
       $(".event-list .accordion").hide();
       $(".morelink").show();

       var post = $(this).closest("li");
       post.find(".morelink").hide();
       post.find(".accordion").show(); 

       e.preventDefault();
   });

   	// video gallery
	$(".event-list img").click(function(){

		var segImg = $(this).attr('src').split('_');
		var segImg2 = segImg[1].split('/');
		var fExt = segImg[2].split('.');
		var imgName = segImg[0] + "_images/" + segImg2[1] + "." + fExt[1];

		var imgAlt = $(this).attr('alt');
		if (imgAlt != '') {
			var imgCaption = '<div class="event-caption"><strong>In the picture:</strong> ' + $(this).attr('alt') + '</div>';
		} else {
			var imgCaption = '';
		}
		if (imgCaption != ''){

		}
		$(".img-zoom p").html('<img src="' + imgName  + '" />' + imgCaption);
		$(".img-zoom").show();
		imgCaption.show();
		return false;
	});
	$(".img-zoom .close").click(function(){
			var closePara = $(this);
			var videoDiv = $(this).parent().parent();
			videoDiv.hide();
	});
}

function leaders()
{
    $("#quizleaders").hide();
    
    $(".lblink a").click(function(e){
        $("#quizblurb").hide();
        $("#quizleaders").show();
        
        e.preventDefault();
    });
}

function rollovers()
{
	img_tags = $(".rollover");
	
	$.each(img_tags, function(index, image){
		
		// preload "on" image
		
		
		// setup on function
		$(image).mouseover(function(){
			img = $(this);
			off_src = img.attr('src');
			on_src = off_src.replace('-off', '-on');
			img.attr('src', on_src);
		});
		
		// set up off function
		$(image).mouseout(function(){
			img = $(this);
			on_src = img.attr('src');
			off_src = on_src.replace('-on', '-off');
			img.attr('src', off_src);
		});
		
	});
}

function video_overlays()
{
	// video gallery
	$(".overlay-trigger").click(function(){
		var triggerAnchor = $(this);
		var videoDiv = $(triggerAnchor.attr('href'));
		videoDiv.show();
		return false;
	});
	$(".video-player .close").click(function(){
			var closePara = $(this);
			var videoDiv = $(this).parent().parent();
			videoDiv.hide();
	});
	
	// video archive
	$("#video-archive-listing #videos li a").click(function(){
		var videoLink = $(this);
		var videoId = videoLink.attr('href');
		$("#video-archive-player > div").hide();
		$("#video-archive-player " + videoId).show();
	});
}
