﻿var autocompleteDefaults = {
    minChars: 2,
    selectOnly: 0,
    width: 345,
    delay: 300,
    matchSubset: 0,
    matchCase: false,
    matchContains: 0,
    autoFill: false,
    formatItem: function(row, i, num) { return row[0] + " - " + row[1] + " (" + row[2] + ")" }
}

//*******************************************************************
//methods for creating flowplayer's for audio and video (both streaming on and off)
function addAudioPlayerStreaming(fileName, netConnectUrl, rtmpFlowPlayer, briefId, subscriberId) {
    flowplayer("player",
                {
                    src: '/static/flowPlayer/flowplayer-3.1.5.swf',
                    wmode: 'opaque',
                    cachebusting: $.browser.msie
                },

                {
                    clip:
                    {
                        autoPlay: false,
                        autoBuffering: false,
                        provider: 'rtmp',
                        url: fileName
                    },

                    plugins: {

                        rtmp: {
                            url: rtmpFlowPlayer,
                            netConnectionUrl: netConnectUrl,
                            durationFunc: 'getStreamLength'
                        },

                        controls: {
                            time: true,
                            volume: true,
                            fullscreen: false,
                            backgroundColor: '#BBBBBB',
                            buttonColor: '#0063A6',
                            progressColor: '#004878',
                            sliderColor: '#ffffff'
                        }
                    },
                    onPlay: function() {
                        pageTracker._trackEvent('audio', briefId, subscriberId);
                    }
                }
            );
};

function addAudioPlayer(fileName, netConnectUrl, rtmpFlowPlayer, briefId, subscriberId) {
        flowplayer("player",
        {
            src: '/static/flowPlayer/flowplayer-3.1.5.swf',
            wmode: 'opaque',
            cachebusting: $.browser.msie
        }
        ,
        {
            clip:
            {
                autoPlay: false
            }
            ,
            plugins: {
                controls: {
                    time: true,
                    volume: true,
                    fullscreen: false,
                    backgroundColor: '#BBBBBB',
                    buttonColor: '#0063A6',
                    progressColor: '#004878',
                    sliderColor: '#ffffff'

                }
            },
            onPlay: function() {
                pageTracker._trackEvent('audio', document.getElementById("hidOpenBriefingId").value, document.getElementById("hidSubscriberId").value);
            }
        }
    );
};

function addVideoPlayerStreaming(fileName, netConnectUrl, briefId, subscriberId, mode) {
    alert('video: streaming on');
    var rtmpFlowPlayer = '/static/flowPlayer/flowplayer.rtmp-3.1.3.swf';
    var srcFlowPlayer = '/static/flowPlayer/flowplayer-3.1.5.swf';
    //RTMP - netConnectUrl
    if (mode == "rtmp1") {
        flowplayer("player",
                {
                    src: srcFlowPlayer,
                    wmode: 'opaque',
                    cachebusting: $.browser.msie
                },

                {
                    clip:
                    {
                        autoPlay: false,
                        autoBuffering: false,
                        provider: 'rtmp',
                        url: fileName
                    },

                    plugins: {

                        rtmp: {
                            url: rtmpFlowPlayer,
                            netConnectionUrl: netConnectUrl,
                            durationFunc: 'getStreamLength'
                        },

                        controls: {
                            bottom: 0,
                            time: true,
                            volume: true,
                            fullscreen: false,
                            backgroundColor: '#BBBBBB',
                            buttonColor: '#0063A6',
                            progressColor: '#004878',
                            sliderColor: '#ffffff'
                        }
                    },
                    onPlay: function() {
                        pageTracker._trackEvent('video', briefId, subscriberId);
                    }
                }
            );
    } else {
        //RTMPT
        flowplayer("player",
            {
                src: srcFlowPlayer,
                wmode: 'opaque',
                cachebusting: $.browser.msie
            },
            {
                clip:
                {
                    autoPlay: false,
                    autoBuffering: false,
                    provider: 'simplecdn',
                    url: fileName
                },

                plugins: {
                    simplecdn: {
                        url: rtmpFlowPlayer,
                        netConnectionUrl: netConnectUrl
                    },
                    controls: {
                        bottom: 0,
                        time: true,
                        volume: true,
                        fullscreen: false,
                        backgroundColor: '#BBBBBB',
                        buttonColor: '#0063A6',
                        progressColor: '#004878',
                        wmode: 'opaque',
                        sliderColor: '#ffffff'
                    },
                    onPlay: function() {
                        pageTracker._trackEvent('video', briefId, subscriberId);
                    }
                }
            }
        );
    };
}

function addVideoPlayer(fileName, netConnectUrl, rtmpFlowPlayer, briefId, subscriberId) {
    alert('video: streaming off');
    flowplayer("player",
        {
            src: '/static/flowPlayer/flowplayer-3.1.5.swf',
            wmode: 'opaque',
            cachebusting: $.browser.msie
        }
        ,
        {

            clip:
            {

                autoPlay: false,
                autoBuffering: false,
                onStart: function() {
                    pageTracker._trackEvent('video', document.getElementById("hidOpenBriefingId").value, document.getElementById("hidSubscriberId").value);
                }
            }
            ,
            plugins: {
                controls: {
                    bottom: 0,
                    time: true,
                    volume: true,
                    fullscreen: true,
                    backgroundColor: '#BBBBBB',
                    buttonColor: '#0063A6',
                    progressColor: '#004878',
                    sliderColor: '#ffffff'
                }
            }
        }
    );
};

//***************************************************************

//add comma's into a value
function commafy(aInt){
     return formatFloat(aInt,0);
}
var thousand_sep = ",";
var decimal_point = ".";
var default_precision = 2;

function formatFloat(aFloat, aPrecision){
try {
precision = default_precision;
if(!isNaN(aPrecision))
if(Math.abs(aPrecision)<=10)
precision = aPrecision;
} catch(e) {
precision = default_precision;
}
try {
number = parseFloat(aFloat+'');
if(isNaN(number))
return "NaN";
} catch(e) {
return "NaN";
}

number = Math.round(number * Math.pow(10, precision)) / Math.pow(10,
precision);
integerpart = '' + ((number<0) ? Math.ceil(number) :
Math.floor(number));
decimalpart = Math.abs(Math.round((number - integerpart)*(Math.pow(10,
precision))));
if(decimalpart<10)
decimalpart="0"+decimalpart;
if(decimalpart==0)
decimalpart="00";
var buff = "";
for(j=-1, i=integerpart.length; i>=0; i--, j++){
if((j%3) == 0 && j>1)
buff = thousand_sep + buff;
buff = integerpart.charAt(i) + buff;
}
if(precision>0)
return buff+decimal_point+decimalpart;
return buff;
}
function getNextTenBriefings(pageNumber) 
{
    $("#openBriefingsNextLink").addClass = "loading";
    
    $.get("/api/Home/getNextTenBriefings.aspx", {pageNumber: pageNumber}, function(result) {
        var prevPageNo = pageNumber - 1;
        if (pageNumber == 2) {
            $("#openBriefingsNextLink").html('');
        } else {
            $("#NextTenBriefingsLink" + prevPageNo).html('');
        }
        $("#openBriefings").append(result);
    });
    return false;
}
function getNextTenCompanyBriefings(companyId, pageNumber, obToExclude) {
    $("#openBriefingsNextLink").addClass = "loading";

    $.get("/api/Briefing/GetNextCompanyBriefings.aspx", { companyId: companyId, pageNumber: pageNumber, obToExclude: obToExclude }, function(result) {
        var prevPageNo = pageNumber - 1;
        if (pageNumber == 2) {
            $("#moreBriefingsLink").html('');
        } else {
            $("#NextTenBriefingsLink" + prevPageNo).html('');
        }
        $("#companyOpenBriefings").append(result);
    });
    return false;
}
function getNextTenCompanyPageBriefings(companyId, pageNumber) {

    $.get("/api/Company/GetNextCompanyBriefings.aspx", { companyId: companyId, pageNumber: pageNumber }, function(result) {
        var prevPageNo = pageNumber - 1;
        if (pageNumber == 2) {
            $("#moreBriefingsLink").html('');
        } else {
            $("#NextTenBriefingsLink" + prevPageNo).html('');
        }
        $("#companyOpenBriefings").append(result);
    });
    return false;
}
function getNextTenBrowse(url) {

    $.get(url, function(result) {
        jQuery.url.setUrl(url);
        var pageNum = parseInt(jQuery.url.param("PageNo") || "0");

        if (!isNaN(pageNum)) {
            if (pageNum > 1)
            {
                $("#lnkBrowseNext").hide();
            } 
            $("#browseNextLink" + pageNum).hide();
        }
        $("#divBrowseBriefings").append(result);
    });
    return false;
}
function toggleSubscription(setting, id) {

    $.post("/api/Subscriptions/ToggleSubscriptionItem.aspx", { setting: setting, id: id }, function(result) {

        if (setting) {
            $("#subscriptionItem" + id).addClass('subscribed');
            $("#subscriptionItemButton" + id).html('<a onclick = "javascript:toggleSubscription(false,' + id + ')">unsubscribe</a>');
        } else {
            $("#subscriptionItem" + id).removeClass('subscribed');
            $("#subscriptionItemButton" + id).html('<input type="button" value="Subscribe" onclick = "javascript:toggleSubscription(true,' + id + ')"/>');
        }
        $("#subscriptionItem" + id + " .name").toggleClass("bold");
    });
}
function addCompanySubscription() {
    document.getElementById("addCompanyError").innerText = "";
    var company = document.getElementById("companyCode").value;
    var errorText = "The company code entered could not be found";
    $("#addCompanyError").hide();
    $.post("/api/Subscriptions/AddCompanySubscription.aspx", { companyCode: company },
        function(result) {

            if (!result.Id) {
                $("#addCompanyError").text(errorText).show();
                return;
            }

            document.getElementById("companyCode").value = "";
            var newHtml = '<div id="subscriptionItem' + result.Id + '" class="subscriptionItem subscribed"><div class="wrap"><span class="name bold">' + result.Name + '</span></div><div id="subscriptionItemButton' + result.Id + '" class="subscribeButton"><a onclick="javascript:deleteCompanySubscription(' + result.Id + ')">unsubscribe</a></div></div>';
            $("#companyDiv").append(newHtml);
        }
        , "json");
    
}
function deleteCompanySubscription(companyId) {
    $.post("/api/Subscriptions/DeleteCompanySubscription.aspx", { companyId: companyId }, function() {
        $("#subscriptionItem" + companyId).replaceWith('');
    });
}
function verifyEmail() {
    $.post("/api/Subscriptions/VerifyEmail.aspx", function(result) {
        $("#verifyPar").html('An email has been sent to ' + result + ' to verify that this is you. Please click on the link within the email to complete this verification.');
    });
}
function logoffNotMe() {
    $.get("/api/Subscriptions/LogoffNotMe.aspx");
}
function storeSubscriptionChoice(fullService) {
    if (fullService) { $("#limitedService").hide(); } else { $("#limitedService").show(); }
    $.post("/api/Subscriptions/SaveSubscriptionType.aspx", { fullService: fullService });
}
function subscriptionSignup() {
    var email = document.getElementById("signupEmailAddress").value;
}
function getSearchNextCompanies(pageIndex, keywords, pageSize) {
    $.get("/api/Search/getNextCompanies.aspx", { pageIndex: pageIndex, keywords: keywords, pageSize: pageSize }, function(result) {
        $("#divLinkMoreCompanies" + pageIndex).html('');
        $("#divLinkMoreCompanies" + pageIndex).removeClass();
        $("#companiesListSearch").append(result);
    });
}
function getSearchNextBriefings(pageIndex, keywords, pageSize) {
    $.get("/api/Search/getNextBriefings.aspx", { pageIndex: pageIndex, keywords: keywords, pageSize: pageSize }, function(result) {
        $("#divLinkMoreBriefings" + pageIndex).html('');
        $("#divLinkMoreBriefings" + pageIndex).removeClass();
        $("#briefingsListSearch").append(result);
    });
}
function unsubscribeUser() {
    $.post("/api/Subscriptions/PermanentlyUnsubscribe.aspx");
}
function displayConfirmation(showConfirmation) {
    if (showConfirmation) {
        $("#unsubscribeConfirmationDiv").removeClass();
        $("#unsubscribeDiv > p").hide();
    } else {
        $("#unsubscribeConfirmationDiv").addClass("hide");
        $("#unsubscribeDiv > p").show();
    }
}
function echeck(str) {
    var at = "@";
    var dot = ".";
    var lat = str.indexOf(at);
    var lstr = str.length;
    var ldot = str.indexOf(dot);
    if (str.indexOf(at) == -1) {
        return false;
    }
    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        return false;
    }
    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        return false;
    }
    if (str.indexOf(at, (lat + 1)) != -1) {
        return false;
    }
    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        return false;
    }
    if (str.indexOf(dot, (lat + 2)) == -1) {
        return false;
    }
    if (str.indexOf(" ") != -1) {
        return false;
    }
    return true;
}
function ValidateForm() {
    var emailID = document.getElementById("emailAddress");
    if ((emailID.value == null) || (emailID.value == "")) {
        $("#emailErrorMessage").text("Please enter your email address");
        emailID.focus();
        return false;
    }
    if (echeck(emailID.value) == false) {
        $("#emailErrorMessage").text("Please enter a valid email address");
        emailID.focus();
        return false;
    }
    return true;
}
function ToggleVisibility(theId) {
    if ($(theId).hasClass("hide")) {
        $(theId).removeClass();
    } else {
        $(theId).addClass("hide");
    }
}

(function($) {

    $('.promoBox').append("<div class='topLeft'></div><div class='topRight'></div><div class='bottomLeft'></div><div class='bottomRight'></div>");
    
    jQuery.fn.inputHints = function() {
        // hides the input display text stored in the title on focus
        // and sets it on blur if the user hasn't changed it.

        // show the display text
        $(this).each(function(i) {

            var item = $(this);

            var title = item.attr('title');
            title = title + '  ';
            item.attr('title', title);

            addHint();

            // hook up the blur & focus
            item.parents('form').submit(removeHint);
            item.focus(removeHint);
            item.blur(addHint);

            function removeHint() {
                if (item.val() == title)
                    item.val('').removeClass("hint"); ;
            }

            function addHint() {
                if (item.val() == '')
                    item.val(title).addClass("hint"); ;
            }
        });
    };
})(jQuery);

$(document).ready(function() {
    $('input[type="text"]').inputHints();
    $('TEXTAREA').inputHints();

    // ignore the click if it's a hash link
    $('a[href=#]').click(function(e) {
        e.preventDefault();
    });
    
});
