﻿// Custom javascript for Craft-Bilt Betterliving CMS

//Utility function to preload images
jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

jQuery.preloadImageArr = function(imgArr)
{
	for(i = 0; i<imgArr.length; i++)
	{
		jQuery("<img>").attr("src", imgArr[i]);
	}
}

function reposition_logolink() {
	if($('#logo').length > 0) {
		offLeft = $('#logo').offset().left;
		offLeft += 20;
		$('#logo_click').css({ left: offLeft+'px' });
	}
}

//top nav
function topInit() {
	$('#topNav li').not('.selected').hover(
		function() { $('img',this).attr('src', $('img',this).attr('src').replace('.gif','-s.gif')); },
		function() { $('img',this).attr('src', $('img',this).attr('src').replace('-s.gif','.gif')); }
	);
	
	//preload topnav rollover images
	var imgStr = "";
	$('img', '#topNav').each( function() {
		imgStr += ',' + $(this).attr('src').replace('.gif', '-s.gif');
	} );
	
	if(imgStr.length > 0) {
		imgArr = imgStr.substr(1).split(',');
		
		$.preloadImageArr(imgArr);
	}
	$('#logo_click').attr('alt', 'Sunrooms and Sunroom Additions by Betterliving');
}

//left nav
function leftInit() {
	 //FLASH loader
	$('a', '#leftNav').each( function(i) {
		title = $(this).text();
		action = $(this).attr('href');
		parentId = 'leftNavItem' + i;
		parms = "?action=" + action + "&title=" + escape(title);
		if($(this).parents('li.selected').length) {
			parms += "&selected=true";
		}
		
		myDiv = loadNavSwf(this, '/swf/leftNavButton.swf', parms, parentId, '217', '25');
	} );
}
function loadNavSwf(elem, swfFile, parms, parentId, width, height) {
	var so = new SWFObject(swfFile + parms, parentId + '_flash', width, height, '7', '#ffffff');

	if(so.installedVer.major >= 7) {
		$(elem).parent().wrap('<div id="' + parentId + '"></div>');
		$(elem).parents('#leftNav li').css('background-image', 'none');
		
		so.addParam('wmode', 'transparent');
		so.write(parentId);
		
		return $('div#'+parentId);
	}
}
//function leftInit() {
//	//IMAGE loader
//	$('#leftNav .ieHax').each( function(i) {
//		a = $('a', this);
//		title = a.text().toUpperCase();
//		action = a.attr('href');
//		bgImage = "/images/nav/left_bg.gif";
//		parms = new imageParms(title, "#a0e6fa", "transparent", 217, "left", 11, "/includes/apex_sans_bold_c.ttf", true, action);
//		parms.query += "&bgimage=" + urlEncode(bgImage) + "&height=25&marginTop=6&marginLeft=14";
//		
//		$(this).parent().css('background-image', 'none');
//		newElem = loadNavImage(this, parms, ".gif");
//		newElem.css({ height: '25px', width: '217px' });
//		
//		$(newElem).hover(
//			function() { 
//				title = $('img', this).attr('alt');
//				bgImage = "/images/nav/left_bg.gif";
//				parms_over = new imageParms(title, "#87f000", "transparent", 217, "left", 11, "/includes/apex_sans_bold_c.ttf", false);
//				parms_over.query += "&bgimage=" + urlEncode(bgImage) + "&height=25&marginTop=6&marginLeft=14";
//				overElem = loadNavImage(this, parms_over, "-s.gif");
//				
//				i = $('img', this).get(0)
//				$('img', this).before($('img', overElem));
//				$(i).remove();
//			},
//			function() { 
//				title = $('img', this).attr('alt');
//				bgImage = "/images/nav/left_bg.gif";
//				parms = new imageParms(title, "#a0e6fa", "transparent", 217, "left", 11, "/includes/apex_sans_bold_c.ttf", true, action);
//				parms.query += "&bgimage=" + urlEncode(bgImage) + "&height=25&marginTop=6&marginLeft=14";
//				outElem = loadNavImage(this, parms, ".gif");
//				$('img', this).replaceWith($('img', outElem));
//			}
//		);
//		
//		$(this).replaceWith(newElem);
//	} );
//}

//function loadNavImage(elem, parms, ext) {
//	var imgUrl = "/ImageHandler.ashx?" + parms.query;
//	imgName = "Nav-" + replaceInvalidChars(parms.text) + ext;
//	imgUrl += "&imgName=" + imgName;
//	
//	newElem = $('<a href="' + parms.link + '"><img src="' + imgUrl + '" alt="' + parms.text + '" /></a>');
//	return newElem;
//}

//image rollovers
jQuery.fn.swapImg = function(imgDiff) {
	return $(this).each( function() {
		var imgSrc = $(this).attr('src');
		var imgExt = imgSrc.substr(imgSrc.lastIndexOf('.'));
		
		$(this).hover(
			function() { 
				$(this).attr('src', imgSrc.replace(imgExt, imgDiff + imgExt));
			},
			function() {
				$(this).attr('src', imgSrc.replace(imgDiff + imgExt, imgExt));
			}
		);
		
		//do image preload
		$.preloadImages(imgSrc, imgSrc.replace(imgExt, imgDiff + imgExt));
	} );
}

//expanding/collapsing list
function getExpList() {
	expList = $('ul.expList');
	$('li', expList).each( function() {
		$('a[href*=expandCollapse]', this)
			.wrap('<div class="lnkDiv"></div>')
			.click(function() {
				expDiv = $(this).parent().siblings('.expDiv');
				$(expDiv).toggle('slow');
				return false;
			} );	
		$('p', this).wrapAll('<div class="expDiv"></div>');
	} );
}

function expandCollapse(number) {
	me = $('div#subheadingLink' + number);
	expDiv = $('.expDiv', me.parent());
	
	$(expDiv).toggle('slow');
}

/* javascript for doing dynamic image-replacement */
function imageParms(sText, sForeColor, sBackgroundColor, sWidth, sAlign, sFontSize, sFont, sHasLink, sLink) {
	this.text = sText;
	this.foreColor = sForeColor;
	this.backColor = sBackgroundColor;
	this.width = sWidth;
	this.align = sAlign;
	this.fontSize = sFontSize;
	this.font = sFont;
	this.hasLink = sHasLink;
	this.link = sLink;
	
	this.query = "t=" + escape(sText) + "&w=" + sWidth + "&fc=" + urlEncode(sForeColor)
		+ "&bc=" + urlEncode(sBackgroundColor) + "&fs=" + sFontSize + "&fn=" + urlEncode(sFont) + "&align=" + sAlign;
}

function urlEncode (sText) {
	sText = sText.replace(/%\d{0}/g, '%25');	
	sText = sText.replace(/\+/g, '%2B');		
	sText = sText.replace(/&amp;/g, '%26');
	sText = sText.replace(/&\w{0}#{0}/g, '%26');
	sText = sText.replace(/\"/g, '%22');
	sText = sText.replace(/\#/g, '%23');

    return sText;
}

function replaceElements() {
	
	replaceHeadings();
	replaceSubheadings();
	replaceOtherHeadings();
}

function replaceHeadings() {
	$('h2.pageheading', 'div#pageTitle').each( function(i) {
		title = $(this).text().toUpperCase();
		parms = new imageParms(title, "#003C5A", "transparent", 688, "left", 32, "/includes/eagle_book.ttf");
		bgImage = '/images/heading_bg.gif';
		parms.query += "&bgimage=" + urlEncode(bgImage) + "&height=" + 47 + "&marginTop=" + 8 + "&marginLeft=" + 15;		
		if(title.length)
			loadImage($(this), parms);
	} );
	$('h2.pageheading', 'div.pageSubTitle').each( function(i) {
		title = $(this).text().toUpperCase();
		parms = new imageParms(title, "#003C5A", "transparent", 688, "left", 32, "/includes/eagle_book.ttf");
		bgImage = '/images/subheading_bg.gif';
		parms.query += "&bgimage=" + urlEncode(bgImage) + "&height=" + 47 + "&marginTop=" + 8 + "&marginLeft=" + 15;		
		loadImage($(this), parms);
	} );
	
}

function replaceSubheadings() {
	$('h3.subheading').each( function(i) {
		title = $(this).text().toUpperCase();
		width = 630;
		if($(this).width() > 0) { width = $(this).width(); }
		
		if($(this).attr('class').indexOf('shorter') > -1) { width = 450; }
		
		parms = new imageParms(title, "#0071BB", "#fff", width, "left", 18, "/includes/avenir_roman.ttf");
		
		if(title.length)
			loadImage($(this), parms);
	} );
	$('h1.subheading').each( function(i) {
		title = $(this).text().toUpperCase();
		width = 630;
		if($(this).width() > 0) { width = $(this).width(); }
		
		if($(this).attr('class').indexOf('shorter') > -1) { width = 450; }
		
		parms = new imageParms(title, "#0071BB", "#fff", width, "left", 18, "/includes/avenir_roman.ttf");
		
		if(title.length)
			loadImage($(this), parms);
	} );	
}

function replaceOtherHeadings() {
	$('h4.subheading').each( function(i) {
		title = $(this).text();
		width = 630;
		
		if($(this).width() > 0) { width = $(this).width(); }
		
		parms = new imageParms(title, "#0071BB", "#fff", width, "left", 15, "/includes/avenir_roman.ttf");
		
		if(title.length)
			loadImage($(this), parms);
	} );
	$('a', 'div.subheading').add('a.listitemheading', 'div.lnkDiv').each( function(i) {
		title = $(this).text().toUpperCase();
		width = 275;
		fontSize = 16;
		
		if($(this).attr('class') && $(this).attr('class').indexOf('listitemheading') > -1) {
			width = 648;
			fontSize = 14;
		}
		
		parms = new imageParms(title, "#0071BB", "#fff", width, "left", fontSize, "/includes/avenir_roman.ttf", true, $(this).attr('href'));
		
		if(title.length)
			loadImage($(this), parms);
	} );
	$('span.listitemheading').each( function(i) {
		title = $(this).text();
		parms = new imageParms(title, "#0071BB", "#fff", 630, "left", 14, "/includes/avenir_roman.ttf");
		
		if(title.length)
			loadImage($(this), parms);
	} );
}

function replaceInvalidChars(input) {
	invalid = new Array('\\/', '\\\\', '\\:', '\\?', '\\*', '\\"', "\\'", '\\<', '\\>', '\\|');
	for(x in invalid) {
		rx = new RegExp(invalid[x], 'g');
		input = input.replace(rx, '');
	}
	
	return input.replace(/ /g, "_");
}

function loadImage(elem, parms) {
	
	var imgUrl = "/ImageHandler.ashx?" + parms.query;
	imgName = location.pathname.lastIndexOf('/') > 0 ? location.pathname.substr(location.pathname.lastIndexOf('/') + 1) : 'Default.aspx';
	imgName += "-" + $(elem).get(0).tagName + "-" + replaceInvalidChars(parms.text) + ".gif";
	imgUrl += "&imgName=" + escape(imgName);
	
	if(parms.hasLink) {
		$(elem).replaceWith("<a href=\"" + parms.link + "\"><img src='" + imgUrl + "' alt='" + parms.text + "' /></a>");
	}
	else {
		if($(elem).is('h3')) {
			$(elem).empty();
			$(elem).append("<img src='" + imgUrl + "' alt='" + parms.text + "' />");
		}
		else {
			$(elem).replaceWith("<img src='" + imgUrl + "' alt='" + parms.text + "' />");
		}
	}
}

//utility function to load swf objects (namely for flash-text replacement)
function loadSwfObject(elem, swfFile, parms, parentId, width, height) {
	var so = new SWFObject(swfFile + parms, parentId + '_flash', width, height, '7', '#ffffff');
	so.addParam('wmode', 'transparent');
	
	$(elem).wrap('<div id="' + parentId + '"></div>');
	
	so.write(parentId);
	
	return $('div#'+parentId);
}

//hack for Sunroom Features content
function insertBefore(elem, newId) {
	myDiv = "<div class='closeMe'><a href='javascript:closeFlash(\"" + newId + "\")'><img src='/images/btnBack.gif' alt='Back To Features' class='rollBack' /></a></div>";
	myDiv += "<div id='" + newId + "'></div>";
	
	$(elem).before(myDiv);
	
	$('img.rollBack').swapImg('-o');
}

//load betterliving sunrooms features flash
function loadFeatureFlash(xmlPath, flashId) {
	var so = new SWFObject('/swf/BetterlivingFeatures.swf', flashId + '_flash', '688', '720', '8', '#ffffff');
	so.addVariable('xmlPath', '/swf/xml/' + xmlPath);
	
	so.write(flashId);
}

//tiny_mce valid elements - global
var tiny_mce_valid_elements = "a[accesskey|charset|class|coords|dir<ltr?rtl|href|hreflang|id|lang|name"
  +"|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|rel|rev"
  +"|shape<circle?default?poly?rect|style|tabindex|title|target|type],"
+"abbr[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"acronym[class|dir<ltr?rtl|id|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"address[class|align|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title],"
+"applet[align<bottom?left?middle?right?top|alt|archive|class|code|codebase"
  +"|height|hspace|id|name|object|style|title|vspace|width],"
+"area[accesskey|alt|class|coords|dir<ltr?rtl|href|id|lang|nohref<nohref"
  +"|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup"
  +"|shape<circle?default?poly?rect|style|tabindex|title|target],"
+"base[href|target],"
+"basefont[color|face|id|size],"
+"bdo[class|dir<ltr?rtl|id|lang|style|title],"
+"big[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"blockquote[cite|class|dir<ltr?rtl|id|lang|onclick|ondblclick"
  +"|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
  +"|onmouseover|onmouseup|style|title],"
+"body[alink|background|bgcolor|class|dir<ltr?rtl|id|lang|link|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onload|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|onunload|style|title|text|vlink],"
+"br[class|clear<all?left?none?right|id|style|title],"
+"button[accesskey|class|dir<ltr?rtl|disabled<disabled|id|lang|name|onblur"
  +"|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup|onmousedown"
  +"|onmousemove|onmouseout|onmouseover|onmouseup|style|tabindex|title|type"
  +"|value],"
+"caption[align<bottom?left?right?top|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"center[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"cite[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"code[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"col[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
  +"|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
  +"|onmousemove|onmouseout|onmouseover|onmouseup|span|style|title"
  +"|valign<baseline?bottom?middle?top|width],"
+"colgroup[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl"
  +"|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
  +"|onmousemove|onmouseout|onmouseover|onmouseup|span|style|title"
  +"|valign<baseline?bottom?middle?top|width],"
+"dd[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
+"del[cite|class|datetime|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title],"
+"dfn[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"dir[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title],"
+"div[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"dl[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title],"
+"dt[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
+"em/i[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"fieldset[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"font[class|color|dir<ltr?rtl|face|id|lang|size|style|title],"
+"form[accept|accept-charset|action|class|dir<ltr?rtl|enctype|id|lang"
  +"|method<get?post|name|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onreset|onsubmit"
  +"|style|title|target],"
+"frame[class|frameborder|id|longdesc|marginheight|marginwidth|name"
  +"|noresize<noresize|scrolling<auto?no?yes|src|style|title],"
+"frameset[class|cols|id|onload|onunload|rows|style|title],"
+"h1[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"h2[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"h3[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"h4[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"h5[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"h6[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"head[dir<ltr?rtl|lang|profile],"
+"hr[align<center?left?right|class|dir<ltr?rtl|id|lang|noshade<noshade|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|size|style|title|width],"
+"html[dir<ltr?rtl|lang|version],"
+"iframe[align<bottom?left?middle?right?top|class|frameborder|height|id"
  +"|longdesc|marginheight|marginwidth|name|scrolling<auto?no?yes|src|style"
  +"|title|width],"
+"img[align<bottom?left?middle?right?top|alt|border|class|dir<ltr?rtl|height"
  +"|hspace|id|ismap<ismap|lang|longdesc|name|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|src|style|title|usemap|vspace|width],"
+"input[accept|accesskey|align<bottom?left?middle?right?top|alt"
  +"|checked<checked|class|dir<ltr?rtl|disabled<disabled|id|ismap<ismap|lang"
  +"|maxlength|name|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onselect"
  +"|readonly<readonly|size|src|style|tabindex|title"
  +"|type<button?checkbox?file?hidden?image?password?radio?reset?submit?text"
  +"|usemap|value],"
+"ins[cite|class|datetime|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title],"
+"isindex[class|dir<ltr?rtl|id|lang|prompt|style|title],"
+"kbd[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"label[accesskey|class|dir<ltr?rtl|for|id|lang|onblur|onclick|ondblclick"
  +"|onfocus|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
  +"|onmouseover|onmouseup|style|title],"
+"legend[align<bottom?left?right?top|accesskey|class|dir<ltr?rtl|id|lang"
  +"|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"li[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title|type"
  +"|value],"
+"link[charset|class|dir<ltr?rtl|href|hreflang|id|lang|media|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|rel|rev|style|title|target|type],"
+"map[class|dir<ltr?rtl|id|lang|name|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"menu[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title],"
+"meta[content|dir<ltr?rtl|http-equiv|lang|name|scheme],"
+"noframes[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"noscript[class|dir<ltr?rtl|id|lang|style|title],"
+"object[align<bottom?left?middle?right?top|archive|border|class|classid"
  +"|codebase|codetype|data|declare|dir<ltr?rtl|height|hspace|id|lang|name"
  +"|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|standby|style|tabindex|title|type|usemap"
  +"|vspace|width],"
+"ol[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|start|style|title|type],"
+"optgroup[class|dir<ltr?rtl|disabled<disabled|id|label|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"option[class|dir<ltr?rtl|disabled<disabled|id|label|lang|onclick|ondblclick"
  +"|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
  +"|onmouseover|onmouseup|selected<selected|style|title|value],"
+"p[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|style|title],"
+"param[id|name|type|value|valuetype<DATA?OBJECT?REF],"
+"pre/listing/plaintext/xmp[align|class|dir<ltr?rtl|id|lang|onclick|ondblclick"
  +"|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
  +"|onmouseover|onmouseup|style|title|width],"
+"q[cite|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"s[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
+"samp[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"script[charset|defer|language|src|type],"
+"select[class|dir<ltr?rtl|disabled<disabled|id|lang|multiple<multiple|name"
  +"|onblur|onchange|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|size|style"
  +"|tabindex|title],"
+"small[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"span[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title],"
+"strike[class|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title],"
+"strong/b[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"style[dir<ltr?rtl|lang|media|title|type],"
+"sub[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"sup[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title],"
+"table[align<center?left?right|bgcolor|border|cellpadding|cellspacing|class"
  +"|dir<ltr?rtl|frame|height|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|rules"
  +"|style|summary|title|width],"
+"tbody[align<center?char?justify?left?right|char|class|charoff|dir<ltr?rtl|id"
  +"|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
  +"|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
  +"|valign<baseline?bottom?middle?top],"
+"td[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class"
  +"|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|rowspan|scope<col?colgroup?row?rowgroup"
  +"|style|title|valign<baseline?bottom?middle?top|width],"
+"textarea[accesskey|class|cols|dir<ltr?rtl|disabled<disabled|id|lang|name"
  +"|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onselect"
  +"|readonly<readonly|rows|style|tabindex|title],"
+"tfoot[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
  +"|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
  +"|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
  +"|valign<baseline?bottom?middle?top],"
+"th[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class"
  +"|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|onclick"
  +"|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
  +"|onmouseout|onmouseover|onmouseup|rowspan|scope<col?colgroup?row?rowgroup"
  +"|style|title|valign<baseline?bottom?middle?top|width],"
+"thead[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
  +"|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
  +"|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
  +"|valign<baseline?bottom?middle?top],"
+"title[dir<ltr?rtl|lang],"
+"tr[abbr|align<center?char?justify?left?right|bgcolor|char|charoff|class"
  +"|rowspan|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title|valign<baseline?bottom?middle?top],"
+"tt[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
+"u[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
  +"|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
+"ul[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
  +"|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
  +"|onmouseup|style|title|type],"
+"var[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
  +"|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
  +"|title]";

