
var savedAlertMessage;

////////////////////////////////////////////////////////////////////////////////

/**
 * Performs an AJAX call to the server and then returns a response in JSON format.
 */
function ajax_json(actionURL, parameters, callback, asynchronous) {
    // adjust the actionURL
    hideAlertMessage();
    actionURL = "/ocs/servlet/" + actionURL;
    asynchronous = (asynchronous != null) ? asynchronous : true;
    var handlerFunc = function(t) {
        document.documentElement.style.cursor = 'auto';
        var data;
        var responseText = t.responseText;
        if (responseText != null) {
            data = eval("(" + responseText + ")");
        }
        if (data.alertMessage != null) {
            saveAlertMessage(data.alertMessage);
        }
        showAlertMessage();
        callback(data);
    }
    var options = {
        method : 'post',
        asynchronous : asynchronous,
        onComplete : handlerFunc,
        onFailure : errorAlert,
        on500 : errorAlert
    };
    if (parameters) options.postBody = parameters;
    new Ajax.Request(actionURL, options);
}

/* ### control event handlers ### */

function sortFolderContent(sortBy) {
    var nodeId = tree.getSelectedItemId();
  	contentController.setSortBy(sortBy);
    refreshContentAreas(nodeId);
}

function filterFolder() {
    var nodeId = tree.getSelectedItemId();
	var checkboxes = document.getElementsByName("filterTags");
    var checkedTags = new Array();
    var checkedIndex = 0;
    for (index = 0; index < checkboxes.length; index++) {
        if (checkboxes[index].checked == true) {
            checkedTags[checkedIndex] = checkboxes[index].value;
            checkedIndex++;
        }
    }
	if (checkedIndex == 0) {
		saveAlertMessage("Please select tags to filter by.");
		showAlertMessage();
		return;
	}
	contentController.setFilterTags(checkedTags);
    document.getElementById("filter_toggle").innerHTML = 'On';
    refreshContentAreas(nodeId);
}

function unfilterFolder() {
    var nodeId = tree.getSelectedItemId();
	var checkboxes = document.getElementsByName("filterTags");
    for (index = 0; index < checkboxes.length; index++) {
        checkboxes[index].checked == false;
    }
	contentController.setFilterTags('');
    document.getElementById("filter_toggle").innerHTML = 'Off';
    refreshContentAreas(nodeId);
}

// Functions for My Desktop tree control.


function editFolderDescription() {
    var folderDesc = document.getElementById("folderDescription");
    if (folderDesc != null) {
        document.getElementById("folderDescription").readOnly = false;
        try {
            document.getElementById("folderDescription").focus();
        }
        catch (e) {
            log.error(e);
        }
    }
    showEditFolderDescriptionButtons(true);
}

function showEditFolderDescriptionButtons(show) {
    if (show) {
        showElement('save_folder_description');
        showElement('cancel_folder_description');
        hideElement('edit_folder_description');
        hideElement('edit_folder_description_disabled');
    } else {
        hideElement('save_folder_description');
        hideElement('cancel_folder_description');
        if (myDesktopController.getSelectedNodeId() == '1') {
            hideElement('edit_folder_description');
            showElement('edit_folder_description_disabled');
        } else {
            hideElement('edit_folder_description_disabled');
            showElement('edit_folder_description');
        }
    }
}

function cancelFolderDescription() {
    showEditFolderDescriptionButtons(false);
	var params = {
        itemId : tree.getUserData(tree.getSelectedItemId(), "secureId"),
        itemType : tree.getUserData(tree.getSelectedItemId(), "type")
    };
    ajax_update('description_div', 'casting/tree/getItemDescription', encode(params), true);
}

function saveFolderDescription() {
    showEditFolderDescriptionButtons(false);
	var params = {
        itemId : tree.getUserData(tree.getSelectedItemId(), "secureId"),
        itemType : tree.getUserData(tree.getSelectedItemId(), "type"),
    	description : document.getElementById("folderDescription").value
    };
    ajax_update('description_div', 'casting/tree/saveItemDescription', encode(params), true);
}

//This method deprecate viewResumeSlideshow in Casting Site
function viewMediaSlideshow(resumeId) {	
    var name = 'Slideshow' + new Date().getTime();
    window.open('',name,'width=730,height=650');
	document.slideshowForm.resumeId.value = resumeId;
    document.slideshowForm.action = "/ocs/media/public/slideshow/getMediaForResume";
    document.slideshowForm.method="POST";
    document.slideshowForm.target=name;
    document.slideshowForm.submit();
}

function viewResumeSlideshow(resumeId) {
    clearAlertMessage();
    var name = 'Slideshow' + new Date().getTime();
    window.open('',name,'width=730,height=600');
	document.slideshowForm.resumeId.value = resumeId;
    document.slideshowForm.action = "/ocs/servlet/casting/slideshow/getHeadshotsForResume";
    document.slideshowForm.method="POST";
    document.slideshowForm.target=name;
    document.slideshowForm.submit();
}

function viewResumeSlideshowType(resumeId, mediaType) {
	document.slideshowForm.mediaType.value=mediaType;
    clearAlertMessage();
    var name = 'Slideshow' + new Date().getTime();
    window.open('',name,'width=730,height=600');
	document.slideshowForm.resumeId.value = resumeId;
	document.slideshowForm.mediaType.value = mediaType;
    document.slideshowForm.action = "/ocs/servlet/casting/slideshow/getMediaForResume";
    document.slideshowForm.method="POST";
    document.slideshowForm.target=name;
    document.slideshowForm.submit();
}

function viewItemsSlideshow() {
    var checked = contentController.getSelectedItems();
    if (checked.itemIds.length > 0 && checked.itemTypes.length > 0) {
        clearAlertMessage();
        var name = 'Slideshow' + new Date().getTime();
        window.open('',name,'width=730,height=600');
		document.slideshowForm.itemIds.value = checked.itemIds;
		document.slideshowForm.itemTypes.value = checked.itemTypes;
        document.slideshowForm.action = "/ocs/servlet/casting/slideshow/getHeadshotsForItems";
        document.slideshowForm.method="POST";
        document.slideshowForm.target=name;
        document.slideshowForm.submit();
    } else {
        saveAlertMessage('No items selected.');
        showAlertMessage();
    }
}

function showPrintView() {
    var items = contentController.getSelectedItems();
    if (items.itemIds.length > 0 && items.itemTypes.length > 0) {
        clearAlertMessage();
        var name = 'PrintView' + new Date().getTime();
        window.open('',name,'width=700,height=600,resizable=yes,scrollbars=yes,menubar=yes');
		document.slideshowForm.itemIds.value = items.itemIds;
		document.slideshowForm.itemTypes.value = items.itemTypes;
        document.slideshowForm.action = "/ocs/servlet/casting/folder/showPrintFolderContents";
        document.slideshowForm.method="POST";
        document.slideshowForm.target=name;
        document.slideshowForm.submit();
    } else {
        saveAlertMessage("No items selected for print view.");
        showAlertMessage();
    }
}

function openStation12() {
    clearAlertMessage();
    var name = 'Staion12';
    window.open('',name,'width=1200,height=700,scrollbars=1');
	document.station12Form.action = "/ocs/servlet/casting/director/openStation12";
    document.station12Form.method="POST";
    document.station12Form.target=name;
    document.station12Form.submit();
}

function checkResumeClearance() {
    var checked = contentController.getSelectedItems();
    if (checked.itemIds.length > 0 && checked.itemTypes.length > 0) {
        clearAlertMessage();
	    var name = 'Staion12';
        window.open('',name,'width=1200,height=700,scrollbars=1');
		document.station12Form.itemIds.value = checked.itemIds;
		document.station12Form.itemTypes.value = checked.itemTypes;
		document.station12Form.action = "/ocs/servlet/casting/director/openStation12";
        document.station12Form.method="POST";
        document.station12Form.target=name;
        document.station12Form.submit();
    } else {
        saveAlertMessage("No items selected for Station 12 clearance.");
        showAlertMessage();
    }
}

function viewResumeBookmark(resumeBookmarkId) {
    clearAlertMessage();
    var name = 'ResumePreview' + new Date().getTime();
    window.open('/ocs/servlet/casting/folder/viewResumeBookmark?resumeBookmarkId='+resumeBookmarkId,name,'width=700,height=600,resizable=yes,scrollbars=yes');
}

function viewResumeSummary(resumeId) {
    clearAlertMessage();
    var name = 'ResumePreview' + new Date().getTime();
    window.open('/ocs/servlet/casting/folder/viewResumeSummary?resumeId='+resumeId,name,'width=700,height=600,resizable=yes,scrollbars=yes');
}

function checkCreateStatus(data) {
    searchProcessing.cancel();
    folderNameDialog.hide();
    folderRenameDialog.hide();
    if (data.status == 'success') {
        if (data.refreshId) {
            tree.refreshItem(data.refreshId);
        }
        if (data.itemId) {
            tree.selectItem(data.itemId);
        }
        if (data.refreshContentAreas == 'true') {
            refreshContentAreas();
        }
    } else {
        saveAlertMessage('An error occurred with the last action.');
        showAlertMessage();
    }
}

function setElementClass(id, klass) {
    try {
        $(id).setAttribute("class", klass);
    } catch (e) {};
    try {
        $(id).setAttribute("className", klass);
    } catch (e) {};
}

function showAlertMessage() {
    if (savedAlertMessage != null && savedAlertMessage != '') {
        showElement('alert');
        document.getElementById("alert_message").innerHTML = savedAlertMessage;
    }
}

function saveAlertMessage(msg) {
    savedAlertMessage = msg;
}

function hideAlertMessage() {
    if (savedAlertMessage == null || savedAlertMessage == '') {
        hideElement('alert');
    }
}

function clearAlertMessage() {
	savedAlertMessage = '';
	hideElement('alert');
}
