////////////////////////////////////////////////////////////////
//	TOPSOFTWEB.COM
//	ACTION/SCRIPT CONTROL
//
//
//
//
////////////////////////////////////////////////////////////////
var current_slide = "";
var previous_slide = "";
var interval_id = 0;

function runhomepage()
{
	var browser = navigator.appName;
	
	//	Setup Mouse hover events for action script on home pag
	$('slide1').observe('mouseover', function(event) {
    	event.stop();
			
		previous_slide = current_slide;	
		current_slide='flash-slide1';
		
		new Effect.Parallel([
			new Effect.Fade(previous_slide, {sync:true}),
			new Effect.Appear(current_slide, {sync:true}) ],
			{ duration: .5 });
		
		//alert(previous_slide + '\n' + current_slide);
   	});
	$('slide2').observe('mouseover', function(event) {
    	event.stop();
        
		previous_slide = current_slide;	
		current_slide='flash-slide2';
		
		new Effect.Parallel([
			new Effect.Fade(previous_slide, {sync:true}),
			new Effect.Appear(current_slide, {sync:true}) ],
			{ duration: .5});
		
		//alert(previous_slide + '\n' + current_slide);
   	});
	
	
	/*$('slide3').observe('mouseover', function(event) {
    	event.stop();
        
		previous_slide = current_slide;	
		current_slide='flash-slide3';
		
		new Effect.Parallel([
			new Effect.Fade( previous_slide, {sync:true} ),
			new Effect.Appear( current_slide, {sync:true} )],
			{ duration: .5 } );
		
		//alert(previous_slide + '\n' + current_slide);
   	});*/
	
	new Effect.Appear("flash-slide1", {duration:1});
	
	previous_slide = "flash-slide1";
	current_slide = "flash-slide1";
}

/*
if( $('flash-slide1').display == "" || $('flash-slide1').style.visibility == "" )
			previous_slide = 'flash-slide1';
		if( $('flash-slide3').display == "" || $('flash-slide3').style.visibility == "" )
			previous_slide = 'flash-slide3';
*/

var surveyInterval;

function runsurveypage() 
{
	$('survey-window-close').observe('mouseover', function(event) {
    	event.stop();
        
		new Effect.Grow('survey-window-close');
   	});
	$('survey-window-close').observe('click', function(event) {
    	event.stop();
        
		alert("test");
		//window.location='index.html';
   	});
}

function updateFlash()
{
	//	Advance to next slide
	var totalSlides = 2;
	//alert("Start Inverval");
	
	if( current_slide == 3 )
	{
		new Effect.Fade('flash-slide3', {duration:.5});
		new Effect.Appear('flash-slide1', {duration:.5, delay:.7});
		current_slide = 1;
		previous_slide = 3;
	}
	if( current_slide == 2 )
	{
		new Effect.Fade('flash-slide2', {duration:.5});
		new Effect.Appear('flash-slide3', {duration:.5, delay:.7});
		current_slide = 3
		previous_slide = 2;
	}
	if( current_slide == 1 )
	{
		if( previous_slide == 3)
			new Effect.Fade('flash-slide3', {duration:.5});
		else
			new Effect.Fade('flash-slide1', {duration:.5});
			
		new Effect.Appear('flash-slide2', {duration:.5, delay:.55});
		current_slide = 2
		previous_slide = 1;
	}
	
	//alert("End Interval");
}


//	
function validate_contact_form()
{
	//	
	var errorText = "";
	
	if( $('Name').value === "" )
	{
		new Effect.Highlight('Name', { startcolor: '#3f5e8f', endcolor: '#bbbbbb', duration: 5 } );
		
		errorText += "Name\n";
	}
	if( $('Phone').value === "" )
	{
		new Effect.Highlight('Phone', { startcolor: '#3f5e8f', endcolor: '#bbbbbb', duration: 5 } );
		
		errorText += "Phone\n";
	}
	if( $('Email').value === "" )
	{
		new Effect.Highlight('Email', { startcolor: '#3f5e8f', endcolor: '#bbbbbb', duration: 5 } );
		
		errorText += "Email\n";
	} 
	
	
	if( errorText !== "" )
	{
		alert("ERROR!\nNot all form fields are complete. Please complete all fields.\n\n" + errorText);
 		
		return false;
	}

	//	If successful... send an ajax request to the server to double validate, send message and report success/
	
	//	Show progress...
	hide_element("submit");
	show_element("progress");

	//	Send Request
	new Ajax.Request('ajax/contact.php', 
	{	
  		method: 'post',
		onSuccess: function(e) { alert("Your message has been sent!\n\nThank you for contacting DPI. Please allow us 24 hours to respond to your message."); window.location='index.html'; },
		onFailure: function(e) { alert("Failed to contact server"); },
  		parameters: {
			name: $('Name').value,
			phone: $('Phone').value, 
			email: $('Email').value,
			message: $('message').value,
			page: "contact" }
  	});
}

function validate_survey_form()
{
	//	
	var errorText = "";
	
	if( $('Name').value === "" )
	{
		new Effect.Highlight('Name', { startcolor: '#3f5e8f', endcolor: '#bbbbbb', duration: 5 } );
		
		errorText += "Name\n";
	}
	if( $('Phone').value === "" )
	{
		new Effect.Highlight('Phone', { startcolor: '#3f5e8f', endcolor: '#bbbbbb', duration: 5 } );
		
		errorText += "Phone\n";
	}
	if( $('Email').value === "" )
	{
		new Effect.Highlight('Email', { startcolor: '#3f5e8f', endcolor: '#bbbbbb', duration: 5 } );
		
		errorText += "Email\n";
	} 
	
	
	if( errorText !== "" )
	{
		alert("ERROR!\nNot all form fields are complete. Please complete all fields.\n\n" + errorText);
 		
		return false;
	}

	//	If successful... send an ajax request to the server to double validate, send message and report success/
	
	//	Show progress...
	hide_element("submit");
	show_element("progress");

	//	Send Request
	new Ajax.Request('ajax/survey.php', 
	{	
  		method: 'post',
		onSuccess: survey_results,
		onFailure: function(e) { alert("Failed to contact server"); },
  		parameters: {
			name: $('Name').value,
			phone: $('Phone').value, 
			email: $('Email').value,
			address: $('Address').value,
			city: $('City').value,
			state: $('State').value,
			zip: $('Zip').value,
			utility: $('Utility').value,
			permission: $('Permission').checked,
			residential: $('Residential').checked,
			business: $('Business').checked,
			greeneroregon: $('GreenerOregon').checked,
			financial: $('Financial').value,
			energyindependence: $('EnergyIndependence').value,
			message: $('message').value,
			page: "survey" }
  	});
}

function survey_results( response )
{
	//	Hide progress...
	hide_element("progress");
	
	new Effect.Fade('survey', { to: .2, duration: .5 });
	
	new Effect.Parallel([
			new Effect.Move('survey-window', { sync:true, x: 550, y: 200, mode: 'relative' }), 
			new Effect.Appear('survey-window', { sync: true, to: 1 }) ], { duration: 1 });
	
	
	var results = new Array();
	results = response.responseText.split(";");
	
	var success = results[0];
	//	Strip whitespace from success	
	success = success.replace(/\s/gi, '');
	var message = results[1];

	if( success !== "true" )
	{
		//	FORM NOT SENT!
		$('survey-window').innerHTML = $('survey-window').innerHTML + message;
		show_element('survey-failure');
		new Effect.Appear("survey-failure", {duration:1});
		
		new Effect.Parallel([
			new Effect.Move('survey-window', { sync:true, x: -550, y: -200, mode: 'relative' }), 
			new Effect.Fade('survey-window', { sync: true, to: 0 }) ], { duration: 2.5, delay: 6 });
		
		new Effect.Appear('survey', {duration: 1, delay: 8});
		
		show_element("submit");
	
	}
	else
	{
		//	Form Sent!
		$('survey-window').innerHTML = $('survey-window').innerHTML + message;

		
		surveyInterval = setInterval("window.location='index.html'", 15000);
	}
					
}

function closeSurveyWindow() 
{
	clearInterval(surveyInterval);
	
	window.location = 'index.html';
}

function validate_phone_number_format(ElemID)
{
	var value = document.getElementById(ElemID).value;
	value = value.replace(/[^\d]+/ig, "");

	if(value.length == 7)
	{
		value = "(503) " + value;
		value = value.slice(0,9) + "-" + value.slice(9,14);
	}
	else if(value.length == 10)
		value = "(" + value.slice(0,3) + ") " + value.slice(3,6) + "-" + value.slice(6,10);
	else if(value.length == 11)
		value = value.slice(0,1) + " (" + value.slice(1,4) + ") " + value.slice(4,7) + "-" + value.slice(7,11);
	else if(value.length > 0 && value.length < 7)
		document.getElementById(ElemID).style.backgroundColor = '#FF0000';
		
	document.getElementById(ElemID).value = value;
}

function validate_statecode(ElemID)
{
	var elem_value = document.getElementById(ElemID).value;
	elem_value = elem_value.toUpperCase();
	document.getElementById(ElemID).value = elem_value;
}

function validate_date(ElemID)
{
	var value = document.getElementById(ElemID).value;
	var mysql_date_fmt = /(\d{4})-(\d{2})-(\d{2})/
	var std_date_fmt = /\d{2}-\d{2}-\d{4}/
	
	if(value.length == 4)
	{
		var year = value.slice(2,4);
		// If year starts with 0, add 20 to it. else, ad 19
		if(year.slice(0,1) == 0)
			year = "20" + year;
		else
			year = "19" + year;
			
		value = "0" + value.slice(0,1) + "/0" + value.slice(1,2) + "/" + year;
	}
	else if(value.length == 5)
	{
		var year = value.slice(3,5);
		// If year starts with 0, add 20 to it. else, ad 19
		if(year.slice(0,1) == 0)
			year = "20" + year;
		else
			year = "19" + year;
			
		value = "0" + value.slice(0,1) + "/" + value.slice(1,3) + "/" + year;
	}
	else if(value.length == 6)
	{
		// Problem. This could either be 121005 as meaning 12/10/2005, or it could be 231978 meaning
		// 02/03/1978. Must check value
		var year = value.slice(2,6);			
		value = "0" + value.slice(0,1) + "/0" + value.slice(1,2) + "/" + year;
	}
	else if(value.length == 7)
	{
		var year = value.slice(3,7);
		value = "0" + value.slice(0,1) + "/" + value.slice(1,3) + "/" + year;
	}
	else if(value.length == 8)
	{
			value = value.slice(0,2) + "/" + value.slice(2,4) + "/" + value.slice(4,8);
	}
	
	if(value == "00/00/0000")
		value = "";
	
	document.getElementById(ElemID).value = value;
}

function changebgColor(ID, Color)
{
	document.getElementById(ID).style.backgroundColor=Color;
}

function change_image(element, src)
{
	var obj = document.getElementById(element);
	
	obj.src = src;
}


function hide_elements_by_name(name, hide)
{
	var elements = document.getElementsByName(name);
	if(!elements)
		return false;
	for(var i = 0; i < elements.length; i++)
		hide_element(elements[i], hide);
}

function enable_element(element, enable)
{
	if(typeof element != "object")
		element = document.getElementById(element);
	element.disabled = enable ? "" : "disabled";
}

function enable_elements_by_name(name, enable)
{
	var elements = document.getElementsByName(name);
	if(!elements)
		return false;
	for(var i = 0; i < elements.length; i++)
		enable_element(elements[i], enable);
}

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

function get_current_date()
{
	var date = new Date;
	var month = "" + (date.getMonth()+1);
	month = month.length < 2 ? "0" + month : month;
	var day_of_month = "" + date.getUTCDate();
	day_of_month = day_of_month.length < 2 ? "0" + day_of_month : day_of_month;
	return month + "/" + day_of_month + "/" + date.getUTCFullYear();
}

function get_last_day(year, month)
{
	var date_obj = new Date(year, month, 1);
	var last_day;
	do {last_day = date_obj.getDate(); date_obj.setDate(date_obj.getDate() + 1);} while (date_obj.getDate() > 1);
	return last_day;
}

// --------------------------------------------------
function phone_lookup(value)
{
	var area_code;
	var number;
	value = value.replace(/[^\d]+/ig, "");
	
	if(value.length == 10)
	{
		area_code = value.slice(0,3); number = value.slice(3,6) + "-" + value.slice(6,10);
	}
	else if(value.length == 11)
	{
		area_code = value.slice(1,4); number = value.slice(4,7) + "-" + value.slice(7,11);
	}
	else if(value.length == 7)
	{
		alert("You must enter an area code for this number");
		return;
	}
	else
	{
		alert("Invalid phone number");
		return;
	}
	
	var url = "http://www.whitepages.com/10858/search/Reverse_Phone?npa=" + area_code + "&phone=" + number;
	window.open(url, 'reverse_lookup', 'scrollbars=yes, resizable=yes, width=750, height=480, left=' + ((screen.width / 2) - 375) + ', top=' + ((screen.height / 2) - 240));
}

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


function show_element(obj)
{
	obj = document.getElementById(obj);
	obj.style.visibility = "";
	obj.style.display = "";
}

function hide_element(obj)
{
	obj = document.getElementById(obj);
	obj.style.visibility = 'hidden';
	obj.style.display = 'none';
}
function collapseElement(ID)
{
	var element = document.getElementById(ID);
	element.style.display = "none";
}
function expandElement(ID)
{
	var element = document.getElementById(ID);
	element.style.display = "";
}
