//requires jquery

//returns the html from a div into an xml string.
function getXMLFromDiv( divID )
{              
	  // get the contents of the div
	  var divHTML = $("#" + divID).html();
	  
	  // make sure html is xml compliant (.html() strips end slashes from <br /> and <img />)
	  //and also attributes in tags such as style and classes
	  	  
	  //divHTML = divHTML.replace( /(\n)|(\r)|(\t)/g, "", "all");
	  divHTML = lowercaseTag(divHTML);
	  divHTML = divHTML.replace( /\s*<(\w+)/ig, "<$1", "all" );
	  divHTML = divHTML.replace( /(\t)/g, "", "all");
	  divHTML = divHTML.replace( /<img(.*?)\s*>/ig, "<img$1 />", "all");
	
	  divHTML = divHTML.replace( /<\/p>\s*<p(.*?)\s*>/ig, "</p><br/><p$1>", "all");
                    divHTML = divHTML.replace( />\s*</g, "><", "all");
	  divHTML = divHTML.replace(/<br>/ig, "<br />", "all");	

	  divHTML = divHTML.replace( /class\s*=\s*(\w+)/ig, "class=\"$1\"", "all" );
	  divHTML = divHTML.replace( /id\s*=\s*(\w+)/ig, "id=\"$1\"", "all" );
	  divHTML = divHTML.replace( /alt\s*=\s*(\w+)/ig, "alt=\"$1\"", "all" );		  
	  divHTML = divHTML.replace(  /style\s*=\s*\"(.*?)\"/ig, "", "all" );
	  
	  // get rid of &nbsp;
	  divHTML = divHTML.replace(/&nbsp;/ig, "", "all");
	  
	  //divHTML = divHTML.replace(/<p\s*>\s*/ig, "<p><![CDATA[", "all");
	  //divHTML = divHTML.replace(/\s*<\/p>/ig, "]]></p>", "all");														 
														  
	  
	  // lowercase divs and spans (IE returns upper)
	  //divHTML = divHTML.replace(/<(\/)?DIV/g, "<$1div", "all");
	 // divHTML = divHTML.replace(/<(\/)?SPAN/g, "<$1span", "all");
				  
	  return divHTML;
}

// sets html tags to lowercase
       function lowercaseTag(tagName) {

              // set match to lowercase
              function upperToLower(match) {
                     return match.toLowerCase();
              }
              // replace starting and end tags with lowercase versions
              return tagName.replace(/<(\/)?(\w+)\s*/ig, upperToLower, "all");
       }


