var		LIMIT_SIZE = 4090;
// var		undefined = document.getElementById( 'xyzzy' );

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); };

/*	-------------------------------------------------------------------------
	validate_form

	------------------------------------------------------------------------- */

function validate_form( required_fields, error_target )
{
	var fields_ok = true;
	var total_fields = required_fields.length;
	var elem = '';
	
	try
	{
		for( var i = 0; i < total_fields; i++ )
		{
			elem = document.getElementById( required_fields[i] );
			if( elem == undefined )
			{
				alert( "Undefined required field: " + required_fields[i] );
				continue;
			}
			
			elem.value = elem.value.trim();
			if( elem.value == '' )
			{
				elem.style.background = '#ffcccc';
				fields_ok = false;
			}
			else
			{
				elem.style.background = 'white';
				
				if( required_fields[i].substr( required_fields[i].length-5, 5 ) == 'email' )
				{
					if( elem.value.search( "^[A-Za-z0-9._%-]+@[A-Za-z0-9.-_]+\\.[A-Za-z]{2,4}$" ) == -1 )
					{
						elem.style.background = '#ffcccc';
						fields_ok = false;
					}
					else
						elem.style.background = 'white';
				}
			}
		}
		
		if( !fields_ok )
		{
			var elem = document.getElementById( error_target );
			if( elem != undefined )
				elem.style.display = "block";
		}
	}
	catch( e )
	{
		alert( "Sorry. There's been an error processing your request." );
		fields_ok = false;
	}
	
	return fields_ok;
}

//	-----------------------------------------------------------------------	//

function initialize_contact_us()
{
	var elem = document.getElementById( 'ml_form' );
	
	// If javascript is enabled, show the webmail form and web site feedback sections.
	if( elem != undefined )
		elem.style.display = 'block';

	elem = document.getElementById( 'web_feedback' );
	if( elem != undefined )
		elem.style.display = 'block';

	elem = document.getElementById( 'f_business_name' );
	if( elem != undefined )
		elem.focus();
}

//	-----------------------------------------------------------------------	//

function initialize_sign_up()
{
	var elem = document.getElementById( 'sign_up_form' );
	
	// If javascript is enabled, show the webmail form and web site feedback sections.
	if( elem != undefined )
		elem.style.display = 'block';

	elem = document.getElementById( 'f_first_name' );
	if( elem != undefined )
		elem.focus();
}



//	-----------------------------------------------------------------------	//

function toggle_signing_address( new_value )
{
	new_display = new_value ? 'none' : 'table-row';
	
	elem = document.getElementById( 'sign_address_row' );
	if( elem != undefined )
		elem.style.display = new_display;

	elem = document.getElementById( 'sign_city_row' );
	if( elem != undefined )
		elem.style.display = new_display;

	elem = document.getElementById( 'sign_province_row' );
	if( elem != undefined )
		elem.style.display = new_display;
	
	elem = document.getElementById( 'sign_postal_row' );
	if( elem != undefined )
		elem.style.display = new_display;

}



/* ---------------------------------------------------------------------------*/
// send_ml
/* ---------------------------------------------------------------------------*/

function send_ml( ml_name )
{
	window.location = "mai" + "lto:" + ml_name + "@planetenergy.ca";
}

		
//	-----------------------------------------------------------------------	//
//	check_form_fields
//
//	Are the form fields in good order?
//	-----------------------------------------------------------------------	//

function check_form_fields( error_field, required, length_limit, email )
{
	var				total_fields = required.length;
	var				fields_ok = true;
	var				elem = '';
	

	// Flag all empty but mandatory fields with a yellow background.
	for( var i = 0; i < total_fields; i++ )
	{
		elem = document.getElementById( required[i] );
		if( elem == undefined )
			continue;
		
		if( elem.value == '' || elem.value == ' ')
		{
			elem.style.background = 'yellow';
			fields_ok = false;
		}
		else
		{	// Replace all double quotes. They'll cause problems when retrieving data.
			while( elem.value.indexOf( '"' ) != -1 )
				elem.value = elem.value.replace( '"', "''" );
			
			elem.style.background = 'white';
		}
	}
	
	// Flag all fields that have too much content.
	total_fields = length_limit.length;
	for( var i = 0; i < total_fields; i++ )
	{
		elem = document.getElementById( length_limit[i] );
		if( elem == undefined )
			continue;
		
		if( elem.value.length > LIMIT_SIZE )
		{
			elem.style.background = '#FF8888';
			fields_ok = false;
		}
	}

	// Flag in red all email fields that don't have an email address in the correct format.
	total_fields = email.length;
	for( var i = 0; i < total_fields; i++ )
	{
		elem = document.getElementById( email[i] );
		if( elem == undefined )
			continue;

		// The email address must be blank or in the correct format.
		if( (elem.value != '') && (elem.value.search( "^[A-Za-z0-9._%-]+@[A-Za-z0-9.-_]{2,30}\\.[A-Za-z]{2,4}$" ) == -1) )
		{
			elem.style.background = '#FF8888';
			fields_ok = false;
		}
		else
		{	// Only flag it as okay if it hasn't been flagged as mandatory.
			if( elem.style.background.indexOf( 'yellow' ) == -1 )
				elem.style.background = 'white';
		}
	}	
	
	if( !fields_ok )
	{
		elem = document.getElementById( error_field );
		
		if( elem != undefined )
			elem.innerHTML = "This form cannot be submitted yet.<br />Fields in yellow, must be completed.<br />Fields in red must be in the correct format and/or length specified.";
	}
	
	return fields_ok;
}


//	-----------------------------------------------------------------------	//
//	check_signup_fields
//
//	Are the form fields in good order?
//	-----------------------------------------------------------------------	//

function check_signup_fields( error_field, required, length_limit, email )
{
	return false;
}


function toggleLayer( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}


//	-----------------------------------------------------------------------	//

function initialize_newsletter()
{
	var elem = document.getElementById( 'ml_form' );
	
	// If javascript is enabled, show the form.
	if( elem != undefined )
		elem.style.display = 'block';

	elem = document.getElementById( 'first_name' );
	if( elem != undefined )
		elem.focus();
}
