<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>
	<title>Shakespeare Survey</title>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<link rel="stylesheet" type="text/css" media="screen" href="shakes.css" />

<style>
body
{
text-align: center;
background-color: #A6A972;
}

p,ul,ol,a,span
{
font: 10pt/20px "trebuchet ms", verdana, helvetica, arial, sans-serif;
color: #333;
}
h1,h2,h3
{ 
margin:0; padding: 0;
margin-bottom: 10px;
text-transform: uppercase;
font-family: Georgia, Times New Roman;
color: #333;
}

h1 {font-size: 18px; }

h2 
{ 
font-size: 14px;
margin-top: 25px;
}

h3 {font-size: 12px; }

a 
{
text-decoration: none;
border-bottom: 1px dashed 3 33 333 #333;
}

a:visited{}
a:hover{}

a:active 
{
border-bottom: 1px solid #333;
}

input, textarea 
{
font-weight: bold;
}


/* Specific Sections */

#container
{
width: 600px;
margin: 20px auto;
background-color: #FDFDE9;
border: 1px solid black;
text-align: left;
}

#top
{ 
height: 70px;
background-position: center top;
background-repeat: no-repeat;
background-image: url(images/title.jpg);
margin-top: 30px;
}
#content
{
padding-left: 20px;
padding-right: 20px;
}

#intro {}
#bottom
{
clear: both;
height: 50px;
border-top: 1px dashed #A6A972;
text-align: center;
margin-top: 20px;
}

#copyright 
{
display: block;
height: 20px;
margin-top: 15px;
margin-bottom: 15px;
}

.question 
{
display: block;
float: left;
width: 325px;
height: 20px;
}

.answer 
{
display: block;
width: 180px;
margin-left: 325px;
}


textarea.answer 
{
height: 100px;
width: 500px;
margin-top: 25px;
margin-left: 0px;
clear: both;
margin-bottom: 5px;
}

.figure 
{
display: block;
height: 100px;
border-color: #000;
border-width: 1px;
float: left;
margin-right: 10px;
width: 120px;
}

.figure img 
{
border: 1px solid #333;
}

.caption 
{

}

.error 
{
color: #C92B45;
}
</style>

</head>

<body>

<div id="container">
	<div id="top"></div>
	
	<div id="content">
		<p>
			We are trying to understand how UVic students perform Shakespeare related research for
			classes as well as for their own interest. The <a href="http://uvic.ca/shakespeare/">
			Internet Shakespeare Editions</a> are being developed for students as well as Shakespeare 
			scholars world wide to better understand the man, his plays and our interpretations of 
			them. 
		</p>
		
		<p>Please take the time to carefully review and complete the following questions.</p>
		
			
		<form action="process.php" method="post">
			
			<h2>Personal Information</h2>
			
			<span class="question" >
				Your Name*
			</span>
			<input class="answer" type="text" name="name"/>
			
			<span class="question" >
				Your e-mail address*
			</span>
			<input class="answer" type="text" name="email"/>
			
			<span class="question" >
				Your degree program*
			</span>
			<select class="answer" name="program">
				<option value="">Program options</option>
				<option value="ugradENG">Undergraduate English</option>
				<option value="gradENG">Graduate English</option>
				<option value="humanities">Other Humanities</option>
				<option value="other">Other Altogether</option>
			</select>
					
			<span class="question" >
				Your year of study*
			</span>
			<select class="answer" name="year">
				<option value="">Years you've been here</option>
				<option value="1">1</option>
				<option value="2">2</option>
				<option value="3">3</option>
				<option value="4">4</option>
				<option value="more">More</option>
				<option value="na">Not telling</option>
			</select>
			
			<span class="question">Shakespeare classes taken</span>
			<select class="answer" name="classes">
				<option value="">Number taken</option>
				<option value="0">0</option>
				<option value="1">1</option>
				<option value="2">2</option>
				<option value="3">3</option>
				<option value="4">4</option>
				<option value="more">More</option>
				<option value="na">Not telling</option>
			</select>			
			
			<p>* indicates a required field</p>
			
			<h2>Shakespeare Research Questions</h2>
			
			<span class="question">What percentage of your research time is spent online?</span>
			<select class="answer" name="research-pct">
				<option value="">Percentages of time</option>
				<option value="0">0-10%</option>
				<option value="10">10-20%</option>
				<option value="20">20-30%</option>
				<option value="30">30-40%</option>
				<option value="50">50% or more</option>
				<option value="na">n/a</option>
			</select>
			
			<span class="question">What is holding you back from doing more research online?</span>
			<select class="answer" name="research-hold">
				<option value="">Reasons</option>
				<option value="tools">Lack of good online resources</option>
				<option value="refuse">Online sources not accepted</option>
				<option value="prefer">I prefer the library</option>
				<option value="nothing">I do everything I can online</option>
				<option value="na">n/a</option>
			</select>
			
			<span class="question">Your research is primarily focused on:</span>
			<span class="answer"><input type="radio" name="research-tp" value="text" checked="checked" />Texts</span>
			<span class="answer"><input type="radio" name="research-tp" value="perf" />Performance materials</span>
			<span class="answer"><input type="radio" name="research-tp" value="na" />n/a</span>			
			
			<h2>Internet Shakespeare Editions Questions</h2>
			
			<span class="question">Have you used UVic's Internet Shakespeare Editions?</span>
			<span class="answer">
				Yes<input type="radio" name="ise" value="yes" checked="checked" />
				No<input type="radio" name="ise" value="no"/>
			</span>
			
			<p>-- If you answered no to this question, skip to the next section --</p>
			
			<span class="question">Which area of the ISE did you find most useful?</span>
			<select class="answer" name="ise-area">
				<option value="">Sections of the ISE</option>
				<option value="life">Life and Times</option>
				<option value="text">Old versions of texts</option>
				<option value="links">Links to other sites</option>
			</select>				
			
			<span class="question">How did you find the navigation of the ISE?</span>
			<select class="answer" name="ise-nav">
				<option value="">Level of difficulty</option>
				<option value="1">No problems at all</option>
				<option value="2">A bit cumbersome</option>
				<option value="3">Very difficult to use</option>
			</select>
									
			<span class="question">Please describe your use of the ISE.</span>
			<textarea class="answer" name="ise-describe"></textarea>
			
			
			<h2>Tools in Development Questions</h2>
			
			<p>
				We are in the process of both making new material available and developing
				new tools to view and extrapolate information from Shakespeare's works. The 
				following images are visual representations of some of the ideas being thrown around. 		
			</p>
			
			<p>Please review them carefully and provide feedback below</p>
			
			<span class="question">Your comments on Fig. 1</span>
			<textarea class="answer" name="fig1"></textarea>
			
			<span class="question">Your comments on Fig. 2</span>	
			<textarea class="answer" name="fig2"></textarea>
			
			<span class="question">Your comments on Fig. 3</span>	
			<textarea class="answer" name="fig3"></textarea>
			
			
			<h2>Other Feedback</h2>
			
			<span class="question">Please enter any other thoughts here.</span>
			<textarea class="answer" name="other"></textarea>
			
						
		</form>
		
		<p>Thank you for your time filling this out.</p>
		
	</div>
	
	<div id="bottom"><span id="copyright">&copy;2003 Kevin Davis</span></div>
</div>

</body>

</html>