function Weblink_UserInterface_BugReport(){
	var that = this;
	var timer;
	var second;
	function timing(){
		if(second==0){
			clearTimeout(timer);
			$("button.readTroubleShooting").text(_getText('weblink-report-bug-create-report'));
			$("button.readTroubleShooting").attr("disabled",false);
			$("button.readTroubleShooting").removeClass("unread").addClass("read");
		}
		else{
			$("button.readTroubleShooting").text(_getText('weblink-report-bug-wait')+" ( "+second/1000+" )");
			second = second-1000;
			timer = setTimeout(timing, 1000);
		}
	}
	
	function reset(){
		$("#weblink_updater > div.reportForm tr.trouble-shooting td").empty();
		$('#weblink_updater > div.reportForm tr.report-form').hide();
		$("#weblink_updater > div.reportForm tr.trouble-shooting").hide();
		$("div.reportForm tr.phone-number").hide();
		$("div.reportForm input.call-back").removeAttr('checked');
	}
	this.init = function(){
		$('#weblink_updater > div.body').after('<div class="reportBug">'+_getText('weblink-report-bug-button')+'</div>');
		//$('#weblink_updater > div.reportBug').after("<div class='reportForm'><form id='updaterForm' action=''><table class='updaterForm'></table></form></div>");
		$.ajax({
			url: "/weblink/updater/send-issue",
			type: "GET",
			datatype:"html",
			success: function(data){
				var reportForm = "<div class='reportForm'><form id='updaterForm' action=''><table class='updaterForm'>"+data+"</table></form></div>";
				$('#weblink_updater > div.reportBug').after(reportForm);
				$('#weblink_updater > div.reportForm').hide();
				reset();
				
				
				$('#weblink_updater > div.reportForm select').bind("change", function(){
					reset();
					if($('#weblink_updater > div.reportForm select').val()>0 && $('#weblink_updater > div.reportForm select').val()<10){
						
						$.ajax({
							url: "/weblink/updater/get-trouble-shooting",
							type: "GET",
							data: {
								id: $('#weblink_updater > div.reportForm select').val()
							},
							datatype: "html",
							success: function(data){
								clearTimeout(timer);
								second = 10000;
								$("#weblink_updater > div.reportForm tr.trouble-shooting td").append(data);
								$("#weblink_updater > div.reportForm tr.trouble-shooting").show();
								if ($('#weblink_updater > div.reportForm select').val() > 6) second = 0;
								timing();
								$("button.readTroubleShooting.read").live("click", function(){
									$("#weblink_updater > div.reportForm td.readTroubleShootingButton").hide();
									$('#weblink_updater > div.reportForm tr.report-form').show();
									
								});
								$("button.cancelUpdaterIssue").live("click", function(){
									$('#weblink_updater > div.reportForm select option[value=0]').attr("selected","selected");
									$("#weblink_updater > div.reportForm tr.trouble-shooting td").empty();
									$('#weblink_updater > div.reportForm').slideUp("slow");
									$('#weblink_updater > div.reportBug').slideDown("slow");
									$("div.reportForm tr.phone-number").hide();
								});
							}
						});
					}
					if($('#weblink_updater > div.reportForm select').val()>7){
						$('#weblink_updater > div.reportForm tr.report-form').slideDown();
					}
						
				});

				$('#weblink_updater > div.reportForm table.updaterForm img.cancelUpdaterIssue').bind("click", function(){
					$('#weblink_updater > div.reportForm select option[value=0]').attr("selected","selected");
					$('#weblink_updater > div.reportForm input, #weblink_updater > div.reportForm textarea').val('');
					$('#weblink_updater > div.reportForm').slideUp("slow");
					$('#weblink_updater > div.reportBug').slideDown("slow");
					$("div.reportForm tr.phone-number").hide();
				});
				$("div.reportForm input.call-back").bind("click", function(){
					if($(this).attr("checked")){
						$("div.reportForm tr.phone-number").show();
					}
					else{
						$("div.reportForm tr.phone-number").hide();
					}
				});
				
				
				$('#weblink_updater > div.reportForm table.updaterForm img.sendUpdaterIssue').bind("click", function(){
					var name = $('#weblink_updater > div.reportForm table.updaterForm input.updaterUserName').val();
					var email = $('#weblink_updater > div.reportForm table.updaterForm input.updaterUserEmail').val();
					var comments = $('#weblink_updater > div.reportForm table.updaterForm textarea.updaterUserComments').val();
					var issue = $('#weblink_updater > div.reportForm table.updaterForm select.updaterUserSubject').val();
					var phone = $('input.updaterUserPhone').val();
					if(name == "" || email == "" || comments == "" || issue == 0){
						var comments = $('#weblink_updater > div.reportForm table.updaterForm td.errorMsg').html("Please enter all information, thanks.");
					}
					else if($("div.reportForm input.call-back").attr('checked') && phone==""){
						$('#weblink_updater > div.reportForm table.updaterForm td.errorMsg').html("Please enter your phone number, thanks.");
					}
					else{
						tracking.process['name'] = name;
						tracking.process['email'] = email;
						tracking.process['comments'] = comments;
						tracking.process['issue'] = issue;
						if($("div.reportForm input.call-back").attr('checked')){
							tracking.process['phone'] = phone;
						}
						$.ajax({
							url:'/weblink/updater/send-issue',
							data: tracking.process,
							type: "POST",
							dataType: "html",
							cache: false,
							success: function(data){
								$('#weblink_updater > div.reportForm input').val('').removeAttr('checked');
								$('#weblink_updater > div.reportForm textarea').val('');
								('#weblink_updater > div.reportForm table.updaterForm td.errorMsg').empty();
								$('#weblink_updater > div.reportForm select').val(0);
								$('#weblink_updater > div.reportForm').slideUp("slow");
								$('#weblink_updater > div.reportBug').slideDown("slow");
								$('#weblink_updater > div.reportBug img.reportBug').after(data);
								$("div.reportForm tr.phone-number").hide();
							},
							error: function(){
									//TODO some error handler
							}
						});
						
					}
		
		
				});
			}
		});
		$('#weblink_updater > div.reportBug img.reportBug').bind("click", function(){
			reset();
			$(this).parent().slideUp("slow");
			$('#weblink_updater > div.reportBug div.sentReport').remove();
			$('#weblink_updater > div.reportForm').slideDown("slow", function(){
				$('body').scrollTo($(this),1000,{axis:'y',offset:200});
				});
			});
		};
	this.init();
}
