var spacehab = {};

spacehab.ajaxDialog = function(target, title, loadingHtml, width, height, data, callback) {
    if ( !target ) return;
    
    var title = title || '&nbsp;';
    var loadingHtml = loadingHtml || 'Loading...';
    var width = width || 700;
    var height = height || 500;
    var data = data || {};
    var callback = callback || null;
    
    $dlg = $('#ajax-dialog');
    $dlg.dialog('close');
    $dlg.html(loadingHtml);
    $dlg.load(target, data, callback);
    $dlg.dialog({
        modal: true,
        autoOpen: true,
        title: title,
        height: height,
        width: width,
        draggable: true,
        resizable: false,
        overlay: {
            opacity: 0.5,
            background: '#000000'
        },
        bgiframe: true
    });
    $dlg.dialog('open');
};

spacehab.parseParams = function(url) {
    var params = url;
    if ( params.match(/\?(.+)$/) ) {
        // in case it is a full query string with ?, only take everything after the ?
        params = RegExp.$1;
    }
    // split the params
    var pArray = params.split("&");
    // hash to store result
    var pHash = {};
    // parse each param in the array and put it in the hash
    for ( var i = 0; i < pArray.length; ++i ) {
        var temp = pArray[i].split("=");
        pHash[temp[0]] = unescape(temp[1]);
    }
    return pHash;
}

$(document).ready(function() {
    $('body').append('<div id="ajax-dialog""></div>');
    $('a[rel^="dialog:"]').click(function() {
        var params = spacehab.parseParams(this.rel.substr(7));
        params.target = this.href + (params.target ? ' ' + params.target : '');
        spacehab.ajaxDialog(params.target, params.title, params.loadingHtml, parseInt(params.width), parseInt(params.height));
        return false;
    });
});

