﻿


// Reveal an answer
function Fn_ShowAnswer(elementToShow, elementToHide) {

    // Fade in our answer
    var el = $(elementToShow);
    el.setStyle('display', '');
    el.set('opacity', '0');
    el.morph({ 'opacity': 1 });

    // Hide the show answer button
    var el2 = $(elementToHide);
    el2.setStyle('display', 'none');
}

function Fn_EnsureDefined(typeo, message) {
    if (typeo == "undefined") {
        Fn_Debug(message);
    }
}

function Fn_Debug(message) {
    alert(message);
}

// Replace nulls with empty strings
function Fn_XNull(val) {
    if (val == null) { return ""; }
    return val;
}

// See if a string is not empty
function Fn_IsNotEmptyString(s) {
    return s != null && s != "";
}

// Convert an object to json (cleanly)
function Fn_ToJson(dataObj) {
    return Fn_JsonClean(JSON.stringify(dataObj));    
}

// Clean up JSON generated by JSON.stringify
function Fn_JsonClean(json) {
    // Clean up json
    json = json.replace(/\\"/g, "'");
    json = json.replace(/"\[/g, "[");
    json = json.replace(/\]"/g, "]");
    return json;
}

// Some characters don't get encoded properly
function Fn_CleanPreJson(s) {
    s = s.replace(/\[/g, "(");
    s = s.replace(/\]/g, ")");
    s = s.replace(/~/g,  "~td");
    s = s.replace(/'/g,  "~q1");
    s = s.replace(/"/g,  "~q2");
    s = s.replace(/\t/g, " ");
    s = s.replace(/\*/g, "");
    return s;
}

window.addEvent('domready', function() {

    // Share button functionality
    var linkShare = $('linkHowToShare');
    var divShareInstructions = $('divShareInstructions');
    if (linkShare) {
        divShareInstructions.setStyle('display', 'none');
        linkShare.addEvent('click', function(event) {
            divShareInstructions.setStyle('display', '');
            linkShare.setStyle('display', 'none');
        });
    }

});