// Resumes Javascript

// Attach save now events to each navigaiton menu item
window.addEvent('domready', function(){
     
	 // Save now action on navigation links
	 $$('.navLinkSave').each(function(el) {
			el.addEvent('click', function() {	
					resumesSaveNow();
				});
		});
		
	
		resumesSpellCheck();
	
		
});

// Adds spell checker events by Dave
function resumesSpellCheck() {
	
	// Attach spell check events to spellcheck fields
	$$('.spellcheck').each(function(el) {
			var textDiv = el.getParent('div');
			var textarea = $(textDiv).getElement('textarea');
	
			var SpellCheckerObj = new PureSpellChecker('',textarea,'english','/express/spellcheck/','/express/spellcheck/');
		
			el.removeEvents();
			// Launch it from a click event
			el.addEvent('click', function() {
					SpellCheckerObj.display(true);								  
			});
	});
	
}

// Save the current on screen resume step
function resumesSaveNow(){

	var query = 'ac=resumeSteps&cm=saveNow&saveNow=yes&'+$('resumeForm').toQueryString()+'&ajax=true'
	new Request({ url: 'index.php', method: 'post', data: query, onRequest: loader.detect(),
					   onComplete: function(resp) { 
					   		//alert(resp);
					   		$('saveNow').set('src', 'images/butSaved.gif');
							setTimeout("$('saveNow').set('src', 'images/butSaveNow.gif')", 5000);
							loader.detect();
						} }).send();  


}


// Load the industries sub classifications
function resumesLoadIndustriesJobs(id) {
	
	if(id) {
	
		var query = 'ac=resumeSteps&cm=step2LoadSubClass&jid='+id+'&ajax=true'
		new Request({ url: 'index.php', method: 'post', data: query, onRequest: loader.detect(),
						   onComplete: function(resp) { 
						   		if(resp) {
									$('indSubList').set('html', resp);
									var resumeForm = new FormCheck('resumeForm');
									// If its not disabled, an on onlick event to it. Otherwise show the career section now
									if(!$('ind_sid').get('disabled')) {
										// Event for  showing the textarea
										$('ind_sid').addEvent('change', function(){
												if(this.get('value')) {
													// They will have their choice locked now if they choose to save it
													var save = resumesCheckSave();
													if(save) {
														resumesSaveNow();
														$('ind_id').set('disabled', true);
														$(this).set('disabled', true);
														$('careerDiv').setStyle('display', 'block');
														// Load the suggestion
														resumesLoadCareerSuggestion(this.get('value'), id);
														// Load the skills/keywords
														resumesLoadsSkill(id, this.get('value'));
													}
											}else{
												$('careerDiv').setStyle('display', 'none');
												$('careerProfile').set('value', '');
											}
										});
									}else{
										//resumesLoadCareerSuggestion(this.get('value'), id);
										$('careerDiv').setStyle('display', 'block');
									}
		
									// Load the keyword categories now
									// resumesLoadKeywordsCat(id);
									if($('ind_sid').get('value')) {
										resumesLoadsSkill(id, $('ind_sid').get('value'));
									}
								}
								loader.detect();
							} }).send();
		
	}
	
}


// Load the career suggestion
function resumesLoadCareerSuggestion(sid, iid) {
	
	if(sid && iid) {
	
		var query = 'ac=resumeSteps&cm=step2LoadSuggestion&iid='+iid+'&sid='+sid+'&ajax=true'
		new Request({ url: 'index.php', method: 'post', data: query, onRequest: loader.detect(),
						   onComplete: function(resp) { 
						 		$('careerProfile').set('value', resp);
								loader.detect();
							} }).send();
		
	}
	
}


// Load the categories for keywords
function resumesLoadKeywordsCat(iid) {

	if(iid) {
	
		var query = 'ac=resumeSteps&cm=step2LoadKeywordsCats&iid='+iid+'&ajax=true'
		new Request({ url: 'index.php', method: 'post', data: query, onRequest: loader.detect(),
						   onComplete: function(resp) { 
						   		if(resp) {
									$('keyCatDiv').set('html', resp);
									
									// Event for  showing the textarea
									$('keyCat').addEvent('change', function(){
											if(this.get('value')) {
												resumesLoadKeywords(this.get('value'));
											}
									});
								}
								
									
								loader.detect();
							} }).send();
		
	}
	
}


// Load the category keywords
function resumesLoadKeywords(cid) {

	if(cid) {
	
		var query = 'ac=resumeSteps&cm=step2LoadKeywords&cid='+cid+'&ajax=true'
		new Request({ url: 'index.php', method: 'post', data: query, onRequest: loader.detect(),
						   onComplete: function(resp) { 
						   		if(resp) {
									$('keywordsDiv').set('html', resp);
									
									// Event for adding skill text to the textinput
									$('keywords').addEvent('change', function(){
											if(this.get('value')) {
												$('skillsText').removeEvents();
												$('skillsText').set('value', this.get('value'));
											}
									});
								}
					
								loader.detect();
							} }).send();
		
	}
	
}


// Add a skill
function resumesAddSkill(skillText) {

	if(skillText) {
		
		
		// The holding div
		var skillItem = new Element('div', {'class': 'skillItem'});
		// Text label
		var skillLabel = new Element('span', {'html': skillText});
		// Form Item
		var skillInput = new Element('input', {'name':'skills[]', 'type':'hidden', 'value': skillText});
		// Delete icon
		var delItem = new Element('img', {'src': 'images/delete.gif', 'align':'absmiddle', 'class': 'skillItemDel', 'style':'padding-right: 5px', 'events': {'click': function(){ skillItem.destroy(); } } });
		// Edit icon
		var editItem = new Element('img', {'src': 'images/editResume.gif', 'align':'absmiddle', 'class': 'skillItemEdit', 'style':'padding-right: 8px', 'events': {'click': function(){ $(keywordSpan).setStyle('display','block'); } } });
		
		
		// Edit Span
		var keywordSpan = new Element('div', {'style':'display: none; margin-top: 5px; margin-left: 45px;'});
		var keywordInput = new Element('input', {'type':'text', 'style':'width: 320px; ', 'value': skillText, 'events': {'keyup': function(){ $(skillLabel).set('html', this.value); } }});
		var keywordSave = new Element('input', {'type':'button', 'value': 'Save', 'events': {'click': function(){ $(keywordSpan).setStyle('display', 'none'); $(skillInput).set('value', $(skillLabel).get('html')); } } });
		
		
		keywordSpan.grab(keywordInput);
		keywordSpan.grab(keywordSave);
		
		skillItem.grab(delItem);
		skillItem.grab(editItem);
		skillItem.grab(skillLabel);
		skillItem.grab(keywordSpan);
		skillItem.grab(skillInput);
		
		// Add to the list
		$('skillsArea').grab(skillItem);
		
	}
	
}




// Populate the skills field with their previously saved skills
function resumesLoadsSkill(iid, sid) {

	var skills;
	var skillsJSON = $('skillsLoad').get('html');
	
	
	// Preload already selected skills. If there are no skills, preload the ones for this industry/subclass
	if(skillsJSON) {
	
		JSON.decode(skillsJSON).each(function(keyword) {
					resumesAddSkill(keyword);
			});
	
	}else{
		
		// Get the preset skills/keywords since they don't have any yet
		var query = 'ac=resumeSteps&cm=step2LoadSkills&iid='+iid+'&sid='+sid+'&ajax=true'
		new Request({ url: 'index.php', method: 'post', data: query, onRequest: loader.detect(),
					   onComplete: function(resp) { 
						   			if(resp) {
									JSON.decode(resp).each(function(ob) {
										resumesAddSkill(ob.keyword);
									});
								}
					   			
							loader.detect();
						} }).send();  
		
		
	}
	
}


// Populate the skills field with their previously saved skills
function resumesResetSkills() {
	
	var iid = $('ind_id').get('value');
	var sid = $('ind_sid').get('value');

	// Get the preset skills/keywords since they don't have any yet
	var query = 'ac=resumeSteps&cm=step2LoadSkills&iid='+iid+'&sid='+sid+'&ajax=true'
	new Request({ url: 'index.php', method: 'post', data: query, onRequest: loader.detect(),
					   onComplete: function(resp) { 
							
					   		if(resp) {
									$('skillsArea').empty();
									JSON.decode(resp).each(function(ob) {
										resumesAddSkill(ob.keyword);
									});
								}
					   			
							loader.detect();
						} }).send();  
	
}






// Add another education field
function resumesAddEducation() {

	// Clone the original education div
	var eduDiv = $('eduEntry').clone([true, false]);
	
	// Clear out text values for inputs
	eduDiv.getElements('input').each(function (el) { el.value = ''; });
	eduDiv.getElements('textarea').each(function (el) { el.value = ''; });
	
	$('eduEntries').grab(eduDiv);
	resumesAddEducationRemove();
	
	// Add spell check events 
	resumesSpellCheck();
	
	return eduDiv;
	
}

// Add remove events for the education bits
function resumesAddEducationRemove() {
	
		// Preselect the style
		var eduRemove = $$('.eduRemove');
		
		eduRemove.each(function(el) {
								
			// First remove any events already attached
			el.removeEvents();
			
			el.addEvent('click', function(){
			
				var eduCount = $$('.eduRemove').length;
						
				if(eduCount > 1) {
					var parent = el.getParent('div');
					parent.destroy();
				}else{
					alert('You cannot remove all form fields.');
				}
			});
		

		});
	
}


function resumesCheckSave() {

	var checkDisabled = $('ind_id').get('disabled');
	
	if(!checkDisabled) {
	
		var check = confirm('Important! Proceeding will lock your industry and sub classification choice. Do you wish to continue?');  
	
		if(check) { return true; }
			 else { return false; }
	}
	
}

// Show a section tip
function resumesTipShow(el){

	var tipIds = $$('#tip img');
	
	var tip = tipIds.get('id');

	if($('tipText')) {
		
		$('tipText').destroy();	
		
	}else {

		var query = 'ac=resumeSteps&cm=tip&id='+tip+'&ajax=true'
		new Request({ url: 'index.php', method: 'post', data: query, 
						   onComplete: function(resp) { 
								// The tip el
								var tipEl = new Element('div', {'class': 'tipItem', 'id':'tipText', 'html':resp});
								$('formBox').grab(tipEl, 'top');
								
							} }).send();  
		
	}

	
}


// Add events to the employment responsibilities section
function resumesEmpAddEvents(elMain, addId, divId, elField, container) {

		// IF a container is created
		if(container) {
			// Empty its extra fields
			$(container).getElement('.'+divId).empty();
			// Increment the field counter for each
			$(container).getElements('.addField').each(function(el) { 
										
										var count = $$('.eduEntryDiv').length;
										$(el).set('alt', count); 
										$(el).set('name', elField+'['+count+'][]'); 
										
									});
		}


		$$('.'+addId).each(function(el) {
				
					el.removeEvents();
					el.addEvent('click', function() {	
									
							var parent = el.getParent('div');
							var grabEl = $(parent).getElement('.'+divId);		
							
							// Get the current counter
							var count = $(parent).getElement('.addField').get('alt');	
			
												  
							var newDiv = new Element('div', {'class': 'empItem', 'style':'margin-top: 5px'});
							var newField = new Element('input', {'type':'text', 'class':'userField', 'name':elField+'['+count+'][]'});
							// Delete icon
							var delItem = new Element('img', {'src': 'images/delete.gif', 'align':'absmiddle', 'class': 'skillItemDel', 'style':'padding-right: 5px', 'events': {'click': function(){ newDiv.destroy(); } } });

							newDiv.grab(newField);
							newDiv.grab(delItem);
							grabEl.grab(newDiv);
						});
					
				});
	 
}


