var timeProgressbar;

$(document).ready(function() {
    var addOptions = {
        beforeSubmit:  validatePostAdd,
		success:       successAddResponse,
		dataType     : 'json',
		iframe: true		
    };
 
 	var delOptions = {
        beforeSubmit:  validatePostDel,
        success:       showDelResponse,
		dataType     : 'json',
		iframe: true		
    };
 
    $('#post-form').submit(function() {
        $(this).ajaxSubmit(addOptions); 
		return false;
    });
	$('#remove-post').submit(function() { 
        $(this).ajaxSubmit(delOptions); 
        return false;
    });

    $("#postPlaceSelect").change(function () 
	{
    	var hasupload  = $("#postPlaceSelect option:selected").attr("hasupload");
    	var fileaccept = $("#postPlaceSelect option:selected").attr("fileaccept");
    	var filelength = $("#postPlaceSelect option:selected").attr("filelength");
		
		if(hasupload == 'YES'){

			$("#uploadBox").show();
			$("#uploadInputHolder").html("<input type='file' name='uploadInput' id='uploadInput' class='input big'>");
			
			$('#uploadInput').MultiFile({
				accept:fileaccept,
				max:filelength,
				STRING: {
					remove:'Remover',
					selected:'Selecionado: $file',
					denied:'Invalido arquivo de tipo $ext!',
					duplicate:'Arquivo ja selecionado:\n$file!'
				},
				error: function(s){
			 		showDisplayFeedBack(s, "error");
				}
			});
			
			$("#uploadBox small").html('Selecione arquivo(s) do tipo : ' + fileaccept) ;

		}else{
			$("#uploadBox").hide();
		}
		
    }).change();	

	$('#post-form').clearForm();
	$('input:file').MultiFile('reset');
});

function showDisplayFeedBack(text, type) 
{
	var _display_feedback = $("#display-feedback");

	_display_feedback.html(text);
	_display_feedback.addClass(type);
	_display_feedback.show();
	var url = $(location).attr('href') + '#a-feedback';
	$(location).attr('href','#a-feedback');
}

function validatePostDel(formData, jqForm, options)
{
	return true;
}

function validatePostAdd(formData, jqForm, options) {
	
	var postValidate = new Validate();

	var _titleInput  	  = $("#titleInput");
	var _uploadInput	  = $("#uploadInput");
	var _mensagemTextArea = $("#mensagemTextArea");
 	var files 			  = $('#post-form input:file');
	var hasupload  		  = $("#postPlaceSelect option:selected").attr("hasupload");

	if(!$("#postPlaceSelect option:selected").length)
	{
		showDisplayFeedBack('Por favor selecione um local de post', "error");
        return false; 
    }
	if(!postValidate.isNotEmpty(_titleInput.val()))
	{
		showDisplayFeedBack('Por favor digite um título!', "error");
        return false; 
    }
	if(hasupload == 'YES' && !postValidate.isNotEmpty(_uploadInput.val()))
	{
		showDisplayFeedBack('Por favor selecione um arquivo!', "error");
        return false; 
    }
	if(!postValidate.isNotEmpty(_mensagemTextArea.val()))
	{
		showDisplayFeedBack('Por favor digite uma mensagem!', "error");
        return false; 
    }
	
	if(hasupload == 'YES'){
		
		if(files.length - 1 > 1){
		    var count=0;
		    files.attr('name',function(){return this.name+''+(count++);});
		}	
		
		$('#uploadlength').val(files.length - 1);
				
		$("#dialog-message").dialog({
			modal: true,
			buttons: {			
				Cancel: function() {
					$(this).dialog('close');
					clearInterval(timeProgressbar);
					$('#post-form').resetForm();
				}
	
			}
		});
	
		$("#progressbar").fadeIn();
		
		timeProgressbar = setInterval(function() { 
			$.getJSON("view/upload/ProgressUpload.cfm?puid=" + $("#puid").val(), function(data) {
	
			var percentage = Math.floor(100 * parseInt(data.BYTESUPLOADED) / parseInt(data.BYTESTOTAL));	
			if(percentage == 0){
				$("#progressbar").progressbar();
			}else{
				$("#progressbar").progressbar({value: percentage});				
			}
			$("#dialog-message note").text(data.STATUS);
	
			if (percentage == 100) {
				clearInterval(timeProgressbar);
				$("#dialog-message").dialog('close');
				return;
			}
				
			});
		}, 1500);

	}
	
    return true;
}

function showDelResponse(responseText, statusText, xhr, $form)  {
	if (trim(responseText) == "false")
	{
		alert("senha inválida!");
	}
	else
	{
		$('#post-form').clearForm();
		refreshPostList();
	}
}

function successAddResponse(response)  {

	$('input:file').MultiFile('reset');

	if(response.STATUS == false)
	{
		showDisplayFeedBack("Ocorreu um Error", "error");
	}
	else
	{
		showDisplayFeedBack("Post adicionado com sucesso!", "success");
		$('#post-form').clearForm();
	}
}