Event.observe(window, 'load', init, false);

function init()
{
	//
}

// Add user category
function doEdzUsrCat()
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=mk&typ=edz_usr_cat&cat=' + escape($F('cat'));
	
	// Display window
	Effect.Appear('edz_usr_cat_win', {duration: 0.25});
	
	// Set focus
	$('cat').focus();
	
	// Validate category name
	if ($F('cat') == '')
	{
		alert('Please provide a category name.');
		return(false);
	}
	
	// AJAX request call
	var myAjax = new Ajax.Request(
								  url,
								  {
										method: meth,
										parameters: parm,
										onComplete: showResponse
									}
								);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result != '0')
		{
			// Assign new category ID
			var edz_usr_cat_id = result;
			
			// Append new categery in checkbox list
			$('edz_usr_cat_lst').innerHTML = $('edz_usr_cat_lst').innerHTML + ' <nobr><input id="edz_usr_cat_id_' + edz_usr_cat_id + '"" name="edz_usr_cat_id[]" type="checkbox" value="' + edz_usr_cat_id + '"><label for="edz_usr_cat_id_' + edz_usr_cat_id + '">' + $F('cat') + '</label></nobr>';
			
			// Check new category
			$('edz_usr_cat_id_' + edz_usr_cat_id).checked = true;
			
			// Clear category text field
			$('cat').value = '';
			
			// Hide new category window
			Effect.Fade('edz_usr_cat_win', {duration: 0.25});
		}
	}
}

// Update user category
function doEdzUsrCatCh(edz_usr_cat_id)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=ch&typ=edz_usr_cat&edz_usr_cat_id=' + edz_usr_cat_id + '&cat=' + escape($F('doEdzUsrCatUpdate_cat_' + edz_usr_cat_id));
	
	// Validate category name
	if ($F('doEdzUsrCatUpdate_cat_' + edz_usr_cat_id) == '')
	{
		alert('Please provide a category name.');
		return(false);
	}
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result != '0')
		{
			// Update category name (HTML)
			$('edz_usr_cat_' + edz_usr_cat_id).innerHTML = $F('doEdzUsrCatUpdate_cat_' + edz_usr_cat_id);
			
			// Hide update category field
			Effect.Fade('doEdzUsrCatUpdate_' + edz_usr_cat_id, {duration: 0.0});
			Effect.Appear('edz_usr_cat_id_' + edz_usr_cat_id, {duration: 0.25, delay: 0.0});
		}
	}
}

// Update groups
function doEdzGrpCh(edz_grp_id)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=ch&typ=edz_grp&edz_grp_id=' + edz_grp_id + '&grp=' + escape($F('doEdzGrpUpdate_grp_' + edz_grp_id)) + '&pwd=' + escape($F('doEdzGrpUpdate_pwd_' + edz_grp_id)) + '&is_pvt=' + escape($F('doEdzGrpUpdate_is_pvt_' + edz_grp_id)) + '&is_eml_pub=' + escape($F('doEdzGrpUpdate_is_eml_pub_' + edz_grp_id));
	
	// Validate group name
	if ($F('doEdzGrpUpdate_grp_' + edz_grp_id) == '')
	{
		alert('Please provide a group name.');
		return(false);
	}
	// Validate group enrollment key
	else if ($F('doEdzGrpUpdate_pwd_' + edz_grp_id) == '')
	{
		alert('Please provide an enrollment key.');
		return(false);
	}
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result != '0')
		{
			// Update group name (HTML)
			$('edz_grp_' + edz_grp_id).innerHTML = $F('doEdzGrpUpdate_grp_' + edz_grp_id);
			// Update group enrollment key (HTML)
			$('edz_grp_pwd_' + edz_grp_id).innerHTML = $F('doEdzGrpUpdate_pwd_' + edz_grp_id);

			// Update public group checkmark (HTML)
			if ($F('doEdzGrpUpdate_is_pvt_' + edz_grp_id))
			{
				$('edz_grp_is_pvt_' + edz_grp_id).src = '/img/edz/ico/etc/checkmark-16x16.png'; 
			}
			else
			{
				$('edz_grp_is_pvt_' + edz_grp_id).src = '/img/sp.gif';
			}
			
			// Update show email checkmark (HTML)
			if ($F('doEdzGrpUpdate_is_eml_pub_' + edz_grp_id))
			{
				$('edz_grp_is_eml_pub_' + edz_grp_id).src = '/img/edz/ico/etc/checkmark-16x16.png'; 
			}
			else
			{
				$('edz_grp_is_eml_pub_' + edz_grp_id).src = '/img/sp.gif';
			}
				
			// Hide update group field
			Effect.Fade('doEdzGrpUpdate_' + edz_grp_id, {duration: 0.0});
			Effect.Appear('edz_grp_id_' + edz_grp_id, {duration: 0.25, delay: 0.0});
		}
	}
}

// Add rating
function doRtg(cmd, rtg_id, svc_res_id, svc_res_typ_id, res_id, rtg)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=' + cmd + '&typ=rtg&rtg_id=' + rtg_id + '&svc_res_id=' + svc_res_id + '&svc_res_typ_id=' + svc_res_typ_id + '&res_id=' + res_id + '&rtg=' + rtg;
	
	// Validate rating entry
	if (isNaN(rtg))
	{
		alert('Error.');
		return(false);
	}
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		// Rating icon type
		var rtg_ico_typ = '';
		
		// Rating average (temporary)
		var rtg_avg_tmp = '';
		
		if (result != '0')
		{
			// Assign new rating ID
			var rtg_id = result;
			
			// Increment rating total
			var rtg_tot = parseInt($('edz_rtg_tot').innerHTML) + 1;
			
			// Rating average not available?
			if ($F('edz_rtg_avg') == 'na')
			{
				// Assign zero (0)
				rtg_avg_tmp = 0;
			}
			else
			{
				// Assign value
				rtg_avg_tmp = parseInt($F('edz_rtg_avg'));
			}
			
			// Create new (all) average
			var rtg_avg = ((rtg_avg_tmp + rtg) / rtg_tot);
			
			// Update rating total (HTML)
			$('edz_rtg_tot').innerHTML = rtg_tot;
			
			// Update (all) rating icon set
			for (i_rtg_avg = 1; i_rtg_avg <= 5; i_rtg_avg++)
			{
				if (i_rtg_avg <= rtg_avg)
				{
					rtg_ico_typ = '';
				}
				else
				{
					rtg_ico_typ = '-no';
				}
				
				// Update 'all' group
				$('edz_rtg_ico_avg_' + i_rtg_avg).src = '/img/edz/ico/rtg/rating' + rtg_ico_typ + '-24x24.png';
			}
			
			// Update (my) rating icon set
			for (i_rtg = 1; i_rtg <= 5; i_rtg++)
			{
				if (i_rtg <= rtg)
				{
					rtg_ico_typ = '';
				}
				else
				{
					rtg_ico_typ = '-no';
				}
				
				// Update 'my' group
				$('edz_rtg_ico_cmd_' + i_rtg).src = '/img/edz/ico/rtg/rating' + rtg_ico_typ + '-24x24.png';
			}
			
			// Hide rating links
			Effect.Fade('div_edz_rtg_ico_cmd_o', {duration: 0.0});
			// Show rating icons
			Effect.Appear('div_edz_rtg_ico_cmd', {duration: 0.5});
		}
	}
}

/*
 * User listing
 */
function doViUsrLst(usr_lst_fld_nom)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=vi&typ=usr&q=' + escape($F('q'));
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result == '0')
		{
			alert('Could not populate list.');
			return(false);
		}
		else
		{
			// Convert result string to object
			var usr_obj = eval('(' + result + ')');
			
			// Set user list field name
			if (usr_lst_fld_nom == '')
			{
				usr_lst_fld_nom = 'usr_id';
			}
			
			var usr_lst_len = $(usr_lst_fld_nom).length;
			var usr_num = usr_obj.usr.length;
			
			var usr_nom_id = '';
			
			// Clear ALL options
			$(usr_lst_fld_nom).options.length = 0;
			
			// Populate SELECT options
			for (i = 0; i <= (usr_num - 1); i++)
			{
				// Append user name ID
				if (usr_obj.usr[i].usr_nom_id != '')
				{
					usr_nom_id = ' (' + usr_obj.usr[i].usr_nom_id + ')';
				}
				else
				{
					usr_nom_id = '';
				}
				
				$(usr_lst_fld_nom).options[i] = new Option(usr_obj.usr[i].nom + usr_nom_id, usr_obj.usr[i].usr_id);
			}
		}
	}
}

/*
 * Remove edZone Group Member
 */
function cmdRmEdzGrpUsr(edz_grp_id, edz_grp_usr_id)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=rm&typ=edz_grp_usr&edz_grp_id=' + escape(edz_grp_id) + '&usr_id=' + escape(edz_grp_usr_id);
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result == '0')
		{
			alert('Group member was not removed.');
			return(false);
		}
		else
		{
			// Hide row
			Effect.Fade('edz_grp_usr_row_' + edz_grp_id + '_' + edz_grp_usr_id, {duration: 0.5});
		}
	}
}

/*
 * Add edZone Group Member
 */
function cmdMkEdzGrpUsr()
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=mk&typ=edz_grp_usr&edz_grp_id=' + $F('edz_grp_id') + '&usr_id=' + $F('usr_id');
	
	if (isNaN(parseFloat($F('usr_id'))))
	{
		alert('Please select a user to add to your group.');
		return(false);
	}
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		
		if (result == '0')
		{
			alert('An error occurred while adding this user to your group.');
		}
		else if (result != '0')
		{
			// Assign new option ID
			var edz_grp_usr_id = result;
			
			// Append new user to group list
			$('edz_grp_usr_lst').innerHTML = $('edz_grp_usr_lst').innerHTML + '<span id="edz_grp_usr_' + edz_grp_usr_id + '">' + $('usr_id').options[$('usr_id').selectedIndex].text + '<br /></span>';
		}
				
		return(false);
	}
}

/*
 * Create User Relationship Request
 */
function cmdMkEdzUsrFReq(usr_f_id)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=mk&typ=usr_f_req&usr_f_id=' + escape(usr_f_id);
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result == '0')
		{
			alert('Request failed.');
			return(false);
		}
		else
		{
			// User relationship exists
			if (result == 'is_usr_f') 
			{
				alert('Already a colleague.');
				return(false);
			}
			// User relationship exists
			else if (result == 'is_usr_f_req') 
			{
				alert('Colleague request already exists.');
				return(false);
			}
			else 
			{
				alert('Colleague request sent.');
				
				// Clear and focus on search text field
				$('q').value = '';
				$('q').focus();
				
				// Hide request
				//Effect.Fade('edz_usr_f_' + usr_f_id, {duration: 0.5});
				//Effect.Fade('edz_usr_f_' + usr_f_id + '-hr', {duration: 0.5});
				
				// Decrement counter
				//$('edz_usr_f_num').innerHTML = parseInt($('edz_usr_f_num').innerHTML) - 1;
			}
		}
	}
}

/*
 * Approve User Relationship Request
 */
function cmdMkEdzUsrFReqApp(usr_f_id)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=mk&typ=usr_f_req_app&usr_f_id=' + escape(usr_f_id);
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result == '0')
		{
			alert('Request approval failed.');
			return(false);
		}
		else
		{
			// Hide request
			Effect.Fade('edz_usr_f_' + usr_f_id, {duration: 0.5});
			Effect.Fade('edz_usr_f_' + usr_f_id + '-hr', {duration: 0.5});
			
			// Decrement counter
			$('edz_usr_f_num').innerHTML = parseInt($('edz_usr_f_num').innerHTML) - 1;
		}
	}
}

/*
 * Decline User Relationship Request
 */
function cmdMkEdzUsrFReqDsbld(usr_f_id)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=mk&typ=usr_f_req_dsbld&usr_f_id=' + escape(usr_f_id);
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result == '0')
		{
			alert('Request decline failed.');
			return(false);
		}
		else
		{
			// Hide request
			Effect.Fade('edz_usr_f_' + usr_f_id, {duration: 0.5});
			Effect.Fade('edz_usr_f_' + usr_f_id + '-hr', {duration: 0.5});
			
			// Decrement counter
			$('edz_usr_f_num').innerHTML = parseInt($('edz_usr_f_num').innerHTML) - 1;
		}
	}
}

/*
 * Remove User Relationship
 */
function cmdRmEdzUsrF(usr_f_id)
{
	var url = '/lib/inc/ajax/edz/mng_edz.php';
	var meth = 'post';
	var parm = 'cmd=rm&typ=usr_f&usr_f_id=' + escape(usr_f_id);
	
	// AJAX request call
	var myAjax = new Ajax.Request(
		url,
		{
			method: meth,
			parameters: parm,
			onComplete: showResponse
		}
	);
	
	// AJAX onComplete call
	function showResponse(request)
	{
		// Messages text block
		var result = request.responseText;
		
		// Display message text block
		//alert(result);
		
		if (result == '0')
		{
			alert('Remove failed.');
			return(false);
		}
		else
		{
			// Hide relationship
			Effect.Fade('edz_usr_f_' + usr_f_id, {duration: 0.5});
			Effect.Fade('edz_usr_f_' + usr_f_id + '-hr', {duration: 0.5});
			
			// Decrement counter
			$('edz_usr_f_num').innerHTML = parseInt($('edz_usr_f_num').innerHTML) - 1;
		}
	}
}