﻿function GetRnd() {return Math.round(Math.random() * 10000000).toString();}

$(function() {
    Initialize();
});

$(function() {
    // You probably want to switch this on, but read <http://wiki.novemberborn.net/sifr3/DetectingCSSLoad> first.
    // sIFR.useStyleCheck = true;
//    
//    try
//    {
//        //this seems broken
//        sIFR.activate(dinMed);

//        sIFR.replace(dinMed, {
//	        selector: '.title h2',
//	        css: [
//	        '.sIFR-root { font-size:24px; color:#122152; text-align: center; background-color: #ffffff;}'
//	        ],
//	        tuneHeight: '-6'
//        });              
//    }
//    catch(e){}
});

function Initialize() {

    /*
    This won't work on the home page since FB isn't included.
    jQuery(document).ready(function($) {
    $('a[rel*=facebox]').facebox()
    })
    */ 
    
    $.getJSON('/MyBucket.aspx/GetBucket', function(data) {
        updateSavedResultCount(data.length);
        $.each(data, function() { $('#' + this).removeClass('unselected').addClass('selected'); })
    });
    $.getJSON('/MyBucket.aspx/GetContextualAddressFromBucket', function(data) {
        $.each(data, function() {
            if ($('#FirmAddressCheckbox' + this).length > 0) {
                $('#FirmAddressCheckbox' + this)[0].checked = true;
            }
            if ($('.MultipleFirmAddressCheckbox' + this).length > 0) {
                $('.MultipleFirmAddressCheckbox' + this)[0].checked = true;
            }
        })
    });
    //This is to set up the timer for the survey if the user is not on the home page.
    if (typeof (SurveyTimeout) != 'undefined') {
        var now = new Date();
        //we have to pass this variable to the session start time because server time and local time may differ
        $.getJSON('/MyBucket.aspx/GetSessionStartTime', { Now: now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds() }, function(data) {
            TimeArray = data.split(':');
            var SecondsSinceStart
            //calculate the number of seconds it has been since session start time.
            if ((TimeArray[0] - now.getHours()) == '0') {
                SecondsSinceStart = (now.getMinutes() - TimeArray[1]) * 60 + now.getSeconds() - TimeArray[2];
            } else {
                SecondsSinceStart = (60 + now.getMinutes() - TimeArray[1]) * 60 + now.getSeconds() - TimeArray[2];
            }
            var Timer = SurveyTimeout - SecondsSinceStart;
            if (Timer < 10){
                Timer = 10;
            }

            setTimeout('DisplaySurvey()', Timer * 1000)
        })
    }
}

function ClickFirmDetailLink(FirmAddressID){
    GetContactInfo(true, true);
    $.post('/MyBucket.aspx/SaveToBucket', { FirmAddressId: FirmAddressID, IsConfirmed: false }, function(data) {
        updateSavedResultCount(data.count);
    }, "json");
    if ($('#FirmAddressCheckbox' + FirmAddressID).length > 0) {
        $('#FirmAddressCheckbox' + FirmAddressID)[0].checked = true;
    }
}

function AddMemberEmailActivity(memberID){
    $.getJSON('/MyBucket.aspx/AddMemberEmailActivity', { MemberID: memberID }, function(data) {
    })
}

function AddFirmEmailActivity(firmID) {
    $.getJSON('/MyBucket.aspx/AddFirmEmailActivity', { FirmID: firmID }, function(data) {
    })
}

function DisplaySurvey() {
    $.getJSON('/MyBucket.aspx/GetHasDisplayedSurvey', function(data) {
        //if has displayed survey is not true then display the survey.
        if (!data) {
            $.getJSON('/MyBucket.aspx/ToggleSurvey', { IsShow: true }, function(data) {
            });
            $.prompt('Would you like to take a moment to complete a short survey to help NAPFA better serve consumers?', {
                buttons: { Yes: true, No: false },
                prefix: 'cleanblue',
                submit: function(v, m, f) { if (!v) return true; else { window.open(SurveyURL, "SurveyWin", "status=1,toolbar=0,scrollbars=1,menubar=0,width=675,height=700,resizable=1", true ); return true; } }
            });
        }
    });
}

function HaveFirmsContactMeClick() {
    if ($('#savedResultCount').html() == '0') {
        $.prompt("You currently have no firms selected. Please select at least one by using the checkboxes located on the left hand side of the results list.", {prefix: 'cleanblue'});
    }
    else {
        GetContactInfo(true, true);
    }
}
function toggleSelectGroup(MileRange) {
    //var cnt = $(".RangeCheckbox" + MileRange.toString()).
    var element = document.getElementById("AllRangeCheckbox" + MileRange);
    if (element.checked && NotifyOfBucketActivity) {
        var Message = "Are you sure you would like to have all of the firms within this group contact you?<br /><input id='DontAsk' type='checkbox' value='DontAsk' name='DontAsk' /><label for='DontAsk' >Do not ask again.</label>";
        $.prompt(Message, {
            buttons: { Yes: true, Cancel: false },
            prefix: 'cleanblue',
            submit: function(v, m, f) {
                if (!v) {
                    if (element.checked) {
                        element.checked = false;
                    }
                    else {
                        element.checked = true;
                    }
                    return true;
                }
                else {
                    if (f.DontAsk == 'DontAsk') {
                        $.getJSON('/MyBucket.aspx/ToggleNotifyOfBucketActivity', { IsShow: false }, function(data) { });
                        NotifyOfBucketActivity = false;
                    }
                    confirmedToggleSelectGroup(MileRange);
                    return true;
                }
            }
        });
    }
    else {
        confirmedToggleSelectGroup(MileRange);
    }
}

function confirmedToggleSelectGroup(MileRange) {
    var element = document.getElementById("AllRangeCheckbox" + MileRange);
    var FirmAddressID = "";
    var connector = "";
    var FirmAddressIdList = "";
    var FirmAddressIDs = "";
    var CheckBoxArray = $('.RangeCheckbox' + MileRange);
    for (var x = CheckBoxArray.length - 1; x >= 0; --x) {
        FirmAddressID = $('#' + CheckBoxArray[x].id).attr('addrid');
        FirmAddressIDs = FirmAddressIDs + connector + FirmAddressID;
        connector = ",";
        
        if (element.checked) {
            CheckBoxArray[x].checked = true;
        }
        else {
            CheckBoxArray[x].checked = false;
        }
    }
    if (element.checked) {
        GetContactInfo(false);
        $.post('/MyBucket.aspx/SaveMultipleToBucket', { values: FirmAddressIDs, IsConfirmed: false }, function(data) {
            updateSavedResultCount(data.count);
        }, "json");
    }
    else {
        $.post('/MyBucket.aspx/RemoveMultipleFromBucket', { values: FirmAddressIDs }, function(data) {
            updateSavedResultCount(data.count);
        }, "json");
    }
}

function ToggleMultipleFirmAddress(FirmLocationID) {
    //var cnt = $(".RangeCheckbox" + MileRange.toString()).
    var element = document.getElementById("MultipleFirmAddressCheckbox" + FirmLocationID);
    if (element.checked && NotifyOfBucketActivity) {
        var Message = "Are you sure you would like to provide your contact information to each location of this firm?<br /><input id='DontAsk' type='checkbox' value='DontAsk' name='DontAsk' /><label for='DontAsk' >Do not ask again.</label>";
        $.prompt(Message, {
            buttons: { Yes: true, Cancel: false },
            prefix: 'cleanblue',
            submit: function(v, m, f) {
                if (!v) {
                    if (element.checked) {
                        element.checked = false;
                    }
                    else {
                        element.checked = true;
                    }
                    return true;
                }
                else {
                    if (f.DontAsk == 'DontAsk') {
                        $.getJSON('/MyBucket.aspx/ToggleNotifyOfBucketActivity', { IsShow: false }, function(data) { });
                        NotifyOfBucketActivity = false;
                    }
                    confirmedToggleMultipleFirmAddress(FirmLocationID);
                    return true;
                }
            }
        });
    }
    else {
        confirmedToggleMultipleFirmAddress(FirmLocationID);
    }
}

function confirmedToggleMultipleFirmAddress(FirmLocationID) {
    var element = document.getElementById("MultipleFirmAddressCheckbox" + FirmLocationID);
    var FirmAddressID = "";
    var connector = "";
    var FirmAddressIdList = "";
    var FirmAddressIDs = "";
    var CheckBoxArray = $('.FirmAddressCheckbox' + FirmLocationID);
    for (var x = CheckBoxArray.length - 1; x >= 0; --x) {
        FirmAddressID = $('#' + CheckBoxArray[x].id).attr('addrid');
        FirmAddressIDs = FirmAddressIDs + connector + FirmAddressID;
        connector = ",";

        if (element.checked) {
            CheckBoxArray[x].checked = true;
        }
        else {
            CheckBoxArray[x].checked = false;
        }
    }
    if (element.checked) {
        GetContactInfo(false);
        $.post('/MyBucket.aspx/SaveMultipleToBucket', { values: FirmAddressIDs, IsConfirmed: false }, function(data) {
            updateSavedResultCount(data.count);
        }, "json");
    }
    else {
        $.post('/MyBucket.aspx/RemoveMultipleFromBucket', { values: FirmAddressIDs }, function(data) {
            updateSavedResultCount(data.count);
        }, "json");
    }
}


function ToggleFirmAddress(FirmAddressID) {
    /*var element = document.getElementById("FirmAddressCheckbox" + FirmAddressID);
    if (element.checked && NotifyOfBucketActivity) {
    var Message = "Would you like to have all of the members of this firm contact you?<br /><input id='DontAsk' type='checkbox' value='DontAsk' name='DontAsk' /><label for='DontAsk' >Do not ask again.</label>";
    $.prompt(Message, {
    buttons: { Yes: true, Cancel: false },
    prefix: 'cleanblue',
    submit: function(v, m, f) {
    if (!v) {
    if (element.checked) {
    element.checked = false;
    }
    else {
    element.checked = true;
    }
    return true;
    }
    else {
    if (f.DontAsk == 'DontAsk') {
    $.getJSON('/MyBucket.aspx/ToggleNotifyOfBucketActivity', { IsShow: false }, function(data) { });
    NotifyOfBucketActivity = false;
    }
    confirmedToggleFirmAddress(FirmAddressID);
    return true;
    }
    }
    });
    }
    else {
    */
        confirmedToggleFirmAddress(FirmAddressID);
    //}
}

function confirmedToggleFirmAddress(FirmAddressID) {
    var element = document.getElementById("FirmAddressCheckbox" + FirmAddressID);

    if (element.checked) {
        GetContactInfo(false);
        $.post('/MyBucket.aspx/SaveToBucket', { FirmAddressId: FirmAddressID, IsConfirmed: false }, function(data) {
            updateSavedResultCount(data.count);
        }, "json");
        if ($('#FirmDetailAddressCheckbox' + FirmAddressID).length > 0) {
            $('#FirmDetailAddressCheckbox' + FirmAddressID)[0].checked = true;
        }
        if ($('#MultipleFirmAddressCheckbox' + FirmAddressID).length > 0) {
            $('#MultipleFirmAddressCheckbox' + FirmAddressID)[0].checked = true;
        }
    }
    else {
        $.post('/MyBucket.aspx/RemoveFromBucket', { FirmAddressId: FirmAddressID }, function(data) {
            updateSavedResultCount(data.count);
        }, "json");
        if ($('#FirmDetailAddressCheckbox' + FirmAddressID).length > 0) {
            $('#FirmDetailAddressCheckbox' + FirmAddressID)[0].checked = false;
        }
        if ($('#MultipleFirmAddressCheckbox' + FirmAddressID).length > 0) {
            var CheckBoxArray = $('.FirmAddressCheckbox' + FirmAddressID);
            var CheckParent = false;
            for (var x = CheckBoxArray.length - 1; x >= 0; --x) {
                if (CheckBoxArray[x].checked == true) {
                    CheckParent = true;
                }
            }
            $('#MultipleFirmAddressCheckbox' + FirmAddressID)[0].checked = CheckParent;
        }
    }
}



function addToBucketHandler(c_id, confirmed) {

    $.getJSON('/MyBucket.aspx/SaveToBucket', { FirmAddressId: c_id, IsConfirmed: confirmed }, function(data) {
        updateSavedResultCount(data.count);
    });
}

function ToggleSearchTip(b)
{
	$.getJSON('/MyBucket.aspx/ToggleSearchTip', { IsShow: b }, function(data) {
    });
}

function removeFromBucketHandler(c_id) {
    $.getJSON('/MyBucket.aspx/RemoveFromBucket', { FirmAddressId: c_id }, function(data) {
        updateSavedResultCount(data.count);
    });
}

function clearBucketHandler() {
    $.post('/MyBucket.aspx/ClearBucket', {}, function(data) {
        //do nothing
    });

    updateSavedResultCount(0);
    var ContactMeCheckboxArray = $('.ContactMeCheckbox');
    for (var i = ContactMeCheckboxArray.length - 1; i >= 0; --i) {
        ContactMeCheckboxArray[i].checked = false;
    }
    $(".selected").removeClass('selected').addClass('unselected');
    $("#firm_advisors_mybucket").slideUp("normal");
    
}

function addAllBucketHandler() {
    var allUnselected="";
     $(".unselected").each(function(data) {
     allUnselected += this.name + ",";
     $('#' + this.id).removeClass('unselected').addClass('selected');
    });

    $.post('/MyBucket.aspx/SaveMultipleToBucket', { values: allUnselected, IsConfirmed: false }, function(data) {
        updateSavedResultCount(data.count);
    }, "json");

    
    flash('#savedResultSpan');
}

function updateSavedResultCount(count) {
    //set clear bucket list to display based on whether or not anything exists in the bucket

    if (count == 0) {
        $('#clearResultSpan').css({ display: "none" });
        $('#advisor_list_header').hide();
        $('#advisor_list_header_noshow').show();
        $('.MySavedSearchResultsLink').css({ background: "transparent url(/Images/star.png) no-repeat scroll 0px 0px"});
    }
    else {
        $('#clearResultSpan').css({ display: "inline" });
        $('#advisor_list_header').show();
        $('#advisor_list_header_noshow').hide();
        $('.MySavedSearchResultsLink').css({ background: "transparent url(/Images/star.png) no-repeat scroll 0px -100px"});
    }

    ShowOrHideNavBucketListActionLinks(count);
    
    $('#savedResultCount').text(count);
}

function UnloadGoogleMap()
{
	try
	{
		GUnload();
	}
	catch(e){}		
}

//put this in but only if IE.  This won't work in firefox and makes the saved results not even show up at all.  - recommend we branch on browser, function() { this.style.removeAttribute('filter'); }
//also animate functions don't work at all in safari 3 so start with an opacity of .5 so at least they can see the saved results
function flash(selector) {
    //uncomment if you like the flash
    $(selector).css('opacity', .5).animate({ backgroundColor: '#F2BF24', 'opacity': 1.0 }, 300).animate({ backgroundColor: '#EFEFF2' }, 250);
}



//obfuscate function
var alpha = new Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_', '-', '@', '.', '?', '&', '=');
var stringCheck = "";
for (i = 0; i < alpha.length; i++) {
    stringCheck += alpha[i];
}

function Deobfuscate(obfusc, shift) {
    var plainText = '';
    cipherText = obfusc;

    for (i = 0; i < cipherText.length; i++) {
        var currentText = stringCheck.indexOf(cipherText.charAt(i));

        if (currentText != -1) {

            if ((currentText - shift) >= 0) {
                plainText += alpha[currentText - shift];
            }
            else {
                plainText += alpha[(alpha.length + currentText) - shift];
            }
        }
    }
    parent.location = 'm' + 'ai' + 'l' + 't' + 'o:' + plainText;
}

function printpage() {
    window.print();
}


function removeFirm(id)
{
    //used on the bucket list to remove 1 at a time.
    var obj = $("#FirmInfo_" + id.toString());
    obj.slideUp("normal",
        function() {
        obj.remove();
        });    
    removeFromBucketHandler(id);
}

function ShowOrHideNavBucketListActionLinks(count)
{
    //used on the bucket list to hide or show action links based on count of items in bucket       
    var nl = $(".BucketActionLinks");
    if (count==0)
    {         
        //hide it
         nl.fadeOut("slow");
    }
    else
    {
        //never needed at this point
    }
}

function ToggleDetails(firmAddressID) {
    $(".firminfo" + firmAddressID.toString()).slideToggle("slow");
    if ($(".firminfo" + firmAddressID.toString()).hasClass("gmnoprint")) {
        $(".firminfo" + firmAddressID.toString()).addClass("gmnoprint");
    }
    else {
        $(".firminfo" + firmAddressID.toString()).removeClass("gmnoprint");
    }
}

function ShowAllFirmsOnMap() {
    DisplayMap("All Firms Within Results");
    ShowMap("all");
}

function MapOne(idString, description) {
    MapMany(idString, description);
}

function MapMany(idString, description) {
    DisplayMap(description);
    ShowMap(idString);
}

function DisplayMap(currentlyViewingVerbiage) {
    $('#contentMap').show();
    $("#CurrentlyViewingMapVerbiage").html(currentlyViewingVerbiage);
}

function HideMap() {
    $('#contentMap').hide();
}

function HideAdvisors(id) {
    $('#advisorList' + id).slideUp();
    $('#hideAdvisorsLink' + id).hide();
    $('#showAdvisorsLink' + id).show();
}

function ShowAdvisors(id) {
    $('#advisorList' + id).slideDown();
    $('#hideAdvisorsLink' + id).show();
    $('#showAdvisorsLink' + id).hide();
}

function SwapColor(id, color) {
    $("#" + id).css("background-color", color);
}
      