// event functions
function calendar_showHideClick(calendarId)
{
	alert(calendarId);
}

// keyPress events
function validateAsText_onKeyPress(error)
{

}

function validateAsName_onKeyPress(error)
{

}

function validateAsNumeric_onKeyPress(error)
{

}

function validateAsInteger_onKeyPress(error)
{
	if(isNaN(String.fromCharCode(event.keyCode)))
	{
		showBalloon(error);
		event.returnValue = false;
	}
	else
	{
		hideBalloon();
	}
}

function validateAsDate_onKeyPress(error)
{

}

function validateAsPostalCode_onKeyPress(error)
{

}

function validateAsEMail_onKeyPress(error)
{
	
}

function validateAsUrl_onKeyPress(error)
{

}

function validateAsCreditCardNumber_onKeyPress(error)
{

}

function validateAsBankAccountNumber_onKeyPress(error)
{

}

function validateAsTelephoneNumber_onKeyPress(error)
{

}

// generic focus / blur methods
function textBox_onFocus(valid, errorMessage)
{
	if(!valid)
	{
		showBalloon(errorMessage);
	}
}

function textBox_onBlur(valid)
{
	if(!valid)
	{
		showError();
	}
	else
	{
		hideError();
	}
}

// validation methods
// return true when value is valid, false otherwise
function validateAsText(value)
{
	return true;
}

function validateAsName(value)
{
	return true;
}

function validateAsNumeric(value)
{
	return true;
}

function validateAsInteger(value)
{
	if(isNaN(value))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function validateAsDate(value)
{
	return true;
}

function validateAsPostalCode(value)
{
	return true;
}

function validateAsEMail(value)
{
	/*var regExp = new RegExp(regex = new Regex("^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
	
	if(!regExp.test())
	{
		showError();
		showBalloon("Invalid email address");
	}
	*/
	return true;
}

function validateAsUrl(value)
{
	return true;
}

function validateAsCreditCardNumber(value)
{
	return true;
}

function validateAsBankAccountNumber(value)
{
	return true;
}

function validateAsTelephoneNumber(value)
{
	return true;
}

// utility functions
function showBalloon(errorMessage)
{
	var balloon		= document.getElementById("validationErrorBalloon");
	var textIFrame	= document.getElementById("validationErrorMessage");

	balloon.style.left		= document.bodyOffsetLeft(event.srcElement) + (event.srcElement.offsetWidth / 2) - 16;
	balloon.style.top		= document.bodyOffsetTop(event.srcElement) + event.srcElement.offsetHeight - 4;
	balloon.style.display	= "block";
	
	//TODO: bubble autosize code for iframe content (now defaults to 300 by 75)
	textIFrame.contentWindow.document.body.innerHTML = errorMessage;
	
}

function hideBalloon()
{
	var balloon				= document.getElementById("validationErrorBalloon");
	balloon.style.display	= "none";
}

function showError()
{
	event.srcElement.runtimeStyle.border = "1px solid red";
	event.srcElement.runtimeStyle.color	 = "red";
}

function hideError()
{
	//todo
}

// function blinkErrorBorder