function DefaultButton_Init() {
	if ( !DefaultButton_BrowserCapable() ) {
		alert('DefaultButton_BrowserCapable: false');
		return false;
	}
	
	for( var i=0; i<DefaultButtons.length; i++ ) {
		var DefaultButtonsetting = DefaultButtons[i].split("^");
		if ( DefaultButtonsetting.length != 3 ) { return; }
		var inputControl = document.getElementById( DefaultButtonsetting[0] );
		var postBackScript = DefaultButtonsetting[1];
		var causesValidation = ( DefaultButtonsetting[2] == 'True' );
		if ( inputControl != null ) {
			if ( i==0 ) {
				var theForm = inputControl.form;
				theForm.EnsureDefault = false;
				theForm.defaultButtonPostBackScript = "";
				theForm.causesValidation = false;
			}
			inputControl.defaultButtonPostBackScript = postBackScript;
			inputControl.causesValidation = causesValidation;
			
			if ( typeof( inputControl.addEventListener ) != "undefined" ) {
				inputControl.addEventListener("focus",DefaultButton_RegisterDefault,false);
				inputControl.addEventListener("blur",DefaultButton_UnRegisterDefault,false);
			} else if ( typeof ( inputControl.attachEvent ) != "undefined" ) {
				inputControl.attachEvent("onfocus",DefaultButton_RegisterDefault);
				inputControl.attachEvent("onblur",DefaultButton_UnRegisterDefault);
			} else {
				inputControl.onfocus = DefaultButton_RegisterDefault;
				inputControl.onblur = DefaultButton_UnRegisterDefault;
			}
		}
	}

	for (var j = 0; j < document.forms[0].elements.length; j++)
	{
		var cElement = document.forms[0].elements[j];

		if ((cElement.tagName.toUpperCase() == "SELECT") ||
			((cElement.tagName.toUpperCase() == "INPUT") &&
			((cElement.type.toUpperCase() == "CHECKBOX") ||
			(cElement.type.toUpperCase() == "RADIO"))))
		{
			if ( typeof( cElement.addEventListener ) != "undefined" ) {
				cElement.addEventListener("onkeyup",DefaultButton_FormControls,false);
			} else if ( typeof ( cElement.attachEvent ) != "undefined" ) {
				cElement.attachEvent("onkeyup",DefaultButton_FormControls);
			} else {
				cElement.onkeyup = DefaultButton_FormControls;
			}
		}
	}
}
function DefaultButton_FormControls(e)
{
	var src = DefaultButton_GetSrcElement(e);
	if (e.keyCode == 13)
	{
		if (DefaultButton_RequireOwnPostback(src.form) == false)
		{
			if (typeof(g_fTimeTrack) != "undefined")
			{
				StartTrackTime();
			}
			src.form.submit();
		}
	}
}
function DefaultButton_BrowserCapable() {
	if ( typeof( document.getElementById ) == "undefined" ) {
		if( typeof( document.all ) != "undefined" ) {
			document.getElementById = function( elementId ) { return document.all[elementId]; };
		} else {
			return false;
		}
	}
	return true;
}
function DefaultButton_RegisterDefault(e) {
	var src = DefaultButton_GetSrcElement(e);
	src.form.EnsureDefault = true;
	src.form.defaultButtonPostBackScript = src.defaultButtonPostBackScript;
	src.form.causesValidation = src.causesValidation;
}
function DefaultButton_UnRegisterDefault(e) {
	var src = DefaultButton_GetSrcElement(e);
	src.form.EnsureDefault = false;
	src.form.defaultButtonPostBackScript = "";
	src.form.causesValidation = false;
}
function DefaultButton_RequireOwnPostback(form) {
	if ( form.EnsureDefault && form.defaultButtonPostBackScript != "" ) {
		form.EnsureDefault = false;
		window.setTimeout( 'DefaultButton_Postback( "' + form.defaultButtonPostBackScript + '", ' + form.causesValidation + ');', 10 );
		return true;
	} else {
		return false;
	}
}
function DefaultButton_Postback( postBackScript, causesValidation ) {
	if (typeof(Page_ClientValidate) == 'function' && causesValidation) {
		if (  Page_ClientValidate() ) {
			if (typeof(g_fTimeTrack) != "undefined")
			{
				StartTrackTime();
			}
			eval(postBackScript);
		}
	} else {
		if (typeof(g_fTimeTrack) != "undefined")
		{
			StartTrackTime();
		}
		eval(postBackScript);
	}
}
function DefaultButton_GetSrcElement(e) {
	if ( typeof( window.event ) != "undefined" ) {
		return window.event.srcElement;
	}
	if ( e != null && typeof( e.target ) != "undefined" ) {
		return e.target;
	}
	return null;
}
