#  Copyright Kenneth Knoblauch Decebmer 14, 2012
library(shiny)

shinyServer(function(input, output){
	x <- seq(-5, 5, len = 500)
	output$SensPlot <- renderPlot({		
		layout(matrix(c(1, 1, 2, 2, 2, 1, 1, 3, 3, 3), 5, 2))
		plot(x, dnorm(x), type = "l",
				 xlab = "Internal Response", ylab = "",
                 main = "Decision Space", cex.lab = 1.5)
		lines(x, dnorm(x, input$dprime, input$SD))
		abline(v = input$crit, lty = 2, lwd = 2, col = "red")
		 polygon(c(input$crit, seq(input$crit, 10, len = 100), input$crit), 
			c(0, dnorm(seq(input$crit, 10, len = 100) - input$dprime, sd = input$SD), 0), 
                    col = rgb(0, 1, 0, 0.3))
         polygon(c(input$crit, seq(input$crit, 10, len = 100), input$crit), 
			c(0, dnorm(seq(input$crit, 10, len = 100)), 0), 
			col = rgb(0, 0, 0, 0.1))
		text(-4.8, 0.35, bquote(d*minute == .(round(input$dprime, 3))), cex = 2)
		text(-4.8, 0.25, bquote(c== .(round(input$crit, 3))), cex = 2)
		text(-4.8, 0.15, bquote(SD== .(round(input$SD, 3))), cex = 2)
	par(pty = "s")	
	plot(pnorm(x, low = FALSE), pnorm(x - input$dprime, sd = input$SD, low = FALSE),
			type = "l", xlab = expression(P[FA]),
            ylab = expression(P[H]), lwd = 2, col = "red",
			main = "ROC curve", cex.lab = 1.5)
		points(pnorm(input$crit, low = FALSE), 
			   pnorm(input$crit - input$dprime, sd = input$SD, low = FALSE),
			   cex = 1.5, pch = 16, col = "black")	
		abline(0, 1, col = "grey")
	par(pty = "s")	
	plot(x, (x + input$dprime)/input$SD, type = "l",
			 xlab = expression(z[P[FA]]),
             ylab = expression(z[P[H]]),
             lwd = 2, col = "red",
             main = "zROC curve", cex.lab = 1.5)
        points(input$crit, (input$crit + input$dprime)/input$SD, 
        	cex = 1.5, pch = 16, col = "black")
        abline(0, 1, lty = 2)
        abline(v = 0, h = 0, col = "grey")
	})
	# output$ROCPlot <- reactivePlot(function(){
		# plot(pnorm(x, low = FALSE), pnorm(x - input$dprime, low = FALSE),
			# type = "l", xlab = expression(P[FA]),
            # ylab = expression(P[H]),
			# main = "ROC curve")
		# points(pnorm(input$crit, low = FALSE), 
			   # pnorm(input$crit - input$dprime, low = FALSE))
	# })
	# output$zROCPlot <- reactivePlot(function(){
		# plot(x, x + input$dprime, type = "l",
			 # xlab = expression(z[P[FA]]),
             # ylab = expression(z[P[H]]),
             # main = "zROC curve")
        # points(input$crit, input$crit + input$dprime)
        # abline(0, 1, lty = 2)
        # abline(v = 0, h = 0, col = "grey")
	# })
	
})