    function nsLog(message) {
        doIframe("nslog://" + message);
    }

    function setValueToNative(key, value) {
        doIframe("sharedcache://?action=setvalue&key=" + key + "&value=" + value);
    }
    
    function getValueFromNative(key, callback) {
        doIframe("sharedcache://?action=getvalue&key=" + key + "&callback=" + callback);
    }
    
    function deleteValueFromNative(key, callback) {
        doIframe("sharedcache://?action=deletevalue&key=" + key + "&callback=" + callback);
    }
    
    function loginToFacebook(callback) {
        doIframe("fb://?action=login&callback=" + callback);
    }

    function logoutOfFacebook(callback) {
        doIframe("fb://?action=logout&callback=" + callback);
    }
    
    function doFacebookGet(path, vars, callback) {
        alert("doFacebookGet?");
        doIframe("fb://?action=get&path=" + path + "&vars=" + vars + "&callback=" + callback);
    }
    
    function doIframe(src) {
        iFrame = document.createElement("IFRAME");
        iFrame.setAttribute("src", src);
        document.body.appendChild(iFrame); 
        iFrame.parentNode.removeChild(iFrame);
        iFrame = null;
    }
    
    function makeFbShareLink(params) {
        
        var class_string = '';
        if (params['class'] != undefined) {
            class_string = 'class="' + params['class'] + '" ';
        }
        var id_string = '';
        if (params['id'] != undefined) {
            id_string = 'id="' + params['id'] + '" ';
        }
        var name_string = '';
        if (params['name'] != undefined) {
            name_string = 'name="' + params['name'] + '" ';
        }
        var title_string = '';
        if (params['title'] != undefined) {
            title_string = '' + params['title'] + '';
        }
        var description_string = '';
        if (params['description'] != undefined) {
            description_string = '' + params['description'] + '';
        }
        var link_string = '';
        if (params['link'] != undefined) {
            link_string = '' + params['link'] + '';
        }
        var link_text_string = '';
        if (params['link_text'] != undefined) {
            link_text_string = '' + params['link_text'] + '';
        }
        
        var return_value = '<a ' + class_string + id_string + name_string + 
                           'href="fb://?action=share&message=' + title_string + 
                           '&description=' + description_string + 
                           '&link=' + link_string +
                           '">' + link_text_string + '</a>';
                           return return_value;
    }//end makeFbShareLink
    
    function doGeoLookup(longitude_element, latitude_element, feedback_element) {
        
        showOverlay();

        navigator.geolocation.getCurrentPosition(
            function(position) {
                
                document.getElementById(latitude_element).value = position.coords.latitude;
                document.getElementById(longitude_element).value = position.coords.longitude;

                //document.getElementById(feedback_element).innerHTML = 'Location Confirmed';

                //hide the overlay
                hideOverlay();
            },
            function errorCallback(error) {
                alert("failed to obtain coordinates");
                hideOverlay();
            },
            {
                maximumAge:Infinity,
                timeout:5000
            }
        );
    }

    function showOverlay() {

        // add the overlay with loading image to the page
        var over = '<div id="mi_overlay">' +
            '<img id="loading" src="http://module.mobileigniter.com/images/modules/problem_submit/loading.gif">' +
            '</div>';
        $(over).appendTo('body');

    }
        
    function hideOverlay() {
        $('#mi_overlay').remove();
    }
    
    


