//Functions for getting the locations on the create "activity_where_attributes" Form
function get_location_list_js() {
    var input = document.forms[0].loc_name.value;
    // Check for arguments.  If there is an argument, assume
    // that it is coming from an edit page and call the make_location_chooser differently
    var argv = get_location_list_js.arguments;
    var argc = argv.length;
    if( argc ) {
      frames['mapframe'].location.href = '/plans/make_location_chooser.php?is_edit=1&query='+ URLEncode(input);
    }
    else {
      frames['mapframe'].location.href = '/plans/make_location_chooser.php?query='+ URLEncode(input);
    }
}
//Functions for getting the messages on the user_pages
function fill_div(result) {
    document.getElementById(result[0]).innerHTML = result[1];
}
function get_prev_next_js(pid, oid, divId) {
    var pull_down = "prev_next" + divId;
    document.getElementById(pull_down).innerHTML = '<center>Loading....</center>';
    x_get_prev_next(pid, oid, divId, fill_div);
}
function toggle(theMenu,theImage,pid,oid){
    var elem1 = document.getElementById(theMenu);
    if ( elem1.style.display == "none" ) {
      theImage.src = "/images/layout/collapse.gif";
      elem1.style.display = "block";
      get_prev_next_js(pid,oid,theMenu);
    }
    else {
      elem1.style.display = "none";
      theImage.src = "/images/layout/expand.gif";
    }
}
function toggle_show(theMenu, theImage){
    var elem1 = document.getElementById(theMenu);
    if ( elem1.style.display == "none" ) {
      theImage.src = "/images/layout/collapse.gif";
      elem1.style.display = "block";
    }
    else {
      elem1.style.display = "none";
      theImage.src = "/images/layout/expand.gif";
    }
}
function show_hide(theMenu){
    var elem1 = document.getElementById(theMenu);
    if ( elem1.style.display == "none" ) {
      elem1.style.display = "block";
    }
    else {
      elem1.style.display = "none";
    }
}
//Functions for getting the user names on the object_admin_form Priviliges
function get_user_list_js(objectId, page) {
    document.getElementById("user_block").style.display = "block";
    var input = document.mainform.user_name.value;
    x_get_user_list(objectId, input, page, check_users);
}
function check_users(result){
    document.getElementById("user_block").innerHTML = result;
}
function add_username(userName) {
    var currentInput = document.mainform.username.value;
    var currentDivInput = document.getElementById("added_list").innerHTML;
    var reg = /^$/i;
    if( currentInput.match(reg) ) {
      document.mainform.username.value = userName;
      document.getElementById("added_list").innerHTML = "To List: "+userName;
    }
    else {
      document.mainform.username.value = currentInput + ", " + userName;
      document.getElementById("added_list").innerHTML = currentInput + ", " + userName;
    }
}
// END Functions for getting the user names on the object_admin_form Contributors

//Functions for getting the user names on the object_admin_form
function check_contrib(result){
    document.getElementById("contrib_block").innerHTML = result;
}
function get_contrib_list_js(objectId, page) {
    document.getElementById("contrib_block").style.display = "block";
    var input = contribform.user_name.value;
    x_get_contrib_list(objectId, input, page, check_contrib);
}
// END Functions for getting the user names on the object_admin_form
// Functions for the user's photo stream 
function get_prev_next_user_js(oid, divId) {
    var pull_down = "prev_next" + divId;
    document.getElementById(pull_down).innerHTML = '<center>Loading....</center>';
    x_get_prev_next_user(oid, divId, fill_div);
}
// END Functions for  the user's photo stream
function confirm_network(result){
    
}
function add_network_js(userID, imageID){
   imageID.src="/images/layout/request_made.GIF"; 
   x_add_network(userID, confirm_network);
}
function get_editable_objects_js(userId,page_num,theImage, el1, q_type, el2) {

    var elem1 = document.getElementById(el1);
    var elem2 = document.getElementById(el2);

    var c7=readCookie('editables_'+userId+'_7');

    var html = "<tr><td><b>&nbsp;<b></td></tr>";
    var count;
    for (count=1;count<15;count++) 
    {
        html=html+"<tr><td>&nbsp;</td></tr>";
    }
    html = html + "</table>";
    if ( elem1.style.display == "none" && page_num <=0) {
      
            if(q_type==7){
                page_num=c7;
            }

      theImage.src = "/images/layout/collapse.gif";
      elem1.style.display = "block";
      elem2.innerHTML = "Hide Editable Objects ";
      document.getElementById(el1).innerHTML ="<table><tr><td>LOADING..."+html;
      x_get_editable_objects(userId, page_num, el1, q_type, el2, fill_div);
      var c_type="editables_" + userId + "_" + q_type;
      createCookie(c_type, page_num, 10);
    }
    else if(page_num >=0){
      document.getElementById(el1).innerHTML =
'<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' +
        '</td></tr><tr><td align="left" height=18 valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';

      x_get_editable_objects(userId, page_num, el1, q_type, el2, fill_div);
      var c_type="editables_" + userId + "_" + q_type;
      createCookie(c_type, page_num, 10);
    }
    else {
        elem1.style.display = "none";
        theImage.src = "/images/layout/expand.gif";
        elem2.innerHTML = "Show Editable Objects ";
    var c_type="editables_" + userId + "_" + q_type;
    createCookie(c_type, page_num, 0);
    }    
}
function get_attachments_js(objId, page_num, theImage, el1, q_type, el2, userId, isElf, authId) {

  var elem1 = document.getElementById(el1);
  var reg_obj = /attached_objects_user/;
  var reg_img = /attached_images_user/;

  // If el2 is set, then we are on the user pages, so get the id and the cookies
  if( el2 ) {
    var elem2 = document.getElementById(el2);
    var cook_obj = readCookie('attachments_'+userId+'_' + q_type);
    var cook_img = readCookie('attachments_'+userId+'_' + q_type);
  }
  if ( elem1.style.display == "none" && page_num <=0) {

    if(q_type.match(reg_obj)) { page_num = cook_obj; }
    if(q_type.match(reg_img)) { page_num = cook_img; }

    elem1.style.display = "block";
    if( theImage ) { document.getElementById(theImage).src = "/images/layout/collapse.gif"; }
    if( q_type.match(reg_obj) )      { elem2.innerHTML = "Hide Attached Objects"; } 
    else if( q_type.match(reg_img) ) { elem2.innerHTML = "Hide Attached Photos"; }
    var c_type="attachments_" + userId + "_" + q_type;
    createCookie(c_type, page_num, 10);
    x_get_attachments(objId, page_num, el1, q_type, el2, userId, isElf, authId, fill_div);
  }
  else if(page_num >=0) {
    var c_type="attachments_" + userId + "_" + q_type;
    createCookie(c_type, page_num, 10);
    x_get_attachments(objId, page_num, el1, q_type, el2, userId, isElf, authId, fill_div);
  }
  else {
    elem1.style.display = "none";
    if( theImage ) { document.getElementById(theImage).src = "/images/layout/expand.gif"; }
    if( q_type.match(reg_obj) )      { elem2.innerHTML = "Show Attached Objects"; }
    else if( q_type.match(reg_img) ) { elem2.innerHTML = "Show Attached Photos"; }
    var c_type="attachments_" + userId + "_" + q_type;
    createCookie(c_type, page_num, 0);
  }    
}

function get_activity_messages_js(userId, page_num, theImage, el1, el2) {

  var elem1 = document.getElementById(el1);
  var elem2 = document.getElementById(el2);
  var cook = readCookie('messages_activity_' + userId);

  if ( elem1.style.display == "none" && page_num <=0 ) {
    page_num = cook;
    if( theImage ) { document.getElementById(theImage).src = "/images/layout/collapse.gif"; }
    elem1.style.display = "block";
    elem2.innerHTML = "Hide Messages";
    document.getElementById(el1).innerHTML ='<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' + '</td></tr><tr><td align="left" valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';
    x_get_activity_messages_ajax(userId, page_num, el1, el2, fill_div);
    var c_type="messages_activity_" + userId;
    createCookie(c_type, page_num, 10);
  }
  else if( page_num >=0 ) {
    document.getElementById(el1).innerHTML ='<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' + '</td></tr><tr><td align="left" height=40 valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';
    x_get_activity_messages_ajax(userId, page_num, el1, el2, fill_div);
    var c_type="messages_activity_" + userId;
    createCookie(c_type, page_num, 10);
  }
  else {
    if( theImage ) { document.getElementById(theImage).src = "/images/layout/expand.gif"; }
    elem1.style.display = "none";
    elem2.innerHTML = "Show Messages";
    var c_type="messages_activity_" + userId;
    createCookie(c_type, page_num, 0);
  }
}

function get_activities_attend_js(userId, page_num, theImage, el1, el2) {

  var elem1 = document.getElementById(el1);
  var elem2 = document.getElementById(el2);
  var cook = readCookie('messages_activity_attend_' + userId);

  if ( elem1.style.display == "none" && page_num <=0 ) {
    page_num = cook;
    if( theImage ) { document.getElementById(theImage).src = "/images/layout/collapse.gif"; }
    elem1.style.display = "block";
    elem2.innerHTML = "Hide Messages";
    document.getElementById(el1).innerHTML ='<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' + '</td></tr><tr><td align="left" valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';
    x_get_activities_attend_ajax(userId, page_num, el1, el2, fill_div);
    var c_type="messages_activity_attend_" + userId;
    createCookie(c_type, page_num, 10);
  }
  else if( page_num >=0 ) {
    document.getElementById(el1).innerHTML ='<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' + '</td></tr><tr><td align="left" height=40 valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';
    x_get_activities_attend_ajax(userId, page_num, el1, el2, fill_div);
    var c_type="messages_activity_attend_" + userId;
    createCookie(c_type, page_num, 10);
  }
  else {
    if( theImage ) { document.getElementById(theImage).src = "/images/layout/expand.gif"; }
    elem1.style.display = "none";
    elem2.innerHTML = "Show Messages";
    var c_type="messages_activity_attend_" + userId;
    createCookie(c_type, page_num, 0);
  }
}

function get_messages_js(userId, page_num, theImage, el1, q_type, el2) {

  var elem1 = document.getElementById(el1);
  var elem2 = document.getElementById(el2);

  var reg_me      = /messages_i_posted/;
  var reg_others  = /messages_others_posted/;
  var reg_replies = /replies_to_my_messages/;

  var cook_me      = readCookie('messages_' + userId + '_messages_i_posted');
  var cook_others  = readCookie('messages_' + userId + '_messages_others_posted');
  var cook_replies = readCookie('messages_' + userId + '_replies_to_my_messages');

  if ( elem1.style.display == "none" && page_num <=0 ) {
      
    if(q_type.match(reg_me))      { page_num = cook_me; }
    if(q_type.match(reg_others))  { page_num = cook_others; }
    if(q_type.match(reg_replies)) { page_num = cook_replies; }

    if( theImage ) { document.getElementById(theImage).src = "/images/layout/collapse.gif"; }
    elem1.style.display = "block";
    elem2.innerHTML = "Hide Messages";
    document.getElementById(el1).innerHTML ='<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' + '</td></tr><tr><td align="left" valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';
    x_get_messages_ajax(userId, page_num, el1, q_type, el2, fill_div);
    var c_type="messages_" + userId + "_" + q_type;
    createCookie(c_type, page_num, 10);
  }
  else if( page_num >=0 ) {
    document.getElementById(el1).innerHTML ='<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' + '</td></tr><tr><td align="left" height=40 valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';
    x_get_messages_ajax(userId, page_num, el1, q_type, el2, fill_div);
    var c_type="messages_" + userId + "_" + q_type;
    createCookie(c_type, page_num, 10);
  }
  else {
    if( theImage ) { document.getElementById(theImage).src = "/images/layout/expand.gif"; }
    elem1.style.display = "none";
    elem2.innerHTML = "Show Messages";
    var c_type="messages_" + userId + "_" + q_type;
    createCookie(c_type, page_num, 0);
  }    
}

function get_reviews_js(userId, page_num, theImage, el1, q_type, el2) {

  var elem1 = document.getElementById(el1);
  var elem2 = document.getElementById(el2);
  var reg_me      = /reviews_i_posted/;
  var reg_others  = /reviews_others_posted/;

  var cook_me = readCookie('reviews_' + userId + '_reviews_i_posted');
  var cook_others = readCookie('reviews_' + userId + '_reviews_others_posted');

  if ( elem1.style.display == "none" && page_num <=0 ) {

    if(q_type.match(reg_me))      { page_num = cook_me; }
    if(q_type.match(reg_others))  { page_num = cook_others; }

    if( theImage ) { document.getElementById(theImage).src = "/images/layout/collapse.gif"; }
    elem1.style.display = "block";
    elem2.innerHTML = "Hide Reviews";
    document.getElementById(el1).innerHTML ='<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' + '</td></tr><tr><td align="left" valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';
    x_get_reviews_ajax(userId, page_num, el1, q_type, el2, fill_div);
    var c_type="reviews_" + userId + "_reviews_i_posted";
    createCookie(c_type, page_num, 10);
  }
  else if( page_num >=0 ) {
    document.getElementById(el1).innerHTML ='<table class=ajax_messages_table><tr><td valign="top" colspan=3>Loading...' + '</td></tr><tr><td align="left" height=40 valign="top"><span class=pagertextgray>Prev</span></td><td>&nbsp;</td><td align="right" valign="top"><span class=pagertextgray>Next</span></td></table>';
    x_get_reviews_ajax(userId, page_num, el1, q_type, el2, fill_div);
    var c_type="reviews_" + userId + "_reviews_i_posted";
    createCookie(c_type, page_num, 10);
  }
  else {
    if( theImage ) { document.getElementById(theImage).src = "/images/layout/expand.gif"; }
    elem1.style.display = "none";
    elem2.innerHTML = "Show Reviews";
    var c_type="reviews_" + userId + "_reviews_i_posted";
    createCookie(c_type, page_num, 0);
  }
}


function kill_messages_js(){
    document.getElementById(70).innerHTML = "";
}
function readCookie(name)
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++)
    {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function createCookie(name, value, minutes)
{
    if (minutes)
    {
        var date = new Date();
        date.setTime(date.getTime()+(minutes*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else{ var expires = "; expires=Thu, 01-Jan-1970 00:00:01 GMT"; var value="";}
    document.cookie = name+"="+value+expires+"; path=/";
}
// END Functions for getting the user names on the object_admin_form
// Functions for getting the help messages and finding the primary images
function get_help_js(divId, helpId){
    var elem = document.getElementById(divId);

    if ( elem.style.display == "none" ) {
       elem.innerHTML = '<center>Loading....</center>';
       elem.style.display = "block";
       relocate_elem(divId);
    }

    x_get_help(divId, helpId, check_handle_help);
}
function help_find_img_js(divId, page, formId){

    // Grab the text box data
    var input = document.getElementById("ajax_object_name").value;

    // Grab the search mine only check box value
    var mine_only = document.getElementById("search_mine_only").checked;

    // Grab the sort by time check box value
    var sort_type="qual";
    if( document.getElementById("new").checked ) {
      var sort_type="new";
    }
    else if( document.getElementById("old").checked ) {
      var sort_type="old";
    }

    // Grab the search mine only check box value
    var elem2 = document.getElementById("search_child_only");
    if( elem2 ) { var child_only = elem2.checked; }

    // Grab the user_id
    var user_id = document.object_attributes.elements['user_id'].value;
    // Grab the object_id
    var object_id = document.object_attributes.elements['object_id'].value;

    // Grab the div by id and store it
    var elem = document.getElementById(divId);
    if ( elem.style.display == "none" ) {
        elem.innerHTML = '<center>Loading....</center>';
        elem.style.display = "block";
    }

    x_help_find_img(divId, input, formId, mine_only, sort_type, user_id, child_only, object_id, page, check_handle_help);
}
function check_handle_help(result) {
    var elem = document.getElementById( result[0] );
    var str = result[1];
    if( result[0] == 333 ) {
      str += "<br><center><span class='ajax_link' style='font-weight: bold;' onClick='javascript:close_div(222)'>Close</span></center>";
    }
    else if( result[0] == 555 ) {
      str += "<br><center><span class='ajax_link' style='font-weight: bold;' onClick='document.getElementById(\"inline_search_div\").style.display = \"none\"; return false;'>Close</span></center>";
    }
    else {
      str += "<br><center><span class='ajax_link' style='font-weight: bold;' onClick='javascript:close_div("+result[0]+")'>Close</span></center>";
    }
    if( result[0] == 111171263) { // THIS IS A SPECIAL CASE FOR THE POSTING GUIDLINES BECAUSE THEY ARE AT THE BOTTOM
      str += "<a name='bottom'></a><img src='/images/layout/clearpixel.gif' onLoad='drop_down();' width='10' height='10' />";
    }
    elem.innerHTML = str;
}
function drop_down(){ 
  document.location.href='#bottom'; 
}
function close_div(theDiv){
    del = document.getElementById('shade');
    if( del) {
        del.style.display = "none";
    }
    var elem1 = document.getElementById(theDiv);
    elem1.style.display = "none";
}
function fill_box(textBox, val){

    // Can't figure out how to pass the actual form name, so
    // I am making a mapping here using numbers.  This is
    // So that i can use this function for both the edit_object
    // and create_object pages
    var elem1;
    if ( textBox == 1 ) {
      elem1 = document.getElementById("object_attributes");
      elem1.elements['primary_photo'].value = val;
    }
    else if ( textBox == 2 ) {
      elem1 = document.getElementById("image_id");
      elem1.value = val;
    }
}
// END Functions for getting the help messages
// Functions for the voting interface
function count_vote (num, oid, uid) {
  document.getElementById('already_voted').innerHTML = "<span style='font-size: 9px;'>Counting...</span>";
  x_submit_ajax_vote(num, oid, uid, confirm_it);
}
function confirm_it(result) {
  if( result[0] < 11 ) {
    document.getElementById('already_voted').innerHTML = result[0] + "/10 [<span style='cursor: pointer; font-size: 9px;' onclick='count_vote(99, "+ result[4] +", "+ result[5] +");'>X</span>]";
  }
  else {
    document.getElementById('already_voted').innerHTML = "";
  }
  document.getElementById('score').innerHTML = result[1];
  document.getElementById('current-box').style.width = result[2];
  document.getElementById('num_votes').innerHTML = result[3];
}
// END Functions for the voting interface
// Functions for the meta_voting interface
function count_meta_vote (num, oid, uid) {
  x_submit_ajax_meta_vote(num, oid, uid, meta_confirm_it);
}
function meta_confirm_it(result) {
  if ( result[0] < 11 ) {
    document.getElementById('meta_vote_reg').innerHTML="You voted " + result[0] + " stars - <a style='cursor: pointer; font-size: 9px;' onclick='count_meta_vote(99, "+ result[2] +", "+ result[3] +");'>Delete</a>";
    document.getElementById('current-rating').style.width = result[1];
    document.getElementById('meta_num_votes').innerHTML= result[4];
  }
  else {
 document.getElementById('meta_vote_reg').innerHTML="";
    document.getElementById('current-rating').style.width = result[1];
    document.getElementById('meta_num_votes').innerHTML= result[4];
  }
}
// END Functions for the meta_voting interface
//Functions for getting the names on the attach_form
function get_attach_list_js(objectId, uid, page, frmId, divId) {
    document.getElementById(divId).style.display = "block";
    frm = document.getElementById(frmId);

    var input = frm.object_name.value;
    // Grab the sort by time check box value
    var sort_type="old";
    if(frm.sort_new.checked) sort_type="new";
    if(frm.sort_qual.checked) sort_type="qual";
    
    // Grab the My objects only check box value
    var mine_only = frm.search_mine_only.checked;

    // Grab the type_id from the select box
    var obj_type = frm.object_type.value;

    x_get_attach_list(objectId, input, uid, sort_type, mine_only, obj_type, frmId, divId, page, fill_div);
}
// END Functions for getting the user names on the attach_form
// Function for adding an inline image to the text area box
function get_inline_img_js(divId, page, formId){

    // Grab the text box data
    var input = document.getElementById("inline_object_name").value;

    // Grab the search mine only check box value
    var mine_only = document.getElementById("inline_search_mine").checked;

    // Grab the sort by time check box value
    var sort_type="qual";
    if( document.getElementById("inline_new").checked ) {
      var sort_type="new";
    }
    else if( document.getElementById("inline_old").checked ) {
      var sort_type="old";
    }

    // Grab the search children only check box
    var elem2 = document.getElementById("inline_child_only");
    if( elem2 ) {
      var child_only = elem2.checked;
    }
    else {
      var child_only = "false";
    }

    // Grab the user_id
    var user_id = document.object_attributes.elements['user_id'].value;
    // Grab the object_id
    var oid = document.object_attributes.elements['object_id'].value;

    // Grab the div by id and store it
    var elem = document.getElementById(divId);
    if ( elem.style.display == "none" ) {
        elem.innerHTML = '<center>Loading....</center>';
        elem.style.display = "block";
    }

    x_get_inline_img(divId, input, formId, mine_only, sort_type, user_id, child_only, oid, page, check_handle_help);
}
// GLOBAL FUNCTION FOR GREYING OUT STUFF
function grayOut(mode) {
    del = document.getElementById('shade');
    if (!del) return;
        var px=10;
        
    if (mode == 'block') {
        del.style.width=document.body.scrollWidth+'px';
        del.style.height=document.body.scrollHeight+'px';
    }
    del.style.display = mode;
}
// Function for inserting inline images
var globalFieldId = 1;
function setGlobalId( id ) { globalFieldId = id; }
function relocate_inline_finder(divId, desiredLocID){
  var elem = document.getElementById(divId);
  var elemAnchor = document.getElementById(desiredLocID);
  var currPos = getElementPos(elemAnchor);
  //alert("currPos.x = " + currPos.x);
  //alert("currPos.y = " + currPos.y);
  setElementPos(elem, currPos);
  if ( elem.style.display == "none" ) {
     elem.style.display = "block";
  }
}

function just_inline_it() {

    // Grab the sort by time radio value
    var elem1 = document.getElementById("image_id");
    var image_id  = elem1.value;

    // Grab the image size radio value
    var elem2 = document.getElementById("inline_medium");
    var elem3 = document.getElementById("inline_thumb");
    var size = "small";
    if( elem2.checked ) {
      size = "medium";
    }
    else if( elem3.checked ) {
      size = "thumb";
    }

    // Grab the align radio value
    var elem4 = document.getElementById("inline_center");
    var elem5 = document.getElementById("inline_right");
    var align = "alignleft";
    if( elem4.checked ) {
      align = "aligncenter";
    }
    else if( elem5.checked ) {
      align = "alignright";
    }

    // Grab the caption text box data
    var elem6 = document.getElementById("inline_caption");
    var caption = elem6.value;

    // Create the string to drop into the text area
    var str = "[img:" + image_id + ":" + align + ":" + size + ":" + caption + "]";
    insertTags('', '', str, eval("document.object_attributes.object_body_ft_" + globalFieldId) );
}
// Functions for checking element position on the page
// Used for making sure that the drop down divs don't run off the page
function relocate_elem(divId) {

  var winWidth = getWinWidth();
  var elem = document.getElementById(divId);
  var currPos = getElementPos(elem);
  var elemWidth = elem.offsetWidth;
  //alert("currPos.x = " + currPos.x);
  var rightSide = elemWidth + currPos.x;
  var newPos = {x: 0, y: 0};
  if( rightSide > winWidth ) {
    newPos.x = winWidth - elemWidth;
  }
  else {
    newPos.x = currPos.x;
  }
  newPos.y = currPos.y;
  //alert("newPos.x = " + newPos.x);
  //alert("newPos.y = " + newPos.y);
  setElementPos(elem, newPos);
}
function getWinWidth()
{
    if (window.innerWidth) return window.innerWidth - 18;
    else if (document.documentElement && document.documentElement.clientWidth) 
        return document.documentElement.clientWidth;
    else if (document.body && document.body.clientWidth) 
        return document.body.clientWidth;
    else if (document.body && document.body.parentNode && document.body.parentNode.clientWidth) 
        return document.body.parentNode.clientWidth;
}
function getElementPos(element)
{
  var coords = {x: 0, y: 0}; 
  do { 
    coords.x += element.offsetLeft; 
    coords.y += element.offsetTop; 
  } 
  while ((element = element.offsetParent)); 
  return coords; 
}
function setElementPos(element, coords)
{
    element.style.left = coords.x+"px";
    element.style.top = coords.y+"px";
}
function URLEncode( plaintext )
{
    // The Javascript escape and unescape functions do not correspond
    // with what browsers actually do...
    var SAFECHARS = "0123456789" +                  // Numeric
                    "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +  // Alphabetic
                    "abcdefghijklmnopqrstuvwxyz" +
                    "-_.!~*'()";                    // RFC2396 Mark characters
    var HEX = "0123456789ABCDEF";

    var encoded = "";
    for (var i = 0; i < plaintext.length; i++ ) {
        var ch = plaintext.charAt(i);
        if (ch == " ") {
            encoded += "+";             // x-www-urlencoded, rather than %20
        } else if (SAFECHARS.indexOf(ch) != -1) {
            encoded += ch;
        } else {
            var charCode = ch.charCodeAt(0);
            if (charCode > 255) {
                alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
                          "(URL encoding only supports 8-bit characters.)\n" +
                          "A space (+) will be substituted." );
                encoded += "+";
            } else {
                encoded += "%";
                encoded += HEX.charAt((charCode >> 4) & 0xF);
                encoded += HEX.charAt(charCode & 0xF);
            }
        }
    } // for

    return encoded;
};

function URLDecode( encoded )
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 

   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
       if (ch == "+") {
           plaintext += " ";
           i++;
       } else if (ch == "%") {
            if (i < (encoded.length-2) 
                    && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
                    && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
                plaintext += unescape( encoded.substr(i,3) );
                i += 3;
            } else {
                alert( 'Bad escape combination near ...' + encoded.substr(i) );
                plaintext += "%[ERROR]";
                i++;
            }
        } else {
           plaintext += ch;
           i++;
        }
    } // while

   return plaintext;
};
