// JavaScript Document
var isUploading = false;

function initialize() {
	// Initialize the form after an error        
	$('.office:checked').each(function(i){
		$('#'+this.id+'_permit').show();
	});

	$('.software:checked').each(function(i){
		$('#'+this.id+'_level').show();
	});            
	switchLanguage(document.getElementById('english'));
	
	showRegistrationNumber();
	showOpenField();
	roll_button();
}

	function submitAttachment(input_name){  	
		if ($('#'+input_name).val()!='') {
			isUploading = true;
			document.forms['attachments'].submit();
			$('#'+input_name + '_loader').show();
		}
		else {
			alert('please select a file');
		}
	}

    function uploadCallback(ret){
		isUploading = false;
		
        if (ret){
            
            if (ret.code == 1){
                //show delete button
                $('#'+ret.input + '_loader').hide();
                $('#'+ret.input+'_attach').hide();
                $('#'+ret.input+'_remove').show();
                $('#'+ret.input).attr('disabled','disabled');
            }
            else {
                //todo: show error in a div near the correponding file input
                alert(ret.msg);
            }
        }
        else {
            alert("error: no return statement");
        }
    }
	
	    function removeAttachment(input_name){
        if (input_name) {
            $.ajax({
                type: "GET",
                url: remUrl+"&input_name="+input_name,
                
                success: function(data) {
                    if (data == 1){
                        $('#'+input_name).removeAttr('disabled');
                        $('#'+input_name).val('');
                        $('#'+input_name+'_attach').show();
                        $('#'+input_name+'_remove').hide();
                    }
                    else{
                        alert('error');
                    }   
                }
            });
        }
      } 


function roll_button() {
	$('.button')
		.hover(
			function() {
				$(this).addClass('button_roll');
			}, 
			function() {
				$(this).removeClass('button_roll');
			});
}


function submitForm(){
    checkFields();
	
	if (!isUploading) {
    	document.forms['commentForm'].submit();
	}
	else {
		alert('Please wait while uploading');	
	}
}
  

  
  function checkFields(){
    $('#applied_offices').val(getOffices());
    $('#languages').val(getLanguages());
    $('#softwares').val(getSoftwares());
	$('#usersoftware').val(getUserSoftware());
    $('#educations').val(getEducations());
  }
  
  function switchPermit(elem){
        var office = elem.id;
        if (elem.checked) {
            $('#'+office+'_permit').show();
        } else {
            $('#'+office+'_permit').hide();
        }
        doResize();
  }
  
  function switchSoftware(elem){
        var software_id = elem.id;
        if (elem.checked) { 
            $('#'+software_id+'_level').show();
        } else {
            $('#'+software_id+'_level').hide();
        }
        doResize();
  }
  
  function switchLanguage(elem){
  	if (elem.checked) {
  		$('#language_level_default').show();
  	} else {
  		$('#language_level_default').hide();
	}
  	doResize();
  }    

  function addLanguage(){
  	if ($('.language_item').length < 5) {
  		$('#language_list').append('<div class="language_item">' + $('#newlanguagetemplate').html() + '</div>');
  	}
  	doResize();
  }

  function addSoftware(){
	$('#software_list').append('<div class="software_item">'+ $('#newsoftwaretemplate').html() +'</div>');
	doResize();
  }
  
  function addEducation(){
    if ($('.education').length < 4) {
		$('#education_list').append('<div class="education">' + $('#education_form').html() + '</div>');
	}
    doResize();
  }
  
  function getOffices(){
    var offices_parameter = '';
  
    $('.office:checked').each(function(i){
        //get the stuff here
        var input_id = this.id;
        var input_value = $(this).attr('value');
        var radio_groupname = "."+input_id+"_permit_group";
        var val = $(radio_groupname+":checked").val();
        offices_parameter += '{id:'+input_value+',hasPermit:'+val+'},';
    });
    
    offices_parameter = offices_parameter.substring(0, offices_parameter.length-1);
    
    return offices_parameter;
  }
  
  function getLanguages(defaultId){
	var languages_parameter = '{id:'+defaultLanguageId+',spoken:'+$('#level_spoken_english').val()+',written:'+$('#level_written_english').val()+'},';
    $('.language_item').each(function(i){
        var languageVal = $(this).children('.selected_language').val();
        var languageSpokenVal = $(this).children('.selected_language_spoken').val();
        var languageWrittenVal = $(this).children('.selected_language_written').val();
        languages_parameter += '{id:'+languageVal+',spoken:'+languageSpokenVal+',written:'+languageWrittenVal+'},';
    });
	
	
    languages_parameter = languages_parameter.substring(0, languages_parameter.length-1);
    return languages_parameter;
  }
  
  
  function getSoftwares(){
        var software_parameter = '';    
        $('.software:checked').each(function(i){
            var input_id = this.id;
            var input_value = $(this).attr('value');
            var val = $('#'+input_id+'_level').children('select').val();
            software_parameter += '{software:'+input_value+',level:'+val+'},';
        });
        software_parameter = software_parameter.substring(0, software_parameter.length-1);
        return software_parameter;
  }
  
  function getUserSoftware(){
  	var software = ''; 
    $('.software_item').each(function(i){
        var softwareText = $(this).children('.software_text').val();
        var softwareLevel = $(this).children('.software_level').val();
        software += '{software:'+softwareText+',level:'+softwareLevel+'},';
    });    
    software = software.substring(0, software.length-1);
    return software;
  }  
  
  function getEducations(){
        var educations_parameter = '';
        $('.education').each(function(i){
            var institute = $(this).children().children('.institute').val();
            var city = $(this).children().children('.city').val();
            var level = $(this).children().children('.level').val();
            var field = $(this).children().children('.field').val();
            var graduation_year = $(this).children().children('.graduation_year').val();
            var graduation_month = $(this).children().children('.graduation_month').val();
            
            if (institute != '')
                educations_parameter += '{name:'+institute+',city:'+city+',level:'+level+',field:'+field+',graduation_year:'+graduation_year+',graduation_month:'+graduation_month+'},';
        });
        
        educations_parameter = educations_parameter.substring(0, educations_parameter.length-1);   
        return educations_parameter;
  }
  
  function doCancel(){
	if (confirm("Are you sure you want to cancel your application ? All information will be lost.")) { 
		location.href='index.php?option=com_jobs&Itemid=22';
	} 
  }

function showRegistrationNumber() {
	var val = $("input[name='job_app_before']:checked").val();
	if(val == 1) {
		$('#registration_field').show();
	} else {
		$('#registration_field').hide();
	}
	doResize();
}

function showOpenField() {
	var val = $("#apply_for").val();
	if(val == -2) {
		$('#open_field').show();
	} else {
		$('#open_field').hide();
	}
	doResize();
}