//========================================================================
// language.js - javascript functions related to changing language.
//========================================================================

function language_suppress_validation()
{
  if(typeof(suppress_validation) != 'undefined')
  {
    suppress_validation();
  }
}

//========================================================================
// changeLanguage( ) - change the language to the selected language.
//========================================================================
function changeLanguage( formId, elementId ) {
	if( document && document.getElementById ) {
		if( !formId ) formId = "MainForm";
		var form = document.getElementById( formId );
		if( form ) {
			// Must hide viewstate so that page doesn't get confused when 
			// the translated pages are switched.
			hideViewState( form );
			// Postback to change language page.
			postBack( form, null, false, false, true );
		}
	} else {
		alert( "Javascript version is too old! Error Code: 500" );
	}
}

//========================================================================
// submitLanguage( ) - submit the change in language.
//========================================================================
function submitLanguage( formId ) {
		var error = 0;
		if( document && document.getElementById ) {
			// try to use the dom of the opener window to set value of language and previous language.
			if( window && window.opener && window.opener.document && 
					window.opener.document && window.opener.document.getElementById ) {
			
			// Get the opener's form.
			// Add language to all forms in the page - why not.
			if( !formId ) formId = "MainForm";
			var form = window.opener.document.getElementById( formId );

			// The current language
			var langElement = document.getElementById( "Lang_Name" );
			var oLangElement = window.opener.document.getElementById( "lang" );
			// if no language element, create one.
			if( !oLangElement ) {
				oLangElement = window.opener.document.createElement( "input" );
				oLangElement.id = oLangElement.name = "lang";
				oLangElement.type = "hidden";
				form.appendChild( oLangElement );
			}
			if( langElement && oLangElement ) {
				oLangElement.value = langElement.value;
			} else {
				error = 1;
			}
			
			// The previous language
			var prevLangElement = document.getElementById( "Lang_PName" );
			var oPrevLangElement = window.opener.document.getElementById( "tempPlang" );
			if( !oPrevLangElement ) {
				// If previous language element does not exist, attempt to create it.
				oPrevLangElement = window.opener.document.createElement( "input" );
				oPrevLangElement.id = oPrevLangElement.name = "tempPlang";
				oPrevLangElement.type = "hidden";
				form.appendChild( oPrevLangElement );
			}
			if( prevLangElement && oPrevLangElement ) {
				// set previous language
				oPrevLangElement.value = prevLangElement.value;
			} else {
				error = 1;
			}
		}
		
		// post back the opener page and close popup window.
		closePopup( 'MainForm', true );
	} else {
		error = 1;
	}

	// report that an error has occured.
	if( error == 1 ) {
		// throw up an error in english for now.
		alert( "Error occured while attempting to change language.  Contact technical support." );
	}
}