function create_roi($image_pid, $options, $workflow_id)
{
    global $user;
    if (Workflow_Users::doesWorkflowHaveUserName($workflow_id, $user->name) && Workflow_Permission::doesWorkflowHavePermission($workflow_id, "canAnalyzeSpecimen")) {
        global $base_url;
        list($true_y1, $true_x1, $true_height, $true_width, $roi_type) = explode(":", $options);
        if ($roi_type == "Annotation") {
            $roi_type = "Annotation/Other";
        }
        $roiMetadata_base_url = $base_url;
        $imageMetadata_record = AP_Image::getimageMetadata_record($image_pid);
        $parent_image_height = $imageMetadata_record["h"];
        //To Be Removed
        $parent_image_width = $imageMetadata_record["w"];
        //To Be Removed
        $sourceURL = $imageMetadata_record['URL'];
        //To Be Removed//The ROI sourceURL is the ap-image URL
        $parent_image_display_width = 650;
        //To Be Removed
        $parent_image_display_height = $parent_image_height * $parent_image_display_width / $parent_image_width;
        //To Be Removed
        $rft_id = $imageMetadata_record['rft_id'];
        $roiURL = getDjatokaURL($rft_id, 'getRegion', '100', $true_y1, $true_x1, $true_height, $true_width, '', '');
        $new_roi = new AP_ROI();
        $new_roi->roiMetadata_base_url = $roiMetadata_base_url;
        $status = $new_roi->createROIObject($image_pid, $sourceURL, $roiURL, $roi_type, $true_x1, $true_y1, $true_width, $true_height, $parent_image_width, $parent_image_height, $parent_image_display_width, $parent_image_display_height, "");
        $roi_pid = $new_roi->pid;
        $roiMetadata_record = AP_ROI::getroiMetadata_record($roi_pid);
        $changedHeight = thumbHeightReset($roiMetadata_record['h'], $roiMetadata_record['w']);
        if (!$changedHeight) {
            $roi_thumb_url = getDjatokaURL($roiMetadata_record['sourceURL'], 'getRegion', '100', $roiMetadata_record['y'], $roiMetadata_record['x'], $roiMetadata_record['h'], $roiMetadata_record['w'], '78', '0');
        } else {
            $roi_thumb_url = getDjatokaURL($roiMetadata_record['sourceURL'], 'getRegion', '100', $roiMetadata_record['y'], $roiMetadata_record['x'], $changedHeight, $roiMetadata_record['w'], '78', '0');
        }
        $status_dom = AP_ROI::getROIStatusDom($roi_pid);
        $transcribed_status = $status_dom->getElementsByTagName("transcribedStatus")->item(0)->nodeValue;
        $parsed_status = $status_dom->getElementsByTagName("parsedL1Status")->item(0)->nodeValue;
        if ($transcribed_status == "") {
            $transcribed_status = "Undefined";
        }
        if ($parsed_status == "") {
            $parsed_status = "Undefined";
        }
        $html = generate_roi_html($roi_pid, $roi_thumb_url, $roiMetadata_record, $transcribed_status, $parsed_status, $workflow_id);
        $returnHTML['html'] = $html;
        $returnHTML['pid'] = $roi_pid;
        $returnHTML['roi_queue_html'] = add_roi_to_queue($image_pid, $roi_pid, $workflow_id);
        if ($status == true) {
            //Echo JQuery function to add HTML for new ROI
        }
    } else {
        header('HTTP/1.1 401 Unauthorized');
        $returnHTML .= "Sorry! You do not have permission for this operation";
    }
    echo json_encode($returnHTML);
}
function get_transcribe_content($roi_pid, $size, $workflow_id)
{
    global $user;
    list($height, $width) = explode(":", $size);
    $returnJSON = "";
    if (Workflow_Users::doesWorkflowHaveUserName($workflow_id, $user->name) && Workflow_Permission::doesWorkflowHavePermission($workflow_id, "canTranscribe")) {
        $roiMetadata_record = AP_ROI::getroiMetadata_record($roi_pid);
        $roiURL = $roiMetadata_record['roiURL'];
        if ($height > $roiMetadata_record['h'] / $roiMetadata_record['w'] * $width) {
            $roi_image_url = scaleDjatokaURL($roiURL, $width, '0');
            //$roi_image_url = getDjatokaURL($roiMetadata_record['sourceURL'], 'getRegion', '100', $roiMetadata_record['y'], $roiMetadata_record['x'], $roiMetadata_record['h'], $roiMetadata_record['w'], $width, '0');
            $returnJSON['image_html'] = "<img class='transcribe_roi_image' src='{$roi_image_url}' />";
        } else {
            $roi_image_url = scaleDjatokaURL($roiURL, '0', $height);
            //$roi_image_url = getDjatokaURL($roiMetadata_record['sourceURL'], 'getRegion', '100', $roiMetadata_record['y'], $roiMetadata_record['x'], $roiMetadata_record['h'], $roiMetadata_record['w'], '0', $height);
            $returnJSON['image_html'] = "<img class='transcribe_roi_image' src='{$roi_image_url}' />";
        }
        $roi_obj = new roiHandler($roi_pid);
        $returnJSON['gocr'] = "";
        $returnJSON['ocrad'] = "";
        $returnJSON['ocropus'] = "";
        $returnJSON['text'] = "";
        if ($roi_obj->ifExist("GOCR")) {
            $returnJSON['gocr'] = $roi_obj->getDatastream("GOCR");
        }
        if ($roi_obj->ifExist("ocrad")) {
            $returnJSON['ocrad'] = $roi_obj->getDatastream("ocrad");
        }
        if ($roi_obj->ifExist("OCRopus")) {
            $returnJSON['ocropus'] = $roi_obj->getDatastream("OCRopus");
        }
        if ($roi_obj->ifExist("Text")) {
            $returnJSON['text'] = $roi_obj->getDatastream("Text");
        }
    } else {
        echo "Sorry! You do not have permission for this operation";
    }
    echo json_encode($returnJSON);
}
function specimenMetadata_details_content($roi_pid = null)
{
    global $base_url;
    $fedora_base_url = variable_get("fedora_base_url", "http://localhost:8080/fedora");
    $html = '';
    $html .= '<div id="specimenMetadata_details_content">' . "\n";
    if ($roi_pid != null && $roi_pid != "0") {
        $roi = new AP_ROI();
        $image_pid = $roi->get_image_pid($roi_pid);
        $sp_pid = AP_Image::get_specimen_pid($image_pid);
        $roiMetadata_record = $roi->getroiMetadata_record($roi_pid);
        $roiURL = $roiMetadata_record['roiURL'];
        $djatoka_url = scaleDjatokaURL($roiURL, '300', '0');
        $html .= "<h3>Details: {$roi_pid}</h3>";
        $html .= "<table><tr><td valign='top' width='300'>";
        $html .= "<img src='{$djatoka_url}'/></td>";
        $html .= "<td>Specimen: {$sp_pid}<br/>Image: {$image_pid}<br/>ROI: {$roi_pid}<br/>Datastream: specimenMetadata<br/><br/>";
        $text = shell_exec("curl -H - XGET {$fedora_base_url}/get/{$roi_pid}/specimenMetadata");
        $check = strpos($text, "404 Not Found");
        if ($check === FALSE) {
            $specimenMetadata_xml_url = $server_base . '/drupal/modules/apiary_project/workflow/include/specimenMetadata_xml.php?pid=' . $roi_pid;
            $html .= '<textarea style="width:500px; height:200px">' . $text . '</textarea></td>';
            $html .= "</tr></table>";
        } else {
            $html .= "No specimenMetadata found";
        }
    } else {
    }
    $html .= '</div><!-- specimenMetadata_details_content -->' . "\n";
    echo $html;
}
function get_parsing_content($roi_pid, $size, $parse_level, $workflow_id)
{
    global $user;
    list($height, $width) = explode(":", $size);
    if (Workflow_Users::doesWorkflowHaveUserName($workflow_id, $user->name) && Workflow_Permission::doesWorkflowHavePermission($workflow_id, $parse_level)) {
        $roiMetadata_record = AP_ROI::getroiMetadata_record($roi_pid);
        $roiURL = $roiMetadata_record['roiURL'];
        if ($height > $roiMetadata_record['h'] / $roiMetadata_record['w'] * $width) {
            $roi_image_url = scaleDjatokaURL($roiURL, $width, '0');
            $image_html = "<img class='transcribe_roi_image' src='{$roi_image_url}' />";
        } else {
            $roi_image_url = scaleDjatokaURL($roiURL, '0', $height);
            $image_html = "<img class='transcribe_roi_image' src='{$roi_image_url}' />";
        }
        $roi_obj = new roiHandler($roi_pid);
        $returnJSON['text'] = "";
        if ($roi_obj->ifExist("Text")) {
            $text = nl2br($roi_obj->getDatastream("Text"));
        }
    } else {
        return false;
    }
    return array($image_html, $text);
}
function get_right_click_list($pid)
{
    $ap_roi = new AP_ROI();
    $roiMetadata_record = $ap_roi->getroiMetadata_record($pid);
    $roi_type_temp = $roiMetadata_record['roiType'];
    $roi_list = getROItypeList();
    $roi_type = '';
    switch ($roi_type_temp) {
        case $roi_list[0]:
            $roi_type = "primary";
            break;
        case $roi_list[1]:
            $roi_type = "determination";
            break;
        case $roi_list[2]:
            $roi_type = "barcode";
            break;
        case $roi_list[3]:
            $roi_type = "type";
            break;
        case $roi_list[4]:
            $roi_type = "annotation";
            break;
    }
    //Context Menu List
    print '<ul id="apiary_context_menu" class="jeegoocontext cm_blue">';
    //Who & When
    print '<li>Who & When<ul>';
    $whoObj = db_query("select * from {apiary_project} where parse_level=1 AND (ui_categories='who' OR ui_categories='when')");
    while ($res = db_fetch_object($whoObj)) {
        if (stristr($res->roi_association, $roi_type) !== false) {
            print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>';
        }
    }
    print "</ul></li>";
    //What
    print '<li>What<ul>';
    $whatObj = db_query("select * from {apiary_project} where parse_level=1 AND ui_categories='what'");
    while ($res = db_fetch_object($whatObj)) {
        if (stristr($res->roi_association, $roi_type) !== false) {
            print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>';
        }
    }
    print "</ul></li>";
    //Where
    print '<li>Where</a><ul>';
    $whereObj = db_query("select * from {apiary_project} where parse_level=1 AND ui_categories='where'");
    while ($res = db_fetch_object($whereObj)) {
        if (stristr($res->roi_association, $roi_type) !== false) {
            print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>';
        }
    }
    print "</ul></li>";
    print '</ul>';
}