task_ui = {
	
	deletePost: function(id) {
		$("#post"+id).remove();
		task.getProgress();
	},
	
	setCloseState: function(close_state, on_load) {
		if (on_load) {
			$('#'+close_state).show();
		} else {
			$('.close_state').fadeOut("slow");
			if (close_state!="") $('#'+close_state).fadeIn("slow");

		}
	},
	
	updateStats: function(statusbar, progress, close_state) {
		$("div.statusbar").parent().html(statusbar);
		if (progress>=100) {
			progress=100;
			$("#create_demand").hide();
		} else {
			$("#create_demand").css({"display": "block"});
		}
		task.setCloseState(close_state, false);
		$("td.progress").html(progress+"%");
	},
	
	showAdminDescr: function(l) {
		alert(l.parent().parent().find("span.admin_descr").html());
		return false;
	},
	
	editPost: function(is_draught, post) {
		post_id = post.find('[name=id]').val();
		post_url = post.find(".url").html();
		post_descr = post.find(".descr").html();
		if (is_draught=="yes") {
			this.loadDraughtValues(post_id, post_url, post_descr);
			this.showDraughtForm();
		} else {
			this.loadPostValues(post_id, post_url, post_descr);
			this.showPostForm();
		}
		return false;
	},
	
	closeWriting: function() {
		loader.hide();
		$("#create_demand").hide();
		alert('Проект закрыт.');
	},
	
	// Posts
	viewPosts: function(data) {
		loader.hide();
		$("#posts_area").html(data);
		task.getProgress();
	},
	
	loadPostValues: function(id, url, descr) {
		$("#report_form input[name=post_id]").val(id);
		$("#report_form input[name=site_url]").val(url);
		$("#report_form textarea[name=message_text]").val(descr);
		$("#report_form h1").html("Изменение заявки");
		$("#report_form .add").html("сохранить");
	},
	
	showPostForm: function(data) {
		$.blockUI({ message: $('#post_form') }); 
	},
	
	addPost: function() {
		task.addPost();
	},
	
	// Draughts
	loadDraughtValues: function(id, url, descr) {
		$("#draught_form input[name=post_id]").val(id);
		$("#draught_form input[name=site_url]").val(url);
		$("#draught_form textarea[name=message_text]").val(descr);
		$("#draught_form h1").html("Изменение заявки");
		$("#draught_form .add").html("сохранить");
	},
	
	loadDraughtDefaults: function() {
		$("#draught_form input[name=post_id]").val(-1);
		$("#draught_form input[name=site_url]").val("http://");
		$("#draught_form textarea[name=message_text]").val("");
		$("#draught_form h1").html("Добавление заявки");
		$("#draught_form .add").html("добавить");
	},
	
	showDraughtForm: function() {
		loader.hide();
		//task.addReserve();
		$.blockUI({ message: $('#draught_form') }); 
	},
	
	tryToShowDraughtForm: function(){
		loader.show();
		this.loadDraughtDefaults();
		task.checkClosed();
		return false;
	},
	
	addDraught: function() {
		post_id = $("#draught_form input[name=post_id]").val();
		url = $("#draught_form input[name=site_url]").val();
		text = $("#draught_form textarea[name=message_text]").val();
		if (!isValidURL(url)) {
			alert('Введите корректный url.');
		} else if (url=='http://' || text=='') {
			alert('Все поля обязательные для заполнения.');
		} else {
			if (post_id==-1) {
				task.addDraught();
			} else {
				task.editDraught();
			}
			$.unblockUI();
			loader.show();
		}
		return false;
	}
	
}

function isValidURL(url){
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
} 

$(document).ready(function(){
	// загрузчик файлов
	incInput(null);
	// смена сортировки или фильтра
	$("#dialog input[type=radio]").change(function(){
		sorting = $("#dialog input[name=sort]:checked").val();
		filter = $("#dialog input[name=filter]:checked").val();
		task.setSorting(sorting);
		task.setFilter(filter);
		task.updatePosts();
	});
   // кнопки отмены
	$('div.modal_form a.cancel').click(function(){ 
		$.unblockUI();
   		return false;
   });
});

/* files uploader */
function incInput(input) {
	if (input==null) {
		$("ul.upload").html("<li><input type=\"file\" name=\"file[]\" /></li>");
	} else {
		$(input).parent().after("<li style=\"display: none\"><input type=\"file\" name=\"file[]\" /></li>");
		$(input).parent().next().show("fast");
	}
	checkInputs();
}

function decInput(input) {
	if ($("ul.upload li").length>1) {
		$(input).parent().remove();
		checkInputs();
	}
}

function checkInputs() {
	count = $("ul.upload li").length;
	for (i=0; i<count; i++) {
		html = "";
		if (count<4) {
			html+= " <input type=\"button\" value=\"+\" onclick=\"incInput(this)\" />";
		} else {
			html+= " <input type=\"button\" value=\"+\" onclick=\"incInput(this)\" disabled=\"disabled\" />";
		}
		if (i==0 && count==1) {
			html+= " <input type=\"button\" value=\"-\" onclick=\"decInput(this)\" disabled=\"disabled\" />";
		} else {
			html+= " <input type=\"button\" value=\"-\" onclick=\"decInput(this)\" />";	
		}
		$("ul.upload li").eq(i).find("input").not("input[type=file]").remove();
		$("ul.upload li").eq(i).find("input").after(html);
	}
}