<!-- // Hide from older browsers
/* $Id: serendipity_editor.js,v 1.7 2004/03/23 15:49:25 garvinhicking Exp $ */

/*
    Written by chris wetherell
    http://www.massless.org
    chris [THE AT SIGN] massless.org
    
    warning: it only works for IE4+/Win and Moz1.1+
    feel free to take it for your site
    if there are any problems, let chris know.
*/

var thisForm;

function getMozSelection(txtarea) {
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    if (selEnd==1 || selEnd==2) {
        selEnd=selLength;
    }
    return (txtarea.value).substring(selStart, selEnd);
}

function mozWrap(txtarea, lft, rgt) {
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    if (selEnd==1 || selEnd==2) selEnd=selLength;
    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd)
    var s3 = (txtarea.value).substring(selEnd, selLength);
    var scrollTop = txtarea.scrollTop;
    var scrollLeft = txtarea.scrollLeft;
    txtarea.value = s1 + lft + s2 + rgt + s3;
    txtarea.scrollTop = scrollTop;
    txtarea.scrollLeft = scrollLeft;
}

function safWrap(txtarea, lft, rgt){
	alert("Leider konnten wir ihrem Browser diese Funktion nicht beibringen. \nBitte benutzen sie die Tags \n" + lft + "um das markierte Wort" + rgt + " \nzu bearbeiten. Wir hoffen das wir ihnen weiterhelfen konnten.");
}

function IEWrap(lft, rgt) {
    strSelection = document.selection.createRange().text;
    if (strSelection != "") {
        document.selection.createRange().text = lft + strSelection + rgt;
    }else{
		alert("Bitte Text markieren!");
	}
}

function wrapSelection(txtarea, lft, rgt) {
	if(navigator.product == 'Konqueror/khtml'){
		safWrap(txtarea, lft, rgt);
	} else if (document.all) {
        IEWrap(lft, rgt);
	}else if(window.getSelection && navigator.product != 'Gecko'){
		//alert(navigator.product);
		safWrap(txtarea, lft, rgt);
    } else if (document.getElementById) {
        mozWrap(txtarea, lft, rgt);
    }
}

function wrapSelectionWithLink(txtarea) {
 	if(document.all){
		if(document.selection.createRange().text==""){
        	alert("Bitte Text markieren!");
			return;
		}
	}
	var my_link = prompt("Enter URL:","http://");
	if(document.all){
		if(document.selection.createRange().text==""){
        	alert("Bitte Text markieren!");
		}
	}else if (getMozSelection(txtarea) == "") {
        var my_desc = prompt("Enter Description");
    }

    if (my_link != null) {
        lft = "<a href=\"" + my_link + "\">";
        if (my_desc != null && my_desc != "") {
            rgt = my_desc +"</a>";
        } else {
            rgt = "</a>";
        }
        wrapSelection(txtarea, lft, rgt);
    }

    return;
}
/* end chris w. script */

function mozInsert(txtarea, str) {
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    if (selEnd==1 || selEnd==2) {
        selEnd=selLength;
    }
    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd)
    var s3 = (txtarea.value).substring(selEnd, selLength);
    txtarea.value = s1 + str + s2 + s3;
}

function wrapInsImage(area) {
    var loc = prompt('Enter the Image Location: ');
    if (!loc) {
        return;
    }
    mozInsert(area,'<img src="'+ loc + '" alt="" />');
}

/* end Better-Editor functions */

function serendipity_insImage (area) {
    var loc = prompt('Enter the Image Location: ');
    if (!loc) {
        area.focus();
        return;
    }

    area.value = area.value + '<img src="' + loc + '" alt="" />';
    area.focus();
}

function serendipity_insBasic (area, tag) {
    area.value = area.value + "<" + tag + "></" + tag + ">";
    area.focus();
}

function serendipity_insLink (area) {
    var loc  = prompt('Enter Location: ');
    var text = prompt('Enter Description: ');

    if (!loc) {
        area.focus();
        return;
    }

    area.value = area.value + '<a href="' + loc + '">' + (text ? text : loc) + '</a>';
    area.focus();
}

function serendipity_imageSelector_addToBody (str)
{
    document.forms['serendipityEntry']['serendipity[body]'].value += str;
    document.forms['serendipityEntry']['serendipity[body]'].focus();
}

function serendipity_imageSelector_done() 
{
    var insert = '';
    var img = '';
    var src = '';
    var f = document.forms['serendipity[selForm]'].elements;

    if (f['serendipity[linkThumbnail]'][0].checked == true) {
        img = f['thumbName'].value;
    } else {
        img = f['imgName'].value;
    }

    if (XHTML11) {
        if (f['serendipity[align]'][0].checked == true) {
            img = "<img style='border: 0px; padding-left: 5px; padding-right: 5px;' src='" + img + "' alt='' />\n";
        } else if (f['serendipity[align]'][1].checked == true) {
            img = "<img style='border: 0px; padding-left: 5px; padding-right: 5px; float: left; vertical-align: top' src='" + img + "' alt='' />";
        } else if (f['serendipity[align]'][2].checked == true) {
            img = "<img style='border: 0px; padding-left: 5px; padding-right: 5px; float: right; vertical-align: top' src='" + img + "' alt='' />";
        }
    } else {
        if (f['serendipity[align]'][0].checked == true) {
            img = "<img border='0' hspace='5' src='" + img + "' alt='' />\n";
        } else if (f['serendipity[align]'][1].checked == true) {
            img = "<img border='0' hspace='5' align='left' src='" + img + "' alt='' />";
        } else if (f['serendipity[align]'][2].checked == true) {
            img = "<img border='0' hspace='5' align='right' src='" + img + "' alt='' />";
        }
    }

    if (f['serendipity[isLink]'][1].checked == true) {
        insert = "<a href='" + f['serendipity[url]'].value + "'>" + img + "</a>";
    } else {
        insert = img;
    }

    if (self.opener.editorref) {
        self.opener.editorref.surroundHTML(insert, '');
    } else {
        self.opener.serendipity_imageSelector_addToBody(insert);
    }

    self.close();
}

// -->
