var previewed = false;

function addValue(prefix) {
	var select = jQuery('#' + prefix + '_available'); 
	
	if (select.get(0).options.length > 0) {
		var value = jQuery('#' + prefix + '_available option:selected').val();
		var name = jQuery('#' + prefix + '_available option:selected').text();
		
		if (value) {
			// Remove expertise from select
			jQuery('#' + prefix + '_available option:selected').remove();
			
			// Add expertise to list
			jQuery('#' + prefix + '_selected').append('<p id="' + prefix + '_' + value + '"><span id="' + prefix + '_' + value + '_name">' + name + '</span> - <a href="#" onclick="deleteValue(\'' + prefix + '\', \'' + value + '\'); return false;">remove</a></p>');

			// Add expertise to hidden input
			jQuery('#AppForm').append('<input type="hidden" id="' + prefix + '_' + value + '_hidden" name="' + prefix + '_array[]" value="' + value + '" />');
		}
	}
}

function deleteValue(prefix, id) {
	var name = jQuery('#' + prefix + '_' + id + '_name').text();
	
	// Delete expertise from list
	jQuery('#' + prefix + '_' + id).remove();
	
	// Delete expertise from hidden input
	jQuery('#' + prefix + '_' + id + '_hidden').remove();

	// Add expertise to select
	jQuery('#' + prefix + '_available').append('<option value="' + id + '">' + name + '</option>');
}

jQuery(document).ready(function() {
	// Setup buttons
	jQuery('#preview').click(function() {
		openPreview();
	});
	
	// Setup dynamic selects
	jQuery('#lawyer_expertises_available').change(function() {
		addValue('lawyer_expertises');
	});
	jQuery('#job_position_available').change(function() {
		addValue('job_position');
	});
	jQuery('#office_available').change(function() {
		addValue('office');
	});

	// Setup radio button hide/show
	jQuery('#position_type_lawyer').click(function() {
		jQuery('#position_type_lawyer_block').show();
		jQuery('#position_type_trainee_block').hide();
		jQuery('#position_type_support_block').hide();
	});
	jQuery('#position_type_trainee').click(function() {
		jQuery('#position_type_lawyer_block').hide();
		jQuery('#position_type_trainee_block').show();
		jQuery('#position_type_support_block').hide();
	});
	jQuery('#position_type_support').click(function() {
		jQuery('#position_type_lawyer_block').hide();
		jQuery('#position_type_trainee_block').hide();
		jQuery('#position_type_support_block').show();
	});
	jQuery('#support_type_assistant').click(function() {
		jQuery('#support_type_other_block').hide();
	});
	jQuery('#support_type_other').click(function() {
		jQuery('#support_type_other_block').show();
	});
});

function validate() {
	var missing = false;
	
	// Require contact info
	if (!jQuery('#first_name').val() || !jQuery('#last_name').val() || !jQuery('#phone').val() || !jQuery('#email').val()) {
		missing = true;
	}
	
	// Require office
	if (!jQuery("input[name='office_array[]']").length) {
		missing = true;
	}
	
	// Require position
	if (!jQuery("input[name='position_type']:checked")) {
		missing = true;
	}
	
	// Require application & CV
	if (!jQuery('#application').val() || !jQuery('#resume').val()) {
		missing = true;
	}
	
	// Display errors
	jQuery('#PreviewError').hide();
	jQuery('#MissingError').hide();

	if (missing) {
		jQuery('#MissingError').show();
		return false;
	} else if (!previewed) {
		jQuery('#PreviewError').show();
		return false;
	} else {
		return true;
	}
}

function openPreview() {
	var html = '\
<html>\
	<head>\
		<title>Preview</title>\
		<link rel="stylesheet" href="http://www.krogerus.com/en/wp-content/themes/krogerus/css/styles.css" type="text/css" media="all" />\
	</head>\
	<body>\
<div id="PreviewWindow">\
	<h1>PREVIEW</h1>\
	<h2>1. CONTACT INFORMATION</h2>\
	' + getP('first_name') + '\
	' + getP('last_name') + '\
	' + getP('address') + '\
	' + getP('phone') + '\
	' + getP('email') + '\
	<h2>2. OFFICE</h2>\
	' + getP2('office') + '\
	<h2>3. POSITION</h2>\
	' + getP3() + '\
	<h2>4. APPLICATION</h2>\
	' + getP('application') + '\
	<h2>5. CV</h2>\
	' + getP('resume') + '\
	<h2>6. OTHER ATTACHMENTS</h2>\
	' + getP4() + '\
</div>\
	</body>\
</html>\
	';
	var win = window.open('', 'preview', 'width = 800, height = 600');
	win.document.write(html);
	win.document.close();
	previewed = true;
	jQuery('#PreviewError').hide();
}

function getRequired() {
	return ' <span class="required">*</span>';
}

function getP(id) {
	var value = jQuery('#' + id).val();
	if (value) {
		return '<p>' + value + '</p>';
	} else {
		return '';
	}
}

function getP2(id) {
	var html = '';
	jQuery('span[id^=' + id + '_][id$=_name]').each(function() {
		html += '<p>' + this.innerHTML + '</p>';
	});
	return html;
}

function getP3() {
	var html = '';
	if (jQuery('#position_type_lawyer').is(':checked')) {
		html += '<p>Lawyer</p>';
		html += getP2('lawyer_expertises');
	} else if (jQuery('#position_type_trainee').is(':checked')) {
		html += '<p>' + jQuery('#trainee_type').val() + ' trainee</p>';
		html += '<p>Transcript of studies: ' + jQuery('#transcript').val() + '</p>';
	} else if (jQuery('#position_type_support').is(':checked')) {
		html += '<p>Support Staff</p>';
		if (jQuery('#support_type_assistant').is(':checked')) {
			html += '<p>Assistant</p>';
		} else if (jQuery('#support_type_reception').is(':checked')) {
			html += '<p>Reception</p>';
		} else if (jQuery('#support_type_other').is(':checked')) {		
			html += '<p>' + jQuery('#support_other').val() + '</p>';
		}
	}
	
	return html;
}

function getP4() {
	var html = '';
	for (var i = 1; i <= 3; i++) {
		if (jQuery('#attachment_' + i).val()) {
			html += '<p>' + jQuery('#attachment_' + i).val() + '</p>';
		}
	}
	return html;
}

