function resizeIFrame()
{
	// height of frame when uploading contacts
	var initialHeight = 175;
	// height of frame when selecting emails for requests and invitations
	var emailSelectionHeight = 295;
	
	var frameHeight = document.getElementById('importFileUpload') ? initialHeight : emailSelectionHeight;
	
	// check for error messages
	var extraHeight = 0;
	var spans = document.getElementsByTagName('span');
	
	for (var i = 0; i < spans.length; i++)
	{
		if (spans[i].className == 'error' && spans[i].style.display != 'none')
		{
			// extra height added for error messages
			extraHeight = 25;
		}
	}
	
	var frame = parent.document.getElementById('importContactsIFrame');
	if (frame)
	{
		frame.style.height = (frameHeight + extraHeight) + 'px';
	}
}

var toggleSelectEmails = "unchecked";
var toggleSelectUsers = "unchecked";

function selectAll(list)
{
	var cont = document.getElementsByTagName("input");
	var toggleSelect = (list == 'emails') ? toggleSelectEmails : toggleSelectUsers;
	var pattern = (list == 'emails') ? 'new' : 'existing'; 
	
	if (toggleSelect == "unchecked")
	{
		for (var i=0; i<cont.length; i++)
		{
			if (cont[i].type == "checkbox" && cont[i].id.search(new RegExp(pattern)) >= 0)
			{
				cont[i].checked = "true";
			}
		}
		
		if (list == 'emails')
		{
			toggleSelectEmails = "checked";
		}
		else
		{
			toggleSelectUsers = "checked";
		}
	}
	else
	{
		for (var i=0; i<cont.length; i++)
		{
			if (cont[i].type == "checkbox" && cont[i].id.search(new RegExp(pattern)) >= 0)
			{
				cont[i].checked = "";
			}
		}
		
		if (list == 'emails')
		{
			toggleSelectEmails = "unchecked";
		}
		else
		{
			toggleSelectUsers = "unchecked";
		}
	}
}

function uploadContacts()
{
	if (document.getElementById('addressFileInput').value != '')
	{
		document.forms[0].submit();
	}
}

function skip()
{
	switchFromNewUsersToExistingUsers();
}

function cancel()
{
	close();
}

function close()
{
	window.parent.closeModalWindow('importContacts');
	window.location.href = window.location.href;
}

/* ajax functions */
function sendRequests()
{
	// validation
	var errorControl = document.getElementById('existingUserListErr');
	
	if (hasCheckedBox('existingUserPanel'))
	{
		errorControl.innerHTML = '';
		errorControl.style.display = 'none';
		
		showFeedback('requestActionContainer');
		
		//alert(getCheckedValues('existingUserPanel'));
		engImport.sendFriendRequests(getCheckedValues('existingUserPanel'), callback_sendRequests);
	}
	else
	{
		errorControl.innerHTML = 'No emails have been selected.';
		errorControl.style.display = 'block';
		resizeIFrame();
	}
}

function callback_sendRequests(res)
{
	if (res.error != null){alert(res.error)};
	
	checkResponse(res.value);
	
	/*
	switch (res.value)
	{
		case "added" :	
			feedbackValid('Sending', 'Sent requests');
			setTimeout('switchFromNewUsersToExistingUsers();', 4000);
			break;

		case "exist" :
			feedbackValid('Sending', 'Sent requests');
			setTimeout('switchFromNewUsersToExistingUsers();', 4000);
			break;
			
		default:
			feedbackInvalid('addRegUserActionContainer');
	}
	*/
	
	feedbackValid('Sending', 'Sent requests');
	setTimeout('switchFromNewUsersToExistingUsers();', 4000);
}

function switchFromNewUsersToExistingUsers()
{
	switchPanels('newUserPanel','existingUserPanel');
	resizeIFrame();
}

function sendInvitations()
{
	// validation
	var errorControl = document.getElementById('newUserListErr');
	
	if (hasCheckedBox('newUserPanel'))
	{
		errorControl.innerHTML = '';
		errorControl.style.display = 'none';
			
		showFeedback('inviteActionContainer');
		
		//alert(getCheckedValues('newUserPanel'));
		engImport.sendInvitations(getCheckedValues('newUserPanel'), callback_sendInvitations);
	}
	else
	{
		errorControl.innerHTML = 'No emails have been selected.';
		errorControl.style.display = 'block';
		resizeIFrame();
	}
}

function callback_sendInvitations(res)
{
	if (res.error != null){alert(res.error)};
	
	checkResponse(res.value);
	
	feedbackValid('Sending', 'Sent invitations');
	setTimeout('close();', 4000);
}

/* effects */
function switchPanels(showPanel, hidePanel)
{
	new Effect.Morph(hidePanel,
	{
   		style: 'opacity:0;' +
     		'filter:alpha(opacity=0);',
   		duration: 0.3,
   		afterFinish:function()
		{
			document.getElementById(hidePanel).style.display = "none";
			document.getElementById(showPanel).style.display = "block";
			
			new Effect.Morph(showPanel,
			{
   				style: 'opacity:1;' +
     				'filter:alpha(opacity=100);',
   				duration: 0.3
			});
		}
	});
}

/* validation */
function hasCheckedBox(id)
{
	var inputs = document.getElementById(id).getElementsByTagName('input');
	
	for (var i = 0; i < inputs.length; i++)
	{
		if (inputs[i].type == 'checkbox' && inputs[i].checked)
		{
			return true;
		}
	}
	
	return false;
}

/* ajax helper function */
function getCheckedValues(id)
{
	var inputs = document.getElementById(id).getElementsByTagName('input');
	var checkedValues = new Array();
	
	for (var i = 0; i < inputs.length; i++)
	{
		if (inputs[i].type == 'checkbox' && inputs[i].checked)
		{
			checkedValues.push(inputs[i].value);
		}
	}
	
	return checkedValues;
}

addEventToObject(window,'onload',resizeIFrame);