// JavaScript Document
function validateCompose() {
	strMsg = '';
	if ($('message_body') && $('message_body').value=='') {
		strMsg += "Type the message.\n";
		$('message_body').focus();
	}
	if ($('message_subject') && $('message_subject').value=='') {
		strMsg = "Subject is required.\n" + strMsg;
		$('message_subject').focus();
	}
	if ($('friend_list').value=='') {
		strMsg = 'Please specify at least one recipient\n' + strMsg;
		$('friend_list').focus();
	} else if ($('friend_list').value!='') {
		validate_friends($('friend_list').value, friend_list, $('recipients'))
		if( $('recipients').value == '' ) {
			strMsg = 'There was an error processing the recipient list.\n' + strMsg;
			return false;
		}
	}
	if (strMsg != '') {
		if (strMsg == "Type the message.\n")
			 $('recipients').value = '';
		alert(strMsg);
		return false;
	} else {
		if ($("submit_loading"))
			$("submit_loading").show();
		if ($("id_submit_btn"))
			$("id_submit_btn").hide();
		return true;
	}
}
function validateReplyAll(is_vator_user) {
	strMsg = '';
	if ($('message_body').value=='') {
		strMsg += "Type the message.\n";
		$('message_body').focus();
	}
	if (is_vator_user && document.getElementById('friend_list').value!='') {
		if ( !validate_friends(document.getElementById('friend_list').value, friend_list, document.getElementById('recipients')) ) {
			strMsg = "Some addresses are invalid.\n" + strMsg;
			$('friend_list').focus();
		}
	}
	if (strMsg != '') {
		alert(strMsg);
		return false;
	} else {
		$("submit_loading").show();
		$("id_submit_btn").hide();
		return true;
	}
}
function onLoadAutocomplete(add, remove) {
	params = ""
	if (add!='') {
		params += "add="+add
	}
	if (remove!='') {
		if (add!='') {
			params += "&"
		}
		params += "remove="+remove
	}
	var ajax = new Ajax.Request('/user/friend_list', {
									asynchronous:true,
									evalScripts:true,
									parameters:params,
									onComplete:function(request){autocompleteComplete(request.responseText);}
							});
}
function autocompleteComplete(response) {
	eval(response);

	$j("#friend_list").autocomplete(friend_list, {
			multiple: true,
			matchContains: true,
			selectFirst: false,
			minChars: 0,
			width: 450,
			formatItem: function(row, i, max) {
				return row.n;

			},
			formatResult: function(row) {
				return row.n;
			}
		});

}

function AddAllMembers()
{
		var ajax = new Ajax.Request('/user/user_network_list', {
									asynchronous:true,
									evalScripts:true,
									onComplete:function(request){AddAllMembersHelper(request.responseText);}
							});

}
function AddAllMembersHelper(response)
{
	eval(response);
	names = ''
	for ( var member = 0, length = user_network_members.length; member < length; member++ )
		if (user_network_members[member] != 'undefined')
			names += user_network_members[member] + ", ";

        var friend_list = trim($('friend_list').value);

        if(friend_list.length > 0 && friend_list[friend_list.length-1] != ',')
        {
                $('friend_list').value += ", "
        }

	$('friend_list').value += names;

}

function unique_list ( array ) {
		unique=new Array;
		var k=0;
		unique[k++]=array[0];
		for ( var i = 1, length = array.length; i < length; i++ )
		{
			flag=true;
			for (j=0; j<k && flag;j++)
			{
				if (array[i].strip(' ') == unique[j].strip(' '))
				{
					flag=false;
				}
			}
			if (flag)
			{
				unique[k++]=array[i];
			}
		}
		return unique;
}
function validate_friends(list, friend_list, retObj) {
	var friends = (list).split(',');
	friends=unique_list(friends);
	for (f=0; f < friends.length; f++) {
		current_friend = friends[f].strip().replace(/\s+/,' ');
		if (current_friend!= '') {
			check_friend = false;
			if (isEmail(current_friend)) {
				retObj.value += 'new_'+current_friend+",";
				check_friend = true;
			} else {
				for (var i=0; i < friend_list.length; i++) {
					if( friend_list[i].n.strip().toLowerCase() == current_friend.toLowerCase() ) {
						check_friend = true;
						break;
					}
				}
				if (check_friend == true) {
					retObj.value += 'existing_'+friend_list[i].s+",";
				} else {
					retObj.value += 'error_'+current_friend+",";
				}
			}
		}
	}
	return true;
}
