function getMsgInboxList( pageNum , pageSize )  {
	var uri = byId("uri");
	var orderBy = byId("sortByValue");
	loading.show(i18n.getMsg("loading"));
	dojo.xhrGet( {
		url: uri+"/msg/msgInboxList.jsp", 
		handleAs: "text",
		load: function(response, ioArgs) {
			 dojo.byId("msgInboxDiv").innerHTML = response;
			 loading.hide();
		},
		preventCache: true,
		content: {
			pageNum: pageNum,
			pageSize : pageSize,
			orderBy : orderBy 
		}       
	} );
}

function getMsgSentboxList( pageNum , pageSize )  {
	var uri = byId("uri");
	var orderBy = byId("sortByValue");
	loading.show(i18n.getMsg("loading"));
	dojo.xhrGet( {
		url: uri+"/msg/msgSentList.jsp", 
		handleAs: "text",
		load: function(response, ioArgs) {
			 dojo.byId("msgSentboxDiv").innerHTML = response;
			 loading.hide();
		},
		preventCache: true,
		content: {
			pageNum: pageNum,
			pageSize : pageSize,
			orderBy : orderBy
		}       
	} );
}

function getMsgEngagedRequestList( pageNum , pageSize ){
	var uri = byId("uri");
	var orderBy = byId("sortByValue");
	loading.show(i18n.getMsg("loading"));
	dojo.xhrGet( {
		url: uri+"/msg/msgEngagedRequestList.jsp", 
		handleAs: "text",
		load: function(response, ioArgs) {
			 dojo.byId("msgEngagedRequestDiv").innerHTML = response;
			 loading.hide();
		},
		preventCache: true,
		content: {
			pageNum: pageNum,
			pageSize : pageSize,
			orderBy : orderBy
		}       
	} );

}

function sendMsg(){
	var uri = byId("uri");	
	loading.show(i18n.getMsg("sending"));
	dojo.xhrPost( {
       	url: uri+"/msg/sendMsg.do",
       	form: dojo.byId("composeMessageForm"),
        handleAs: "text",
        preventCache: true,
        load: function(response, ioArgs) {
          	messageHide();
          	loading.hide();
        }
    });
}

function deleteMsg(inOrSent,msgRelationId){
	comfirmMsg(i18n.getMsg("message.confirm.msg") , function(){
		var uri = byId("uri");
		loading.show(i18n.getMsg("loading"));
		dojo.xhrGet( {
			url: uri+"/msg/deleteMsg.do", 
			handleAs: "text",
			preventCache: true,
			load: function(response, ioArgs) {
				if( response.indexOf("Succeed") != -1 ){
					if(inOrSent == "inBox"){
						location.href = uri+ "/msg/msgInbox.jsp";
					}else if(inOrSent == "sentBox"){
						location.href = uri+ "/msg/msgSent.jsp";
					}			
				}else if(response.indexOf("Error") != -1){				
					showError(response);
			  	}	
			  	loading.hide();	 
			},
	        error: function(response, ioArgs) {
	          //alert(response);
	          return response;
	        },
			content: {
				msgRelationId : msgRelationId
			}      
		} );
	});
}

/**
 * Compose message
 * */
function composeMsg(){
	//1. Validate all elements
	var errorMsg = "";
	//Recipient can't be null.
	if( isEmpty("receiverId") ) {
		errorMsg = i18n.getMsg("msg.recipient.is.required");
		errorMsg += "<br/>"
	}
	
	//Subject
	if( !dijit.byId('composeMessageForm').validate() ) {
		errorMsg += i18n.getMsg("msg.subject.is.required");
		errorMsg += "<br/>"
	}
	
	//Description
	var getMsgValue = getEditorValue('messageTextarea');
	if(getMsgValue.length <1){
		$('messageTextarea').style.background=errBgColor;
		errorMsg += i18n.getMsg("msg.content.is.requires");
		errorMsg += "<br/>"
	}
	if(getMsgValue.length >65000){
		$('messageTextarea').style.background=errBgColor;
		errorMsg += i18n.getMsg("common.error.isTooLong");
		errorMsg += "<br/>"
	}
	

	//If there is any error occurred, function will jump out.
	if( errorMsg != "") {
		showError( errorMsg );
		return false;
	}
	
	$('message').value =formatHTML(dijit.byId('messageTextarea').getValue());
	sendMsg();
}

/*
function otherValidateForMsgCompose(){
	var getMsgValue = getEditorValue('messageTextarea');
	if(getMsgValue.length <1){
		$('messageTextarea').style.background=errBgColor;
		showError(i18n.getMsg("common.error"));
		return false;
	}
	if(getMsgValue.length >65000){
		$('messageTextarea').style.background=errBgColor;
		showError(i18n.getMsg("common.error.isTooLong"));
		return false;
	}
	return true;
}
*/


function inBoxSortBy(description, fieldName ){
	sortBy(description,fieldName);
	getMsgInboxList(1,20);
	dojo.parser.parse(dojo.byId('sortByList'));
}

//click column sort by
function inboxColumnSortBy(obj,fieldName){
	obj = $(obj);
	columnSortByAction(obj,fieldName);
	getMsgInboxList(1,20);
	dojo.parser.parse(dojo.byId('sortByList'));
}

function sentBoxSortBy(description, fieldName ){
	sortBy(description,fieldName);
	getMsgSentboxList(1,20);
}

//click column sort by
function sentBoxColumnSortBy(obj,fieldName){
	obj = $(obj);
	//columnSortBy.intl(obj,obj.innerHTML,fieldName);
	//getMsgSentboxList(1,20);
	columnSortByAction(obj,fieldName);
	getMsgSentboxList(1,20);
	dojo.parser.parse(dojo.byId('msgSentboxDiv'));
}

function engagedRequestSortBy(description, fieldName){
	sortBy(description,fieldName);
	getMsgEngagedRequestList(1,20);
}

//click column sort by
function engagedRequestColumnSortBy(obj, fieldName){
	obj = $(obj);
	columnSortByAction(obj,fieldName);
	getMsgEngagedRequestList(1,20);
}

function completed(items, findResult){
	//dijit.byId("receiver").setStore(items);
	for (i = 0; i < items.length; i++) {
		var item = items[i];
		//alert("  i :" + item + "  " + item.name + "   " +item.label + "   "  + item.abbreviation );
	}
	
	var colorData = {
	    identifier:'abbreviation',
	    items: items
 	 };
	
        
	var combo = new dijit.form.FilteringSelect({
		name:"receiver",
		autoComplete:false,
		store: new dojo.data.ItemFileReadStore({data: colorData}),
		searchAttr:"name"
	}, dojo.byId("receiverCombo"));
}

function searchReceiver() {
	var uri = byId("uri");
	var searchType = dojo.byId("searchType").value;
	loading.show(i18n.getMsg("loading"));
	dojo.xhrGet( {
		url: uri+"/msg/searchReceiver.jsp", 
		handleAs: "text",
		preventCache: true,
		load: function(response, ioArgs) {
			dojo.byId("receiverComboSpan").innerHTML = response;
		  	loading.hide();	 
		},
		content: {
			searchType : searchType
		}      
	} );
}

function searchJobAndCandidate( ) {
	var uri = byId("uri");
	var userId = dojo.byId("receiverId").value;
	
	loading.show(i18n.getMsg("loading"));
	//Load reference jobs
	dojo.xhrGet( {
		url: uri+"/msg/searchJob.jsp", 
		handleAs: "text",
		preventCache: true,
		load: function(response, ioArgs) {
			dojo.byId("searchJobParentSpan").innerHTML = response;
		  	loading.hide();	 
		},
		content: {
			userId : userId
		}      
	} );
	
	//Load reference submissions.
	dojo.xhrGet( {
		url: uri+"/msg/searchCandidate.jsp", 
		handleAs: "text",
		preventCache: true,
		load: function(response, ioArgs) {
			dojo.byId("searchCandidateSpan").innerHTML = response;
		  	loading.hide();	 
		},
		content: {
			userId : userId
		}      
	} );
	
	
}
