// function to open the popup window
function referencebrowser_openBrowser(path, fieldName, at_url, fieldRealName)
{
    atrefpopup = window.open(path + '/referencebrowser_popup?fieldName=' + fieldName + '&fieldRealName=' + fieldRealName +'&at_url=' + at_url,'referencebrowser_popup','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=550');
}

// function to return a reference from the popup window back into the widget
function referencebrowser_setReference(widget_id, uid, label, multi)
{
    // differentiate between the single and mulitselect widget
    // since the single widget has an extra label field.
    if (multi==0) {
        element=document.getElementById(widget_id)
        label_element=document.getElementById(widget_id + '_label')
        element.value=uid
        label_element.value=label
     }  else {
         var sortable_id = '#sortable-' + widget_id;

         // check if the item isn't already in the list
         var already = false;
         jQuery(sortable_id).find('input').each(function () {
             if (this.value == uid) already = true;
         })
         if (already) return false;
         
         // add the new reference
         var elemid = widget_id + '-item-' + uid;
         
         jQuery('<li></li>').attr({'id' : elemid}).text(label)
           .append('<input type="hidden"/> ')
           .append('<a><img src="trashcan_icon.png"/></a>')
           .appendTo(sortable_id);

         jQuery('#' + elemid)
           .find('input').attr({
               'name' : widget_id + ':list',
               'value' : uid
               }).end()
           .find('a').click(function () { jQuery('#' + elemid).remove() });
        
         // recreate the sortable list
         jQuery(sortable_id).sortable({'containment' : 'parent'});
     }
}

// function to clear the reference field or remove items
// from the multivalued reference list.
function referencebrowser_removeReference(widget_id, multi)
{
    if (multi) {
        list=document.getElementById(widget_id)
        for (var x=list.length-1; x >= 0; x--) {
          if (list[x].selected) {
            list[x]=null;
          }
        }
        for (var x=0; x < list.length; x++) {
            list[x].selected='selected';
          }        
    } else {
        element=document.getElementById(widget_id);
        label_element=document.getElementById(widget_id + '_label');
        label_element.value = "";
        element.value="";
    }
}


