﻿$(document).ready(function() {
    if ($("#details-template").length) {
        console.log("Running details page JS...");

        var spotLocation = new GLatLng($("#HiddenLatitude").val(), $("#HiddenLongitude").val());

        var detailsMap = new BenefulMap.BaseMap("#details-map", spotLocation, BenefulMap.Constants.DETAILS_ZOOM);

        var detailsNearbySpots = new BenefulMap.NearbySpotsPane(BenefulMap.Constants.Snippets.PANE_NEARBY_SPOTS, "#nearby-spots-pane", {}, "details-nearby-spots", spotLocation, jQuery.url.attr("file").replace(".aspx", ""), "#nearby-spots input:checkbox", "#nearby-spots select");

        BenefulMap.detailsTabs();
        BenefulMap.setupTellFriendSpotModal();
        BenefulMap.setupSendToPhoneModal();
        BenefulMap.setupEditSpotModal();
        BenefulMap.setupAddPhotoModal();
        BenefulMap.setupModalShareThisSpot();
        BenefulMap.setupFavorites();
        BenefulMap.getDirections();
    }

    if ($('.article_page').length) {
        BenefulMap.articleSideToggle();
    }

    if ($('#promo-sidebar').length) {
        BenefulMap.promotionRulesToggle();
    }

    $(".photo-gallery-link").click(function(event) {
        var refreshUrl = window.location;
        
        if (refreshUrl.toString().indexOf("#1") <= 0)
        {
            refreshUrl =  refreshUrl + "?anchor=true#1";
            document.location.href = refreshUrl;
        }
        else
        {            
            window.location.reload();    //if it's already in the url, we can just reload the page
        }         
    });
});

BenefulMap.closeAddPhotoModal = function() {
	$(document).trigger("addphoto.close", []);
}

BenefulMap.detailsTabs = function() {
	var selectTabFromAnchor = jQuery.url.attr("anchor");
	if(!selectTabFromAnchor) selectTabFromAnchor = 0;
	var $tabs = $("#details-tabs").tabs({
		selected: selectTabFromAnchor,
	    //ajaxOptions: { data: {sort: 3, id: jQuery.url.param("id"), page: 1}, cache: false },
	    ajaxOptions: { data: {sort: 3, id: jQuery.url.attr("file").replace(".aspx", ""), page: 1}, cache: false },
	    load: function(event, ui) {
			if (ui.index == 0) {
				$("#details-reviews-tab select").unbind();
		        $("#details-reviews-tab select").change(function(event) {
		            $("#details-tabs").tabs("option", 'ajaxOptions', { data: {sort: $(this).val(), id: jQuery.url.attr("file").replace(".aspx", ""), page: 1}, cache: false });
		            $("#details-tabs").tabs("load", ui.index);
		        });
			}
			if (ui.index == 1)
			{
			    BenefulMap.photoGalleryListener();
			}
	    }
	});
}

BenefulMap.setupFavorites = function(){
    var favorites =  new BenefulMap.AddToFavorites("details", "#details-controls-favorites", "#details-favorited");
    $(document).trigger("favorites.add_to", ["#add-to-favorites", jQuery.url.attr("file").replace(".aspx", "") ]);
}

BenefulMap.getDirections = function(){
	$(".maps-form").submit( function(event) {
		event.preventDefault();
	});
	$("#details-controls-directions").click(function (event){
		$("#details-favorited").hide();
		event.preventDefault();
		$("#GetDirections").slideDown("fast");
	});
	$("#directions-entry").keypress( function(event) {
		if (event.which == 13) {
			event.preventDefault();
			$(".directions-submit").click();
		}
	});
	$(".directions-submit").click( function(event) {
		event.preventDefault();
		//var spotId = jQuery.url.param("id");
		var spotId = jQuery.url.attr("file").replace(".aspx", "");
		window.location = root + "get-directions/default.aspx?id=" + spotId + "&from=" + $("#directions-entry").val();
	});
}

// PHOTOS RELATED JS START
BenefulMap.photoGalleryListener = function()
{
    $("a.photo-gallery-link").click( function(e)
    {
        console.log('clicked');
        e.preventDefault();
        $.ajax(
        {
            url: $(this).attr("href"),
            cache: false,
            success: function(data)
            {
                $("#photo-gallery-wrap").html(data);
                BenefulMap.photoGalleryListener();
            }
        });
    });
}

// PHOTOS RELATED JS END

BenefulMap.setupEditSpotModal = function() {
	var els = {
		modalDiv: "#modal-edit-spot",
		targetElement: "#add-edit-info"
	};
	var initialParams = {
		id: jQuery.url.attr("file").replace(".aspx", ""),
		ph: 1
	}
	var formEls = {
		fieldsToSerialize: "#modal-edit-spot input:text, #modal-edit-spot input:radio, #modal-edit-spot select",
		fieldsToValidate: "#modal-edit-spot input:text, #modal-edit-spot input:radio",
		requiredFields: "#modal-edit-spot input:text:not(.optional-field), #modal-edit-spot select"
	}
	var newModal = new BenefulMap.ModalEditSpot("Edit this Spot", "edit-spot", els, {}, BenefulMap.Constants.Snippets.MODAL_EDIT_SPOT, initialParams, formEls, ".spot-category input:radio", "#OtherCategorySuggestion", "detail");
}

BenefulMap.setupAddPhotoModal = function() {
	var els = {
		modalDiv: "#modal-add-photo",
		targetElement: "a.add-photo, a.add-photo-btn"
	};
	var params = {
		id: jQuery.url.attr("file").replace(".aspx", ""),
		ph: 1
	}
	var newModal = new BenefulMap.ModalAddPhoto("Add a Photo", "add-a-photo-modal", els, { width: 755, height: 635  }, BenefulMap.Constants.Snippets.MODAL_ADD_PHOTO, params);
}

BenefulMap.setupSendToPhoneModal = function() {
	var els = {
		modalDiv: "#modal-send-to-phone",
		targetElement: "#send-to-phone"
	};
	var formEls = {
		fieldsToSerialize: "#modal-send-to-phone select, #modal-send-to-phone input:text",
		fieldsToValidate: "#modal-send-to-phone select, #modal-send-to-phone input:text",
		requiredFields: "#modal-send-to-phone select, #modal-send-to-phone input:text"
	};
	var initialParams = {
		id: jQuery.url.attr("file").replace(".aspx", ""),
		ph: 1
	}
	var newModal = new BenefulMap.ModalSendToPhone("Send to Mobile", els, {}, BenefulMap.Constants.Snippets.MODAL_SEND_PHONE, initialParams, formEls);
}

BenefulMap.setupTellFriendSpotModal = function() {
	var tellFriendEls = {
		modalDiv: "#modal-tell-friend-spot",
		targetElement: "#send-to-friend"
	};
	var formEls = {
		fieldsToSerialize: "#modal-tell-friend-spot input:text, #modal-tell-friend-spot textarea",
		fieldsToValidate: "#modal-tell-friend-spot input:text, #modal-tell-friend-spot textarea",
		requiredFields: "#modal-tell-friend-spot input:text"
	};
	var newModal = new BenefulMap.ModalTellFriend("Send this Spot", tellFriendEls, {}, BenefulMap.Constants.Snippets.MODAL_TELL_FRIEND, {}, formEls, "spot");
}

BenefulMap.setupModalShareThisSpot = function() {
    var els = {
        modalDiv: "#modal-share-this-spot",
        targetElement: "#share-this"
    }
    var newModal = new BenefulMap.ModalShareThis("Share this Spot", els, {}, BenefulMap.Constants.Snippets.MODAL_SHARE_THIS, {}, "spot");
}


// Article Sidebar Toggle
BenefulMap.articleSideToggle = function(){
    var articleToggle = $('.article-list-toggle');
    articleToggle.css({display: 'block'});
    articleToggle.addClass('toggle_closed');
    articleToggle.children('span').html(BenefulMap.Constants.Strings.TOGGLE_SHOW);
    $('.more_articles ul li:gt(2)').hide();
    
    articleToggle.toggle(
        function(e){
            // Open
            e.preventDefault();
            articleToggle.removeClass('toggle_closed');
            articleToggle.addClass('toggle_open');
            articleToggle.children('span').html(BenefulMap.Constants.Strings.TOGGLE_HIDE);
            $('.more_articles ul li').slideDown();
        },
        function(e){
            // Close
            e.preventDefault();
            articleToggle.removeClass('toggle_open');
            articleToggle.addClass('toggle_closed');
            articleToggle.children('span').html(BenefulMap.Constants.Strings.TOGGLE_SHOW);
            $('.more_articles ul li:gt(2)').slideUp();
    });
}

// Promotion Rules Toggle
BenefulMap.promotionRulesToggle = function(){
    $('.promo-rules').hide();
    
    $('.promo-rules-toggle').click(function(e){
        e.preventDefault();
        $('.promo-rules').slideDown("slow");
    });
    
    $('.promo-rules-close').click(function(e){
        e.preventDefault();
        $('.promo-rules').slideUp();
    });
}