/*
 * product_selector.js
 *
 * @author: Ben Koren <bkoren@firstscribe.com>
 * Date: 7/6/09
 *
 */

var $submitted = false;

function submitForm($input_form, $handler_url, $output_div) {
	//$($output_div).show();
	new Ajax.Updater($output_div, $handler_url, {
		method: 'post',
		parameters: $($input_form).serialize(true),
		onLoading: function(req) {
			$($output_div).innerHTML = "Your request is processing...";
		},
		onFailure: function() {
			$($output_div).innerHTML = "Request failed. Please retry your request.";
		},
		onException: function() {
			$($output_div).innerHTML = "Exception occurred. Please retry your request.";
		}
	});
}

/* This is a special form of submitForm that is used solely for the product recommendation - the main purpose is to fire Omniture code */
function submitForm2($input_form, $handler_url, $output_div) {
	//$($output_div).show();
	new Ajax.Updater($output_div, $handler_url, {
		method: 'post',
		parameters: $($input_form).serialize(true),
		onLoading: function(req) {
			$($output_div).innerHTML = "Your request is processing...";
		},
		onFailure: function() {
			$($output_div).innerHTML = "Request failed. Please retry your request.";
		},
		onException: function() {
			$($output_div).innerHTML = "Exception occurred. Please retry your request.";
		},
		onComplete: function(transport) {
			var s=s_gi('fscrjohnstech'); 
			var temp=$('product').innerHTML;
			temp = temp.replace('<sup>', '');
			temp = temp.replace('</sup>', '');
			s.eVar10=temp;
			s.prop6=s.eVar10; 
			s.events='event3';
			s.tl(this,'o','Product Selector - Device Information');
			s.eVar10='';
			s.prop6='';
		}
	});
}

function fireOmni4()
{
	var s=s_gi('fscrjohnstech'); 
	s.events='event4';
	s.tl(this,'o','Product Selector - Product Recommendation');
}

function fireOmni5()
{
	var s=s_gi('fscrjohnstech'); 
	s.events='event5';
	s.tl(this,'o','Product Selector - Customer Information');
}


function loadDIV($output_div, $handler_url) {
	new Ajax.Updater($output_div, $handler_url, {
		method: 'post',
		onLoading: function(req) {
			$($output_div).innerHTML = "List is loading...";
		},
		onFailure: function() {
			$($output_div).innerHTML = "Request failed. Please retry your request.";
		},
		onException: function() {
			$($output_div).innerHTML = "Exception occurred. Please retry your request.";
		}
	});
}

function qfnContinue() {
	if (
		document.qfn_form.speed.value != 'Unknown'
		|| (document.qfn_form.inductance.value != 'N/A' && document.qfn_form.inductance.value != 'Unknown')
		|| (document.qfn_form.gain.value != 'N/A' && document.qfn_form.gain.value != 'Unknown')
		)
	{
		submitForm2('qfn_form', './product_selector_handler.php?action=product', 'results');
		hideDIV('selector_info');
		showDIV('results_info');
	}
	else {
		alert("You must give input for at least 1 of the following: Speed, Inductance, or Gain");
	}
	
}

function dfnContinue() {
	if (
		document.dfn_form.speed.value != 'Unknown'
		|| (document.dfn_form.inductance.value != 'N/A' && document.dfn_form.inductance.value != 'Unknown')
		|| (document.dfn_form.gain.value != 'N/A' && document.dfn_form.gain.value != 'Unknown')
		)
	{
		submitForm2('dfn_form', './product_selector_handler.php?action=product', 'results');
		hideDIV('selector_info');
		showDIV('results_info');
	}
	else {
		alert("You must give input for at least 1 of the following: Speed, Inductance, or Gain");
	}
	
}

function custInfoContinue()
{
	if (document.cust_form.email.value.length == 0)
	{
		alert('You are required to submit an email address.');
	}
	else
	{		
		submitForm('cust_form', 'product_selector_handler.php?action=contact_info_rep', 'contact_info_rep');
		submitForm('cust_form', 'product_selector_handler.php?action=contact_info_rep_email', 'contact_info_rep_email');
		hideDIV('customer_info');
		showDIV('additional_info');
		fireOmni5();
	}
}

function finalizeInput() {
	$device = document.getElementById("device").options[document.getElementById("device").selectedIndex].value;

	switch($device) {
		case 'QFN':
			document.additional_form.device.value='QFN';
			
			document.additional_form.speed.value=document.qfn_form.speed.value;
			document.additional_form.harmonics.value=document.qfn_form.harmonics.value;
			document.additional_form.inductance.value=document.qfn_form.inductance.value;
			document.additional_form.gain.value=document.qfn_form.gain.value;
			document.additional_form.power.value=document.qfn_form.power.value;
			document.additional_form.dutycycle.value=document.qfn_form.dutycycle.value;
			
			document.additional_form.body.value=document.qfn_form.body.value;
			document.additional_form.pitch.value=document.qfn_form.pitch.value;
			document.additional_form.pin.value=document.qfn_form.pin.value;
			document.additional_form.handler.value=document.qfn_form.handler.value;
			
			if ( document.qfn_form.handler.value == "Other" ) {
				try {document.additional_form.housing_size.value=document.qfn_form.housing_size.value;}catch(e){}
				try {document.additional_form.handler_alt.value=document.qfn_form.handler_alt.value;}catch(e){}
			}
			
			document.additional_form.actuator.value=document.qfn_form.actuator.value;
			document.additional_form.plating.value=document.qfn_form.plating.value;
			document.additional_form.alpl.value=document.qfn_form.alpl.value;
			
			document.additional_form.electrical_additional.value=document.qfn_form.electrical_additional.value;
			document.additional_form.mechanical_additional.value=document.qfn_form.mechanical_additional.value;
			
			break;
		case 'DFN':
			document.additional_form.device.value='DFN';
			
			document.additional_form.speed.value=document.dfn_form.speed.value;
			document.additional_form.harmonics.value=document.dfn_form.harmonics.value;
			document.additional_form.inductance.value=document.dfn_form.inductance.value;
			document.additional_form.gain.value=document.dfn_form.gain.value;
			document.additional_form.power.value=document.dfn_form.power.value;
			document.additional_form.dutycycle.value=document.dfn_form.dutycycle.value;
			
			document.additional_form.body.value=document.dfn_form.body.value;
			document.additional_form.pitch.value=document.dfn_form.pitch.value;
			document.additional_form.pin.value=document.dfn_form.pin.value;
			document.additional_form.handler.value=document.dfn_form.handler.value;
			
			if ( document.dfn_form.handler.value == "Other" ) {
				try {document.additional_form.housing_size.value=document.dfn_form.housing_size.value;}catch(e){}
				try {document.additional_form.handler_alt.value=document.dfn_form.handler_alt.value;}catch(e){}
			}
			
			document.additional_form.actuator.value=document.dfn_form.actuator.value;
			document.additional_form.plating.value=document.dfn_form.plating.value;
			document.additional_form.alpl.value=document.dfn_form.alpl.value;
			
			document.additional_form.electrical_additional.value=document.dfn_form.electrical_additional.value;
			document.additional_form.mechanical_additional.value=document.dfn_form.mechanical_additional.value;
			
			break;
		case 'QFP':
			document.additional_form.device.value="QFP";
			
			document.additional_form.speed.value=document.qfp_form.speed.value;
			document.additional_form.harmonics.value=document.qfp_form.harmonics.value;
			document.additional_form.power.value=document.qfp_form.power.value;
			document.additional_form.dutycycle.value=document.qfp_form.dutycycle.value;
			
			document.additional_form.body.value=document.qfp_form.body.value;
			document.additional_form.pitch.value=document.qfp_form.pitch.value;
			document.additional_form.pin.value=document.qfp_form.pin.value;
			document.additional_form.grounding.value=document.qfp_form.grounding.value;
			document.additional_form.handler.value=document.qfp_form.handler.value;
			
			if ( document.qfp_form.handler.value == "Other" ) {
				try {document.additional_form.housing_size.value=document.qfp_form.housing_size.value;}catch(e){}
				try {document.additional_form.handler_alt.value=document.qfp_form.handler_alt.value;}catch(e){}
			}
			
			document.additional_form.hardware.value=document.qfp_form.hardware.value;
			document.additional_form.hardware_info.value=document.qfp_form.hardware_info.value;
			document.additional_form.plating.value=document.qfp_form.plating.value;
			
			document.additional_form.electrical_additional.value=document.qfp_form.electrical_additional.value;
			document.additional_form.mechanical_additional.value=document.qfp_form.mechanical_additional.value;
			
			break;
		case 'SO':
			document.additional_form.device.value="SO";
			
			document.additional_form.speed.value=document.so_form.speed.value;
			document.additional_form.harmonics.value=document.so_form.harmonics.value;
			document.additional_form.power.value=document.so_form.power.value;
			document.additional_form.dutycycle.value=document.so_form.dutycycle.value;
			
			document.additional_form.body.value=document.so_form.body.value;
			document.additional_form.pitch.value=document.so_form.pitch.value;
			document.additional_form.pin.value=document.so_form.pin.value;
			document.additional_form.grounding.value=document.so_form.grounding.value;
			document.additional_form.handler.value=document.so_form.handler.value;
			
			if ( document.so_form.handler.value == "Other" ) {
				try {document.additional_form.housing_size.value=document.so_form.housing_size.value;}catch(e){}
				try {document.additional_form.handler_alt.value=document.so_form.handler_alt.value;}catch(e){}
			}
			
			document.additional_form.hardware.value=document.so_form.hardware.value;
			document.additional_form.hardware_info.value=document.so_form.hardware_info.value;
			document.additional_form.plating.value=document.so_form.plating.value;
			
			document.additional_form.electrical_additional.value=document.so_form.electrical_additional.value;
			document.additional_form.mechanical_additional.value=document.so_form.mechanical_additional.value;
			
			break;
		default:
			break;
	}
	
	try {document.additional_form.analog_digital.value=document.application_form.analog_digital.value;}catch(e){}
	try {document.additional_form.application.value=document.application_form.application.value;}catch(e){}
	try {document.additional_form.application_use.value=document.application_form.application_use.value;}catch(e){}
	try {document.additional_form.application_use_other.value=document.application_form.application_use_other.value;}catch(e){}
	/* Jason added load board and product sheets */
	try {document.additional_form.load_board.value=document.results_form.load_board.value;}catch(e){}
	try {document.additional_form.product_sheet.value=document.results_form.product_sheet.value;}catch(e){}
	
	document.additional_form.results.value=document.getElementById('results').innerHTML;
	
	document.additional_form.country.value=document.cust_form.country.value;
	
	if ( document.cust_form.country.value == "United States" )
		document.additional_form.state.value=document.cust_form.state.value;
	else 
		document.additional_form.state.value='';
	
	document.additional_form.phone.value=document.cust_form.phone.value;
	document.additional_form.email.value=document.cust_form.email.value;
	document.additional_form.cust_contact.value=document.cust_form.cust_contact.value;
	
	document.additional_form.contact_info_rep.value=document.getElementById('contact_info_rep').innerHTML;
	document.additional_form.contact_info_rep_email.value=document.getElementById('contact_info_rep_email').innerHTML;
}

function resetFinalSubmit() {
	$submitted = false;
	document.additional_form.final_submit.value = 'Please wait...3';
	document.additional_form.final_submit.disabled = true;
	setTimeout("document.additional_form.final_submit.value = 'Please wait...2';",1000);
	setTimeout("document.additional_form.final_submit.value = 'Please wait...1';",2000);
	setTimeout("finalizeInput();", 2500);
	setTimeout("document.additional_form.final_submit.value = 'Submit';document.additional_form.final_submit.disabled = false;",3000);
}

function finalSubmit() {
	if($submitted == true) { return; }
	var s=s_gi('fscrjohnstech'); 
	s.prop7=document.additional_form.country.value; 
	s.prop8=document.additional_form.state.value; 
	s.events='event6';
	s.tl(this,'o','Product Selector - Submission');
	document.additional_form.submit();
	document.additional_form.final_submit.value = 'Submitting...';
	document.additional_form.final_submit.disabled = true;
	$submitted = true;
}

function selectDevice($device_type) {
	selectTab('qfn_wrapper');
	
	var $i = $device_type.selectedIndex;
	var $val = $device_type[$i].value;
	
	switch($val) {
		case "QFN":
			selectTab('qfn_wrapper');
			break;
		case "DFN":
			selectTab('dfn_wrapper');
			break;
		case "QFP":
			selectTab('qfp_wrapper');
			break;
		case "SO":
			selectTab('so_wrapper');
			break;
		default:
			selectTab();
	}
}

function selectTab($tab) {
	$('qfn_wrapper').hide();
	$('dfn_wrapper').hide();
	$('qfp_wrapper').hide();
	$('so_wrapper').hide();
	
	try{$($tab).show();}catch(e){}
}

function selectCountry() {
	if (document.cust_form.country.value == 'United States') {
		$('customer_info_state').show();
	}
	else {
		$('customer_info_state').hide();
	}
}

function selectDeviceApplication() {
	var type = document.application_form.analog_digital.options[document.application_form.analog_digital.selectedIndex].value;
	
	if ( type == 'Digital' )
	{
		$('application_1').addClassName('hidden');
		$('application_2').addClassName('hidden');
	}
	else
	{
		$('application_1').removeClassName('hidden');
		$('application_2').removeClassName('hidden');
	}
	
	if (type != '')
		loadDIV('device_application_list','product_selector_handler.php?action=device_application_list&type='+type);
}

function selectApplicationUse() {
	if (document.application_form.application_use.value == 'Other') {
		$('application_use_other').show();
	}
	else {
		$('application_use_other').hide();
	}
	
}

function textLimit($textarea, $counter, $limit) {
	if ($textarea.value.length > $limit)
		$textarea.value = $textarea.value.substring(0, $limit);
	else
		$counter.value = $limit - $textarea.value.length;
}

function showDIV($div) {
	// $($div).show();
	Effect.BlindDown($div, { duration: 0.5 });
}

function hideDIV($div) {
	// $($div).hide();
	Effect.BlindUp($div, { duration: 0.5 });
}

function printDIV(div)
{
	var prtContent = document.getElementById(div);
	var WinPrint =
	window.open('','','left=0,top=0,width=1,height=1,t oolbar=0,scrollbars=0,status=0');
	WinPrint.document.open();
	WinPrint.document.write(prtContent.innerHTML);
	WinPrint.document.close();
	WinPrint.focus();
	WinPrint.print();
	WinPrint.close();
}



