var _unloadprompt = false;
var ie=document.all;

function enableUnloadPrompt() {
	_unloadprompt = true;
	window.onbeforeunload = unloadMessage;
}


function disableUnloadPrompt() {
	_unloadprompt = false;
	window.onbeforeunload = null;
}


function unloadMessage(){
	return ("Your blog post will not be saved.");
}
				





function okBrowser() {
	var ua = navigator.userAgent.toLowerCase();
	
	// returns false if found msie 5.1, netscape 6, or generally macintosh and os9. 
	// as pc browsers generally behave better.
	// this list may grow with time
	
	// g m
			
	var result = 
		!(
			((ua.indexOf('msie') > -1)  && (navigator.appVersion.substring(0,1)<=6))
			|| 
			(ua.indexOf('aol') > -1) 
			|| 
			(ua.indexOf('netscape') > -1)	
			||
			((ua.indexOf('macintosh')> -1) && (ua.indexOf('os x') < 0))	
		)
	;
	
	// alert(result);	// debug
	return (result);
}




function wrapin(boxid, starthtml, endhtml) {
		var dc=document.getElementById(boxid);
		
		if (ie) createSelectionMarkers(dc);
		
		if ((dc.selectionStart||dc.selectionEnd) && (dc.selectionStart!=dc.selectionEnd)) {
			dc.value = dc.value.substring(0,dc.selectionStart) 
			+ starthtml
			+ dc.value.substring(dc.selectionStart,dc.selectionEnd)
			+ endhtml
			+ dc.value.substring(dc.selectionEnd,dc.value.length);
			if (ie) document.selection.empty();
		} else 
		{
			alert ('Please select some text to format first'); 
		}
		return (false);
}

function insertat(boxid,html) {
	var dc=document.getElementById(boxid);
	if (html == null) html = '';
	if (ie) createSelectionMarkers(dc);
	dc.value = dc.value.substring(0,dc.selectionStart)+html+dc.value.substring(dc.selectionStart,dc.value.length);
	return false;
}


function createSelectionMarkers(element) {
	// this function creates selectionStart and selectionEnd for textareas in IE.
	
	// passed by reference
	// var element = document.getElementById( 'my_textarea' );	
	if( document.selection ) {
		// The current selection
		var range = document.selection.createRange();
		// We'll use this as a 'dummy'
		var stored_range = range.duplicate();
		// Select all text
		stored_range.moveToElementText( element );
		// Now move 'dummy' end point to end point of original range
		stored_range.setEndPoint( 'EndToEnd', range );
		// Now we can calculate start and end points
		element.selectionStart = stored_range.text.length - range.text.length;
		element.selectionEnd = element.selectionStart + range.text.length;
	}
	
}

function insertimgat(boxid) {
	var dc=document.getElementById(boxid);
	
	var url = prompt("Please enter web address (URL) of image?","http://");
	if (!url) return false;

	if (ie) createSelectionMarkers(dc);
	html = '<img src="'+url+'" />';
	return (insertat(boxid, html));

}


function linkorinsertlinkat(boxid) {
	var dc=document.getElementById(boxid);
	
	if (ie) createSelectionMarkers(dc);
	
	
	var wrap = (dc.selectionStart && (dc.selectionStart != dc.selectionEnd));
	
	var url = prompt("Please enter web address (URL) to link to?", "http://");
	if (!url) return false;
	
	
	if (wrap) {
		title = dc.value.substring(dc.selectionStart, dc.selectionEnd);
	} else {
		var title = prompt("Title of link? (optional)", "link");
		if ((title == null) || (!title)) title = url.replace('http://','');
	}
	
	if (url.substring(0,4)=="www.") url = "http://"+url;
	
	html = '<a href="'+url+'">'+title+'</a>';
	if (wrap) return (wrapin(boxid, '<a href="'+url+'">', "</a>"));
	else return (insertat(boxid, html));
}

