<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
        <meta http-equiv="pragma" content="no-cache"/>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="viewport" content="target-densitydpi=device-dpi, width=600, user-scalable=no">
        <link rel="stylesheet" type="text/css" href="style/screen.css" />
        <script type="text/javascript" src="scripts/controller.js" charset="utf-8"></script> 
        <script type="text/javascript" src="scripts/jquery.min.js"></script>
        <script type="text/javascript" src="scripts/jquery.tubeplayer.js"></script> 
		<title>YouTube</title>
	</head>
	<body onLoad="Controller.init()">
	  <div id="wookie-widget">
        <div id="wookie-toolbar">
          <div id="wookie-toolbar-content">
          <div id="sync-control"><input type="checkbox" checked id="sync"><label for="sync">sync</label></div>
          <div id="search-control"><label for="youtubeid">Search YouTube for a video to play:</label>
		  <input id="youtubeid" type="text"></input>
	      <input class="button" id="go-button" type="submit" value="GO" onclick="Controller.search()"/></div>
          </div>
        </div>
		<div id="video-player-page">
		  <div id='youtube-player-container'> </div>
		</div>
        
        <div id="search-results-page">
          <div id="search-results-content"></div>
          <div id="search-results-controls">
	      <input class="button" id="cancel-button" type="submit" value="back" onclick="Controller.cancelSearch()"/>          
          </div>
          
        </div>
	  </div>
	  
	  
	</body>
<!-- fix forIE cashing - must go here even though its in the wrong place
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>
-->
</html>