function confirmDelete()
{
	return confirm( "Are you sure you wish to delete this item?" );
}

function validateCheckbox( id )
{
	var el = document.getElementById( id );
	var name = el.name;
	if( !el.checked )
	{
		var errorEl = document.getElementById( name + 'Error');
		errorEl.style.display = 'inline';
		errorEl.innerHTML = '[Please tick this box]';	
		document.getElementById(name + 'Label').style.color = 'red';
		return false;
	}
	else
	{
		document.getElementById(name + 'Error').style.display = 'none';
		document.getElementById(name + 'Label').style.color = '#000';
		return true;
	}
}

function validateSelect( id )
{
	var el = document.getElementById( id );
	var name = el.name;
	if( el.options[el.selectedIndex].value == -1 )
	{
		var errorEl = document.getElementById( name + 'Error');
		errorEl.style.display = 'inline';
		errorEl.innerHTML = '[please select]';	
		document.getElementById(name + 'Label').style.color = 'red';
		document.getElementById(name).style.color = 'red';
		return false;
	}
	else
	{
		document.getElementById(name + 'Error').style.display = 'none';
		document.getElementById(name + 'Label').style.color = '#000';
		document.getElementById(name).style.color = '#000';
		return true;
	}
}

function validateCheckgroup( checkgroup )
{
	for( var i=0; i<checkgroup.length; ++i )
	{
		if( checkgroup[i].checked ) 
		{
			highlightCheckgroup( checkgroup[i].name, true, '' );
			return true;
		}
	}
	highlightCheckgroup( checkgroup[0].name, false, 'please check at least one option' );
	return false;	
}

function highlightCheckgroup( name, valid, reason )
{
	var nameStub = name.substr( 0, name.length-2 );
	if( valid == false )
	{
		var errorEl = document.getElementById( nameStub + 'Error' );
		errorEl.style.display = 'inline';
		errorEl.innerHTML = '[' + reason + ']';
		
		document.getElementById(nameStub + 'Label').style.color = 'red';
	}	
	else
	{
		document.getElementById(nameStub + 'Error').style.display = 'none';
		document.getElementById(nameStub + 'Label').style.color = '#333';
	}
}

function highlight( nameStub, valid, reason )
{
	if( valid == false )
	{
		var errorEl = document.getElementById( nameStub + 'Error' );
		errorEl.style.display = 'inline';
		errorEl.innerHTML = '[' + reason + ']';
		
		document.getElementById(nameStub + 'Label').style.color = 'red';
		document.getElementById(nameStub).style.border = '1px solid red';
	}	
	else
	{
		document.getElementById(nameStub + 'Error').style.display = 'none';
		document.getElementById(nameStub + 'Label').style.color = '#333';
		document.getElementById(nameStub).style.border = '1px solid #7f9db9';
	}
}

function validateInput( form, nameStub, expr )
{
	var str = new String( form.elements[nameStub].value );
	if( str.length == 0 )
	{
		highlight( nameStub, false, 'field is required' );
		return false;
	}
	
	var regexp = new RegExp( expr );
	regexp.multiline = true;
	if( regexp.exec( str ) == null ) 
	{
		highlight( nameStub, false, 'invalid text' )
		return false;
	}
	else
	{
		highlight( nameStub, true, '' ); 
	}
	return true;
}

/*==============================================*/
// Specific validation routines

function validateStudentApplication( form )
{
	var valid = true;
	if( validateInput( form, 'username', '^[a-zA-Z0-9 ,.!-):-]+$' ) == false ) valid = false;
	if( validateInput( form, 'password', '^[a-zA-Z0-9 ,.!-):-]+$' ) == false ) valid = false;
	if( validateInput( form, 'firstname', '^[a-zA-Z0-9 ,.()!:-]+$' ) == false ) valid = false;
	if( validateInput( form, 'lastname', '^[a-zA-Z0-9 ,.()!:-]+$' ) == false ) valid = false;
	if( validateInput( form, 'university', '^[a-zA-Z0-9 ,.()!:-]+$' ) == false ) valid = false;
	if( validateInput( form, 'course', '^[a-zA-Z0-9 ,.()!:-]+$' ) == false ) valid = false;
	//if( validateInput( form, 'dob', '^[a-zA-Z0-9 ,.()!:-]+$' ) == false ) valid = false;
	if( validateInput( form, 'addresscontact', '^[a-zA-Z0-9\n\r ,.()!:-]+$' ) == false ) valid = false;
	if( validateInput( form, 'telcontact', '^[a-zA-Z0-9 ,.()!:-]+$' ) == false ) valid = false;
	if( validateInput( form, 'email', '^[a-zA-Z0-9@ ,.()!:-]+$' ) == false ) valid = false;
	if( validateSelect( 'studyYear' ) == false ) valid = false;
	return valid;
}

function validateExchangeRegistration( form )
{
	var valid = true;
	if( validateInput( form, 'username', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'password', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'firstName', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'lastName', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'companyName', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'address1', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'town', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'postcode', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'email', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'phone', '^.+$' ) == false ) valid = false;
	return valid;
}

function validateMembershipRegistration( form )
{
	var valid = true;
	if( validateInput( form, 'username', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'password', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'name', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'address1', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'town', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'contact', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'postcode', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'emailBusiness', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'emailContact', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'telBusiness', '^[0-9 ]+$' ) == false ) valid = false;
	if( validateCheckbox( 'terms' ) == false ) valid = false;
	if( validateCheckbox( 'privacy' ) == false ) valid = false;
	if( validateSelect( 'numEmployees' ) == false ) valid = false;
	if( validateInput( form, 'referer', '^.+$' ) == false ) valid = false;
	return valid;
}

function validateStudentLogin( form )
{
	var valid = true;
	if( validateInput( form, 'username', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'password', '^.+$' ) == false ) valid = false;
	return valid;
}


function validateLogin( form )
{
	var valid = true;
	if( validateInput( form, 'username', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'password', '^.+$' ) == false ) valid = false;
	return valid;
}

function validateListing( form )
{
	var valid = true;
	if( validateInput( form, 'title', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'summary', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'price', '^.+$' ) == false ) valid = false;
	if( validateInput( form, 'description', '^.+$' ) == false ) valid = false;
	if( validateSelect( 'categoryId' ) == false ) valid = false;
	return valid;
}

