function statusChange(type) {

	if (type == '4443') {
		dijit.byId('updateStatusRangeScore').setAttribute('disabled', true);
		dojo.style("row_updateStatusRangeScore", "display", 'none');
		dijit.byId('updateStatusRangeScore2').setAttribute('disabled', true);
		dojo.style("row_updateStatusRangeScore2", "display", 'none');
		dijit.byId('updateStatusBasedOn').setAttribute('disabled', true);
		dojo.style("row_updateStatusBasedOn", "display", 'none');

	} else if (type == 'blank' || type == 'absent') {

		dijit.byId('updateStatusRangeScore').setAttribute('disabled', true);
		dojo.style("row_updateStatusRangeScore", "display", 'none');
		dijit.byId('updateStatusRangeScore2').setAttribute('disabled', true);
		dojo.style("row_updateStatusRangeScore2", "display", 'none');
		dijit.byId('updateStatusBasedOn').setAttribute('disabled', false);

		dojo.style("row_updateStatusBasedOn", "display", '');

	} else {
		dijit.byId('updateStatusBasedOn').reset();
		dijit.byId('updateStatusRangeScore').setAttribute('disabled', false);
		dojo.style("row_updateStatusRangeScore", "display", '');
		dijit.byId('updateStatusRangeScore2').setAttribute('disabled', false);
		dojo.style("row_updateStatusRangeScore2", "display", '');
		dijit.byId('updateStatusBasedOn').setAttribute('disabled', false);
		dojo.style("row_updateStatusBasedOn", "display", '');

	}
}

function harmonizationTypeChange(type) {

	switch (type) {
	case 'single':

		dijit.byId('harmonizationAdjustSingleScore').setAttribute('disabled',false);
		dijit.byId('harmonizationAdjustSinglePoints').setAttribute('disabled',false);

		dijit.byId('harmonizationAdjustRangeScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustRangeScore2').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustRangePoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustGreaterScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustGreaterPoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustLessScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustLessPoints').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustApp').setAttribute('disabled', true);
		dijit.byId('harmonizationAdjustAppPoints').setAttribute('disabled',true);
		
		dojo.style("row_harmonizationAdjustSingleScore", "display", '');
		dojo.style("row_harmonizationAdjustSinglePoints", "display", '');
		
		dojo.style("row_harmonizationAdjustRangeScore", "display", 'none');
		dojo.style("row_harmonizationAdjustRangeScore2", "display", 'none');
		dojo.style("row_harmonizationAdjustRangePoints", "display", 'none');

		dojo.style("row_harmonizationAdjustGreaterScore", "display", 'none');
		dojo.style("row_harmonizationAdjustGreaterPoints", "display", 'none');

		dojo.style("row_harmonizationAdjustLessScore", "display", 'none');
		dojo.style("row_harmonizationAdjustLessPoints", "display", 'none');

		dojo.style("row_harmonizationAdjustApp", "display", 'none');
		dojo.style("row_harmonizationAdjustAppPoints", "display", 'none');
		
		break;
	
	case 'greater':
		dijit.byId('harmonizationAdjustSingleScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustSinglePoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustRangeScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustRangeScore2').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustRangePoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustGreaterScore').setAttribute('disabled',false);
		dijit.byId('harmonizationAdjustGreaterPoints').setAttribute('disabled',false);

		dijit.byId('harmonizationAdjustLessScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustLessPoints').setAttribute('disabled',true);

		dojo.style("row_harmonizationAdjustSingleScore", "display", 'none');
		dojo.style("row_harmonizationAdjustSinglePoints", "display", 'none');

		dojo.style("row_harmonizationAdjustRangeScore", "display", 'none');
		dojo.style("row_harmonizationAdjustRangeScore2", "display", 'none');
		dojo.style("row_harmonizationAdjustRangePoints", "display", 'none');

		dojo.style("row_harmonizationAdjustGreaterScore", "display", '');
		dojo.style("row_harmonizationAdjustGreaterPoints", "display", '');

		dojo.style("row_harmonizationAdjustLessScore", "display", 'none');
		dojo.style("row_harmonizationAdjustLessPoints", "display", 'none');
		dojo.style("row_harmonizationAdjustApp", "display", 'none');
		dojo.style("row_harmonizationAdjustAppPoints", "display", 'none');
		dijit.byId('harmonizationAdjustApp').setAttribute('disabled', true);
		dijit.byId('harmonizationAdjustAppPoints').setAttribute('disabled',true);
		break;
	case 'less':
		dijit.byId('harmonizationAdjustSingleScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustSinglePoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustRangeScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustRangeScore2').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustRangePoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustGreaterScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustGreaterPoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustLessScore').setAttribute('disabled',false);
		dijit.byId('harmonizationAdjustLessPoints').setAttribute('disabled',false);

		dojo.style("row_harmonizationAdjustSingleScore", "display", 'none');
		dojo.style("row_harmonizationAdjustSinglePoints", "display", 'none');

		dojo.style("row_harmonizationAdjustRangeScore", "display", 'none');
		dojo.style("row_harmonizationAdjustRangeScore2", "display", 'none');
		dojo.style("row_harmonizationAdjustRangePoints", "display", 'none');

		dojo.style("row_harmonizationAdjustGreaterScore", "display", 'none');
		dojo.style("row_harmonizationAdjustGreaterPoints", "display", 'none');

		dojo.style("row_harmonizationAdjustLessScore", "display", '');
		dojo.style("row_harmonizationAdjustLessPoints", "display", '');
		dojo.style("row_harmonizationAdjustApp", "display", 'none');
		dojo.style("row_harmonizationAdjustAppPoints", "display", 'none');
		dijit.byId('harmonizationAdjustApp').setAttribute('disabled', true);
		dijit.byId('harmonizationAdjustAppPoints').setAttribute('disabled',true);
		break;
	case 'range':
		dijit.byId('harmonizationAdjustSingleScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustSinglePoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustRangeScore').setAttribute('disabled',false);
		dijit.byId('harmonizationAdjustRangeScore2').setAttribute('disabled',false);
		dijit.byId('harmonizationAdjustRangePoints').setAttribute('disabled',false);

		dijit.byId('harmonizationAdjustGreaterScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustGreaterPoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustLessScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustLessPoints').setAttribute('disabled',true);

		dojo.style("row_harmonizationAdjustSingleScore", "display", 'none');
		dojo.style("row_harmonizationAdjustSinglePoints", "display", 'none');

		dojo.style("row_harmonizationAdjustRangeScore", "display", '');
		dojo.style("row_harmonizationAdjustRangeScore2", "display", '');
		dojo.style("row_harmonizationAdjustRangePoints", "display", '');

		dojo.style("row_harmonizationAdjustGreaterScore", "display", 'none');
		dojo.style("row_harmonizationAdjustGreaterPoints", "display", 'none');

		dojo.style("row_harmonizationAdjustLessScore", "display", 'none');
		dojo.style("row_harmonizationAdjustLessPoints", "display", 'none');
		dojo.style("row_harmonizationAdjustApp", "display", 'none');
		dojo.style("row_harmonizationAdjustAppPoints", "display", 'none');
		dijit.byId('harmonizationAdjustApp').setAttribute('disabled', true);
		dijit.byId('harmonizationAdjustAppPoints').setAttribute('disabled',true);
		break;

	case 'applicant':
		dijit.byId('harmonizationAdjustSingleScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustSinglePoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustRangeScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustRangeScore2').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustRangePoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustGreaterScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustGreaterPoints').setAttribute('disabled',true);

		dijit.byId('harmonizationAdjustLessScore').setAttribute('disabled',true);
		dijit.byId('harmonizationAdjustLessPoints').setAttribute('disabled',true);

		dojo.style("row_harmonizationAdjustSingleScore", "display", 'none');
		dojo.style("row_harmonizationAdjustSinglePoints", "display", 'none');

		dojo.style("row_harmonizationAdjustRangeScore", "display", 'none');
		dojo.style("row_harmonizationAdjustRangeScore2", "display", 'none');
		dojo.style("row_harmonizationAdjustRangePoints", "display", 'none');

		dojo.style("row_harmonizationAdjustGreaterScore", "display", 'none');
		dojo.style("row_harmonizationAdjustGreaterPoints", "display", 'none');

		dojo.style("row_harmonizationAdjustLessScore", "display", 'none');
		dojo.style("row_harmonizationAdjustLessPoints", "display", 'none');

		dojo.style("row_harmonizationAdjustApp", "display", '');
		dojo.style("row_harmonizationAdjustAppPoints", "display", '');
		dijit.byId('harmonizationAdjustApp').setAttribute('disabled', false);
		dijit.byId('harmonizationAdjustAppPoints').setAttribute('disabled',	false);
		break;
		
	}

}

function updateSelect(subject) {

	standardData = new dojo.data.ItemFileReadStore( {
		url : '/exam/get-multi-options/?option=markers&subject=' + subject
	});

	var stdDataSelect = dijit.byId('paperMarkerAssignment');
	stdDataSelect.store = standardData;
	stdDataSelect.setDisplayedValue('');

}
function uplaodCampaignBanner() {

	if (dojo.byId('fileinput').value != '') {
		campaignBannerUploadResult = SubmitDojoFileUpload('campaign',
				'banner-upload', 'progressField', 'uploadMessage',
				'newBannerForm');

		dojo.subscribe("success", null, function(status) {

			updatePane('campaign', 'banner-get', 'bannerMainPane');

		});
	} else {
		alert('Select a file to upload');
	}

}
function uplaodTestFile() {

	if (dojo.byId('fileinput').value != '') {
		campaignBannerUploadResult = SubmitDojoFileUpload('testsmodule',
				'upload/test-upload', 'progressField', 'uploadMessage',
				'newBannerForm');

		dojo.subscribe("success", null, function(status) {
			updatePane('testsmodule/upload','upload-list/?type='+dojo.byId('upload_type').value.toLowerCase(), 'MainTestArea');
			dijit.byId('updateTestFormDialog').hide();
			

		});
	} else {
		alert('Select a file to upload');
	}

}

function SubmitDojoFileUpload(controller, action, progressField, uploadMessage,
		form) {
	if (dijit.byId(form).onSubmit()) {
		// Hide the file input field

		// Show the progress bar
		dojo.style(progressField, "display", "inline");
		dojo.style(uploadMessage, "display", "inline");
		dojo.attr(uploadMessage, 'innerHTML', 'Uploading ...');
		
		dojo.io.iframe.send( {
			url : "/" + controller + "/" + action,
			method : "post",
			handleAs : "text",
			form : dojo.byId(form),
			handle : function(data, ioArgs) {

				var result = dojo.fromJson(data);

				if (result.status == "success") {
					
					dojo.publish("success", [ result.status ]);
					// dojo.byId(form).reset();
			dojo.style(progressField, "display", "none");
			dojo.style(uploadMessage, "display", "none");

		} else {

			dojo.style(progressField, "display", "none");
			dojo.style(uploadMessage, "display", "none");

		}

	}
		});
	} else {
		dijit.byId(form).validate();
	}
}

function updatePane(controller, action, pane, anchor) {

	destroyDescendants(pane + '-ContentPane');

	if ((typeof anchor) != "undefined") {
		connection = dojo.connect(dijit.byId(pane + '-ContentPane'), "onDownloadEnd", function() {
			location.href = anchor;
			dojo.disconnect(connection);
		});
	}
	dijit.byId(pane + '-ContentPane').attr("href", '/' + controller + '/' + action);

}

function updatePaneModule(controller, action, pane, anchor) {

	destroyDescendants(pane + '-ContentPane');

	if ((typeof anchor) != "undefined") {
		connection = dojo.connect(dijit.byId(pane + '-ContentPane'), "onDownloadEnd", function() {
			location.href = anchor;
			dojo.disconnect(connection);
		});
	}

	dijit.byId(pane + '-ContentPane').attr("href", '../../../' + controller + '/' + action);

}

function destroyDescendants(pane){
	
	var element = dijit.byId(pane);
	desendants = element.getDescendants();
	
	if (desendants.length > 0) {
		for ( var i = desendants.length - 1; i >= 0; i--) {

			if ((dijit.byId(desendants[i]))) {
				if (temp = dijit.byId(desendants[i]).toString()) {
					if (temp = temp.split(',')[1]) {
						if (temp = temp.split('-')[1]) {
							if (temp == 'ContentPane]') {
								dijit.byId(desendants[i]).destroyDescendants();
							}
						}
					}
				}
			}

		}
	}

}

function updatePane2(controller, action, pane, anchor) {
	destroyDescendants(pane);
	

	if ((typeof anchor) != "undefined") {
		connection = dojo.connect(dijit.byId(pane), "onDownloadEnd", function() {
			location.href = anchor;
			dojo.disconnect(connection);
		});
	}

	dijit.byId(pane).attr("href", '/' + controller + '/' + action);

}
function SubmitEditorForm(editor, controller, action, pane, submittedform) {
	
	if (dijit.byId(submittedform).isValid()) {
		//alert(dojo.byId(editor).value);
		//alert(dijit.byId(editor + '-Editor').getValue(true));
		dojo.byId(editor).value = dijit.byId(editor + '-Editor').getValue(true);
		
		substring = controller + action + pane + submittedform;
		
		//alerter = dojo.subscribe(substring, null, function(response) {
			
		//	dijit.byId(editor + '-Editor').destroy();
			
	//	});
		
		
		//submitForm(controller, action, pane, submittedform, alerter, substring);
		submitForm(controller, action, pane, submittedform);
	} else {
		dijit.byId(submittedform).validate();
	}

}

function submitFormDialog(dialog, controller, action, pane, submittedform,
		actionList) {
	if (dijit.byId(submittedform).isValid()) {
		substring = controller + action + pane + submittedform;

		alerter = dojo.subscribe(substring, null, function(response) {

			dijit.byId(dialog).hide();
			dojo.byId(submittedform).reset();
			action = dojo.fromJson(actionList);
			for ( var i = 0; i < action.length; i++) {

				updatePane(action[i].controller, action[i].action,action[i].pane);
			}

		});
		submitForm(controller, action, pane, submittedform, alerter, substring);
		return;
	}else{
		dijit.byId(submittedform).validate();
		return false;
	}
}



function submitForm(controller, action, pane, submittedform, alerter,substring) {
	
	if (dijit.byId(submittedform).isValid()) {
	
		response = dojo.xhrPost( {
			url : '/' + controller + '/' + action + '',

			form : submittedform,

			load : function(response, ioArgs) {
			response = response.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
				var paneRef = dijit.byId(pane + '-ContentPane');
				if (response.charAt(0) == '{' && dojo.fromJson(response).status == 'success') {
					jsonresponse = dojo.fromJson(response);
					if ((typeof alerter) != "undefined"
							&& (typeof substring) != "undefined") {
						dojo.publish(substring, [ response ]);
						dojo.unsubscribe(alerter);
					}

				} else {

					paneRef.attr('content', response);
				}
				return response;
			},
			error : function(response, ioArgs) {
				dojo.attr(pane + '-ContentPane', 'innerHTML',
						'An error occurred, with response: ');
				return response;
			}

		// Setting the 'form' parameter to the ID of a form on the page
				// submits that form to the specified URL

				});
	} else {
		dijit.byId(submittedform).validate();
	}

}

function submitFakeForm(controller, action, pane, post, anchor) {

	response = dojo.xhrPost( {
		url : '/' + controller + '/' + action + '',

		content : post,

		load : function(response, ioArgs) {

			var paneRef = dijit.byId(pane + '-ContentPane');

			if (response.charAt(0) == '{'
					&& dojo.fromJson(response).status == 'success') {
				jsonresponse = dojo.fromJson(response);

				if ((typeof alerter) != "undefined"
						&& (typeof substring) != "undefined") {

					dojo.publish(substring, [ response ]);
					dojo.unsubscribe(alerter);

				}

			} else {

				paneRef.attr('content', response);
				if ((typeof anchor) != "undefined") {

					location.href = anchor;
				}
			}
			return response;
		},
		error : function(response, ioArgs) {
			dojo.attr(pane + '-ContentPane', 'innerHTML',
					'An error occurred, with response: ' + response);
			return response;
		}

	// Setting the 'form' parameter to the ID of a form on the page
			// submits that form to the specified URL

			});

}


function showSelected(selectItemName, messagediv, itemIdPrefix, titlePrefix) {

	// start by resetting to make sure its all clear
	resetSelected(selectItemName, messagediv, itemIdPrefix, itemIdPrefix)

	var items = getSelected(selectItemName);

	if (items[0].length > 0) {

		if (dojo.byId(messagediv).nodeName == 'TR'
				&& navigator.appName != 'Microsoft Internet Explorer') {
			display = 'table-row';
		} else {
			display = 'block';
		}
		dojo.style(messagediv, "display", display);
		for ( var i = 0; i < items[1].length; i++) {

			// alert('hiding - '+itemIdPrefix + itemFalse[i]);

			dojo.style(itemIdPrefix + items[1][i], "display", "none");
			// alert(dojo.style(itemIdPrefix + itemFalse[i],"display"));
		}

		for ( var i = 0; i < items[0].length; i++) {

			dojo.byId(messagediv + '_items').innerHTML = dojo
					.byId(messagediv + '_items').innerHTML
					+ dojo.byId(titlePrefix + '_' + items[0][i]).innerHTML
					+ '<br>';
		}
	}

}
function getSelected(selectItemName) {
	var items = [];
	var itemTrue = [];
	var itemFalse = [];

	dojo.query('[name^=' + selectItemName + ']')
			.forEach(

					function(script) {

						var id = dojo.attr(script, "id");
						if (dijit.byId(id)) {
							id = id.replace(selectItemName + '_', '');

							if (dijit.byId(selectItemName + '_' + id).attr(
									'checked') == false) {

								itemFalse.push(id);

							} else {
								itemTrue.push(id);

							}
						}
					});

	items.push(itemTrue);
	items.push(itemFalse);
	return items;
}

function bacgroundScript(controller, action) {

	dojo.xhrGet( {
		url : '/' + controller + '/' + action + '',
		load : function(response, ioArgs) {
			return response;
		},
		error : function(response, ioArgs) {

			return response;
		},
		handleAs : "text"
	});

}

function backgroundScript(controller, action) {

	dojo.xhrGet( {
		url : '../../../' + controller + '/' + action + '',
		load : function(response, ioArgs) {
			return response;
		},
		error : function(response, ioArgs) {

			return response;
		},
		handleAs : "text"
	});

}

function actionSelected(controller, action, selectItemName, messagediv,
		itemIdPrefix, cellContainer) {

	var items = getSelected(selectItemName);

	dojo.xhrPost( {
		url : '/' + controller + '/' + action + '',
		handleAs : "text",

		content : {
			'items' : dojo.toJson(items[0])
		},

		load : function(response, ioArgs) {

			var result = dojo.fromJson(response);

			if (result.status == "success") {

				for ( var i = 0; i < items[0].length; i++) {

					dojo.attr(cellContainer + items[0][i], 'innerHTML', '');

				}

			}
			return response;
		}

	});
	resetSelected(selectItemName, messagediv, itemIdPrefix);
}

function resetSelected(selectItemName, messagediv, itemIdPrefix) {

	dojo.attr(messagediv + '_items', 'innerHTML', '');
	var itemTrue = [];
	var itemFalse = [];
	dojo
			.query('[name^=' + selectItemName + ']')
			.forEach(

					function(script) {

						var id = dojo.attr(script, "id");
						if (dijit.byId(id)) {
							id = id.replace(selectItemName + '_', '');

							if (dojo.byId(itemIdPrefix + id).nodeName == 'TR'
									&& navigator.appName != 'Microsoft Internet Explorer') {
								display = 'table-row';
							} else {
								display = 'block';
							}

							dojo.style(itemIdPrefix + id, "display", display);
						}
					});
	dojo.style(messagediv, "display", "none");
}

function disableToggle() {
	var items = disableToggle.arguments.length
	for (i = 0; i < items; i++)

		if (dijit.byId(disableToggle.arguments[i]).attr("disabled")) {
			dijit.byId(disableToggle.arguments[i]).attr("disabled", false);

		} else {
			dijit.byId(disableToggle.arguments[i]).attr("disabled", true);

		}
}

function selectAll(selectItemName, itemIdPrefix, checkBox) {

	var itemTrue = [];
	var itemFalse = [];
	dojo.query('[name^=' + selectItemName + ']').forEach(

	function(script) {

		var id = dojo.attr(script, "id");

		if (dijit.byId(id)) {
			if (dijit.byId(checkBox).checked) {
				dijit.byId(id).setChecked(true);
			} else {
				dijit.byId(id).setChecked(false);
			}
		}
	});
}

function displayToggle(id) {

	if (dojo.style(id, 'display') == 'none') {
		dojo.style(id, 'display', 'block');
	} else {
		dojo.style(id, 'display', 'none');
	}
}

function commaFix(data) {

	eval(data.replace(/!comma!/g, ','));
}

function successMessageFadeOut(){
	var successOuter = dojo.byId('success-outer');
	var coords = dojo.coords(dojo.byId('utility'));
	var fadeSuccess = dojo.fadeOut({node : successOuter,duration: 4500});

	window.scrollTo(coords.l, coords.y);
	dojo.connect(fadeSuccess,"onEnd",function(){ successOuter.hide(); });
	fadeSuccess.play();
}

function selectAllOptions(Obj,triggerOnLabel){
    if(Obj.options[Obj.selectedIndex].label == triggerOnLabel){
    	for(i=0; i<Obj.options.length; i++){
    		if(Obj.options[i].label !== triggerOnLabel){
                Obj.options[i].selected = true;
            }else{
                Obj.options[i].selected = false;
            }
        }
    }
}


function showGenericDialog(title,module,controller,actionAndParams){
	dijit.byId('generic_dialog').show();
	dijit.byId('generic_dialog').titleNode.innerHTML=title;
	updatePane( module + '/' + controller, actionAndParams,'generic_dialog');
}
