/**
* Because paypal only accepts seven option fields and the site owner has about a dozen,
* we must send an email to the site owner with the order details in it,
* and then send site user to paypal to pay for order
**/
$(document).ready(function() {
   $('#formsubmit').click(orderFormValidate);
   $('#formsubmit').html("<img src=\"https://www.paypalobjects.com/WEBSCR-640-20110401-1/en_US/i/btn/btn_buynowCC_LG.gif\" />");
   $('#formsubmit').css("cursor", "pointer");
 });
function getPriceByQuantity(quantity) {
	var map = {"500":"50.00","1,000":"65.00","2,500":"100.00","5,000":"190.00","10,000":"340.00"};
	return map[quantity];
}
function successReq(data) {
	if(data=='success') {
		// begin get dummy fields
 	var name = $('input:text[name=name]').val();
		var phone = $('input:text[name=phone]').val();
		var email = $('input:text[name=email]').val();
		var quantity = $('input:radio[name=quantity]:checked').val();

		// create hidden form fields
 		var hiddenInputNames = '<input type="hidden" name="on0" value="Quantity">';
		hiddenInputNames += '<input type="hidden" name="on1" value="name" />';
		hiddenInputNames += '<input type="hidden" name="on2" value="phone" />';
		hiddenInputNames += '<input type="hidden" name="on3" value="email" />';
		var hiddenInputValues =  '<select name="os0"><option value="'+quantity+'">'+quantity+' $'+getPriceByQuantity(quantity)+'</option></select>';

		hiddenInputValues += '<input type="text" class="hidden_input" name="os1" value="'+name+'" />';
	   	hiddenInputValues += '<input type="text" class="hidden_input" name="os2" value="'+phone+'" />';
		hiddenInputValues += '<input type="text" class="hidden_input" name="os3" value="'+email+'" />';

	   $('#hiddenOrderForm').append(''+hiddenInputNames + hiddenInputValues);

		// submit hidden form
	   $('#hiddenOrderForm').submit();
	} else {
		alert('Request System error, please contact Newburgh Envelope to place your order');
	}
}
function orderFormValidate(){
	var errors = new Array();

	// get envelope type
	var envelopeType = $('input:radio[name=envelope_type]:checked').val();
	if(envelopeType == undefined)
		errors.push('Please select an envelope type');

	// get addresses
	var addresses = new Array();
	for(var j=1; j<=4; ++j)
		addresses[j] = $('input:text[name=line'+j+']').val();

	// get bolding
	var bolding = new Array();
	for(var m=1; m<=4; ++m) {
		if($("#line" + m + "_bold").val() !== undefined)
			bolding[m] = ($("#line"+m+"_bold").is(':checked') == true?'B':'R');
		else
			bolding[m] = 'R';
	}

	// get alignment
	var alignment = $('input:radio[name=alignment]:checked').val();
	if(alignment == undefined)
		errors.push('Please select an alignment');

	// get quantity/price
	var quantity = $('input:radio[name=quantity]:checked').val();
	if(quantity == undefined)
		errors.push('Please select a quantity');

	// get font
	var font = $('input:radio[name=font]:checked').val();
	if(font == undefined)
		errors.push('Please choose a font');

	// get color
	var color = $('input:radio[name=color]:checked').val();
	if(color == undefined)
		errors.push('Please choose a color');

	// get logo selection
	var logo = $('input:radio[name=logo]:checked').val();
	if(logo == undefined)
		errors.push('Please select a logo option');

	// get contact info
	var contactName = $('input:text[name=name]').val();
	if(contactName.length<2)
		errors.push('Please enter your name');
	var contactPhone = $('input:text[name=phone]').val();
	if(contactPhone.length<2)
		errors.push('Please enter your phone number');
	var contactEmail = $('input:text[name=email]').val();
	if(contactEmail.length<2)
		errors.push('Please enter your email address');

	// get email proof selection
	var email_proof = $('input:radio[name=email_proof]:checked').val();
	if(email_proof == undefined)
		errors.push('Please select an email proof option');

	// create message
	var message = $('textarea#orderComments').val();

	$('#order_form_errors').css('display','none');
	$('#order_form_errors').text('');

	// if no form errors submit ajax request
	if(errors.length==0) {
	   	var queryData = { 'addresses': addresses , 'envelope_type':envelopeType , 'alignment':alignment , 'font':font , 'color':color , 'uploaded_logo':logo , 'name':contactName , 'phone':contactPhone , 'email':contactEmail , 'message':message , 'bolding':bolding , 'quantity':quantity , 'email_proof':email_proof };
		// process ajax
		$.get(
			"/order/orderQuery.php?",
			queryData,
			successReq, 'html'
		).error(function(xhRequest, ErrorText, thrownError){alert('AJAX System error, please contact Newburgh Envelope to place your order')});
		

	} else {
		// display form errors in popup and on page
		var errorString = '<b>Please correct the following errors:</b>';
		alertString = 'Please correct the following errors:\n\n';
		for(var k=0;k<errors.length;++k) {
			errorString += '<div class="order_form_error">- '+errors[k]+'</div>';
			alertString += "    - " + errors[k] + "\n";
		}
		alert(alertString);
		$('#order_form_errors').css('display','block');
		$('#order_form_errors').append(errorString);
		window.scroll(0,0);
	}
	return false;
}
$(document).ready(function() {
	$('.hide_div_with_js').css("display","none");
	$('.hidden_submit_button').css("display","block");
});
