function jumpToDestination(dest) {
    window.location = dest;
}


function openContentDialog(name, docaction) {
	myForm = dojo.byId('embeddedform_dialog_content');
    myForm.docaction.value = docaction;
    myForm.name.value = name;
    currentVal = dojo.byId('content__'+name).innerHTML;
    dijit.byId('textarea_content').setValue(currentVal);
    dijit.byId('dialog_content').show();
}

function cancelContentDialog() {
    dijit.byId('dialog_content').hide();
}

function submitContentDialog() {
    dojo.byId('content').value = dijit.byId('textarea_content').getValue();  // grab the dijit.Editor content body
    submitAjaxForm('embeddedform_dialog_content', '/content/submit/format/json');
}


function openAnnouncementDialog(id, docaction) {
    if (docaction == 'edit') {
        currentSubj = dojo.byId('announcement_subject__'+id).innerHTML;
        currentVal = dojo.byId('announcement_content__'+id).innerHTML;
        dojo.byId('dialog_announcement_id').value = id;
        dojo.byId('dialog_announcement_docaction').value = docaction;
        dojo.byId('dialog_announcement_subject').value = currentSubj;
        dijit.byId('dialog_announcement_textarea').setValue(currentVal);
    } else {
        dojo.byId('dialog_announcement_id').value = id;
        dojo.byId('dialog_announcement_subject').value = '';
        dijit.byId('dialog_announcement_textarea').setValue('');
    }
    dijit.byId('dialog_announcement').show();
}

function cancelAnnouncementDialog() {
    dijit.byId('dialog_announcement').hide();
}

function submitAnnouncementDialog() {
    dojo.byId('dialog_announcement_content').value = dijit.byId('dialog_announcement_textarea').getValue();  // grab the dijit.Editor content body
    submitAjaxForm('embeddedform_dialog_announcement', '/announcement/submit/format/json');
}


function openScheduleDialog(spid, fordate, docaction) {
    dojo.byId('docaction').value = docaction;
    dojo.byId('sp_id').value = spid;
    dojo.byId('fordate').value = fordate;
    dojo.byId('workingdetails').value = dojo.byId(spid+'__'+fordate).innerHTML;
    dijit.byId('dialog_schedule').show();
}

function cancelScheduleDialog() {
    dijit.byId('dialog_schedule').hide();
}

function submitScheduleDialog() {
    submitAjaxForm('embeddedform_dialog_schedule', '/shift/submit/format/json');
}


function submitAjaxForm(formname, submitto, buttonid) {

    var changeButton = false;

    if (typeof buttonid != 'undefined') {
        changeButton = true;
        origButtonVal = dijit.byId(buttonid).attr('label');
        dijit.byId(buttonid).setLabel('Thanks!');
        dijit.byId(buttonid).setAttribute('disabled', true);
    }
    
    if (dojo.byId(formname)) {
    	// submit the form in the background
    	dojo.xhrPost({
    		url: submitto,
    		form: formname,
    		handleAs: "json",
    		handle: function(data, args) {
    			if(typeof data == "error") {
    				console.warn("error!",args);
    			} else {
    				// show our response
    				var status = data.status;

    				// ---------------------------
    				// alert(status);
    				// ---------------------------

                    switch(status) {

                        case 'OK_UPDATE':
                            responseDiv = data.responsediv;
                            dojo.byId(responseDiv).innerHTML = data.responsemsg;
                            break;

                        case 'OK_UPDATE_MULTI':
                            responseMsgArr = data.responsemsgs;
                            for (keyval in responseMsgArr) {
                                dojo.byId(keyval).innerHTML = responseMsgArr[keyval];
                            }
                            break;

                        case 'OK_CLOSE_DIALOG':
                            dijit.byId(data.dialogname).hide();
                            for (var i in data.updatefield) {
                                dojo.byId(i).innerHTML = data.updatefield[i];
                            }
                            break;

                        case 'OK_CLOSE_DIALOG_AND_REFRESH':
                            dijit.byId(data.dialogname).hide();
                            for (var i in data.updatefield) {
                                dojo.byId(i).innerHTML = data.updatefield[i];
                            }
                            window.location.reload();
                            break;
                            
                        case 'OK_REFRESH':
                            window.location.reload();
                            break;

                        case 'OK_FWD':
                            jumpToDestination(data.destination);
                            break;

                        case 'OK_TRIGGER_SUBMIT':
                            submitAjaxForm(data.formname);
                            break;

                        case 'ERROR_FIELDS':
                            errorMsgArr = data.errormsgs;
                            if (data.responsediv == 'undefined') {
                                // errors are displayed in multiple fields
                                for (keyval in errorMsgArr) {
                                    dojo.byId(keyval).innerHTML = errorMsgArr[keyval];
                                }
                            } else {
                                // errors are displayed in a single field
                                errorDisplayField = data.responsediv;
                                dispErrorMsg = '<b>ATTENTION!</b> &nbsp; The following errors were returned by the form:<br /><br />';
                                for (keyval in errorMsgArr) {
                                    if (errorMsgArr[keyval] != '') {
                                        dispErrorMsg += ' - ' + errorMsgArr[keyval] + "<br />";
                                    }
                                }
                                dojo.byId(errorDisplayField).innerHTML = dispErrorMsg;
                                dojo.byId(errorDisplayField).style.visibility = "visible";
                                dojo.byId(errorDisplayField).style.display = "";
                            }
                            if (data.captchaid == 'undefined') {
                            	// not a captcha input form
                            } else {
                            	dojo.byId('captchainput').value = '';
                            	dojo.byId('captchaid').value = data.captchaid;
                            	dojo.byId('captchaimage').innerHTML = '<img src="/captcha/images/'+data.captchaid+'.png" alt=""/>';                             	
                            }
                            break;

                        default:
                            break;
                    }
    			}
    		}
	   });
    } else {
        alert('Specified form does not exist!');
    }
/*
    if (changeButton) {
        dijit.byId(buttonid).setLabel(origButtonVal);
        dijit.byId(buttonid).setAttribute('disabled', false);
    }
*/
	return false;
}


function deleteAttachment(id, parentid, attuse, responsediv) {
    Ext.Msg.confirm('Delete Attachment', 'Are you sure?',
        function(btn) {
            if (btn == 'yes') {
                dojo.byId('standardupload_docaction').value = 'delete';
                dojo.byId('standardupload_id').value = id;
                dojo.byId('standardupload_parentid').value = parentid;
                dojo.byId('standardupload_attuse').value = attuse;
                dojo.byId('standardupload_updatediv').value = responsediv;
                sendStandardForm('form_attachmentaction', responsediv);
            }
        });
}


var mytimer = null;

function checkUploadStatus(framenum) {
    framedWindow = window.frames['hidden_upload_iframe_'+framenum];
    framedDocument = framedWindow.document;
    framedResponse = framedDocument.getElementById('responsediv');
    
    if (framedResponse.innerHTML == '') {
        dojo.byId('upload_status_'+framenum).innerHTML = dojo.byId('upload_status_'+framenum).innerHTML+'.';
    } else {
        window.clearInterval(mytimer);

        returnString = framedResponse.innerHTML;
        if (returnString.indexOf('SUCCESS') == 0) {
            dojo.byId('upload_status_'+framenum).innerHTML = "Success!";
            imageLoc = returnString.substr(9,100);
            dojo.byId('image_thumbnail_'+framenum).innerHTML = '<img src="'+imageLoc+'" border="0" />';
        } else {
            dojo.byId('upload_status_'+framenum).innerHTML = "Failed. Please try again.";
        }
    }
}

function sendStandardUpload(framenum) {
    if (dojo.byId('standardupload_'+framenum).value == '') {
        alert('Please click the Browse button to select a file to upload before clicking the Start link.');
    } else {
        dojo.byId('upload_status_'+framenum).innerHTML = "Sending file...";
        dojo.byId('embeddedform_standardupload_'+framenum).submit();
        mytimer = window.setInterval("checkUploadStatus("+framenum+");",1000);
    }
}
