var userArray = [];
var groupArray = [];
var prevUserArray = [];
var prevGroupArray = [];
var usersExpDate = [];		//Users expiry date
var groupsExpDate = [];		//Groups expiry date
var tabUser = 1;			//Set tab flag for user
var tabGroup = 0;			//Set tab flag for group
function selectAll(checkBox){
	var frm = document.forms['formUsers'];
	if(checkBox.checked){
		for (var i=0; i < frm.elements.length; i++)  {
		var e =	frm.elements[i];
			if (e.type == 'checkbox' && e.name == 'contacts[]') {
				e.checked = true;
			}
		}
	}else{
		for (var i=0; i < frm.elements.length; i++)  {
		var e =	frm.elements[i];
			if (e.type == 'checkbox' && e.name == 'contacts[]') {
				e.checked = false;
			}
		}
	
	}
	moveAllUsers();
	return false;
}

function selectAllGroups(checkBox){
	var frm = document.forms['formGroups'];
	if(checkBox.checked){
		for (var i=0; i < frm.elements.length; i++)  {
		var e =	frm.elements[i];
			if (e.type == 'checkbox' && e.name == 'contacts[]') {
				e.checked = true;
			}
		}
	}else{
		for (var i=0; i < frm.elements.length; i++)  {
		var e =	frm.elements[i];
			if (e.type == 'checkbox' && e.name == 'contacts[]') {
				e.checked = false;
			}
		}
	
	}
	moveAllGroups();
	return false;	
}


function initPage(){
	$("#usersContainerBox").show();
	$("#groupsContainerBox").hide();
	$("#inviteContainerBox").hide();
	initialLoading();
	$('#inviteIds').val($('#emailIds').val()); //Placing the invited email ids back to the textarea.

}


/*
Inital function. This function will execute when the thickbox window loading.
Clearing both selection lists and assigning if any values inside the userArray and groupArray.
*/
function initialLoading(){
	$("#userList").empty();
	$("#userList").addOption(userArray, false);

	$("#groupList").empty();
	$("#groupList").addOption(groupArray, false);
}
/** For gradebooks**/
function initGradePage(){
	$("#usersContainerBox").show();
	$("#groupsContainerBox").hide();
	$("#inviteContainerBox").hide();
	
	$("#userList").empty();
	$("#userList").addOption(userArray, false);

	$("#groupList").empty();
	$("#groupList").addOption(groupArray, false);
	
	$('#inviteIds').val($('#emailIds').val());
}


function tabSelector(tabId){
	if(tabId==1){
		$("#userTab").addClass("selected");
		$("#groupTab").removeClass("selected");
		$("#inviteTab").removeClass("selected");

		$("#usersContainerBox").show();
		$("#groupsContainerBox").hide();
		$("#inviteContainerBox").hide();
	 	return false;	
	} else if(tabId==2){
		$("#userTab").removeClass("selected");
		$("#groupTab").addClass("selected");
		$("#inviteTab").removeClass("selected");

		$("#usersContainerBox").hide();
		$("#groupsContainerBox").show();
		$("#inviteContainerBox").hide();

		return false;	
		
	}else if(tabId==3) {
		$("#userTab").removeClass("selected");
		$("#groupTab").removeClass("selected");
		$("#inviteTab").addClass("selected");
		
		$("#usersContainerBox").hide();
		$("#groupsContainerBox").hide();
		$("#inviteContainerBox").show();

	 	return false;	
	} else {
		$("#userTab").removeClass("selected");
		$("#groupTab").removeClass("selected");
		$("#inviteTab").removeClass("selected");
		
		$("#usersContainerBox").hide();
		$("#groupsContainerBox").hide();
		$("#inviteContainerBox").hide();
		
	 	return false;
	}
}

function loadUsersList(pageNo){
	var searchKey = $("#hidSearch").val();
	$.post(appUrl+"/app/modules/community/userListAjax.php",
			{ txtSearch: searchKey, page: pageNo },
			function(data){
				data = data.replace(/\r/g, "\\r");
				data = data.replace(/\n/g, "\\n");
				data = data.replace(/&quot;/g, '\\"');
				var response = eval("(" + data + ")");
				var contacts = response.contacts;
				var numpad = response.numPad;
				var chkStr = '';
				if(response.contacts==null){
					$("#rightUserContainer").html('');
					$("#numberPad").html('');
					return false;
				}
				if(contacts.length > 0){
					for(i = 0; i < contacts.length; i++){
						chkStr += '<span  id=lbl_'+contacts[i].id+'><label><input name="contacts[]" id="'+contacts[i].id+'" value="'+contacts[i].id+'" title="'+contacts[i].name+'" onclick="moveUser('+contacts[i].id+');" type="checkbox" /> '+contacts[i].name+'</label><br>\n</span>';
					}
					chkStr += '<br><p><input type="checkbox" id="checkAll" name="checkAll" value="y" onclick="selectAll(this);"  />'+lblSelectAll+'</p>';
				}
				if(numpad==null){
					numpad = '';
				}
				$("#numberPad").html(numpad);
				$("#rightUserContainer").html(chkStr);
		}
	);
	return false;
}

function searchUsers(){
	$("#hidSearch").val($("#txtSearch").val());
	loadUsersList(1);
}

function moveAllUsers(){
	var frm = document.forms['formUsers'];
	if ( $('#checkAll').is(":checked") ) {
		for (var i=0; i < frm.elements.length; i++)  {
			var e =	frm.elements[i];
			if (e.type == 'checkbox' && 	e.name == 'contacts[]' && e.checked) {
				userArray[e.value] = e.title;
			}
			$("#userList").empty();
			$("#userList").addOption(userArray, false);		
		}
	}else{
		
		for (var i=0; i < frm.elements.length; i++)  {
			var e =	frm.elements[i];
			if (e.type == 'checkbox' && 	e.name == 'contacts[]' ) {
				userArray[e.value] = '';
			}
			$("#userList").empty();
			$("#userList").addOption(userArray, false);		
		}
	}
}

function moveUser(elemetId){
	var title;
	title = $('#'+elemetId).attr("title");
	   	if ( $('#'+elemetId).is(":checked") ) {
	   		userArray[elemetId] = title;
	   	}
	   	else{
	   		userArray[elemetId] = '';
	   	}
		$("#userList").empty();
   		$("#userList").addOption(userArray, false);
	
	return false;
}




function selectContacts(){
	var contacts = '';
	var contactId = '';
	var contactNames = '';
	var groups = '';
	var groupId = '';
	var groupNames = '';

	for (i in userArray){
		if(userArray[i]!=''){
			contacts += '<a href="#" onClick="return false;"><img style="margin:0px; padding:0px;" onClick="return removeUsers(\''+i+'\');" src="'+themeUrl+'/images/spacer.gif"  width="9" height="8" alt="'+removeMsg+'" title="'+removeMsg+'"/>'+userArray[i]+'</a>';
			contactId+=','+i;
			contactNames+=','+userArray[i];//.replace(' ', '&nbsp;');
		}
	}
	if(contacts) {
		$("#lblUser").show();
	} else {
		$("#lblUser").hide();
	}
	contacts = contacts.replace(/&amp;nbsp;/g," ");
	$('#selectedList').html(contacts);
	$('#txtUser').val(contactId.substring(1));
	$('#txtUserNames').val(contactNames.substring(1));
	
	for (j in groupArray){
		if(groupArray[j]!=''){
			groups += '<a href="#" onClick="return false;" ><img style="margin:0px; padding:0px;" onClick="return removeGroups(\''+j+'\');" src="'+themeUrl+'/images/spacer.gif"  width="9" height="8" alt="'+removeMsg+'" title="'+removeMsg+'"/>'+groupArray[j].replace(' ', '&nbsp;')+'</a>';
			groupId+=','+j;
			groupNames+=','+groupArray[j];//.replace(' ', '&nbsp;');
		}
	}
	if(groups) {
		$("#lblGroups").show();
	} else {
		$("#lblGroups").hide();
	}
	$('#groupsList').html(groups);
	
	if( groups && contacts ) {
		$("#lblGroups").addClass("borderBottom")
	}
	$('#txtGroup').val(groupId.substring(1));
	$('#emailIds').val($('#inviteIds').val());
	TB_remove();
	return false;
}

function removeUsers(elemetId){
	userArray[elemetId] = '';
	selectContacts();
	return false;
}

function removeGroups(elemetId){
	groupArray[elemetId] = '';
	selectContacts();
	return false;
}

/*function sendInvites(){
	$('#emailIds').val($('#inviteIds').val());
}
*/

/*******************Groups list js starts here**********************************/

function moveGroups(elemetId){

	var title;
	title = $('#grp_'+elemetId).attr("title");
	   	if ( $('#grp_'+elemetId).is(":checked") ) {
	   		groupArray[elemetId+''] = title;
	   	}
	   	else{
	   		groupArray[elemetId] = '';
	   	}
		$("#groupList").empty();
   		$("#groupList").addOption(groupArray, false);
	return false;
}

function moveAllGroups(){
	var frm = document.forms['formGroups'];
	if ( $('#check').is(":checked") ) {
		for (var i=0; i < frm.elements.length; i++)  {
			var e =	frm.elements[i];
			if (e.type == 'checkbox' && e.name == 'contacts[]' && e.checked) {
				groupArray[e.value+''] = e.title;
			}
			$("#groupList").empty();
			$("#groupList").addOption(groupArray, false);
		}
	}else{
		
		for (var i=0; i < frm.elements.length; i++)  {
			var e =	frm.elements[i];
			if (e.type == 'checkbox' && 	e.name == 'contacts[]' ) {
				groupArray[e.value+''] = '';
			}
			$("#groupList").empty();
			$("#groupList").addOption(groupArray, false);
		}
	}
}

function loadGroupsList(pageNo){
	var searchKey = $("#hidGroupSearch").val();
	$.post(appUrl+"/app/modules/community/groupListAjax.php",
			{ txtSearch: searchKey, page: pageNo },
			function(data){
				data = data.replace(/\r/g, "\\r");
				data = data.replace(/\n/g, "\\n");
				data = data.replace(/&quot;/g, '\\"');
				var response = eval("(" + data + ")");
				var contacts = response.contacts;
				var numpad = response.numPad;
				var chkStr = '';
				if(response.contacts==null){
					$("#rightGroupContainer").html('');
					$("#groupNumberPad").html('');
					return false;
				}
				if(contacts.length > 0){
					for(i = 0; i < contacts.length; i++){
						chkStr += '<span  id=lblGrp_'+contacts[i].id+'><label><input name="contacts[]" id="grp_'+contacts[i].id+'" value="'+contacts[i].id+'" title="'+contacts[i].name+'" onclick="moveGroups('+contacts[i].id+');" type="checkbox" /> '+contacts[i].name+'</label></span><br>\n';
					}
				chkStr += '<br><p><input type="checkbox" id="check" name="check" value="y" onclick="selectAllGroups(this);"  />'+lblSelectAll+'</p>';
				}
				if(numpad==null){
					numpad = '';
				}
				$("#groupNumberPad").html(numpad);
				$("#rightGroupContainer").html(chkStr);
		}
	);
	return false;
}

function searchGroups(){
	$("#hidGroupSearch").val($("#txtGroupSearch").val());
	loadGroupsList(1);
	
}

function removeSelectedGroups(obj){
	frm = document.forms['formGroups'];
	for (var i = 0; i < obj.options.length; i++){ 
		if (obj.options[ i ].selected){ 
			groupArray[obj.options[ i ].value] = '';
			$('#rightGroupContainer span label #grp_'+obj.options[ i ].value).removeAttr("checked"); 
			$('#check').removeAttr("checked"); 
		}
	}
	$("#groupList").empty();
	$("#groupList").addOption(groupArray, false);
	return false;
}
function removeSelectedUsers(obj){
	frm = document.forms['formUsers'];
	for (var i = 0; i < obj.options.length; i++){ 
		if (obj.options[i].selected){ 
			userArray[obj.options[i].value] = '';
			$('#rightUserContainer span label #'+obj.options[ i ].value).removeAttr("checked"); 
			$('#checkAll').removeAttr("checked"); 
		}
	}
	$("#userList").empty();
	$("#userList").addOption(userArray, false);	
	return false;
}
function removeAssignedUsers(elemetId){
	userArray[elemetId] = '';
	usersExpDate[elemetId] = '';
	selectAssignedContacts();
	return false;
}
function removeAssignedGroups(elemetId){
	groupArray[elemetId] = '';
	groupsExpDate[elemetId] = '';
	selectAssignedContacts();
	return false;
}
function selectAssignedContacts() {
	var contacts = '';
	var contactId = '';
	var contactNames = '';
	var groups = '';
	var groupId = '';
	var groupNames = '';
	
	for (i in userArray){
		if(userArray[i] != ''){
			contacts += '<a href="#" onclick="return false;"><img style="margin:0px; padding:0px;" onclick="return removeAssignedUsers(\''+i+'\');" src="'+themeUrl+'/images/spacer.gif"  width="9" height="8" alt="'+removeMsg+'" title="'+removeMsg+'"/>'+userArray[i].replace(' ', '&nbsp;')+'</a>';
			contactId += ','+i;
			contactNames += ','+userArray[i];//.replace(' ', '&nbsp;');
		}
	}
	if(contacts) {
		parent.$("#lblUser").show();
	} else {
		parent.$("#lblUser").hide();
	}
	parent.$('#selectedList').html(contacts);
	parent.$('#txtUser').val(contactId.substring(1));
	parent.$('#txtUserNames').val(contactNames.substring(1));
	
	for (j in groupArray){
		if(groupArray[j]!=''){
			groups += '<a href="#" onclick="return false;" ><img style="margin:0px; padding:0px;" onclick="return removeAssignedGroups(\''+j+'\');" src="'+themeUrl+'/images/spacer.gif"  width="9" height="8" alt="'+removeMsg+'" title="'+removeMsg+'"/>'+groupArray[j].replace(' ', '&nbsp;')+'</a>';
			groupId+=','+j;
			groupNames+=','+groupArray[j];//.replace(' ', '&nbsp;');
		}
	}
	if(groups) {
		parent.$("#lblGroups").show();
	} else {
		parent.$("#lblGroups").hide();
	}
	parent.$('#groupsList').html(groups);
	
	if( groups && contacts ) {
		parent.$("#lblGroups").addClass("borderBottom")
	}
	parent.$('#txtGroup').val(groupId.substring(1));
	parent.$('#emailIds').val($('#inviteIds').val());
	parent.TB_remove();
	return false;
}