////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2001-2002 CreativeCow.net - All Rights Reserved
//
// utility.js
//
// basic utility code
////////////////////////////////////////////////////////////////////////////////

var TAG_BOLD_OPEN = "<B>";
var TAG_BOLD_CLOSE = "</B>";
var TAG_ITALIC_OPEN = "<I>";
var TAG_ITALIC_CLOSE = "</I>";
var TAG_UNDERLINE_OPEN = "<U>";
var TAG_UNDERLINE_CLOSE = "</U>";
var TAG_IMAGE_OPEN = "<IMG SRC=\"";
var TAG_IMAGE_CLOSE = "\">";
var TAG_URL_OPEN = "<A HREF=\"";
var TAG_URL_MIDDLE = "\" TARGET=_blank>";
var TAG_URL_CLOSE = "</A>";

var TAG_UPDATE_BOLD = 0;
var TAG_UPDATE_ITALIC = 1;
var TAG_UPDATE_UNDERLINE = 2;
var TAG_UPDATE_IMAGE = 3;
var TAG_UPDATE_URL = 4;

// keeps track of the caret position for the field in question
function storeFieldCaret (field) {
    if ((document.all) && (field.createTextRange())) {
        field.caretPos = document.selection.createRange().duplicate();
    }
}

// replaces or inserts the passed tag type into the field
function addHTMLTag (field, tagType) {
    var openTag;
    var middleTag;
    var closeTag;

    // sitruc (12.mar.2k3) urls are auto-linked now
    if (tagType == TAG_UPDATE_URL) {
        var yup = confirm("Any complete url that includes a http, https or ftp protocol\nthat is in your post will automatically be linked to a new\nwindow upon submission of this message.\n\nProceed with this tool?");
        if (! yup) {
            // buh-bye
            return;
        }
    }
        
    if (tagType == TAG_UPDATE_BOLD) {
        openTag = TAG_BOLD_OPEN;
        middleTag = "";
        closeTag = TAG_BOLD_CLOSE;
    } else if (tagType == TAG_UPDATE_ITALIC) {
        openTag = TAG_ITALIC_OPEN;
        middleTag = "";
        closeTag = TAG_ITALIC_CLOSE;
    } else if (tagType == TAG_UPDATE_UNDERLINE) {
        openTag = TAG_UNDERLINE_OPEN;
        middleTag = "";
        closeTag = TAG_UNDERLINE_CLOSE;
    } else if (tagType == TAG_UPDATE_IMAGE) {
        openTag = TAG_IMAGE_OPEN;
        middleTag = "";
        closeTag = TAG_IMAGE_CLOSE;
    } else if (tagType == TAG_UPDATE_URL) {
        openTag = TAG_URL_OPEN;
        middleTag = TAG_URL_MIDDLE;
        closeTag = TAG_URL_CLOSE;
    }
    
    if (! field.caretPos) {
        // no current caret position saved - insert tag at start of field
        field.value = (openTag + middleTag + closeTag + field.value);        
    } else if ((field.createTextRange()) && (field.caretPos)) {
        // there's selected text - wrap it with the tags
        var caretPos = field.caretPos;
        // set up the tag
        taggedText = (tagType != TAG_UPDATE_URL) ? 
                (openTag + caretPos.text + closeTag) :
                (openTag + caretPos.text + middleTag + caretPos.text + closeTag);
        // place the tag
        caretPos.text = (caretPos.text.charAt(caretPos.text.length - 1) == " ") ? (taggedText + " ") : taggedText;
    } else {
        // no text selected, but there's a caret position - insert the tag there
        field.value = (openTag + middleTag + closeTag);
    }
}

// write an email to the screen to prevent spidering
function antiSpamEmail (username, domain, purdyStr, cssClass) {
    purdyStr = (purdyStr == "") ? (username + "@" + domain) : purdyStr;
    var cssTag = (cssClass == "") ? "" : ("CLASS=\"" + cssClass + "\"");
    document.write("<A " + cssTag + " HREF=\"mailto:" + username + "@" + domain + "\">" + purdyStr + "</A>");
}
