var NAYRNET = {
    apibase: "",
    path: "/",
    init: function(path){
      this.apibase = path;
    },
    execute: function(cmd, args){
        Terminal.setWorking(true);
        $.ajax({
            url: this.apibase+cmd+"/?args="+args.split(' ').join('.'),
            dataType: 'json',
            success: function(data) {
                //Terminal.print(data.action);
                Terminal.setWorking(false);
                if(data.error){
                    NAYRNET.error(data.message);
                }
                switch(data.action){
                    case 'cat':
                        NAYRNET.cat(data);
                        break;
                    case 'photo':
                        NAYRNET.photo(data);
                        break;
                    case 'filesys':
                        NAYRNET.filesys(data);
                        break;
                    case 'pressthehappybutton':
                        Terminal.typeprint(data.message);
                        Terminal.thehappybutton();
                        break;
                }

            },
            error: function(e) {
                NAYRNET.error("An internal error occured.");
            }
        });
    },
    photo: function(data) {
        Terminal.print( $('<img>').attr({
            src:data.img,
            alt:data.alt,
            title:data.title
        }));
    },
    cat: function(data) {
        if(data.html){
            $.each(data.html, function(num, line) {
                Terminal.print( $("<p>").html( line ) );
            });
        } else {
            if($.isArray(data.text)){
                $.each(data.text, function(num, line) {
                    Terminal.print(line);
                });
            } else {
                Terminal.print(data.text);
            }
            
        }
    },
    filesys: function(data) {
        var name_list = $('<ul>');
        $.each(files, function(name, obj) {
            if (obj.type == 'dir') {
                name += '/';
            }
            name_list.append($('<li>').text(name));
        });
        Terminal.print(name_list);
    },
    error: function(msg) {
        Terminal.print($('<p>').addClass('error').text(msg));
    }
}

TerminalShell.commands['wget'] = TerminalShell.commands['curl'] = function(terminal, dest) {
    if (dest) {
        terminal.setWorking(true);
        var browser = $('<div>')
        .addClass('browser')
        .append($('<iframe>')
            .attr('src', dest).width("100%").height(600)
            .one('load', function() {
                terminal.setWorking(false);
            }));
        terminal.print(browser);
        return browser;
    } else {
        terminal.print("Please specify a URL.");
    }
};

$(document).ready(function() {
    
    });
