var helpBound = false;
function showHelp(){
	positionHelpers();
	if(!helpBound){
	    bindHelperLinks();
	    helpBound = true;
    }
    $(window).bind('resize', positionHelpers);
}

function hideHelp(){
    for(var i = 0; i < helpPoints.length; i++){
        var hp = helpPoints[i];
        var h = document.getElementById('helpPoint' + hp.id);
        h.style.display = 'none';
    }
    $(window).unbind('resize');
}
function bindHelperLinks(){
    for(var i = 0; i < helpPoints.length; i++){
        var hp = helpPoints[i];
        var h = document.getElementById('helpPoint' + hp.id);
        h.panelId = hp.id;
        $(h).bind('click', function(){
            showHelpLink(this.href);
            return false;
        });
    }
}
function positionHelpers(){
    
    for(var i = 0; i < helpPoints.length; i++){
        var hp = helpPoints[i];
        var h = document.getElementById('helpPoint' + hp.id);
        h.style.display = 'block';
        if(hp.absolute){
			var p = h.previousSibling;
			while(p && p.nodeType != 1){p = p.previousSibling;}
			if(p){
				if(p.tagName == 'A'){p = p.firstChild;}
				h.style.position = 'absolute';
				var xy = $(p).offset();
				h.style.left = (xy.left + hp.left) + 'px';
				h.style.top = (xy.top + hp.top) + 'px';
			} else {
			    h.style.position = 'absolute';
				h.style.left = hp.left + 'px';
				h.style.top = hp.top + 'px';
			}    
        }
    }
}
var helpShown = false;
$(document).ready(function(){
    if(typeof helpPoints == 'undefined'){
        helpPoints = [];
    }
    
    if(helpPoints.length > 0){
        var h = document.getElementById('helpToggle');
        h.innerHTML = 'Show Help';
        h.parentNode.style.display = 'block';
        $(h).bind('click', function(){
            if(helpShown){
                h.innerHTML = 'Show Help';
                helpShown = false;
                hideHelp();
            } else {
                h.innerHTML = 'Hide Help';
                helpShown = true;
                showHelp();
            }
        });
    }
});
function showHelpLink(location){
    var helpDialog = $('<div id="show_help_dialog" style="display: none"><iframe style="width:100%; height:100%; overflow:hidden;" src="' + location + '"></iframe></div>');
    $(body).append(helpDialog);
    helpDialog.dialog({
      modal: true,
      bgiframe: true,
      width: 800,
      height: 600,
      title: 'Blastoff Help'
  	});
}

var defaultInputs = [];
function defaultText(input, defaultValue){
    defaultInputs.push({input: input, defaultValue: defaultValue});
}

$(document).ready(function(){
    for(var i = 0; i < defaultInputs.length; i++){
        var d = defaultInputs[i];
        var el = document.getElementById(d.input);
        $(el).bind('focus', function(val){
            return function(e){
                if(this.value == val){
                    this.value = '';
                }
            }
        }(d.defaultValue), el);
        
        $(el).bind('blur', function(val){
            return function(e){
                if(this.value == ''){
                    this.value = val;
                }
            }
        }(d.defaultValue), el);
    }
});