// Name: validation.js
// Created by: John Baab
// E-mail: jbaab@frycomm.com
// Purpose: allows w3 validator access to all non "web accessable"
//		pages via javascript and form submission
// Last modified: 5/23/05
// References: Idea came from Fx web developer extension
// Notes: Tested in Fx v1.0.4, IE v6.0.2800.1106, and Safari v1.3.
//		Tested on Intranet pages, still needs to be tested on password pages.
// Use:	Include in html header:
//			<SCRIPT type="text/JavaScript" SRC="#LOCATION OF SCRIPT HERE#"></SCRIPT>
//		Include somewhere in html body:
//			<p>
// 				<a href="javascript:validate();"><img border="0"
//      		src="http://www.w3.org/Icons/valid-html401"
//     		 	alt="Valid HTML 4.01!" height="31" width="88"></a>
//			</p>
//		Replace valid source image with proper image if source is something other than HTML 4.01
//		Test page with w3 validator after every change to ensure that source code is still valid.

// Generates a page in a new window
function generatePage(url)
{
    var generatedPage = null;
    generatedPage = window.open(url);
    return generatedPage;
}
         
// Validates Local HTML
function validate(){
    var request;
	if(document.all) {
	   // Internet Explorer
	   request = new ActiveXObject("Microsoft.XMLHTTP")
	}
	else {
	   // Mozilla
	   request = new XMLHttpRequest();
	}

    var formElement         = null;
    var generatedPage       = null;
    var inputElement        = null;

    generatedPage = generatePage("");

    // This must be done to make generated content render
    request.open("get", location.href, false);
    request.send("");

    formElement = generatedPage.document.createElement("form")
    formElement.setAttribute("method", "post");
    formElement.setAttribute("action", "http://validator.w3.org/check");

    inputElement = generatedPage.document.createElement("input");
    inputElement.setAttribute("type", "hidden");
    inputElement.setAttribute("name", "verbose");
    inputElement.setAttribute("value", "1");
    formElement.appendChild(inputElement);

    inputElement = generatedPage.document.createElement("input");
    inputElement.setAttribute("type", "hidden");
    inputElement.setAttribute("name", "fragment");
    inputElement.setAttribute("value", request.responseText);
    formElement.appendChild(inputElement);

    generatedPage.document.body.appendChild(formElement);
    formElement.submit();
}