 function wptexturize(text) { text = ' '+text+' '; var next = true; var output = ''; var prev = 0; var length = text.length; while ( prev < length ) { var index = text.indexOf('<', prev); if ( index > -1 ) { if ( index == prev ) { index = text.indexOf('>', prev); } index++; } else { index = length; } var s = text.substring(prev, index); prev = index; if ( s.substr(0,1) != '<' && next == true ) { s = s.replace(/---/g, '&#8212;'); s = s.replace(/--/g, '&#8211;'); s = s.replace(/\.{3}/g, '&#8230;'); s = s.replace(/``/g, '&#8220;'); s = s.replace(/'s/g, '&#8217;s'); s = s.replace(/'(\d\d(?:&#8217;|')?s)/g, '&#8217;$1'); s = s.replace(/([\s"])'/g, '$1&#8216;'); s = s.replace(/(\d+)"/g, '$1&Prime;'); s = s.replace(/(\d+)'/g, '$1&prime;'); s = s.replace(/([^\s])'([^'\s])/g, '$1&#8217;$2'); s = s.replace(/(\s)"([^\s])/g, '$1&#8220;$2'); s = s.replace(/"(\s)/g, '&#8221;$1'); s = s.replace(/'(\s|.)/g, '&#8217;$1'); s = s.replace(/\(tm\)/ig, '&#8482;'); s = s.replace(/\(c\)/ig, '&#169;'); s = s.replace(/\(r\)/ig, '&#174;'); s = s.replace(/''/g, '&#8221;'); s = s.replace(/(\d+)x(\d+)/g, '$1&#215;$2'); } else if ( s.substr(0,5) == '<code' ) {
			next = false;
		} else {
			next = true;
		}
		output += s; 
	}
	return output.substr(1, output.length-2);	
}

function wpautop(p) {
	p = p + '\n\n';
	p = p.replace(/(<blockquote[^>]*>)/g, '\n$1'); p = p.replace(/(<\/blockquote[^>]*>)/g, '$1\n'); p = p.replace(/\r\n/g, '\n'); p = p.replace(/\r/g, '\n'); p = p.replace(/\n\n+/g, '\n\n'); p = p.replace(/\n?(.+?)(?:\n\s*\n)/g, '<p>$1</p>'); p = p.replace(/<p>\s*?<\/p>/g, ''); p = p.replace(/<p>\s*(<\/?blockquote[^>]*>)\s*<\/p>/g, '$1'); p = p.replace(/<p><blockquote([^>]*)>/ig, '<blockquote$1><p>'); p = p.replace(/<\/blockquote><\/p>/ig, '<p></blockquote>'); p = p.replace(/<p>\s*<blockquote([^>]*)>/ig, '<blockquote$1>'); p = p.replace(/<\/blockquote>\s*<\/p>/ig, '</blockquote>'); p = p.replace(/\s*\n\s*/g, '<br />'); return p; } function updateLivePreview() { var cmntArea = document.getElementById('comment'); var pnmeArea = document.getElementById('author'); var purlArea = document.getElementById('url'); if( cmntArea ) var cmnt = wpautop(wptexturize(cmntArea.value)); if( pnmeArea ) var pnme = pnmeArea.value; if( purlArea ) var purl = purlArea.value; if(purl && pnme) { var name = '<a href="' + purl + '">' + pnme + '</a> says'; } else if(!purl && pnme) { var name = pnme + ' says'; } else if(purl && !pnme) { var name = '<a href="' + purl + '">You</a> say'; } else { var name = "You say"; }  document.getElementById('commentPreview').innerHTML = '<p><strong>Preview:</strong></p><p><em>' + name + ':</em></p><p>' + cmnt + '</p>';
 } function initLivePreview() { if(!document.getElementById) return false; var cmntArea = document.getElementById('comment'); var pnmeArea = document.getElementById('author'); var purlArea = document.getElementById('url'); if ( cmntArea ) cmntArea.onkeyup = updateLivePreview; if ( pnmeArea ) pnmeArea.onkeyup = updateLivePreview; if ( purlArea ) purlArea.onkeyup = updateLivePreview; } //======================================================== // Event Listener by Scott Andrew - http://scottandrew.com // edited by Mark Wubben, <useCapture>is now set to false //======================================================== function addEvent(obj, evType, fn){ if(obj.addEventListener){ obj.addEventListener(evType, fn, false); return true; } else if (obj.attachEvent){ var r = obj.attachEvent('on'+evType, fn); return r; } else { return false; } } addEvent(window, "load", initLivePreview); 
