﻿var __timeout = null;
var __activeShare = null;

$(document).ready(function() {



    $("a[rel='External']").attr("target", "_blank");

    $("#Record-Banner").stop().animate({ top: '87px' }, { queue: false, duration: 2000, easing: 'easeInOutBack' });

    // Setup share links
    $(".head-nav-share li[class!='large'] a").hover(
        function() {
            $(this).parent("li").addClass("hover");
        },
        function() {
            $(this).parent("li").removeClass("hover");
        }
    );

    $(".head-nav-share li.large a").hover(
        function() {
            $(this).parent("li").addClass("hover");

            $('div.hover').hover(
            function() { }, function() {
                $(this).parent("li").removeClass("hover");
            });
        },
        function() {
            $(this).parent("li").removeClass("hover");
        }
    );

    $(".head-nav-share li.large div").hover(
        function() {
            $(this).parent("li").addClass("hover");
        },
        function() {
        }
    );

    // MAIN NAVIGATION

    $(".head-nav-main li:not(.active) a").hover(
        function() {
            var src = "";
            src = $(this).find("img").attr("src").toLowerCase();
            src = src.substring(0, src.length - 4) + "-sel.png";
            $(this).find("img").attr("src", src);
        },
        function() {
            var src = "";
            src = $(this).find("img").attr("src").toLowerCase();
            src = src.substring(0, src.length - 8) + ".png";
            $(this).find("img").attr("src", src);
        }
    );

    pngFix();

    $("#generic-shares").append("<span class=\"super\">" + $("#generic-shares .hover ul").html() + "</span>");
    $("#generic-shares .hover ul").hide();

    $(".head-nav-share a[class!='']").each(function() {
        $(this).click(function() {
            trackShare($(this).attr("class"));
        });
    });

    $(".head-nav-share li.large .super").hover(
        function() {
            $(this).parent("li").addClass("hover");
        },
        function() {
        }
    );

    addMute();
    
    
    
    $(window).keypress(function(e) {
    if(e.keyCode == 13) {
    if( $('#RegModal').is(':visible') ) {
            WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$Register1$btnReg", "", true, "", "", false, false));
            return false;
    }
    }
    
});
      
});

/* TRACKING */

var jsTrace = function(value) {
    if (typeof console != "undefined") {
        if (typeof console.log != "undefined") {
            console.log(value);
        }
    }
}

var track = function(category, action, label) {
    var test = "tracking - " + category + ", " + action + ", " + label;
    if (typeof console != "undefined") {
        if (typeof console.log != "undefined") {
            console.log(test);
        }
    }
    if (typeof _gaq == "undefined") {
        return;
    }
    return _gaq.push(['_trackEvent', category, action, label]);
}

var trackPopUnder = function(identifier) {
    track("popunder", identifier, undefined);
}

var trackShare = function(service) {
    var b = track("share", service, undefined);
}

var trackFlash = function(action, uid) {
    var b = track("flash", action, uid);
}

/* --- */

var createFlash = function(type) {
    $(document).ready(function() {
        if (type == "photo-tool") {
            injectPhotoToolFlash();
        }
        if (type == "gallery") {
            injectGalleryFlash();
            $("body").addClass("gallery-flashed");
        }
        if (type == "profile") {
            injectProfileFlash();
        }
        if (type == "home") {
            injectFlash();
            $("body").addClass("main-flashed");
        }
        if (type == "ungrow") {
            injectUngrowFlash();
            $("body").addClass("ungrow-flashed");
        }
        $("body").addClass("flashed");
        //$("#navigation").supersleight();
    });
}

var checkUserLoginStatus = function(data) {
    var d = new Date();
    var type = data.type;
    $.ajax({
        async: false,
        url: "/Services/UserUploadStatus.ashx?" + d.valueOf(),
        success: function(data) {
            handleLoginStatus(data, type);
        }
    });
}

var showGalleryImage = function(id) {
    getImageDetails(id);
}

var showGalleryVideo = function(wowza, id) {
    playRecording(wowza, id);
}

var showDeepLinkGalleryVideo = function(wowza, id) {
    if (typeof wowza == "string" && typeof id == "string") {
        __queue = { action: "play", wowza: wowza, id: id };
    }
}

var voteUpImage = function(data) {
    addLikeMetric(__liked, true);
}

var facebookLikeCallback = function(data) {
    addLikeMetric(__liked, false);
}

var __liked = null;
var createFbLikeLink = function(url, id, isImage) {

    window.fbAsyncInit = function() {
        if (typeof FB == "undefined") {
            return;
        }
        //https://graph.facebook.com/141234879225415
        __liked = id;
        FB.init({ appId: '141234879225415', status: true, cookie: true, xfbml: true });
        try {
            FB.Event.unsubscribe('edge.create', facebookLikeCallback);
        }
        catch (e) { }
        FB.Event.subscribe('edge.create', facebookLikeCallback);
    }

    $("#like-panel").append("<div id=\"fb-container\" />");
    $("#fb-container").append("<fb:like href=\"" + url + "\" layout=\"button_count\" show-faces=\"false\" width=\"250\" action=\"like\" colorscheme=\"dark\" />");
    $("#fb-container").append("<div id=\"fb-root\" />");
    $("#fb-root").append("<script type=\"text/javascript\" src=\"" + document.location.protocol + "//connect.facebook.net/en_GB/all.js\", async=\"true\" />");

    window.fbInitDone = true;

}

function handleLoginStatus(data, type) {
    __inUploadLoop = true;
    __type = type;

    if (data.LoggedInStatus === "NotLoggedIn") {
        loginModal();
        swfbridge().setLoginStatus(false);
    } else {
    if (__type == "image") {
        allowImageUploadFromFlash();
        return;
    }
        ShowPublishDialog(type);
        swfbridge().setLoginStatus(true);
    }

}

function uploadCheckLoginStatus() {
    var d = new Date();
    $.ajax({
        async: false,
        url: "/Services/UserUploadStatus.ashx?" + d.valueOf(),
        success: function(data) {
            if (data.LoggedInStatus === "NotLoggedIn") {
                swfBridge().setLoginStatus(false);
                loginModal();
            }
            else {
                swfBridge().setLoginStatus(true);
            }
        }
    });
}

var __inUploadLoop = false;
var __type = null;
var loginSuccessCallback = function() {
    if (__inUploadLoop) {
        if (__type == "image") {
            allowImageUploadFromFlash();
            return;
        }
        ShowPublishDialog(__type);
        return;
    }
    try {
        if (swfBridge()) {
            swfBridge().setLoginStatus(true);
        }
    } catch (e) { }
    var url = "" + document.location;
    if (url.indexOf("NotLoggedIn") > 0) {
        var i = url.indexOf("NotLoggedIn");
        document.location.replace(url.substr(0, i));
        return;
    }
    document.location.reload();
}

var registerSuccessCallback = function() {
    if (__inUploadLoop) {
        HideModals();
        if (__type == "image") {
            allowImageUploadFromFlash();
            return;
        }
        ShowPublishDialog(__type);
        return;
    }
    var url = "" + document.location;
    if (url.indexOf("NotLoggedIn") > 0) {
        var i = url.indexOf("NotLoggedIn");
        document.location.replace(url.substr(0, i));
        return;
    }
    document.location.reload();
}




var allowImageUploadFromFlash = function() {
    var bridge = swfBridge();
    if (bridge) {
        HideModals();
        bridge.signalImageUploadAllowed();
    }
}

var forgotPasswordSuccessCallback = function() {
    ShowForgotPasswordDialog();
}

var loginModal = function() {
    HideModals();
    setTimeout("ShowLoginDialog();", 100);
}

var registerModal = function() {
    HideModals();
    setTimeout("ShowRegDialog();", 100);
}

var staticModal = function(url) {

    var d = new Date();

    if ($("#floatingStatic").width() == null) {
        $("body").append("<div id=\"floatingStatic\"><div class=\"form-top\" /><div class=\"form-container\" /><div class=\"form-bottom\" /></div>");
    }

    $.ajax({
        url: url + "?" + d.valueOf(),
        success: function(data) {
            $("#floatingStatic .form-container").html(data);
            showModal("floatingStatic");
            $("#floatingStatic").supersleight();
        }
    });

}

var addMute = function() {

    if ($("body").hasClass("default")) {
        return;
    }

    $("#navigation").append("<div id=\"mute\" />");

    $("#mute").hover(function() {
        $(this).addClass("hover");
    }, function() {
        if ($(this).hasClass("active")) {
            return;
        }
        $(this).removeClass("hover");
    });

    $("#mute").click(function() {
        if ($(this).hasClass("active")) {
            $(this).removeClass("active");
            try { unmuteFlash(); } catch (e) { }
        } else {
            $(this).addClass("active");
            try { muteFlash(); } catch (e) { }
        }
    });

}

var waterMark = function(id, text) {
    var target = $("#" + id);
    target.data("default", text);
    target.focus(function() {
        if ($(this).val() == $(this).data("default")) {
            $(this).val("");
        }
    });
    target.blur(function() {
        if ($(this).val() == "") {
            $(this).val($(this).data("default"));
        }
    });
    target.blur();
}

var pngFix = function() {
    $('#Milkybar-Banner').supersleight();
    $('.form-top').supersleight();
    $('.form-bottom').supersleight();
    $('.MilkybarKid').supersleight();
    $("input.control-button").supersleight();
    $("#Age-check").supersleight();
    $("#logo").supersleight();
    $(".Btn-ProductsRange img").supersleight();
    $("#tabcontent").supersleight();
    $("img#title").supersleight();
    $("#holding-image").supersleight();
    $("#share-panel").supersleight();
    $(".head-nav-share .hover").supersleight({ imgs: false });

}

var showLikePanel = function(data, isImage) {
    $("#nickname").remove();
    $("#like-panel").remove();
    $("#like-panel-bg").remove();
    $("#share-panel").remove();

    var root = "#gallery";

    if (isImage) {
        root = "#imageGalleryView";
    }

    if (isImage) {
        $("#imageView").remove();
        $("#imageGalleryView").remove();
        $("#imageGalleryViewBg").remove();

        $("#gallery-ctrl-panel").append("<div id=\"imageGalleryViewBg\"></div>");
        $("#gallery-ctrl-panel").append("<div id=\"imageGalleryView\" />");
        $("#gallery-ctrl-panel").append("<a href=\"PhotoTool.aspx\" id=\"toolLink\" />");

        $("#imageGalleryView").append("<div id=\"imageView\" />");

        var t = $("#imageView");

        t.append("<img src=\"/Services/GetLargeImage.ashx?id=" + data.Id + "\" alt=\"\" />");

        $("#imageGalleryViewBg").supersleight();
    }

    $(root).append("<div id=\"like-panel-bg\" />");
    $(root).append("<div id=\"like-panel\" />");
    $(root).append("<h1 id=\"nickname\">" + (isImage ? data.Caption : data.Nickname) + "</h1>");

    $("#like-panel").supersleight();

    if (data.Competition) {
        $("#like-panel").append("<ul><li class=\"first\"><img width=20 height=19 src=\"/Images/sheriff-bg.png\" />" + data.Views + " views</li></ul>");
    }
    else {
        $("#like-panel").append("<ul><li class=\"first\">" + data.Views + " views</li></ul>");
    }

    $("#like-panel .vote-up").click(function() {
        addLikeMetric(data.Id, true);
    });

    $("#like-panel li img").supersleight();
    $("#nickname").supersleight();
    $("#like-panel-bg").supersleight();

    root = "#like-panel";

    if (isImage) {
        root = "#imageGalleryView";
    }

    addLikes(root, data);

    createFbLikeLink(__url + "?id=" + data.Id, isImage);

}

var addLikes = function(root, data, url) {
    $(root).append("<div class=\"share-panel\"><ul/></div>");

    $(root + " .share-panel ul").append("<li class=\"twitter\">&nbsp;</li>");
    $(root + " .share-panel ul").append("<li class=\"facebook\">&nbsp;</li>");

    hookShare(root + " .share-panel .facebook", "http://www.facebook.com/sharer.php?u=##url##&t=MILKYBAR", data, url);
    hookShare(root + " .share-panel .twitter", "http://twitter.com/home?status=I'm+loving+##url##", data, url);
}

var hookShare = function(id, url, data, share) {

    if (typeof share == "undefined") {
        share = __url;
    }

    var i = $(id);
    var deep = share + "?id=" + data.Id;

    i.click(function() {
        window.open(url.replace(/##url##/, escape(deep)));
    });
}

var showLastModal = function(id) {

    if (id === "") {
        return;
    }

    HideModals();
    showModal(id, true);

}

function HideModals() {

    $.unblockUI({ fadeIn: 0, fadeOut: 0, onUnblock: function() {
        $("#floatingStatic").hide();
        $("#LoginModal").hide();
        $("#RegModal").hide();
        $("#ForgotPasswordModal").hide();
        if ($("#PublishModal") != null) $("#PublishModal").hide();
    }
    });

    $("#darken").remove();

    return false;

}

function ShowLoginDialog() {
    trackPopUnder("login", "");
    showModal("LoginModal", true);
}

function ShowRegDialog() {
    trackPopUnder("register", "");
    showModal("RegModal", true);
}

function showRegSuccessDialog()
{
    HideModals();
    showModal("RegModal", true);
}

function ShowForgotPasswordDialog() {
    trackPopUnder("forgotten-password", "");
    showModal("ForgotPasswordModal", true);
}

function ShowPublishDialog(type) {
    trackPopUnder("publish", "");
    if (typeof wirePublishEvents != "undefined") {
        wirePublishEvents(null, type);
    }
    showModal("PublishModal", type == "image");
}

var showModal = function(id, darken) {
    if (id === "") {
        return;
    }

    if (darken) {
        $("#darken").remove();
        $("body").append("<div id=\"darken\" />");

        $("#darken").center(true);
        $("#darken").show();

        $("#darken").css("width", $(document).width() + "px");
        $("#darken").css("height", $(document).height() + "px");
        $("#darken").css("left", "0");
        $("#darken").css("top", "0");
        $("#darken").css("z-index", "1");

    }

    $("#" + id).center(true);
    $("#" + id).show();
}

var recapcha = function() {
    $(document).ready(function() {
       Recaptcha.reload();
    });
}

var ShowRegSuccess = function() {
    $(document).ready(function() {
      showModal("RegModal", true);
    });
}



