/* BUG SOMEWHERE SO WE NEED TO LEAVE THIS LINE FREE OF CODE */

/* markup toolbar functions */
function insert(ctrl, val)
{ var scrollTop = ctrl.scrollTop;
  if (document.selection) // Internet Explorer
  { ctrl.focus();
    sel = document.selection.createRange();
    sel.text = val;
  } else if (ctrl.selectionStart || // Mozilla/Netscape
             ctrl.selectionStart == 0)
  { var start = ctrl.selectionStart;
    var end = ctrl.selectionEnd;
    ctrl.value = ctrl.value.substring(0, start)
                 + val
                 + ctrl.value.substring(end, ctrl.value.length);
    ctrl.focus();
    ctrl.selectionStart = start + val.length;
    ctrl.selectionEnd = start + val.length;
  } else
  { ctrl.value += val;
    ctrl.focus();
  }
  ctrl.scrollTop = scrollTop;
}


function insert_tag(ctrl, start_tag, txt, end_tag)
{ var full_tag = '[' + start_tag + ']';
  if (end_tag) full_tag += txt + '[/' + end_tag + ']';
  return insert(ctrl, full_tag);
}


function create_tag(ctrl, start_tag, end_tag)
{ var txt = 'Your text goes here';
  if (document.selection) // Internet Explorer
  { //ctrl.focus();
    if (document.selection.createRange().text != '')
    { txt = document.selection.createRange().text;
    }
  } else if (ctrl.selectionStart != ctrl.selectionEnd) // Mozilla/Netscape
  { var start = ctrl.selectionStart;
    var end = ctrl.selectionEnd;
    txt = ctrl.value.substring(start, end);
  }

  return insert_tag(ctrl, start_tag, txt, end_tag);
}


function add_tag(ctrl, taga, tagb) // no attr required
{ if (!tagb) tagb = taga;
  return create_tag(ctrl, taga, tagb);
}
  
  

function add_empty_tag(ctrl, tag)
{ return create_tag(ctrl, tag);
}


function add_advanced_tag(ctrl, tag, attr) // attr required
{ var start_tag = get_start_tag(tag, attr, 1);
  if (start_tag) return create_tag(ctrl, start_tag, tag);
}


function add_empty_advanced_tag(ctrl, tag, attr)
{ var start_tag = get_start_tag(tag, attr, 1);
  if (start_tag) return create_tag(ctrl, start_tag);
}


function get_start_tag(tag, attr, check_attr)
{ if (check_attr && attr == null)
  { attr = prompt('Please enter the ' + tag.toLowerCase(), tag);
    if (attr == '' || attr == null) return;
  }
  if (attr == null) // no attributes provided - it is a simple tag
  { return tag;
  } else if (typeof attr != 'object') // single attribute provided
  { return tag + '=' + attr;
  }

  var start_tag = tag;
  if (attr[tag.toLowerCase()] != null) start_tag = tag + '="' + attr[tag.toLowerCase()] + '"';
  for (a in attr)
  { if (a.toLowerCase() == tag.toLowerCase()) continue;
    start_tag += ' ' + a.toLowerCase() + '="' + attr[a] + '"';
  }

  return start_tag;
}


var image_ctrl;
function add_image_tag(attr)
{ if (image_ctrl && document.getElementById && document.createElement)
  { if (attr)
    { add_empty_advanced_tag(image_ctrl, 'IMAGE', attr);
    } else
    { alert('An error occurred while uploading your image');
    }
  }
}

function add_image(ctrl, url)
{ image_ctrl = ctrl;
  if (document.getElementById && document.createElement)
  { var win = window.open(url, 'win', 'top=50, left=50, width=800, height=700');
  }
}

function add_audio(ctrl, url)
{ image_ctrl = ctrl;
  if (document.getElementById && document.createElement)
  { var win = window.open(url, 'win', 'top=50, left=50, width=800, height=700');
  }
}

var audio_ctrl;
function add_audio_tag(attr)
{ if (audio_ctrl && document.getElementById && document.createElement)
  { if (attr)
    { add_empty_advanced_tag(audio_ctrl, 'AUDIO', attr);
    } else
    { alert('An error occurred while uploading your audio');
    }
  }
}

