function preloadHelpImages() {

    var launchHelpOver = new Image;
    launchHelpOver.src = "images/help/launchHelp-over.gif";

}

function fadeFeedbackIn(id) {
    var timer = 0;
    
    // Set the opacity to zero
    document.getElementById(id).style.opacity = 0;
    document.getElementById(id).style.MozOpacity = 0;
    document.getElementById(id).style.KhtmlOpacity = 0;
    document.getElementById(id).style.filter = "alpha(opacity=0)";
    
    // Make sure the object is visible
    document.getElementById(id).style.visibility = "visible";
    
    // Start the fade timers
    var opacity;
    for (opacity = 0; opacity <= 100; opacity += 10)
        setTimeout("fade(" + opacity + ",'" + id + "')", (timer++ * 10));
    
    // Set a timer to focus when the bubble is done fading
    setTimeout("document.getElementById('feedbacktext').focus()", timer * 10);
}

function fadeFeedbackOut(id) {
    // Let it display for a few millisecs
    var timer = 50;
    
    // Set the opacity to opaque
    document.getElementById(id).style.opacity = 1.0;
    document.getElementById(id).style.MozOpacity = 1.0;
    document.getElementById(id).style.KhtmlOpacity = 1.0;
    document.getElementById(id).style.filter = "alpha(opacity=100)";
    
    document.getElementById('feedbackthanks').style.display = "block";
    document.getElementById('feedbackinput').style.display = "none";
    
    // Start the fade timers
    var opacity;
    for (opacity = 100; opacity > 0; opacity -= 5)
        setTimeout("fade(" + opacity + ",'" + id + "')", (timer++ * 10));
        
    // Make sure it's totally invisible
    setTimeout("endFadeFeedbackOut('" + id + "')", (timer * 10));
}

function fadeFeedbackOutCancel(id) {
    // Let it display for a few millisecs
    var timer = 0;
    
    // Set the opacity to opaque
    document.getElementById(id).style.opacity = 1.0;
    document.getElementById(id).style.MozOpacity = 1.0;
    document.getElementById(id).style.KhtmlOpacity = 1.0;
    document.getElementById(id).style.filter = "alpha(opacity=100)";
    
    // Start the fade timers
    var opacity;
    for (opacity = 100; opacity > 0; opacity -= 5)
        setTimeout("fade(" + opacity + ",'" + id + "')", (timer++ * 10));
        
    // Make sure it's totally invisible
    setTimeout("endFadeFeedbackOut('" + id + "')", (timer * 10));
}

function endFadeFeedbackOut(id) {
    document.getElementById(id).style.visibility = "hidden";
    document.getElementById('feedbacktext').value = "";
    document.getElementById('feedbackthanks').style.display = "none";
    document.getElementById('feedbackinput').style.display = "block";
}

function fade(opacity, id) { 
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")";
}

function setArticleRating(rating) {
	for (var starIndex = 1; starIndex <= 5; starIndex++) {
		document.getElementById('kbrate' + starIndex).innerHTML = ((starIndex <= rating) ? "&#9733;" : "&#9734;");
    }
}

function saveRating(article, rating) {
	setArticleRating(rating);
	
    var request = false;
	if (window.XMLHttpRequest) {
		try {
			request = new XMLHttpRequest();
		} catch(exception) {
			request = false;
		}
	}
	else if (window.ActiveXObject) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(exception) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(exception) {
				request = false;
			}
		}
	}
	
	if (request) {
		request.open("GET", "/kbase/includes/kbase-rate.php?id=" + article + "&rating=" + rating, true);
		request.send("");
	}
    
    // Show the feedback bubble relative to the rating section
    var rightmostStar = 320;
    var starSize = 16;
    document.getElementById('feedbackbubble').style.top = (document.getElementById("kbrating").offsetTop + starSize) + "px";
    document.getElementById('feedbackbubble').style.right = (rightmostStar - (rating * starSize)) + "px";
    fadeFeedbackIn('feedbackbubble');
}

function sendFeedback(article) {
    var text = escape(document.getElementById("feedbacktext").value);
    if (text == "")
        fadeFeedbackOutCancel("feedbackbubble");
    else
        fadeFeedbackOut("feedbackbubble");
    
    var request = false;
	if (window.XMLHttpRequest) {
		try {
			request = new XMLHttpRequest();
		} catch(exception) {
			request = false;
		}
	}
	else if (window.ActiveXObject) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(exception) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(exception) {
				request = false;
			}
		}
	}
	
	if (request) {
		request.open("GET", "/kbase/includes/kbase-rate.php?id=" + article + "&text=" + text, true);
		request.send("");
	}
}

function cancelFeedback() {
    fadeFeedbackOutCancel("feedbackbubble");
}

