﻿// JScript File
FutureLab.addNamespace(Pagen,'Pagen.Web.UI.Forms.Demo');

Pagen.Web.UI.Forms = {
	reportFileupload : function(id,valid,fileName) {
		
		if(!valid) {
			$(id + '_error').addClassName('error'); 
			$(id).setStatus('error');
			
			$('errorlist').innerHTML= $('errorlist').innerHTML + '<li>Ogiltigt filformat</li>';
			$('error').show();
		}
		else
		{
			$(id).setValue(fileName);
			$(id).setStatus('done');
		}
		
		Pagen.Web.UI.Forms.JobApplication.waitForUpload();
		
		document.fire('fileupload:complete',{fieldid: id,valid:valid,filename:fileName})
		
		return false;
	}
}

Pagen.Web.UI.Forms.JobApplication = {
	validate : function(){
		var _firstname = new API.Web.UI.Client.Service.Forms.validationValue();
		var _lastname = new API.Web.UI.Client.Service.Forms.validationValue();
		var _socialsecurity = new API.Web.UI.Client.Service.Forms.validationValue();
		var _address = new API.Web.UI.Client.Service.Forms.validationValue();
		var _alt_address = new API.Web.UI.Client.Service.Forms.validationValue();
		var _postalcode = new API.Web.UI.Client.Service.Forms.validationValue();
		var _city = new API.Web.UI.Client.Service.Forms.validationValue();
		var _email = new API.Web.UI.Client.Service.Forms.validationValue();
		var _phone_home = new API.Web.UI.Client.Service.Forms.validationValue();
		var _phone_mobile = new API.Web.UI.Client.Service.Forms.validationValue();
		var _employed = new API.Web.UI.Client.Service.Forms.validationValue();
		
		var _filename = new API.Web.UI.Client.Service.Forms.validationValue();
		var _filename2 = new API.Web.UI.Client.Service.Forms.validationValue();
		var _gender = new API.Web.UI.Client.Service.Forms.validationValue();
		var _expList = new Array();
		var i;
		
		var errorlist = '';

		var failed = function() {alert('validateDemo:Something went wrong');}
		
		var succeeded = function(result) {
				if(result.length > 0){
					for (var index = 0; index < result.length; ++index) 
					{   
						var item = result[index];
						
						$(item.property + '_error').addClassName('error'); 
						errorlist = errorlist + '<li>'+item.error+'</li>'; 
					} 
					
					$('error').show();
					$('errorlist').innerHTML=errorlist;
					
					if (popup && popup.popIsActive) {
                        popup.resizeOverlay();
                    }
				}
				else
				{
					//start upload
					if($('cv').getValue().length == 0) {
						$('cv').setStatus('uploading');
					}
					
					if($('letter').getValue().length == 0) {
						$('letter').setStatus('uploading');
					}

					if($('letter').getValue().length == 0) {
						$('file').setStatus('uploading');
					}
				
					Pagen.Web.UI.Forms.JobApplication.waitForUpload();
				}
		}
		
		try {
		
		$('errorlist').innerHTML='';
	    $('error').hide();
		
		$('firstname_error').removeClassName('error');
		$('lastname_error').removeClassName('error');
		$('socialsecurity_error').removeClassName('error');
		$('address_error').removeClassName('error');
		$('alt_address_error').removeClassName('error');
		$('postalcode_error').removeClassName('error');
		$('city_error').removeClassName('error');
		$('email_error').removeClassName('error');
		$('phone_home_error').removeClassName('error');
		$('phone_mobile_error').removeClassName('error');

		$('employed_error').removeClassName('error');
		$('gender_error').removeClassName('error');
		
		
		/*
		$('cv_error').removeClassName('error');
		$('letter_error').removeClassName('error');
		
		if($('cv').getStatus() =='done') 
		{
			_filename.value = $('cv').getValue();
		}
		else {
			_filename.value = $('cv').getFilename();
		}
		_filename.property = 'cv';

		if($('letter').getStatus() =='done') {
			_filename2.value = $('letter').getValue();
		}
		else {
			_filename2.value = $('letter').getFilename();
		}
		_filename2.property = 'letter';
		
		*/

		_firstname.property = 'firstname';
		_firstname.value = $('firstname').value;

		_lastname.property = 'lastname';
		_lastname.value = $('lastname').value;

		_socialsecurity.property = 'socialsecurity';
		_socialsecurity.value = $('socialsecurity').value;

		_address.property = 'address';
		_address.value = $('address').value;

		_alt_address.property = 'alt_address';
		_alt_address.value = $('alt_address').value;
		
		_postalcode.property = 'postalcode';
		_postalcode.value = $('postalcode').value;
		
		_city.property = 'city';
		_city.value = $('city').value;
		
		_email.property = 'email';
		_email.value = $('email').value;
		
		_phone_home.property = 'phone_home';
		_phone_home.value = $('phone_home').value;
		
		_phone_mobile.property = 'phone_mobile';
		_phone_mobile.value = $('phone_mobile').value;
		
		_employed.property = 'employed';
		_employed.value = $('employed').getValue();

		_gender.property = 'gender';
		_gender.value = $('gender').getValue();

		var _validationArray = [_firstname,_lastname,_socialsecurity,_address,_alt_address,_postalcode,_city,_email,_phone_home,_phone_mobile,_gender,_employed];
		
		API.Web.UI.Client.Service.Forms.JobApplication.Validate(_validationArray,succeeded,failed)
		}
		catch(e){alert(e);}
		
		return false;
	},

	waitForUpload : function() {
		//send
		if($('cv').getStatus() != 'error' && $('cv').getStatus() != 'uploading' && $('letter').getStatus() != 'error' && $('letter').getStatus() != 'uploading' && $('file').getStatus() != 'error' && $('file').getStatus() != 'uploading') {
			Pagen.Web.UI.Forms.JobApplication.send();
		}
	},

	accept : function() {
		var failed = function() {alert('accept:Something went wrong');}
		var succeeded = function() {
			if(popup.popIsActive) {popup.display(popup.pageUri);}
			else
			{location.href=location.href}
		}
		
		if($('eula').checked) {API.Web.UI.Client.Service.Forms.JobApplication.Accept(succeeded,failed);}
		else
		{alert('Du måste kryssa i att du godkänner texten på denna sidan.')}
	},

	send : function() {
		var _firstname = new API.Web.UI.Client.Service.Forms.validationValue();
		var _lastname = new API.Web.UI.Client.Service.Forms.validationValue();
		var _socialsecurity = new API.Web.UI.Client.Service.Forms.validationValue();
		var _address = new API.Web.UI.Client.Service.Forms.validationValue();
		var _alt_address = new API.Web.UI.Client.Service.Forms.validationValue();
		var _postalcode = new API.Web.UI.Client.Service.Forms.validationValue();
		var _city = new API.Web.UI.Client.Service.Forms.validationValue();
		var _email = new API.Web.UI.Client.Service.Forms.validationValue();
		var _phone_home = new API.Web.UI.Client.Service.Forms.validationValue();
		var _phone_mobile = new API.Web.UI.Client.Service.Forms.validationValue();
		var _employed = new API.Web.UI.Client.Service.Forms.validationValue();
		var _work_desc = new API.Web.UI.Client.Service.Forms.validationValue();
		
		var _merits_b = new API.Web.UI.Client.Service.Forms.validationValue();
		var _merits_c = new API.Web.UI.Client.Service.Forms.validationValue();
		var _merits_t = new API.Web.UI.Client.Service.Forms.validationValue();
		
		var _recipientid = new API.Web.UI.Client.Service.Forms.validationValue();
		var _jobid = new API.Web.UI.Client.Service.Forms.validationValue();

		var _gender = new API.Web.UI.Client.Service.Forms.validationValue();
		
		var _cv = new API.Web.UI.Client.Service.Forms.validationValue();
		var _letter = new API.Web.UI.Client.Service.Forms.validationValue();
		var _file = new API.Web.UI.Client.Service.Forms.validationValue();

		var failed = function() {alert('send:Something went wrong');}
		var succeeded = function(result) {
			if(popup.popIsActive) {popup.display('tack_for_ansokan');}
			else
			{location.href='tack_for_ansokan'}
		}
	
		_jobid.property = 'jobid';
		_jobid.value = $('jobid').value;

		_firstname.property = 'firstname';
		_firstname.value = $('firstname').value;

		_lastname.property = 'lastname';
		_lastname.value = $('lastname').value;
		
		_socialsecurity.property = 'socialsecurity';
		_socialsecurity.value = $('socialsecurity').value;

		_address.property = 'address';
		_address.value = $('address').value;

		_alt_address.property = 'alt_address';
		_alt_address.value = $('alt_address').value;
		
		_postalcode.property = 'postalcode';
		_postalcode.value = $('postalcode').value;
		
		_city.property = 'city';
		_city.value = $('city').value;
		
		_email.property = 'email';
		_email.value = $('email').value;
		
		_phone_home.property = 'phone_home';
		_phone_home.value = $('phone_home').value;
		
		_phone_mobile.property = 'phone_mobile';
		_phone_mobile.value = $('phone_mobile').value;

		_employed.property = 'employed';
		_employed.value = $('employed').getValue();
	
		_work_desc.property = 'work_desc';
		_work_desc.value = $('work_desc').value;

		_gender.property = 'gender';
		_gender.value = $('gender').getValue();
	
		_cv.property = 'cv';
		_cv.value = $('cv').getValue();

		_letter.property = 'letter';
		_letter.value = $('letter').getValue();

		_file.property = 'file';
		_file.value = $('file').getValue();
		
		_recipientid.property = 'recipientid';
		_recipientid.value = $('recipientid').getValue();

		_merits_b.property = 'merits_b';
		_merits_b.value = '';
		if($('merits_b').checked){_merits_b.value =$('merits_b').value}

		_merits_c.property = 'merits_c';
		_merits_c.value = '';
		if($('merits_c').checked){_merits_c.value =$('merits_c').value}

		_merits_t.property = 'merits_t';
		_merits_t.value = '';
		if($('merits_t').checked){_merits_t.value =$('merits_t').value}
		
		var _validationArray = [_firstname,_lastname,_socialsecurity,_address,_alt_address,_postalcode,_city,_email,_phone_home,_phone_mobile,_cv,_letter,_file,_gender,_employed,_work_desc,_merits_b,_merits_c,_merits_t,_recipientid,_jobid];
		
		var i = 0;
		var _expList = new Array();
		var _eduList = new Array();
		
		$$('#experience_list div.form-row').each(function(item) {   
			var company = $(item).select('#exp' + i +'_company')[0].value;
			var position = $(item).select('#exp' + i +'_position')[0].value;
			var industry = $(item).select('#exp' + i +'_industry')[0].value;
			var experienceItem = new API.Web.UI.Client.Service.Forms.JobApplication_experienceItem();
		
			experienceItem.company = company;
			experienceItem.position = position;
			experienceItem.industry = industry;
			
			_expList[i]=experienceItem;
			
			i++
		}); 

		i = 0;

		$$('#education_list div.form-row').each(function(item) {   
			var line = $(item).select('#education' + i +'_line')[0].value;
			var school = $(item).select('#education' + i +'_school')[0].value;
			var level = $(item).select('#education' + i +'_level')[0].value;
			var educationItem = new API.Web.UI.Client.Service.Forms.JobApplication_educationItem();
		
			educationItem.line = line;
			educationItem.school = school;
			educationItem.level = level;
			
			_eduList[i]=educationItem;
			
			i++
		}); 
			
		API.Web.UI.Client.Service.Forms.JobApplication.Submit(_validationArray,_expList,_eduList,succeeded,failed)
	},
	
	insertExperienceItem : function() {
		var list = $('experience_list');
		var index = $$('#experience_list div.form-row').length;
		//var index = $$('#experience_list div.experience_item').length;
		
		var company = $('exp_add_company').value;
		var position = $('exp_add_position').value;
		var industry = $('exp_add_industry').value;
		
		$('exp_add_company').value = '';
		$('exp_add_position').value = '';
		$('exp_add_industry').options[0].selected = true;
		
		var isSelected = function(val1,val2) {
			if(val1 == val2){return 'selected'}
			else{return ''}
		}

		var item_new = '<div class="form-row added"><div class="left-input"><input type="text" name="exp' + index + '_company" id="exp' + index + '_company" value="' + company + '" /></div><div class="mid-input"><input type="text" name="exp' + index + '_position" id="exp' + index + '_position"  value="' + position + '" /></div><div class="right-input"><select name="exp' + index + '_industry" id="exp' + index + '_industry"><option disabled="true">Välj här...</option><option value="livsmedel" '+ isSelected(industry,'livsmedel') +'>Livsmedel</option><option value="bageri/konditori" '+ isSelected(industry,'bageri/konditori') +'>Bageri/Konditori</option><option value="annan" '+ isSelected(industry,'annan') +'>Annan</option></select></div></div>'
			
		list.insert(item_new); 
		
		if (popup && popup.popIsActive) {
            popup.resizeOverlay();
        }
		
		return false;
	},

	insertEducationItem : function() {
		var list = $('education_list');
		var index = $$('#education_list div.form-row').length;
		//var index = $$('#education_list div.education_item').length;
		
		var line = $('education_add_line').value;
		var school = $('education_add_school').value;
		var level = $('education_add_level').value;

		$('education_add_line').value = '';
		$('education_add_school').value = '';
		$('education_add_level').options[0].selected = true;
		
		var isSelected = function(val1,val2) {
			if(val1 == val2){return 'selected'}
			else{return ''}
		}
		
		var item_new = '<div class="form-row added"><div class="left-input"><input type="text" name="education' + index + '_line" id="education' + index + '_line" value="' + line + '" /></div><div class="mid-input"><input type="text" name="education' + index + 'school" id="education' + index + '_school"  value="' + school + '" /></div><div class="right-input"><select name="education' + index + '_level" id="education' + index + '_level"><option disabled="true">Välj här...</option><option value="grundskola" '+ isSelected(level,'grundskola') +'>Grundskola</option><option value="gymnasium"'+ isSelected(level,'gymnasium') +'>Gymnasium</option><option value="högskola/universitet" '+ isSelected(level,'högskola/universitet') +'>Högskola/Universitet</option><option value="annan" ' + isSelected(level,'annan') +'>Annan</option></select></div></div>'
			
		list.insert(item_new); 
		
		if (popup && popup.popIsActive) {
            popup.resizeOverlay();
        }

		return false;
	}
}