Create content form
authorymh <ymh.work@gmail.com>
Thu, 09 Sep 2010 16:47:51 +0200
changeset 44 b7e3f3b2d150
parent 43 dd83bd03fecd
child 45 db4e163c7c8e
Create content form
web/franceculture/settings.py
web/franceculture/templates/base.html
web/franceculture/templates/franceculture/partial/contentslist.html
web/franceculture/templates/franceculture/partial/projectslist.html
web/franceculture/templates/franceculture/workspace.html
web/franceculture/templates/ldt/ldt_utils/content_list.html
web/franceculture/templates/ldt/ldt_utils/create_content.html
web/franceculture/templates/ldt/ldt_utils/ldt_list.html
web/franceculture/templates/raw_base.html
web/ldt/forms/__init__.py
web/ldt/forms/widgets.py
web/ldt/ldt_utils/forms.py
web/ldt/ldt_utils/models.py
web/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html
web/static/css/border-radius.htc
web/static/css/ldtform.css
web/static/css/style.css
web/static/css/workspace.css
web/static/js/jquery.qtip.css
web/static/js/jquery.qtip.min.js
web/static/js/projectscontents.js
--- a/web/franceculture/settings.py	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/franceculture/settings.py	Thu Sep 09 16:47:51 2010 +0200
@@ -37,7 +37,6 @@
 
 LANGUAGES = ( 
     ('fr', ugettext('French')),
-    ('en', ugettext('English')),
 )
 
 
--- a/web/franceculture/templates/base.html	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/franceculture/templates/base.html	Thu Sep 09 16:47:51 2010 +0200
@@ -1,38 +1,24 @@
+{% extends "raw_base.html" %}
 {% load i18n %}
 {% load logintag %}
 {% load navigation %}
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{LANGUAGE_CODE}}" lang="{{LANGUAGE_CODE}}">
-<head>
-	<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
-    <meta http-equiv="content-language" content="{{LANGUAGE_CODE}}" />
-    <link rel="SHORTCUT ICON" href="{{MEDIA_URL}}/img/favicon.ico" />
-    <title>{% block title %}France Culture{% endblock %}</title>
-    {% block js_import %}
-    <script type="text/javascript" src="{{MEDIA_URL}}js/jquery.min.js"></script>
-    <script type="text/javascript" src="{{MEDIA_URL}}js/jquery.nyroModal.min.js"></script>
-    <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.validate.js" ></script>
-    {% endblock %}
-    {% block css_import %}
-    <link rel="stylesheet" href="{{BASE_URL}}static/css/blueprint/screen.css" type="text/css" media="screen, projection" />
-    <link rel="stylesheet" href="{{BASE_URL}}static/css/blueprint/print.css" type="text/css" media="print" />
-    <!--[if lt IE 8]>
-    <link rel="stylesheet" href="{{BASE_URL}}static/css/blueprint/ie.css" type="text/css" media="screen, projection" />
-    <![endif]-->
-    <link rel="stylesheet" href="{{BASE_URL}}static/css/tabs.css" type="text/css" media="screen, projection" />
-    <link rel="stylesheet" href="{{BASE_URL}}static/css/style.css" type="text/css"/>
-    <link rel="stylesheet" href="{{BASE_URL}}static/css/nyroModal.css" type="text/css"/>
-    <link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}/css/style.css" type="text/css"/>
-    <link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}/js/login_ajax/login_ajax.css" type="text/css"/>
-    {% endblock %}
+
+{% block js_import %}
+	{{ block.super }}
+	<script type="text/javascript" src="{{MEDIA_URL}}js/jquery.nyroModal.min.js"></script>
+	<script type="text/javascript" src="{{MEDIA_URL}}js/jquery.qtip.min.js"></script>
+	<script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.validate.js" ></script>
+{% endblock %}
+        
+{% block css_import %}
+	{{ block.super }}
+	<link rel="stylesheet" href="{{BASE_URL}}static/css/tabs.css" type="text/css" media="screen, projection" />
+	<link rel="stylesheet" href="{{BASE_URL}}static/css/nyroModal.css" type="text/css"/>
+	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}/js/login_ajax/login_ajax.css" type="text/css"/>
+{% endblock %}
     
-    {% block js_declaration %}
-    {% endblock %}
-    
-</head>
-<body>
+{% block body %}
+	{{ block.super }}
     <div class="container">
 	<div id="header" class="span-24 last">      
 		{% block header %}
@@ -98,5 +84,4 @@
 		{% endblock %}
 	</div>
     </div>
-</body>
-</html>
+{% endblock %}
--- a/web/franceculture/templates/franceculture/partial/contentslist.html	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/franceculture/templates/franceculture/partial/contentslist.html	Thu Sep 09 16:47:51 2010 +0200
@@ -1,24 +1,23 @@
 {% load i18n %}
-<table class="projectscontentstable">
-    <thead class="projectscontentsheader" id="contentsheader">
-      <tr>
-    	<th>&nbsp;</th>
-    	<th>{% trans "name" %}</th>
-      </tr>
-    </thead>
-	<tfoot class="projectscontentsfooter">
-	  <tr>
-	       <td colspan="2">+</td>
-	       <td><a class='content_link_create' href="{% url ldt.ldt_utils.views.write_content %}">{% trans "Create content" %}</a></td>
-	  </tr>
-	</tfoot>
-    <tbody class="projectscontentsbody">
-{% for content in contents %}
-	<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}">
-	    <td class="cellimg"><div class="cellimgdiv"><img src="{{MEDIA_URL}}/img/document_add.gif" title="{% trans 'create project' %}" alt="{% trans 'create project' %}" href="{% url ldt.ldt_utils.views.create_project content.iri_id %}" class="ldt_link_create"/></div></td>
-	    <td class="cellimg"><div class="cellimgdiv"><img  alt="{% trans 'preview media'%}" title="{% trans 'preview media'%}" src="{{MEDIA_URL}}/img/control_play.gif" href="{% url ldt.ldt_utils.views.index content.iri_id %}" class="ldt_link"/></div></td>
-	    <td class="contenttitle">{{ content.title }}</td>
-	</tr>
-{% endfor %}
-	</tbody>
-</table>
+<div class="projectscontentsheader span-12 last" id="contentsheader">
+{% trans "name" %}
+</div>
+<div class="span-12 last projectscontentstablewrapperdiv">
+<div class="span-12 last projectscontentstablediv" id="contentstablediv">
+	<table class="projectscontentstable">
+	    <tbody class="projectscontentsbody">
+	{% for content in contents %}
+		<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}">
+		    <td class="cellimg"><div class="cellimgdiv"><img src="{{MEDIA_URL}}/img/document_add.gif" title="{% trans 'create project' %}" alt="{% trans 'create project' %}" href="{% url ldt.ldt_utils.views.create_project content.iri_id %}" class="ldt_link_create"/></div></td>
+		    <td class="cellimg"><div class="cellimgdiv"><img  alt="{% trans 'preview media'%}" title="{% trans 'preview media'%}" src="{{MEDIA_URL}}/img/control_play.gif" href="{% url ldt.ldt_utils.views.index content.iri_id %}" class="ldt_link"/></div></td>
+		    <td class="contenttitle">{{ content.title }}</td>
+		</tr>
+	{% endfor %}
+		</tbody>
+	</table>
+</div>
+</div>
+<div class="projectscontentsfooter span-12 last">
++&nbsp;<a class='content_link_create' href="{% url ldt.ldt_utils.views.write_content %}">{% trans "Create content" %}</a>
+</div>
+
--- a/web/franceculture/templates/franceculture/partial/projectslist.html	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/franceculture/templates/franceculture/partial/projectslist.html	Thu Sep 09 16:47:51 2010 +0200
@@ -1,17 +1,10 @@
 {% load i18n %}
+<div class="projectscontentsheader span-12 last" id="projectsheader">
+{% trans "name" %}
+</div>
+<div class="span-12 last projectscontentstablewrapperdiv">
+<div class="span-12 last projectscontentstablediv" id="projectstablediv">
 <table class="projectscontentstable">
-    <thead class="projectscontentsheader" id="projectsheader">
-      <tr>
-    	<th>&nbsp;</th>
-    	<th>{% trans "name" %}</th>
-      </tr>
-    </thead>
-   	<tfoot class="projectscontentsfooter">
-	  <tr>
-	      <td colspan="4">+</td>
-	      <td>{% trans "Create project" %}</td>
-	  </tr>
-	</tfoot>		    
     <tbody class="projectscontentsbody">
 {% for project in projects %}
     <tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}" >
@@ -32,3 +25,8 @@
 {% endfor %}
     </tbody>
 </table>
+</div>
+</div>
+<div class="projectscontentsfooter span-12 last">
++&nbsp;{% trans "Create project" %}
+</div>
--- a/web/franceculture/templates/franceculture/workspace.html	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/franceculture/templates/franceculture/workspace.html	Thu Sep 09 16:47:51 2010 +0200
@@ -1,185 +1,33 @@
 {% extends "base.html" %}
 {% load i18n %}
 
+{% block js_import %}
+{{block.super}}
+	<script type="text/javascript" src="{{MEDIA_URL}}js/projectscontents.js" ></script>
+{% endblock %}
+
+
 {% block js_declaration %}
 {{block.super}}
 <script type="text/javascript">
 
 var content_filter_url = "{% url franceculture.views.contentsfilter filter='__FILTER__' %}";
-
-$.fn.realVal = function() {
-	var obj = $(this[0]);
-	if(obj.val) {
-		if(obj.val() == obj.attr('defaultText')) {
-			return '';
-		}
-		else {
-			return obj.val();
-		}
-	}
-	else {
-		return null;
-	}
-};
+var project_filter_url = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='false' %}";
 
 function init_events(base_node) {
 
-	$('.ldt_link',base_node).nyroModal({
-       	type: 'iframe',
-       	forceType: 'iframe',
-   		height:662, 
-   		width:1022,
-   		bgColor: 'rgb(239, 239, 239)',
-   		padding: 5,
-   		titleFromIframe: false
-      	});
-    	
- 	$('.ldt_link_create',base_node).nyroModal({
-        type: 'iframe',
-        forceType: 'iframe',
-        height:662, 
-        width:1022,
-        bgColor: 'rgb(239, 239, 239)',
-        padding: 5,
-        titleFromIframe: false,
-        beforeHideContent: function(elts, settings, callback){
-             try {
-	              var res = $('#ldtInitSwf',$('#nyroModalIframe').contents());
-	              if(res.length > 0)
-	              {
-	              	   res.get(0).forceSave();
-	              }
-             }
-             catch(err)
-             {
-              // do nothing
-             }                   
-             callback();
-        	}
-    	});
-
-	$('.ldt_link_embed',base_node).click(function(e) {
-		e.preventDefault();
-		link = $(e.target);
-		json_url = link.attr("href");
-		player_id = link.attr("id");
-		/*$.nyroModalSettings({
-		 	ajax: { data: ({ json_url:json_url, player_id:player_id }) }
-		  	});*/
-		   $.nyroModalManual({
-		         type: 'iframe',
-		         forceType: 'iframe',
-		         titleFromIframe: false,
-		   	height:662, 
-		  		width:650,
-		  		bgColor: 'rgb(239, 239, 239)',
-		  		padding: 5,
-		    url: '{% url franceculture.views.popup_embed %}?json_url='+escape(json_url)+'&amp;player_id='+escape(player_id),
-		   });
-		   return false;
-	});
-
-	$('.content_link_create').nyroModal({
-        type: 'iframe',
-        forceType: 'iframe',
-        height:662, 
-        width:1022,
-        bgColor: 'rgb(239, 239, 239)',
-        padding: 5,
-        titleFromIframe: false,
-        endRemove: function(elts, settings) {
-        	searchCallback($("#searchcontentsinput"),"#contentslistcontainer",content_filter_url)
-		},
-	  	endShowContent: function(elts, settings) {
-		  	$('#nyroModalIframe', elts.content).load(function() {
-			  	var form_status = $(this).contents().find("#content_form_status").val(); 
-			  	if(form_status == 'saved') {
-			  		$.nyroModalRemove();
-			  	}
-		  	});
-		}
-	});
-
-
-	$('.imageline',base_node).each(function(i) {
-	    tr = $(this);
-		tr.mouseover(function() {
-	    	$('.cellimgdiv',this).css('visibility', 'visible');
-		}); 
-		tr.mouseout(function() {
-	    	$('.cellimgdiv',this).css('visibility', 'hidden');
-		});
-	});    
-		
+	init_events_contents(base_node);
+			
 }
 
-function searchCallback(target, container_selector, url) {
-
-	var target = $(target); 
-
-	if(target.attr('timer')) {
-		clearTimeout(target.attr('timer'));
-	}
-	
-	target.attr('timer',setTimeout(function() {
-		target.next(".searchajaxloader").show();
-		url = url.replace('__FILTER__',escape($(target).realVal()));
-		$(container_selector).load(url, null, function() {
-			target.next(".searchajaxloader").hide();
-			init_events($(container_selector));
-			target.removeAttr('timer');
-		});
-	},
-	300));
-};
-
 $(document).ready(function(){	
-	
-	$(".searchfieldinputbase").keydown(function (e) {
-	 	if(e.which == 27) {
-	 	 	$(e.target).blur();
-	 	 	$(e.target).next(".searchajaxloader").hide();
-	 	}
-	});
 
-	$("#searchcontentsinput").keyup(function (e) {
-		var url = content_filter_url;
-		var container_selector="#contentslistcontainer";
-		searchCallback(e.target, container_selector, url);
-	});
+	input_list_init = [
+		{'input_selector':"#searchcontentsinput", 'container_selector':"#contentslistcontainer", 'url':content_filter_url},
+		{'input_selector':"#searchprojectsinput", 'container_selector':"#projectslistcontainer", 'url':project_filter_url}
+	];
 
-	$("#searchprojectsinput").keyup(function (e) {
-		var url = "{% url franceculture.views.projectsfilter filter='__FILTER__' is_owner='false' %}";
-		var container_selector="#projectslistcontainer";
-		searchCallback(e.target, container_selector, url);		
-	});
-	
-	 
-	$('.searchfieldinput').each(function(i) {
-	     sbox = $(this);
-	     if(sbox.val() != '') {
-	    	 sbox.attr('defaultText', sbox.val());
-	     }
-	
-	     sbox.focus(function() {
-	         box = $(this);
-	         if(box.val() == box.attr('defaultText')) {
-	             box.val('');
-	             box.toggleClass("searchfieldinput");
-	         }
-	     });
-	
-	     sbox.blur(function() {
-	         box = $(this);
-	         if(box.val() == '' && box.attr('defaultText')) {
-	             box.val(box.attr('defaultText'));
-	             box.toggleClass("searchfieldinput");
-	         }
-	     });
-
-	     
-	});
-
+	searchFieldInit(input_list_init);
 
 	init_events(document);
 
@@ -200,7 +48,7 @@
 	    <div class="span-12 last titlediv" >
 			<div class="span-8 projectscontentstitle">{% trans "content list" %}</div>
 			<div class="span-4 last searchfielddiv" >
-			    <div class="searchfield"><input id="searchcontentsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" /><img id="contentsajaxloader" class="searchajaxloader" src="{{MEDIA_URL}}/img/ajax-loader-16x16.gif" alt="loader"/></div>
+			    <div class="searchfield rounded"><input id="searchcontentsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" type="text" /><img id="contentsajaxloader" class="searchajaxloader" src="{{MEDIA_URL}}/img/ajax-loader-16x16.gif" alt="loader"/></div>
 			</div>
 		</div>
 		<div class="span-12 last projectscontentsdiv" id="contentslistcontainer">
@@ -211,7 +59,7 @@
 		<div class="span-12 last titlediv" >
 			<div class="span-8 projectscontentstitle" >{% trans "project list" %}</div>
 			<div class="span-4 last searchfielddiv" >
-			    <div class="searchfield"><input id="searchprojectsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" /><img id="projectsajaxloader" class="searchajaxloader" src="{{MEDIA_URL}}/img/ajax-loader-16x16.gif" alt="loader"/></div>
+			    <div class="searchfield rounded"><input id="searchprojectsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" type="text" /><img id="projectsajaxloader" class="searchajaxloader" src="{{MEDIA_URL}}/img/ajax-loader-16x16.gif" alt="loader"/></div>
 			</div>
 		</div>
 		<div class="span-12 last projectscontentsdiv" id="projectslistcontainer">
--- a/web/franceculture/templates/ldt/ldt_utils/content_list.html	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/franceculture/templates/ldt/ldt_utils/content_list.html	Thu Sep 09 16:47:51 2010 +0200
@@ -1,179 +1,36 @@
 {% extends "base.html" %}
 {% load i18n %}
 
+{% block js_import %}
+{{block.super}}
+	<script type="text/javascript" src="{{MEDIA_URL}}js/projectscontents.js" ></script>
+{% endblock %}
+
 {% block js_declaration %}
 {{block.super}}
 <script type="text/javascript">
 
-searchcontentfilterurl = "{% url franceculture.views.contentsfilter filter='__FILTER__' %}";
-
-$.fn.realVal = function() {
-	var obj = $(this[0]);
-	if(obj.val) {
-		if(obj.val() == obj.attr('defaultText')) {
-			return '';
-		}
-		else {
-			return obj.val();
-		}
-	}
-	else {
-		return null;
-	}
-};
-
+content_filter_url = "{% url franceculture.views.contentsfilter filter='__FILTER__' %}";
 
 function init_events(base_node) {
 
-	$('.ldt_link',base_node).nyroModal({
-       	type: 'iframe',
-       	forceType: 'iframe',
-   		height:662, 
-   		width:1022,
-   		bgColor: 'rgb(239, 239, 239)',
-   		padding: 5,
-   		titleFromIframe: false
-      	});
-    	
- 	$('.ldt_link_create',base_node).nyroModal({
-        type: 'iframe',
-        forceType: 'iframe',
-        height:662, 
-        width:1022,
-        bgColor: 'rgb(239, 239, 239)',
-        padding: 5,
-        titleFromIframe: false,
-        beforeHideContent: function(elts, settings, callback){
-             try {
-	              var res = $('#ldtInitSwf',$('#nyroModalIframe').contents());
-	              if(res.length > 0)
-	              {
-	              	   res.get(0).forceSave();
-	              }
-             }
-             catch(err)
-             {
-              // do nothing
-             }                   
-             callback();
-        	}
-    	});
-
-	$('.ldt_link_embed',base_node).click(function(e) {
-		e.preventDefault();
-		var link = $(e.target);
-		var json_url = link.attr("href");
-		var player_id = link.attr("id");
-		/*$.nyroModalSettings({
-		 	ajax: { data: ({ json_url:json_url, player_id:player_id }) }
-		  	});*/
-		   $.nyroModalManual({
-		         type: 'iframe',
-		         forceType: 'iframe',
-		         titleFromIframe: false,
-		   	height:662, 
-		  		width:650,
-		  		bgColor: 'rgb(239, 239, 239)',
-		  		padding: 5,
-		    url: '{% url franceculture.views.popup_embed %}?json_url='+escape(json_url)+'&player_id='+escape(player_id),
-		   });
-		   return false;
-	});
-
-	$('.content_link_create').nyroModal({
-        type: 'iframe',
-        forceType: 'iframe',
-        height:662, 
-        width:1022,
-        bgColor: 'rgb(239, 239, 239)',
-        padding: 5,
-        titleFromIframe: false,
-        endRemove: function(elts, settings) {
-        	searchCallback($("#searchcontentsinput"),"#contentslistcontainer",content_filter_url)
-		},
-	  	endShowContent: function(elts, settings) {
-		  	$('#nyroModalIframe', elts.content).load(function() {
-			  	var form_status = $(this).contents().find("#content_form_status").val(); 
-			  	if(form_status == 'saved') {
-			  		$.nyroModalRemove();
-			  	}
-		  	});
-		}
-	});
-
-
-	$('.imageline',base_node).each(function(i) {
-	    var tr = $(this);
-		tr.mouseover(function() {
-	    	$('.cellimgdiv',this).css('visibility', 'visible');
-		}); 
-		tr.mouseout(function() {
-	    	$('.cellimgdiv',this).css('visibility', 'hidden');
-		});
-	});	
-		
+	init_events_contents(base_node);		
 }
 
-function searchCallback(target, container_selector, url, timeout) {
+$(document).ready(function(){
 
-	timeout = typeof(timeout) != 'undefined' ? timeout : 0;
-	var target = $(target); 
-
-	if(target.attr('timer')) {
-		clearTimeout(target.attr('timer'));
-	}
+	input_list_init = [
+		{'input_selector':"#searchcontentsinput", 'container_selector':"#contentslistcontainer", 'url':content_filter_url},
+	];
+	           	
 	
-	target.attr('timer',setTimeout(function() {
-		target.next(".searchajaxloader").show();
-		url = url.replace('__FILTER__',escape($(target).realVal()));
-		$(container_selector).load(url, null, function() {
-			target.next(".searchajaxloader").hide();
-			init_events($(container_selector));
-			target.removeAttr('timer');
-		});
-	},
-	300));
-};
-
-$(document).ready(function(){
-	
-	$(".searchfieldinputbase").keydown(function (e) {
-	 	if(e.which == 27) {
-	 	 	$(e.target).blur();
-	 	 	$(e.target).next(".searchajaxloader").hide();
-	 	}
-	});
+	searchFieldInit(input_list_init);
 
 	$("#searchcontentsinput").keyup(function (e) {
 		var container_selector="#contentslistcontainer";
 		searchCallback(e.target, container_selector, searchcontentfilterurl);		
 	});
 	
-	 
-	$('.searchfieldinput').each(function(i) {
-	     var sbox = $(this);
-	     if(sbox.val() != '') {
-	    	 sbox.attr('defaultText', sbox.val());
-	     }
-	
-	     sbox.focus(function() {
-	         box = $(this);
-	         if(box.val() == box.attr('defaultText')) {
-	             box.val('');
-	             box.toggleClass("searchfieldinput");
-	         }
-	     });
-	
-	     sbox.blur(function() {
-	         var box = $(this);
-	         if(box.val() == '' && box.attr('defaultText')) {
-	             box.val(box.attr('defaultText'));
-	             box.toggleClass("searchfieldinput");
-	         }
-	     });
-	     
-	});
-
 	init_events(document);
 
 });
@@ -192,7 +49,7 @@
 	    <div class="span-12 last titlediv" >
 			<div class="span-8 projectscontentstitle">{% trans "content list" %}</div>
 			<div class="span-4 last searchfielddiv" >
-			    <div class="searchfield"><input id="searchcontentsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" /><img id="contentsajaxloader" class="searchajaxloader" src="{{MEDIA_URL}}/img/ajax-loader-16x16.gif" alt="loader"/></div>
+			    <div class="searchfield rounded"><input id="searchcontentsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" type="text" /><img id="contentsajaxloader" class="searchajaxloader" src="{{MEDIA_URL}}/img/ajax-loader-16x16.gif" alt="loader"/></div>
 			</div>
 		</div>
 		<div class="span-12 last projectscontentsdiv" id="contentslistcontainer">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/franceculture/templates/ldt/ldt_utils/create_content.html	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,58 @@
+{% extends "raw_base.html" %}
+
+{% load i18n %} {# form of creation of content #}
+{% load adminmedia %}
+
+{% block js_import %}
+	{{ block.super }}
+    <script type="text/javascript" src="{{MEDIA_URL}}admin/js/core.js" ></script>
+    <script type="text/javascript" src="{% url jsi18n %}" } ></script>
+    <script type="text/javascript" src="{{MEDIA_URL}}js/jquery.nyroModal.min.js"></script>    
+	{{ content_form.media.js }}
+{% endblock %}
+
+{% block css_import %}
+	{{ block.super }}
+	{{ content_form.media.css }}
+	<link rel="stylesheet" href="{{BASE_URL}}static/ldt/css/ldt.css" />
+	<link rel="stylesheet" href="{{MEDIA_URL}}css/ldtform.css" />
+{% endblock %}
+
+
+{% block js_declaration %}
+	<script type="text/javascript">
+	window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
+	
+    </script>
+{% endblock %}
+
+{% block body %}
+	<div id="add_content" class="span-18 last">
+	<div class="projectscontentstitle">{% trans "Create content" %}</div>
+	<form action="{{create_content_action}}" method="POST">
+	<div id="contentformhidden">
+		{% csrf_token %}
+		<input type="hidden" name="form_status" value="{{form_status}}" id="content_form_status" />
+		{% for hidden in form.hidden_fields %}
+	    	{{ hidden }}
+	    {% endfor %}
+    </div>
+    <div id="contentformfields" class="span-18 last">
+	<div id="contentleft" class="span-9">
+		<div>{{ content_form.src.errors }}{{ content_form.src.label_tag }}{{content_form.src}}</div>
+		<div>{{ content_form.videopath.errors }}{{ content_form.videopath.label_tag }}{{content_form.videopath}}</div>
+		<div>{{ content_form.title.errors }}{{ content_form.title.label_tag }}{{content_form.title}}</div>
+		<div>{{ content_form.description.errors }}{{ content_form.description.label_tag }}{{content_form.description}}</div>
+	</div>
+	<div id="contentright" class="span-9 last" >
+		<div>{{ content_form.external_id.errors }}{{ content_form.external_id.label_tag }}{{content_form.external_id}}</div>
+		<div>{{ content_form.duration.errors }}{{ content_form.duration.label_tag }}{{content_form.duration}}</div>
+		<div>{{ content_form.content_creation_date.errors }}{{ content_form.content_creation_date.label_tag }}{{content_form.content_creation_date}}</div>
+	</div>
+	</div>
+	<div id="submitcontent" class="span-18 last">
+		<input type="submit"/>
+	</div> 
+	</form>
+	</div>
+{% endblock %}
--- a/web/franceculture/templates/ldt/ldt_utils/ldt_list.html	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/franceculture/templates/ldt/ldt_utils/ldt_list.html	Thu Sep 09 16:47:51 2010 +0200
@@ -1,6 +1,12 @@
 {% extends "base.html" %}
 {% load i18n %}
 
+{% block js_import %}
+{{block.super}}
+	<script type="text/javascript" src="{{MEDIA_URL}}js/projectscontents.js" ></script>
+{% endblock %}
+
+
 {% block js_declaration %}
 {{block.super}}
 <script type="text/javascript">
@@ -9,89 +15,9 @@
 publishprojecturl = "{% url ldt.ldt_utils.views.publish '__PROJECT_ID__' 'false' %}";
 unpublishprojecturl = "{% url ldt.ldt_utils.views.unpublish '__PROJECT_ID__' 'false' %}";
 
-$.fn.realVal = function() {
-	var obj = $(this[0]);
-	if(obj.val) {
-		if(obj.val() == obj.attr('defaultText')) {
-			return '';
-		}
-		else {
-			return obj.val();
-		}
-	}
-	else {
-		return null;
-	}
-};
-
-
 function init_events(base_node) {
 
-	$('.ldt_link',base_node).nyroModal({
-       	type: 'iframe',
-       	forceType: 'iframe',
-   		height:662, 
-   		width:1022,
-   		bgColor: 'rgb(239, 239, 239)',
-   		padding: 5,
-   		titleFromIframe: false
-      	});
-    	
- 	$('.ldt_link_create',base_node).nyroModal({
-        type: 'iframe',
-        forceType: 'iframe',
-        height:662, 
-        width:1022,
-        bgColor: 'rgb(239, 239, 239)',
-        padding: 5,
-        titleFromIframe: false,
-        beforeHideContent: function(elts, settings, callback){
-             try {
-	              var res = $('#ldtInitSwf',$('#nyroModalIframe').contents());
-	              if(res.length > 0)
-	              {
-	              	   res.get(0).forceSave();
-	              }
-             }
-             catch(err)
-             {
-              // do nothing
-             }                   
-             callback();
-        	}
-    	});
-
-	$('.ldt_link_embed',base_node).click(function(e) {
-		e.preventDefault();
-		var link = $(e.target);
-		var json_url = link.attr("href");
-		var player_id = link.attr("id");
-		/*$.nyroModalSettings({
-		 	ajax: { data: ({ json_url:json_url, player_id:player_id }) }
-		  	});*/
-		   $.nyroModalManual({
-		         type: 'iframe',
-		         forceType: 'iframe',
-		         titleFromIframe: false,
-		   	height:662, 
-		  		width:650,
-		  		bgColor: 'rgb(239, 239, 239)',
-		  		padding: 5,
-		    url: '{% url franceculture.views.popup_embed %}?json_url='+escape(json_url)+'&player_id='+escape(player_id),
-		   });
-		   return false;
-	});
-
-
-	$('.imageline',base_node).each(function(i) {
-	    var tr = $(this);
-		tr.mouseover(function() {
-	    	$('.cellimgdiv',this).css('visibility', 'visible');
-		}); 
-		tr.mouseout(function() {
-	    	$('.cellimgdiv',this).css('visibility', 'hidden');
-		});
-	});
+	init_events_base(base_node);
 
 	$('.publishedproject', base_node).click(function(e) {
 		e.preventDefault();
@@ -124,66 +50,14 @@
 		
 }
 
-function searchCallback(target, container_selector, url, timeout) {
-
-	timeout = typeof(timeout) != 'undefined' ? timeout : 0;
-	var target = $(target); 
-
-	if(target.attr('timer')) {
-		clearTimeout(target.attr('timer'));
-	}
-	
-	target.attr('timer',setTimeout(function() {
-		target.next(".searchajaxloader").show();
-		url = url.replace('__FILTER__',escape($(target).realVal()));
-		$(container_selector).load(url, null, function() {
-			target.next(".searchajaxloader").hide();
-			init_events($(container_selector));
-			target.removeAttr('timer');
-		});
-	},
-	300));
-};
-
 $(document).ready(function(){
-	
-	$(".searchfieldinputbase").keydown(function (e) {
-	 	if(e.which == 27) {
-	 	 	$(e.target).blur();
-	 	 	$(e.target).next(".searchajaxloader").hide();
-	 	}
-	});
 
-	$("#searchprojectsinput").keyup(function (e) {
-		var container_selector="#projectslistcontainer";
-		searchCallback(e.target, container_selector, searchprojectfilterurl);		
-	});
-	
-	 
-	$('.searchfieldinput').each(function(i) {
-	     var sbox = $(this);
-	     if(sbox.val() != '') {
-	    	 sbox.attr('defaultText', sbox.val());
-	     }
+	input_list_init = [
+		{'input_selector':"#searchprojectsinput", 'container_selector':"#projectslistcontainer", 'url':searchprojectfilterurl}
+	];
+
+	searchFieldInit(input_list_init);
 	
-	     sbox.focus(function() {
-	         box = $(this);
-	         if(box.val() == box.attr('defaultText')) {
-	             box.val('');
-	             box.toggleClass("searchfieldinput");
-	         }
-	     });
-	
-	     sbox.blur(function() {
-	         var box = $(this);
-	         if(box.val() == '' && box.attr('defaultText')) {
-	             box.val(box.attr('defaultText'));
-	             box.toggleClass("searchfieldinput");
-	         }
-	     });
-	     
-	});
-
 	init_events(document);
 
 });
@@ -202,7 +76,7 @@
 		<div class="span-12 last titlediv" >
 			<div class="span-8 projectscontentstitle" >{% trans "project list" %}</div>
 			<div class="span-4 last searchfielddiv" >
-			    <div class="searchfield"><input id="searchprojectsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" /><img id="projectsajaxloader" class="searchajaxloader" src="{{MEDIA_URL}}/img/ajax-loader-16x16.gif"/></div>
+			    <div class="searchfield rounded"><input id="searchprojectsinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" type="text" /><img id="projectsajaxloader" class="searchajaxloader" src="{{MEDIA_URL}}/img/ajax-loader-16x16.gif"/></div>
 			</div>
 		</div>
 		<div class="span-12 last projectscontentsdiv" id="projectslistcontainer">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/franceculture/templates/raw_base.html	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,45 @@
+{% load i18n %}
+{% load logintag %}
+{% load navigation %}
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{LANGUAGE_CODE}}" lang="{{LANGUAGE_CODE}}">
+<head>
+{% block head %}
+	<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+    <meta http-equiv="content-language" content="{{LANGUAGE_CODE}}" />
+    <link rel="SHORTCUT ICON" href="{{MEDIA_URL}}/img/favicon.ico" />
+    <title>{% block title %}France Culture{% endblock %}</title>
+    {% block js_import %}
+    <script type="text/javascript" src="{{MEDIA_URL}}js/jquery.min.js"></script>
+    {% endblock %}
+    
+    {% block css_declaration %}
+    <style type="text/css">
+		.rounded {
+			behavior:url("{{MEDIA_URL}}css/border-radius.htc");
+		}
+	</style>
+	{% endblock %}
+    
+    {% block css_import %}
+    
+    <link rel="stylesheet" href="{{BASE_URL}}static/css/blueprint/screen.css" type="text/css" media="screen, projection" />
+    <link rel="stylesheet" href="{{BASE_URL}}static/css/blueprint/print.css" type="text/css" media="print" />
+    <!--[if lt IE 8]>
+    <link rel="stylesheet" href="{{BASE_URL}}static/css/blueprint/ie.css" type="text/css" media="screen, projection" />
+    <![endif]-->
+    <link rel="stylesheet" href="{{BASE_URL}}static/css/style.css" type="text/css"/>
+    <link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}/css/style.css" type="text/css"/>
+    {% endblock %}
+    
+    {% block js_declaration %}
+    {% endblock %}
+{% endblock %}    
+</head>
+<body>
+{% block body %}
+{% endblock %}
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/ldt/forms/widgets.py	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,17 @@
+"""
+Some useful form widgets
+"""
+
+from django.contrib.admin.widgets import AdminSplitDateTime
+from django.utils.safestring import mark_safe
+from django.utils.translation import ugettext as _
+
+
+class LdtSplitDateTime(AdminSplitDateTime):
+    """
+    A widget that extend the AdminSplitDateTime to improve the html outputted
+    """
+    
+    def format_output(self, rendered_widgets):
+        return mark_safe(u'<div class="ldtdatetime"><div class="ldtdate"><div class="ldtdatetitle">%s</div> <div class="ldtdatefield">%s</div></div><div class="ldttime"><div class="ldttimetitle">%s</div> <div class="ldttimefield">%s</div></div></div>' % \
+            (_('Date'), rendered_widgets[0],  _('Time'), rendered_widgets[1]))
--- a/web/ldt/ldt_utils/forms.py	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/ldt/ldt_utils/forms.py	Thu Sep 09 16:47:51 2010 +0200
@@ -6,6 +6,7 @@
 from django.contrib.admin import widgets as admin_widgets
 from django.core.urlresolvers import reverse
 from ldt.settings import BASE_URL
+from ldt.forms import widgets as ldt_widgets
 
 class LdtImportForm(forms.Form):
     importFile = forms.FileField()
@@ -38,7 +39,7 @@
 
     #iri_id = forms.CharField(max_length=1024, widget=forms.HiddenInput, initial=generate_uuid)
     iriurl = forms.CharField(max_length=1024, widget=forms.HiddenInput, required=False)
-    content_creation_date = forms.SplitDateTimeField(widget=admin_widgets.AdminSplitDateTime, required=False)
+    content_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False)
     
     def clean_iri_id(self):
         data = self.cleaned_data.get('iri_id')
--- a/web/ldt/ldt_utils/models.py	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/ldt/ldt_utils/models.py	Thu Sep 09 16:47:51 2010 +0200
@@ -19,18 +19,18 @@
 
 
 class Content(models.Model):
-    iri_id = models.CharField(max_length=1024, unique=True, default=generate_uuid)
-    iriurl = models.CharField(max_length=1024)
-    src = models.CharField(max_length=1024, null=True, blank=True)
-    videopath = models.CharField(max_length=1024, null=True, blank=True)
-    creation_date = models.DateTimeField(auto_now_add=True)
-    update_date = models.DateTimeField(auto_now=True)
-    title = models.CharField(max_length=1024, null=True, blank=True)
-    description = models.TextField(null=True, blank=True)
-    external_id = models.CharField(max_length=1024, null=True, blank=True)
-    authors = models.ManyToManyField(Author, blank=True)
-    duration = models.IntegerField(null=True, blank=True)
-    content_creation_date = models.DateTimeField(null=True, blank=True)
+    iri_id = models.CharField(max_length=1024, unique=True, default=generate_uuid, verbose_name=_('content.iri_id'))
+    iriurl = models.CharField(max_length=1024, verbose_name=_('content.iriurl'))
+    src = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('content.src'))
+    videopath = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('content.videopath'))
+    creation_date = models.DateTimeField(auto_now_add=True, verbose_name=_('content.creation_date'))
+    update_date = models.DateTimeField(auto_now=True, verbose_name=_('content.update_date'))
+    title = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('content.title'))
+    description = models.TextField(null=True, blank=True, verbose_name=_('content.description'))
+    external_id = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('content.external_id'))
+    authors = models.ManyToManyField(Author, blank=True, verbose_name=_('content.authors'))
+    duration = models.IntegerField(null=True, blank=True, verbose_name=_('content.duration'))
+    content_creation_date = models.DateTimeField(null=True, blank=True, verbose_name=_('content.content_creation_date'))
 
     def get_duration(self):
         if self.duration is None:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,31 @@
+{% load i18n %} {# form of creation of content #}
+{% load adminmedia %}
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <script type="text/javascript" src="{{MEDIA_URL}}admin/js/core.js" ></script>
+    <script type="text/javascript" src="{% url jsi18n %}" } ></script>
+    <script type="text/javascript" src="{{MEDIA_URL}}js/jquery.min.js"></script>
+    <script type="text/javascript" src="{{MEDIA_URL}}js/jquery.nyroModal.min.js"></script>    
+	<link rel="stylesheet" href="{{BASE_URL}}static/ldt/css/ldt.css" />
+	<link rel="stylesheet" href="{{MEDIA_URL}}css/ldtform.css" />
+	{{content_form.media }}
+	<script type="text/javascript">
+	window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
+	
+    </script>
+</head>
+<body>
+<div id="add_content">
+<div class="title">{% trans "Create content" %}</div>
+<form action="{{create_content_action}}" method="POST">
+{% csrf_token %}
+{{ content_form.as_ul }}
+<input type="hidden" name="form_status" value="{{form_status}}" id="content_form_status" />
+<input type="submit"/> 
+</form>
+</div>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/static/css/border-radius.htc	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,143 @@
+--Do not remove this if you are using--
+Original Author: Remiz Rahnas
+Original Author URL: http://www.htmlremix.com
+Published date: 2008/09/24
+
+Changes by Nick Fetchak:
+- IE8 standards mode compatibility
+- VML elements now positioned behind original box rather than inside of it - should be less prone to breakage
+Published date : 2009/11/18
+
+
+<public:attach event="oncontentready" onevent="oncontentready('v08vnSVo78t4JfjH')" />
+<script type="text/javascript">
+
+// findPos() borrowed from http://www.quirksmode.org/js/findpos.html
+function findPos(obj) {
+	var curleft = curtop = 0;
+
+	if (obj.offsetParent) {
+		do {
+			curleft += obj.offsetLeft;
+			curtop += obj.offsetTop;
+		} while (obj = obj.offsetParent);
+	}
+
+	return({
+		'x': curleft,
+		'y': curtop
+	});
+}
+
+function oncontentready(classID) {
+  if (this.className.match(classID)) { return(false); }
+
+	if (!document.namespaces.v) { document.namespaces.add("v", "urn:schemas-microsoft-com:vml"); }
+
+	this.className = this.className.concat(' ', classID);
+	var arcSize = Math.min(parseInt(this.currentStyle['-moz-border-radius'] ||
+	                                this.currentStyle['-webkit-border-radius'] ||
+	                                this.currentStyle['border-radius'] ||
+	                                this.currentStyle['-khtml-border-radius']) /
+	                       Math.min(this.offsetWidth, this.offsetHeight), 1);
+	var fillColor = this.currentStyle.backgroundColor;
+	var fillSrc = this.currentStyle.backgroundImage.replace(/^url\("(.+)"\)$/, '$1');
+	var strokeColor = this.currentStyle.borderColor;
+	var strokeWeight = parseInt(this.currentStyle.borderWidth);
+	var stroked = 'true';
+	if (isNaN(strokeWeight)) {
+		strokeWeight = 0;
+		strokeColor = fillColor;
+		stroked = 'false';
+	}
+
+	this.style.background = 'transparent';
+	this.style.borderColor = 'transparent';
+
+	// Find which element provides position:relative for the target element (default to BODY)
+	var el = this;
+	var limit = 100, i = 0;
+	while ((typeof(el) != 'unknown') && (el.currentStyle.position != 'relative') && (el.tagName != 'BODY')) {
+		el = el.parentElement;
+		i++;
+		if (i >= limit) { return(false); }
+	}
+	var el_zindex = parseInt(el.currentStyle.zIndex);
+	if (isNaN(el_zindex)) { el_zindex = 0; }
+	//alert('got tag '+ el.tagName +' with pos '+ el.currentStyle.position);
+
+	var rect_size = {
+		'width': this.offsetWidth - strokeWeight,
+		'height': this.offsetHeight - strokeWeight
+	};
+	var el_pos = findPos(el);
+	var this_pos = findPos(this);
+	this_pos.y = this_pos.y + (0.5 * strokeWeight) - el_pos.y;
+	this_pos.x = this_pos.x + (0.5 * strokeWeight) - el_pos.x;
+
+	var rect = document.createElement('v:roundrect');
+	rect.arcsize = arcSize +'px';
+	rect.strokecolor = strokeColor;
+	rect.strokeWeight = strokeWeight +'px';
+	rect.stroked = stroked;
+	rect.style.display = 'block';
+	rect.style.position = 'absolute';
+	rect.style.top = this_pos.y +'px';
+	rect.style.left = this_pos.x +'px';
+	rect.style.width = rect_size.width +'px';
+	rect.style.height = rect_size.height +'px';
+	rect.style.antialias = true;
+	rect.style.zIndex = el_zindex - 1;
+
+	var fill = document.createElement('v:fill');
+	fill.color = fillColor;
+	fill.src = fillSrc;
+	fill.type = 'tile';
+
+	rect.appendChild(fill);
+	el.appendChild(rect);
+
+	var css = el.document.createStyleSheet();
+	css.addRule("v\\:roundrect", "behavior: url(#default#VML)");
+	css.addRule("v\\:fill", "behavior: url(#default#VML)");
+
+	isIE6 = /msie|MSIE 6/.test(navigator.userAgent);
+	// IE6 doesn't support transparent borders, use padding to offset original element
+	if (isIE6 && (strokeWeight > 0)) {
+		this.style.borderStyle = 'none';
+		this.style.paddingTop = parseInt(this.currentStyle.paddingTop || 0) + strokeWeight;
+		this.style.paddingBottom = parseInt(this.currentStyle.paddingBottom || 0) + strokeWeight;
+	}
+
+	if (typeof(window.rounded_elements) == 'undefined') {
+		window.rounded_elements = new Array();
+
+		if (typeof(window.onresize) == 'function') { window.previous_onresize = window.onresize; }
+		window.onresize = window_resize;
+	}
+	this.element.vml = rect;
+	window.rounded_elements.push(this.element);
+}
+
+function window_resize() {
+	if (typeof(window.rounded_elements) == 'undefined') { return(false); }
+
+	for (var i in window.rounded_elements) {
+		var el = window.rounded_elements[i];
+
+		var strokeWeight = parseInt(el.currentStyle.borderWidth);
+		if (isNaN(strokeWeight)) { strokeWeight = 0; }
+
+		var parent_pos = findPos(el.vml.parentNode);
+		var pos = findPos(el);
+		pos.y = pos.y + (0.5 * strokeWeight) - parent_pos.y;
+		pos.x = pos.x + (0.5 * strokeWeight) - parent_pos.x;
+
+		el.vml.style.top = pos.y +'px';
+		el.vml.style.left = pos.x +'px';
+	}
+
+	if (typeof(window.previous_onresize) == 'function') { window.previous_onresize(); }
+}
+</script>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/static/css/ldtform.css	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,74 @@
+@charset "UTF-8";
+
+#add_content {
+	padding: 20px;	
+}
+
+#add_content input, #add_content textarea, #add_content select {
+	background: #ededed;
+	width: 250px;
+}
+
+#add_content textarea {
+	height : 125px;
+}
+
+#add_content li {
+	list-style: none;
+}
+
+
+label {
+	display: block;
+	margin-top: 0.5em;
+}
+
+#add_content .vDateField,#add_content .vTimeField {
+	width: 90px;
+	float: left;
+}
+
+.projectscontentstitle {
+	border-bottom: 1px solid black;
+}
+
+#submitcontent {
+	border-top: 1px solid black;
+	padding : 10px;
+	text-align: right;
+}
+
+#add_content input[type="submit"] {
+	background-color: #656565;
+	color: white;
+	width:auto;
+	font-weight: bold;
+	padding: 5px 10px;
+}
+
+.datetimeshortcuts {
+	float: left;
+}
+
+.ldtdatetime {
+	float: left;
+	width: 350px;
+}
+
+.ldtdate,.ldttime {
+	float: left;
+	width: 150px;
+}
+
+.ldtdatetitle,.ldttimetitle {
+	color: #666;
+}
+
+#contentformhidden {
+	display: none;
+}
+
+#contentformfields {
+	margin: 10px 0px;
+}
+
--- a/web/static/css/style.css	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/static/css/style.css	Thu Sep 09 16:47:51 2010 +0200
@@ -226,4 +226,13 @@
 
 #loginstate {
 	text-align: right;
-}
\ No newline at end of file
+}
+
+.projectscontentstitle {
+	color: #949494;
+	font-family: Verdana;
+	font-weight: lighter;
+	font-size: 2.5em;
+	font-style: normal;
+	text-align: left;
+}
--- a/web/static/css/workspace.css	Wed Sep 08 18:20:28 2010 +0200
+++ b/web/static/css/workspace.css	Thu Sep 09 16:47:51 2010 +0200
@@ -14,23 +14,17 @@
 	padding: 2px;
 }
 
-.projectscontentstitle {
-	color: #949494;
-	font-family: Verdana;
-	font-weight: lighter;
-	font-size: 2.5em;
-	font-style: normal;
-	text-align: left;
-}
-
 .searchfielddiv {
 	top: 50%;
 	margin-top: 12px;
 }
 
 .searchfield {
+	background: white;
 	border: 1px solid #b8b8b8;
 	-moz-border-radius: 15px;
+	-webkit-border-radius:15px;
+	-khtml-border-radius:15px;
 	border-radius: 15px;
 	padding: 2px 5px;
 }
@@ -45,9 +39,12 @@
 }
 
 
+input[type="text"].searchfieldinputbase {
+	border: none;
+}
+
 .searchfieldinputbase {
 	background: #ffffff url("../img/search.gif") no-repeat left center;
-	border: none;
 	width: 99px;
 	height: 14px;
 	margin: 0px 2px 0px 0px;
@@ -57,24 +54,14 @@
 
 
 .projectscontentsdiv {
-	overflow: auto; 	
-}
-
-/* Reset overflow value to hidden for all non-IE browsers. */
-html>body div.projectscontentsdiv {
 	overflow: hidden;
-	width: 470px;
 	height: 570px;
 	
 }
 div.projectscontentsdiv table {
-	float: left;
 	width: 470px;
 	height: 100%;
-}
-
-div.projectscontentsdiv td, div.projectscontentsdiv th {
-	/*border: 1px solid #000000;*/
+	margin-bottom: 0;
 }
 
 tr.projectscontentsoddline {
@@ -86,16 +73,8 @@
 }
 
 
-thead.projectscontentsheader tr {
-	position: relative;
-}
-
-tfoot.projectscontentsfooter tr {
-		position: relative;
-}
-
 /* make the TH elements pretty */
-thead.projectscontentsheader th {
+.projectscontentsheader {
 	background: #b5b5b5;
 	font-weight: bold;
 	text-transform:capitalize;
@@ -104,23 +83,14 @@
 	text-align: left;
 }
 
-#contentsheader th {
-	width: 44px;
-}
 
-#contentsheader th + th {
-	width: 411px;
-	padding: 1px 10px 1px 5px;
+#contentsheader {
+	padding: 1px 10px 1px 49px;
 }
 
 
-#projectsheader th {
-	width: 88px;
-}
-
-#projectsheader th + th {
-	width: 367px;
-	padding: 1px 10px 1px 5px;
+#projectsheader {
+	padding: 1px 10px 1px 93px;
 }
 
 tbody .contenttitle {
@@ -133,55 +103,33 @@
 	padding: 4px 10px 4px 5px;	
 }
 
-
-/* make the A elements pretty. makes for nice clickable headers                */
-thead.fixedHeader a, thead.fixedHeader a:link, thead.fixedHeader a:visited {
-	color: #FFF;
-	display: block;
-	text-decoration: none;
-	width: 100%;
-}
- 
-/* make the A elements pretty. makes for nice clickable headers                */
-/* WARNING: swapping the background on hover may cause problems in WinIE 6.x   */
-thead.fixedHeader a:hover {
-	color: #FFF;
-	display: block;
-	text-decoration: underline;
-	width: 100%;
-}
-
-html>body thead.projectscontentsheader tr {
-	display: block;
-}
-
-html>body tfoot.projectscontentsfooter tr {
-	display: block;
+.projectscontentsfooter {
 	background: #8c8c8c;
-	font-weight: bold;
 	color: #ffffff;
 	margin-top: 18px;
 	font-size: 1.25em;
 	font-style: normal;
+	padding : 5px 5px;
 }
 
-html>body tbody.projectscontentsbody {
-	display: block;
-	overflow: auto;
-	width: 100%;
+.projectscontentstablediv {
 	max-height: 500px;
+	overflow: auto; overflow-x: hidden;
 	border-bottom: 2px solid #b5b5b5 ;
+	float: left;
+}
+.projectscontentstablewrapperdiv {
+	height: 502px;
 }
 
 .projectscontentsbody tr {
-	height: 26px;
+	padding-right: 16px;
 }
 
 .titlediv {
 	vertical-align: middle;	
 }
 
-
 .cellimg {
 	width: 18px;
 	text-align: center;
@@ -199,6 +147,7 @@
 
 a.content_link_create:link, a.content_link_create:visited {
 	color: white;
+	text-decoration: none;
 }
 
 a.project_link_create:link, a.project_link_create:visited {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/static/js/jquery.qtip.css	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,337 @@
+/*
+* qTip - The jQuery tooltip plugin
+* http://craigsworks.com/projects/qtip/
+*
+* Version: 2.0.0pre
+* Copyright 2009 Craig Michael Thompson - http://craigsworks.com
+*
+* Dual licensed under MIT or GPL Version 2 licenses
+*   http://en.wikipedia.org/wiki/MIT_License
+*   http://en.wikipedia.org/wiki/GNU_General_Public_License
+*
+* Date: Mon Sep 6 15:10:26 2010 +0100
+*/
+
+.ui-tooltip-accessible{
+	left: -10000em !important;
+	top: -10000em !important;
+	display: block !important;
+	visibility: hidden !important;
+}
+
+	/* IE6 ONLY - Width detection fix */
+	* html .ui-tooltip-accessible{
+		position: static !important;
+		float: left !important;
+	}
+
+.ui-tooltip, .qtip{
+	position: absolute;
+	display: none;
+
+	max-width: 280px;
+	min-width: 50px;
+}
+
+	.ui-tooltip .ui-tooltip-wrapper{
+		position: relative;
+		overflow: hidden;
+
+		border-width: 3px;
+		border-style: solid;
+	}
+
+	.ui-tooltip .ui-tooltip-content{
+		position: relative;
+		padding: 5px 9px;
+
+		text-align: left;
+		word-wrap: break-word;
+		overflow: hidden;
+	}
+
+	.ui-tooltip .ui-tooltip-titlebar{
+		position: relative;
+		padding: 6px 35px 6px 10px;
+
+		font-weight: bold;
+	}
+
+		/*! Default close button class */
+		.ui-tooltip .ui-tooltip-close{
+			position: absolute;
+			height: 16px;
+			width: 16px;
+			padding: 1px;
+			right: 5px;
+			top: 5px;
+
+			cursor: pointer;
+			line-height: 0px;
+			font-size: 0px;
+		}
+
+			.ui-tooltip .ui-tooltip-close .ui-icon{
+				height: 16px;
+				width: 16px;
+				display: block;
+
+				opacity: 0.8;
+				-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
+				filter: alpha(opacity=80);
+			}
+			.ui-tooltip .ui-tooltip-close:hover .ui-icon{
+				opacity: 1;
+				-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+				filter: alpha(opacity=100);
+			}
+
+		/*! Custom button class */
+		.ui-tooltip .ui-tooltip-button{
+			float: right;
+		}
+
+	/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */
+	.ui-tooltip-focus{
+
+	}
+
+
+/*! Default tooltip style */
+.ui-tooltip-wrapper{
+	border-color: #F9E98E;
+	background-color: #FBF7AA;
+	color: #A27D35;
+}
+
+	.ui-tooltip .ui-tooltip-titlebar{
+		background-color: #F0DE7D;
+	}
+
+	.ui-tooltip .ui-tooltip-close .ui-icon{
+		background: #A27D35 url('images/close.png') no-repeat 50% 50%;
+	}
+
+/*! Plain tooltip style */
+.ui-tooltip-plain .ui-tooltip-wrapper{
+	border-color: black;
+	border-width: 1px;
+
+	background-color: white;
+	color: black;
+}
+
+	.ui-tooltip-plain .ui-tooltip-titlebar{
+		background-color: white;
+	}
+
+	.ui-tooltip-plain .ui-tooltip-close .ui-icon{
+		background: black;
+	}
+
+/*! Light tooltip style */
+.ui-tooltip-light .ui-tooltip-wrapper{
+	border-color: #E2E2E2;
+	background-color: white;
+	color: #454545;
+}
+
+	.ui-tooltip-light .ui-tooltip-titlebar{
+		background-color: #f1f1f1;
+	}
+
+	.ui-tooltip-light .ui-tooltip-close .ui-icon{
+		background: #454545 url('images/close-light.png') no-repeat 50% 50%;
+	}
+
+
+/*! Dark tooltip style */
+.ui-tooltip-dark .ui-tooltip-wrapper{
+	border-color: #303030;
+	background-color: #505050;
+	color: #f3f3f3;
+}
+
+	.ui-tooltip-dark .ui-tooltip-titlebar{
+		background-color: #404040;
+	}
+
+	.ui-tooltip-dark .ui-tooltip-close .ui-icon{
+		background: #f3f3f3 url('images/close-dark.png') no-repeat 50% 50%;
+	}
+
+
+/*! Red tooltip style */
+.ui-tooltip-red .ui-tooltip-wrapper{
+	border-color: #D95252;
+	background-color: #F78B83;
+	color: #912323;
+}
+
+	.ui-tooltip-red .ui-tooltip-titlebar{
+		background-color: #F06D65;
+	}
+
+	.ui-tooltip-red .ui-tooltip-close .ui-icon{
+		background: #9C2F2F url('images/close-red.png') no-repeat 50% 50%;
+	}
+
+
+/*! Green tooltip style */
+.ui-tooltip-green .ui-tooltip-wrapper{
+	border-color: #90D93F;
+	background-color: #CAED9E;
+	color: #3F6219;
+}
+
+	.ui-tooltip-green .ui-tooltip-titlebar{
+		background-color: #B0DE78;
+	}
+
+	.ui-tooltip-green .ui-tooltip-close .ui-icon{
+		background: #58792E url('images/close-green.png') no-repeat 50% 50%;
+	}
+
+
+/*! Blue tooltip style */
+.ui-tooltip-blue .ui-tooltip-wrapper{
+	border-color: #ADD9ED;
+	background-color: #E5F6FE;
+	color: #5E99BD;
+}
+
+	.ui-tooltip-blue .ui-tooltip-titlebar{
+		background-color: #D0E9F5;
+	}
+
+	.ui-tooltip-blue .ui-tooltip-close .ui-icon{
+		background: #4D9FBF url('images/close-blue.png') no-repeat 50% 50%;
+	}
+
+
+/*! Add shadows to your tooltips in all supported browsers */
+.ui-tooltip-shadow{
+  -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);
+  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);
+
+  filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color='gray');
+  -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color='gray')";
+}
+
+div.ui-tooltip-tip{
+	position: absolute;
+	margin: 0 auto;
+	overflow: hidden;
+
+	line-height: 0.1px;
+	font-size: 1px;
+
+	background: transparent !important;
+	border: 0px !important;
+	z-index: 10;
+}
+
+	div.ui-tooltip-tip *{
+		line-height: 0.1px;
+		font-size: 0.1px;
+	}
+
+	div.ui-tooltip-tip div{
+		background: transparent !important;
+		border: 0px dashed transparent;
+	}
+
+#qtip-overlay{
+	position: absolute;
+	left: -10000em;
+	top: -10000em;
+
+	background-color: black;
+	cursor: pointer;
+
+	/* Set this to any below 15000 (default starting z-index for qTips) */
+	z-index: 14999;
+}
+
+/*! Youtube tooltip style */
+div.ui-tooltip-youtube .ui-tooltip-wrapper{
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	border-radius: 5px;
+
+	-webkit-box-shadow: 0 0 3px #333;
+	-moz-box-shadow: 0 0 3px #333;
+	box-shadow: 0 0 3px #333;
+
+	border-color: #CCCCCC;
+	border-width: 1px;
+
+	color: white;
+}
+
+	div.ui-tooltip-youtube .ui-tooltip-close .ui-icon{
+		background: #4D9FBF url('images/close-dark.png') no-repeat 50% 50%;
+	}
+
+	div.ui-tooltip-youtube .ui-tooltip-titlebar,
+	div.ui-tooltip-youtube .ui-tooltip-content{
+		background-color: rgba(0, 0, 0, 0.85);
+	}
+
+	/* IE6 Fallback */
+	* html div.ui-tooltip-youtube-wrapper{
+		background-color: black;
+	}
+
+
+/* jQuery TOOLS Tooltip style */
+div.ui-tooltip-jtools .ui-tooltip-wrapper{
+	-moz-border-radius: 2px;
+	-webkit-border-radius: 2px;
+	border-radius: 2px;
+
+	border-color: white;
+	border-width: 2px;
+
+	-webkit-box-shadow: 0 0 12px #333;
+	-moz-box-shadow: 0 0 12px #333;
+	box-shadow: 0 0 12px #333;
+
+	background-color: rgba(0, 0, 0, 0.7);
+	background-image: -moz-linear-gradient(top, #717171, #232323);
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));
+	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#232323);
+	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#232323)";
+
+	color: white;
+}
+
+	div.ui-tooltip-jtools .ui-tooltip-titlebar,
+	div.ui-tooltip-jtools .ui-tooltip-content{
+		background: none;
+	}
+
+	div.ui-tooltip-jtools .ui-tooltip-close .ui-icon{
+		background: black url('images/close-dark.png') no-repeat 50% 50%;
+	}
+
+
+/* Cluetip style */
+div.ui-tooltip-cluetip .ui-tooltip-wrapper{
+	border-width: 0;
+
+	-webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
+	-moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
+	box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
+}
+
+	div.ui-tooltip-cluetip .ui-tooltip-titlebar{
+		background-color: #87876A;
+		color: white;
+	}
+	div.ui-tooltip-cluetip .ui-tooltip-content{
+		background-color: #D9D9C2;
+		color: #111;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/static/js/jquery.qtip.min.js	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,1 @@
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('"6t 6u";(j($){$(31).3x(j(){R i;$(2e).1J(\'3L 3E\',j(r){1V(i=0;i<$.18.g.O.Q;i++){R T=$.18.g.O[i];c(T&&T.V&&T.V.1b&&T.8.k.17!==\'29\'&&T.d.h.2r(\':28\')&&(T.8.k.1e.3E&&r.17===\'3E\'||T.8.k.1e.3L&&r.17===\'3L\')){T.2h(r,H)}}});$(31).1J(\'5j.g\',j(r){c($(r.s).5g(\'12.g\').Q===0){R h=$(\'.6w\'),T=h.g(\'T\');c(h.2r(\':28\')&&T&&T.V&&!T.V.23&&$(r.s).2m(T.d.s).Q>1){T.D(r)}}})});j 2D(w){c(!w){B p}A.x=5a(w).3l(/5x/i,\'1j\').5y(/M|25|1j/i)[0].2F();A.y=5a(w).3l(/5x/i,\'1j\').5y(/K|26|1j/i)[0].2F();A.1k={M:0,K:0};A.2y=(w.2H(0).6L(/^(t|b)/)>-1)?\'y\':\'x\';A.1w=j(){B(A.2y===\'y\')?A.y+A.x:A.x+A.y}}j 4t(w,o,G){R 1N={5B:[[0,0],[o,G],[o,0]],6a:[[0,0],[o,0],[0,G]],5K:[[0,G],[o,0],[o,G]],5N:[[0,0],[0,G],[o,G]],6y:[[0,G],[o/2,0],[o,G]],6v:[[0,0],[o,0],[o/2,G]],6i:[[0,0],[o,G/2],[0,G]],6J:[[o,0],[o,G],[0,G/2]]};1N.6M=1N.5B;1N.6z=1N.6a;1N.6x=1N.5K;1N.6C=1N.5N;B 1N[w]}j 4e(E){R 2j;c($(\'<1f />\').1q(0).1E){2j={3K:[E,E],40:[0,E],4I:[E,0],3P:[0,0]}}C c($.16.1d){2j={3K:[-2z,2z,0],40:[-2z,2z,-E],4I:[2z,5D,0],3P:[2z,5D,-E]}}B 2j}j 2G(e,4b){R 2U,i;2U=$.2p(H,{},e);1V(i 5R 2U){c(4b===H&&(/(f|1g)/i).1Y(i)){3z 2U[i]}C c(!4b&&(/(o|I|f|U|1g|4v)/i).1Y(i)){3z 2U[i]}}B 2U}j 4i(e){c(P e.f!==\'19\'){e.f={w:e.f}}c(P e.f.N!==\'19\'){e.f.N={o:e.f.N,G:e.f.N}}c(P e.I!==\'19\'){e.I={o:e.I}}c(P e.o!==\'19\'){e.o={2Z:e.o}}c(P e.o.1H===\'1w\'){e.o.1H=1A(e.o.1H.3l(/([0-9]+)/i,"$1"),10)}c(P e.o.2b===\'1w\'){e.o.2b=1A(e.o.2b.3l(/([0-9]+)/i,"$1"),10)}c(P e.f.N.x===\'2s\'){e.f.N.o=e.f.N.x;3z e.f.N.x}c(P e.f.N.y===\'2s\'){e.f.N.G=e.f.N.y;3z e.f.N.y}B e}j 4l(){R 7,i,3A,2v,1D,1P;7=A;3A=[H,{}];1V(i=0;i<3b.Q;i++){3A.5h(3b[i])}2v=[$.2p.4s($,3A)];6F(P 2v[0].21===\'1w\'){2v.5O(4i($.18.g.3c[2v[0].21]))}2v.5O(H,{1g:{h:\'g-\'+(3b[0].21||\'39\')}},$.18.g.3c.39);1D=$.2p.4s($,2v);1P=($.16.1d)?1:0;1D.f.N.o+=1P;1D.f.N.G+=1P;c(1D.f.N.o%2>0){1D.f.N.o+=1}c(1D.f.N.G%2>0){1D.f.N.G+=1}c(1D.f.w===H){c(7.8.k.w.h===\'1j\'&&7.8.k.w.s===\'1j\'){1D.f.w=p}C{1D.f.w=7.8.k.w.h}}B 1D}j 46(1f,X,E,J){R 1n=1f.1q(0).1E(\'2d\');1n.5G=J;1n.5U();1n.3p(X[0],X[1],E,0,1u.6N*2,p);1n.5Y()}j 59(){R 7,i,o,E,J,X,1Q,N,4O,2k,3e,3i,4g,4q,4G;7=A;7.d.1t.1M(\'.g-3i, .g-3e\').3W();o=7.8.e.I.o;E=7.8.e.I.E;J=7.8.e.I.J||7.8.e.f.J;X=4e(E);1Q={};1V(i 5R X){1Q[i]=\'<12 1S="\'+i+\'" e="\'+((/6n/).1Y(i)?\'M\':\'25\')+\':0; \'+\'k:34; G:\'+E+\'1a; o:\'+E+\'1a; 2u:1F; 2S-G:0.1B; 2Y-N:1B">\';c($(\'<1f />\').1q(0).1E){1Q[i]+=\'<1f G="\'+E+\'" o="\'+E+\'" e="4Q-3o: K"></1f>\'}C c($.16.1d){N=E*2+3;1Q[i]+=\'<v:3p 6f="p" 3t="\'+J+\'" 6s="\'+X[i][0]+\'" 6r="\'+X[i][1]+\'" \'+\'e="o:\'+N+\'1a; G:\'+N+\'1a; 2q-K:\'+((/26/).1Y(i)?-2:-1)+\'1a; \'+\'2q-M:\'+((/6m/).1Y(i)?X[i][2]-3.5:-1)+\'1a; \'+\'4Q-3o:K; 2a:53-4E; 3I:1x(#2L#3R)"></v:3p>\'}1Q[i]+=\'</12>\'}4O=7.3d().o-(1u.1H(o,E)*2);2k=\'<12 1I="g-2k" e="G:\'+E+\'1a; o:\'+4O+\'1a; \'+\'2u:1F; 1s-J:\'+J+\'; 2S-G:0.1B; 2Y-N:1B;">\';3e=\'<12 1I="g-3e" 4k="4f" e="G:\'+E+\'1a; \'+\'2q-M:\'+E+\'1a; 2S-G:0.1B; 2Y-N:1B; 2x:0;">\'+1Q.3K+1Q.40+2k;7.d.1t.3B(3e);3i=\'<12 1I="g-3i" 4k="4f" e="G:\'+E+\'1a; \'+\'2q-M:\'+E+\'1a; 2S-G:0.1B; 2Y-N:1B; 2x:0;">\'+1Q.4I+1Q.3P+2k;7.d.1t.5s(3i);c($(\'<1f />\').1q(0).1E){7.d.1t.1M(\'1f\').1L(j(){4g=X[$(A).3O(\'[1S]:1R\').W(\'1S\')];46.S(7,$(A),4g,E,J)})}C c($.16.1d){7.d.h.5s(\'<v:3C e="3I:1x(#2L#3R);"></v:3C>\')}4q=1u.1H(E,(E+(o-E)));4G=1u.1H(o-E,0);7.d.1y.F({I:\'6D 3q \'+J,6H:4G+\'1a \'+4q+\'1a\'})}j 4u(1f,X,J){R 1n=1f.1q(0).1E(\'2d\');1n.5G=J;1n.5U();1n.6o(X[0][0],X[0][1]);1n.5Q(X[1][0],X[1][1]);1n.5Q(X[2][0],X[2][1]);1n.5Y()}j 42(w){R 7,1P,24,4n,4h,3Q;7=A;c(7.8.e.f.w===p||!7.d.f){B}c(!w){w=2T 2D(7.d.f.W(\'1S\'))}1P=24=($.16.1d)?1:0;7.d.f.F(w[w.2y],0);c(w.2y===\'y\'){c($.16.1d){c(1A($.16.2X.2H(0),10)===6){24=w.y===\'K\'?-3:1}C{24=w.y===\'K\'?1:2}}c(w.x===\'1j\'){7.d.f.F({M:\'50%\',6K:-(7.8.e.f.N.o/2)})}C c(w.x===\'M\'){7.d.f.F({M:7.8.e.I.E-1P})}C{7.d.f.F({25:7.8.e.I.E+1P})}c(w.y===\'K\'){7.d.f.F({K:-24})}C{7.d.f.F({26:24})}}C{c($.16.1d){24=(1A($.16.2X.2H(0),10)===6)?1:(w.x===\'M\'?1:2)}c(w.y===\'1j\'){7.d.f.F({K:\'50%\',49:-(7.8.e.f.N.G/2)})}C c(w.y===\'K\'){7.d.f.F({K:7.8.e.I.E-1P})}C{7.d.f.F({26:7.8.e.I.E+1P})}c(w.x===\'M\'){7.d.f.F({M:-24})}C{7.d.f.F({25:24})}}4n=\'2x-\'+w[w.2y];4h=7.8.e.f.N[w.2y===\'x\'?\'o\':\'G\'];7.d.h.F(\'2x\',0).F(4n,4h);c($.16.1d&&1A($.16.2X.2H(0),6)===6){3Q=1A(7.d.f.F(\'2q-K\'),10)||0;3Q+=1A(7.d.u.F(\'2q-K\'),10)||0;7.d.f.F({49:3Q})}}j 44(w){R 7,J,X,3J,2o,f;7=A;c(7.d.f!==1z){7.d.f.3W()}J=7.8.e.f.J||7.8.e.I.J;c(7.8.e.f.w===p){B}C c(!w){w=2T 2D(7.8.e.f.w)}X=4t(w.1w(),7.8.e.f.N.o,7.8.e.f.N.G);7.d.f=\'<12 1I="\'+7.8.e.1g.f+\'" 4k="4f" 1S="\'+w.1w()+\'" e="k:34; \'+\'G:\'+7.8.e.f.N.G+\'1a; o:\'+7.8.e.f.N.o+\'1a; \'+\'2q:0 6e; 2S-G:0.1B; 2Y-N:1B;"></12>\';7.d.h.3B(7.d.f);c($(\'<1f />\').1q(0).1E){f=\'<1f G="\'+7.8.e.f.N.G+\'" o="\'+7.8.e.f.N.o+\'"></1f>\'}C c($.16.1d){3J=7.8.e.f.N.o+\',\'+7.8.e.f.N.G;2o=\'m\'+X[0][0]+\',\'+X[0][1];2o+=\' l\'+X[1][0]+\',\'+X[1][1];2o+=\' \'+X[2][0]+\',\'+X[2][1];2o+=\' 6I\';f=\'<v:3M 3t="\'+J+\'" 6f="p" 6p="H" 2o="\'+2o+\'" 3J="\'+3J+\'" \'+\'e="o:\'+7.8.e.f.N.o+\'1a; G:\'+7.8.e.f.N.G+\'1a; \'+\'2S-G:0.1B; 2a:53-4E; 3I:1x(#2L#3R); \'+\'4Q-3o:\'+(w.y===\'K\'?\'26\':\'K\')+\'"></v:3M>\';f+=\'<v:3C e="3I:1x(#2L#3R);"></v:3C>\';7.d.1y.F(\'k\',\'4y\')}7.d.f=7.d.h.1M(\'.\'+7.8.e.1g.f).6B(0);7.d.f.2l(f);c($(\'<1f  />\').1q(0).1E){4u.S(7,7.d.f.1M(\'1f:1R\'),X,J)}c(w.y===\'K\'&&$.16.1d&&1A($.16.2X.2H(0),10)===6){7.d.f.F({49:-4})}42.S(7,w)}j 5b(){R 7=A;c(7.d.U!==1z){7.d.U.3W()}7.d.h.W(\'3r-6E\',\'g-\'+7.11+\'-U\');7.d.U=$(\'<12 11="g-\'+7.11+\'-U" 1I="\'+7.8.e.1g.U+\'"></12>\').F(2G(7.8.e.U,H)).F({2f:($.16.1d)?1:0}).58(7.d.1y);c(7.8.u.U.1m){7.5W.S(7,7.8.u.U.1m)}c(7.8.u.U.1i!==p&&P 7.8.u.U.1i===\'1w\'){7.d.1i=$(\'<a 1I="\'+7.8.e.1g.1i+\'" 5e="1i" e="6G:25; k: 4y"></a>\').F(2G(7.8.e.1i,H)).2l(7.8.u.U.1i).58(7.d.U).5d(j(r){c(!7.V.23){7.D(r)}})}}j 5l(){R 7,3h,2i,3u;7=A;3h=7.8.q.L.s;2i=7.8.D.L.s;c(7.8.D.3g){2i=2i.2m(7.d.h)}3u=[\'5d\',\'6h\',\'6k\',\'6j\',\'4C\',\'4x\',\'5j\',\'6l\',\'35\'];j 3v(r){c(7.V.23===H){B}2g(7.1G.1W);7.1G.1W=4M(j(){$(3u).1L(j(){2i.1O(A+\'.g-1W\');7.d.u.1O(A+\'.g-1W\')});7.D(r)},7.8.D.2V)}c(7.8.D.3g===H){7.d.h.1J(\'35.g\',j(){c(7.V.23===H){B}2g(7.1G.D)})}j 4S(r){c(7.V.23===H){B}c(7.8.D.L.r===\'1W\'){$(3u).1L(j(){2i.1J(A+\'.g-1W\',3v);7.d.u.1J(A+\'.g-1W\',3v)});3v()}2g(7.1G.q);2g(7.1G.D);c(7.8.q.2V>0){7.1G.q=4M(j(){7.q(r)},7.8.q.2V)}C{7.q(r)}}j 4P(r){c(7.V.23===H){B}c(7.8.D.3g===H&&(/1K(6q|6A)/i).1Y(7.8.D.L.r)&&$(r.70).5g(\'12.g[11^="g"]\').Q>0){r.7L();r.7K();2g(7.1G.D);B p}2g(7.1G.q);2g(7.1G.D);7.d.h.3S(H,H);7.1G.D=4M(j(){7.D(r)},7.8.D.2V)}c(7.8.k.s===\'1K\'&&7.8.k.17!==\'29\'){3h.1J(\'4C.g\',j(r){7.1v.1K={M:r.3Y,K:r.4c};c(7.V.23===p&&7.8.k.1e.1K===H&&7.8.k.17!==\'29\'&&7.d.h.F(\'2a\')!==\'3a\'){7.2h(r)}})}c((7.8.q.L.s.2m(7.8.D.L.s).Q===1&&7.8.q.L.r===7.8.D.L.r&&7.8.D.L.r!==\'1W\')||7.8.D.L.r===\'4R\'){7.1v.2I=0;3h.1J(7.8.q.L.r+\'.g\',j(r){c(7.1v.2I===0){4S(r)}C{4P(r)}})}C{3h.1J(7.8.q.L.r+\'.g\',4S);c(7.8.D.L.r!==\'1W\'){2i.1J(7.8.D.L.r+\'.g\',4P)}}c((/(3g|34)/).1Y(7.8.k.17)){7.d.h.1J(\'35.g\',7.2E)}}j 22(){R 7,2l,2t;7=A;2t=7.3d();2l=\'<7J 1I="g-22" 7I="0" 7M="-1" 4T="7N:p" \'+\'e="2a:4E; k:34; z-3s:-1; 5m:7R(2B=\\\'0\\\'); I: 1B 3q 4H; \'+\'G:\'+2t.G+\'1a; o:\'+2t.o+\'1a" />\';7.d.22=7.d.1t.3B(2l).2w(\'.g-22:1R\')}j 4w(){R 7,u,1x,Y,2A;7=A;7.5J.S(7);7.V.1b=2;7.d.h=\'<12 g="\'+7.11+\'" 11="g-\'+7.11+\'" 5e="h" \'+\'3r-7Q="g-\'+7.11+\'-u" 1I="g \'+(7.8.e.1g.h||7.8.e)+\'" \'+\'e="2a:3a; -7P-I-E:0; -7O-I-E:0; I-E:0; k:\'+7.8.k.17+\';"> \'+\'  <12 1I="g-1t" e="k:4y; 2u:1F; 1m-3o:M;"> \'+\'    <12 1I="g-1y" e="2u:1F;"> \'+\'       <12 11="g-\'+7.11+\'-u" 1I="g-u \'+7.8.e.1g.u+\'"></12> \'+\'</12></12></12>\';7.d.h=$(7.d.h);7.d.h.5P(7.8.k.3U);7.d.h.Y(\'g\',{3k:0,O:[7]});7.d.1t=7.d.h.2w(\'12:1R\');7.d.1y=7.d.1t.2w(\'12:1R\');7.d.u=7.d.1y.2w(\'12:1R\').F(2G(7.8.e));c($.16.1d){7.d.1t.2m(7.d.u).F({2f:1})}c(7.8.D.L.r===\'4R\'){7.d.h.W(\'4R\',H)}c(P 7.8.e.o.2Z===\'2s\'){7.4d()}c($(\'<1f />\').1q(0).1E||$.16.1d){c(7.8.e.I.E>0){59.S(7)}C{7.d.1y.F({I:7.8.e.I.o+\'1a 3q \'+7.8.e.I.J})}c(7.8.e.f.w!==p){44.S(7)}}C{7.d.1y.F({I:7.8.e.I.o+\'1a 3q \'+7.8.e.I.J});7.8.e.I.E=0;7.8.e.f.w=p}c((P 7.8.u.1m===\'1w\'&&7.8.u.1m.Q>0)||(7.8.u.1m.4r&&7.8.u.1m.Q>0)){u=7.8.u.1m}C{u=\' \'}c(7.8.u.U.1m!==p){5b.S(7)}7.4A(u,p);5l.S(7);c(7.8.q.3x===H){7.q()}c(7.8.u.1x!==p){1x=7.8.u.1x;Y=7.8.u.Y;2A=7.8.u.2A||\'1q\';7.5Z(1x,Y,2A)}7.V.1b=H;7.5f.S(7)}j 56(s,8,11){R 7=A;7.11=11;7.8=8;7.V={4j:p,1b:p,23:p,3Z:p};7.d={s:s.5v(7.8.e.1g.s),h:1z,1t:1z,u:1z,1y:1z,U:1z,1i:1z,f:1z,22:1z};7.1v={W:p,1K:{},2I:0,2u:{M:p,K:p}};7.1G={};$.2p(7,7.8.T,{q:j(r){R 1c,1X;c(!7.V.1b){B p}c(7.d.h.F(\'2a\')!==\'3a\'){B 7}7.d.h.3S(H,p);1c=7.5n.S(7,r);c(1c===p){B 7}j 2M(){7.d.h.W(\'3r-1F\',H);c(7.8.k.17!==\'29\'){7.2E()}7.5q.S(7,r);c($.16.1d){R 4a=7.d.h.1q(0).e;4a.43(\'5m\');4a.43(\'2B\')}C{7.d.h.F({2B:\'\'})}}7.1v.2I=1;c(7.8.k.17!==\'29\'){7.2h(r,(7.8.q.Z.Q>0&&7.1b!==2))}c(P 7.8.q.1X===\'19\'){1X=$(7.8.q.1X)}C c(7.8.q.1X===H){1X=$(\'12.g\').5S(7.d.h)}c(1X){1X.1L(j(){c($(A).g(\'T\').V.1b===H){$(A).g(\'T\').D()}})}c(P 7.8.q.Z.17===\'j\'){7.8.q.Z.17.S(7.d.h,7.8.q.Z.Q);7.d.h.5u(j(){2M();$(A).5t()})}C{4N(7.8.q.Z.17.2F()){1Z\'3w\':7.d.h.7H(7.8.q.Z.Q,2M);1C;1Z\'5o\':7.d.h.7G(7.8.q.Z.Q,j(){2M();c(7.8.k.17!==\'29\'){7.2h(r,H)}});1C;1Z\'5p\':7.d.h.q(7.8.q.Z.Q,2M);1C;2L:7.d.h.q(1z,2M);1C}7.d.h.5v(7.8.e.1g.3T)}B 7},D:j(r){R 1c;c(!7.V.1b){B p}C c(7.d.h.F(\'2a\')===\'3a\'){B 7}2g(7.1G.q);7.d.h.3S(H,p);1c=7.5A.S(7,r);c(1c===p){B 7}j 2K(){7.d.h.W(\'3r-1F\',H);c($.16.1d){7.d.h.1q(0).e.43(\'2B\')}C{7.d.h.F({2B:\'\'})}7.4Z.S(7,r)}7.1v.2I=0;c(P 7.8.D.Z.17===\'j\'){7.8.D.Z.17.S(7.d.h,7.8.D.Z.Q);7.d.h.5u(j(){2K();$(A).5t()})}C{4N(7.8.D.Z.17.2F()){1Z\'3w\':7.d.h.7z(7.8.D.Z.Q,2K);1C;1Z\'5o\':7.d.h.7y(7.8.D.Z.Q,2K);1C;1Z\'5p\':7.d.h.D(7.8.D.Z.Q,2K);1C;2L:7.d.h.D(1z,2K);1C}7.d.h.7x(7.8.e.1g.3T)}B 7},2I:j(r,38){R 5r=/7w|2s/.1Y(P 38)?38:!7.d.h.2r(\':28\');7[5r?\'q\':\'D\'](r);B 7},2h:j(r,4o){c(!7.V.1b){B p}R 1U=8.k,s=$(1U.s),2Q=7.d.h.47(),2P=7.d.h.48(),1p,1l,k,1o=1U.w.h,2R=1U.w.s,1c,14,i,4L,27,45={M:j(){R 3j=$(2e).3D(),3n=$(2e).o()+$(2e).3D(),2J=1o.x===\'1j\'?2Q/2:2Q,2N=1o.x===\'1j\'?1p/2:1p,2O=(1o.x===\'1j\'?1:2)*7.8.e.I.E,1k=-2*1U.1e.x,3m=k.M+2Q,1h;c(3m>3n){1h=1k-2J-2N+2O;c(k.M+1h>3j||3j-(k.M+1h)<3m-3n){B{1e:1h,f:\'25\'}}}c(k.M<3j){1h=1k+2J+2N-2O;c(3m+1h<3n||3m+1h-3n<3j-k.M){B{1e:1h,f:\'M\'}}}B{1e:0,f:1o.x}},K:j(){R 30=$(2e).3G(),33=$(2e).G()+$(2e).3G(),2J=1o.y===\'1j\'?2P/2:2P,2N=1o.y===\'1j\'?1l/2:1l,2O=(1o.y===\'1j\'?1:2)*7.8.e.I.E,1k=-2*1U.1e.y,32=k.K+2P,1h;c(32>33){1h=1k-2J-2N+2O;c(k.K+1h>30||30-(k.K+1h)<32-33){B{1e:1h,f:\'26\'}}}c(k.K<30){1h=1k+2J+2N-2O;c(32+1h<33||32+1h-33<30-k.K){B{1e:1h,f:\'K\'}}}B{1e:0,f:1o.y}}};c(r&&8.k.s===\'1K\'){2R={x:\'M\',y:\'K\'};1p=1l=0;c(!r.3Y){k=7.1v.1K}C{k={K:r.4c,M:r.3Y}}}C{c(s[0]===31){1p=s.o();1l=s.G();k={K:0,M:0}}C c(s[0]===2e){1p=s.o();1l=s.G();k={K:s.3G(),M:s.3D()}}C c(s.2r(\'7A\')){14=7.8.k.s.W(\'14\').7B(\',\');1V(i=0;i<14.Q;i++){14[i]=1A(14[i],10)}4L=7.8.k.s.3O(\'7F\').W(\'21\');27=$(\'4U[7E="#\'+4L+\'"]:1R\').1k();k={M:1u.3H(27.M+14[0]),K:1u.3H(27.K+14[1])};4N(7.8.k.s.W(\'3M\').2F()){1Z\'7T\':1p=1u.4V(1u.5z(14[2]-14[0]));1l=1u.4V(1u.5z(14[3]-14[1]));1C;1Z\'7C\':1p=14[2]+1;1l=14[2]+1;1C;1Z\'7S\':1p=14[0];1l=14[1];1V(i=0;i<14.Q;i++){c(i%2===0){c(14[i]>1p){1p=14[i]}c(14[i]<14[0]){k.M=1u.3H(27.M+14[i])}}C{c(14[i]>1l){1l=14[i]}c(14[i]<14[1]){k.K=1u.3H(27.K+14[i])}}}1p=1p-(k.M-27.M);1l=1l-(k.K-27.K);1C}1p-=2;1l-=2}C{1p=s.47();1l=s.48();c(!7.d.h.2r(\':28\')){7.d.h.F({M:\'-81\'}).q()}c(!1U.1e.1k||7.d.h.4F()[0]===31.4X){k=s.1k()}C{k=s.k();k.K+=s.4F().3G();k.M+=s.4F().3D()}}k.M+=2R.x===\'25\'?1p:2R.x===\'1j\'?1p/2:0;k.K+=2R.y===\'26\'?1l:2R.y===\'1j\'?1l/2:0}k.M+=1U.1e.x+(1o.x===\'25\'?-2Q:1o.x===\'1j\'?-2Q/2:0);k.K+=1U.1e.y+(1o.y===\'26\'?-2P:1o.y===\'1j\'?-2P/2:0);c(7.8.e.I.E>0){c(1o.x===\'M\'){k.M-=7.8.e.I.E}C c(1o.x===\'25\'){k.M+=7.8.e.I.E}c(1o.y===\'K\'){k.K-=7.8.e.I.E}C c(1o.y===\'26\'){k.K+=7.8.e.I.E}}c(1U.1e.55){(j(){R 2W={x:0,y:0},2n={x:45.M(),y:45.K()},f=2T 2D(8.e.f.w);c(7.d.f&&f){c(2n.y.1e!==0){k.K+=2n.y.1e;f.y=2W.y=2n.y.f}c(2n.x.1e!==0){k.M+=2n.x.1e;f.x=2W.x=2n.x.f}7.1v.2u={M:2W.x===p,K:2W.y===p};c(7.d.f.W(\'1S\')!==f.1w()){44.S(7,f)}}}())}c(!7.d.22&&$.16.1d&&1A($.16.2X.2H(0),10)===6){22.S(7)}1c=7.57.S(7,r);c(1c===p){B 7}c(8.k.s!==\'1K\'&&4o===H){7.V.4j=H;7.d.h.3S().4o(k,7V,\'80\',j(){7.V.4j=p})}C{7.d.h.F(k)}7.5c.S(7,r);B 7},4d:j(1r){c(!7.V.1b||(1r&&P 1r!==\'2s\')){B p}R 1F=7.d.1y.7W().2m(7.d.f).2m(7.d.1i),2f=7.d.1t.2m(7.d.1y.2w()),h=7.d.h,1H=7.8.e.o.1H,2b=7.8.e.o.2b;c(!1r){c(P 7.8.e.o.2Z===\'2s\'){1r=7.8.e.o.2Z}C{7.d.h.F({o:\'6e\'});1F.D();h.o(1r);c($.16.1d){2f.F({2f:\'\'})}1r=7.3d().o;c(!7.8.e.o.2Z){1r=1u.2b(1u.1H(1r,2b),1H)}}}c(1r%2){1r+=1}7.d.h.o(1r);1F.q();c(7.8.e.I.E){7.d.h.1M(\'.g-2k\').1L(j(i){$(A).o(1r-(7.8.e.I.E*2))})}c($.16.1d){2f.F({2f:1});7.d.1t.o(1r);c(7.d.22){7.d.22.o(1r).G(7.3d.G)}}B 7},7Y:j(21){R f,2j,1n,w,X;c(!7.V.1b||P 21!==\'1w\'||!$.18.g.3c[21]){B p}7.8.e=4l.S(7,$.18.g.3c[21],7.8.4v.e);7.d.u.F(2G(7.8.e));c(7.8.u.U.1m!==p){7.d.U.F(2G(7.8.e.U,H))}7.d.1y.F({7U:7.8.e.I.J});c(7.8.e.f.w!==p){c($(\'<1f />\').1q(0).1E){f=7.d.h.1M(\'.g-f 1f:1R\');1n=f.1q(0).1E(\'2d\');1n.5I(0,0,3N,3N);w=f.3O(\'12[1S]:1R\').W(\'1S\');X=4t(w,7.8.e.f.N.o,7.8.e.f.N.G);4u.S(7,f,X,7.8.e.f.J||7.8.e.I.J)}C c($.16.1d){f=7.d.h.1M(\'.g-f [5E="3M"]\');f.W(\'3t\',7.8.e.f.J||7.8.e.I.J)}}c(7.8.e.I.E>0){7.d.h.1M(\'.g-2k\').F({7X:7.8.e.I.J});c($(\'<1f />\').1q(0).1E){2j=4e(7.8.e.I.E);7.d.h.1M(\'.g-1t 1f\').1L(j(){1n=$(A).1q(0).1E(\'2d\');1n.5I(0,0,3N,3N);w=$(A).3O(\'12[1S]:1R\').W(\'1S\');46.S(7,$(A),2j[w],7.8.e.I.E,7.8.e.I.J)})}C c($.16.1d){7.d.h.1M(\'.g-1t [5E="3p"]\').1L(j(){$(A).W(\'3t\',7.8.e.I.J)})}}B 7},4A:j(u,5F){R 36,37,4K;j 4J(){7.4d();c(5F!==p){c(7.8.k.17!==\'29\'){7.2h(7.d.h.2r(\':28\'),H)}c(7.8.e.f.w!==p){42.S(7)}}}c(!u){B p}36=7.54.S(7,u);c(P 36===\'1w\'){u=36}C c(36===p){B}c(7.V.1b){c($.16.1d){7.d.1y.2w().F({2f:\'7Z\'})}c(u.4r&&u.Q>0){u.5V(H).5P(7.d.u).q()}C{7.d.u.2l(u)}37=7.d.u.1M(\'4U[6O=p]\');c(37.Q>0){4K=0;37.1L(j(i){$(\'<4U 4T="\'+$(A).W(\'4T\')+\'" />\').7D(j(){c(++4K===37.Q){4J()}})})}C{4J()}}C{7.8.u.1m=u}7.4Y.S(7);B 7},5Z:j(1x,Y,2A){R 1c;j 4D(u){7.63.S(7);7.4A(u)}c(!7.V.1b){B p}1c=7.51.S(7);c(1c===p){B 7}c(2A===\'60\'){$.60(1x,Y,4D)}C{$.1q(1x,Y,4D)}B 7},5W:j(u){R 1c;c(!7.V.1b||!u){B p}1c=7.64.S(7);c(1c===p){B 7}c(7.d.1i){7.d.1i=7.d.1i.5V(H)}7.d.U.2l(u);c(7.d.1i){7.d.U.3B(7.d.1i)}7.65.S(7);B 7},2E:j(r){R 4B,3F,3y,1c;c(!7.V.1b||7.8.k.17===\'29\'){B p}4B=1A(7.d.h.F(\'z-3s\'),10);3F=7u+$(\'12.g[11^="g"]\').Q-1;c(!7.V.3Z&&4B!==3F){1c=7.5H.S(7,r);c(1c===p){B 7}$(\'12.g[11^="g"]\').5S(7.d.h).1L(j(){c($(A).g(\'T\').V.1b===H){3y=1A($(A).F(\'z-3s\'),10);c(P 3y===\'2s\'&&3y>-1){$(A).F({68:1A($(A).F(\'z-3s\'),10)-1})}$(A).g(\'T\').V.3Z=p}});7.d.h.F({68:3F});7.V.3Z=H;7.5C.S(7,r)}B 7},3X:j(38){7.V.23=38?H:p;B 7},3f:j(){R i,1c,O,4z=7.d.s.Y(\'4p\'+7.1v.W[0]);1c=7.61.S(7);c(1c===p){B 7}c(7.V.1b){7.8.q.L.s.1O(\'4C.g\',7.2h);7.8.q.L.s.1O(\'4x.g\',7.D);7.8.q.L.s.1O(7.8.q.L.r+\'.g\');7.8.D.L.s.1O(7.8.D.L.r+\'.g\');7.d.h.1O(7.8.D.L.r+\'.g\');7.d.h.1O(\'35.g\',7.2E);7.d.h.3W()}C{7.8.q.L.s.1O(7.8.q.L.r+\'.g-\'+7.11+\'-4m\')}c(P 7.d.s.Y(\'g\')===\'19\'){O=7.d.s.Y(\'g\').O;c(P O===\'19\'&&O.Q>0){1V(i=0;i<O.Q-1;i++){c(O[i].11===7.11){O.5X(i,1)}}}}$.18.g.O.5X(7.11,1);c(P O===\'19\'&&O.Q>0){7.d.s.Y(\'g\').3k=O.Q-1}C{7.d.s.73(\'g\')}c(4z){7.d.s.W(7.1v.W[0],4z)}7.62.S(7);B 7.d.s},72:j(){R q,1k;c(!7.V.1b){B p}q=(7.d.h.F(\'2a\')!==\'3a\')?p:H;c(q){7.d.h.F({3V:\'1F\'}).q()}1k=7.d.h.1k();c(q){7.d.h.F({3V:\'28\'}).D()}B 1k},3d:j(){R q,2t;c(!7.V.1b){B p}q=(!7.d.h.2r(\':28\'))?H:p;c(q){7.d.h.F({3V:\'1F\'}).q()}2t={G:7.d.h.48(),o:7.d.h.47()};c(q){7.d.h.F({3V:\'28\'}).D()}B 2t}})}$.18.g=j(8,41){R i,11,O,20,2c,1T,15,T;c(P 8===\'1w\'){c($(A).Y(\'g\')){c(8===\'T\'){B $(A).Y(\'g\').O[$(A).Y(\'g\').3k]}C c(8===\'O\'){B $(A).Y(\'g\').O}}C{B $(A)}}C{c(!8){8={}}c(P 8.u!==\'19\'||(8.u.4r&&8.u.Q>0)){8.u={1m:8.u}}c(P 8.u.U!==\'19\'){8.u.U={1m:8.u.U}}c(P 8.k!==\'19\'){8.k={w:8.k}}c(P 8.k.w!==\'19\'){8.k.w={s:8.k.w,h:8.k.w}}c(P 8.q!==\'19\'){8.q={L:8.q}}c(P 8.q.L!==\'19\'){8.q.L={r:8.q.L}}c(P 8.q.Z!==\'19\'){8.q.Z={17:8.q.Z}}c(P 8.D!==\'19\'){8.D={L:8.D}}c(P 8.D.L!==\'19\'){8.D.L={r:8.D.L}}c(P 8.D.Z!==\'19\'){8.D.Z={17:8.D.Z}}c(P 8.e!==\'19\'){8.e={21:8.e}}8.e=4i(8.e);20=$.2p(H,{},$.18.g.39,8);20.e=4l.S({8:20},20.e);20.4v=$.2p(H,{},8)}B $(A).1L(j(){R 7=$(A),u=p;c(P 8===\'1w\'){1T=8.2F();O=$(A).g(\'O\');c(P O===\'19\'){c(41===H&&1T===\'3f\'){1V(i=O.Q-1;i>-1;i--){c(\'19\'===P O[i]){O[i].3f()}}}C{c(41!==H){O=[$(A).g(\'T\')]}1V(i=0;i<O.Q;i++){c(1T===\'3f\'){O[i].3f()}C c(O[i].V.1b===H){c(1T===\'q\'){O[i].q()}C c(1T===\'D\'){O[i].D()}C c(1T===\'2E\'){O[i].2E()}C c(1T===\'3X\'){O[i].3X(H)}C c(1T===\'71\'){O[i].3X(p)}C c(1T===\'7v\'){O[i].2h()}}}}}}C{15=$.2p(H,{},20);15.D.Z.Q=20.D.Z.Q;15.q.Z.Q=20.q.Z.Q;c(15.k.3U===p){15.k.3U=$(31.4X)}c(15.k.s===p){15.k.s=$(A)}c(15.q.L.s===p){15.q.L.s=$(A)}c(15.D.L.s===p){15.D.L.s=$(A)}15.k.w.h=2T 2D(15.k.w.h);15.k.w.s=2T 2D(15.k.w.s);c(!15.u.1m.Q){$([\'U\',\'6b\']).1L(j(i,W){R 2C=7.W(W);c(2C&&2C.Q){u=[W,2C];7.Y(\'4p\'+W,2C).74(W);15.u.1m=2C.3l(/\\n/75,\'<78 />\');B p}})}11=$.18.g.O.Q;1V(i=0;i<11;i++){c(P $.18.g.O[i]===\'5i\'){11=i;1C}}2c=2T 56($(A),15,11);$.18.g.O[11]=2c;2c.1v.W=u;c(P $(A).Y(\'g\')===\'19\'&&$(A).Y(\'g\')){c(P $(A).W(\'g\')===\'5i\'){$(A).Y(\'g\').3k=$(A).Y(\'g\').O.Q}$(A).Y(\'g\').O.5h(2c)}C{$(A).Y(\'g\',{3k:0,O:[2c]})}c(15.u.5w===p&&15.q.L.r!==p&&15.q.3x!==H){15.q.L.s.1J(15.q.L.r+\'.g-\'+11+\'-4m\',{g:11},j(r){T=$.18.g.O[r.Y.g];T.8.q.L.s.1O(T.8.q.L.r+\'.g-\'+r.Y.g+\'-4m\');T.1v.1K={M:r.3Y,K:r.4c};4w.S(T);T.8.q.L.s.77(T.8.q.L.r)})}C{2c.1v.1K={M:15.q.L.s.1k().M,K:15.q.L.s.1k().K};4w.S(2c)}}})};$.18.g.O=[];$.18.g.18={W:$.18.W};$.18.W=j(W){R T=$(A).g(\'T\');B(3b.Q===1&&(/U|6b/i).1Y(W)&&T.V&&T.V.1b===H)?$(A).Y(\'4p\'+T.1v.W[0]):$.18.g.18.W.4s(A,3b)};$.18.g.39={u:{5w:p,1m:p,1x:p,Y:1z,U:{1m:p,1i:p}},k:{s:p,w:{s:\'3P\',h:\'3K\'},1e:{x:0,y:0,1K:H,55:p,3E:H,3L:H,1k:p},17:\'34\',3U:p},q:{L:{s:p,r:\'35\'},Z:{17:\'3w\',Q:5T},2V:76,1X:p,3x:p},D:{L:{s:p,r:\'4x\'},Z:{17:\'3w\',Q:5T},2V:0,3g:p},T:{5J:j(){},5f:j(){},57:j(){},5c:j(){},5n:j(){},5q:j(){},5A:j(){},4Z:j(){},54:j(){},4Y:j(){},51:j(){},63:j(){},64:j(){},65:j(){},61:j(){},62:j(){},5H:j(){},5C:j(){}}};$.18.g.3c={39:{1s:\'66\',J:\'#6Z\',2u:\'1F\',6Y:\'M\',o:{2b:0,1H:6S},2x:\'6R 6Q\',I:{o:1,E:0,J:\'#6P\'},f:{w:p,J:p,N:{o:13,G:13},2B:1},U:{1s:\'#6T\',6U:\'6X\',2x:\'6W 6V\'},1i:{79:\'7a\'},1g:{s:\'\',f:\'g-f\',U:\'g-U\',1i:\'g-1i\',u:\'g-u\',3T:\'g-3T\'}},5L:{I:{o:3,E:0,J:\'#7o\'},U:{1s:\'#7n\',J:\'#5M\'},1s:\'#7m\',J:\'#5M\',1g:{h:\'g-5L\'}},6d:{I:{o:3,E:0,J:\'#7p\'},U:{1s:\'#7q\',J:\'#6c\'},1s:\'66\',J:\'#6c\',1g:{h:\'g-6d\'}},69:{I:{o:3,E:0,J:\'#7t\'},U:{1s:\'#7s\',J:\'#67\'},1s:\'#7r\',J:\'#67\',1g:{h:\'g-69\'}},4H:{I:{o:3,E:0,J:\'#7l\'},U:{1s:\'#7k\',J:\'#6g\'},1s:\'#7e\',J:\'#6g\',1g:{h:\'g-4H\'}},52:{I:{o:3,E:0,J:\'#7d\'},U:{1s:\'#7c\',J:\'#4W\'},1s:\'#7b\',J:\'#4W\',1g:{h:\'g-52\'}},5k:{I:{o:3,E:0,J:\'#7f\'},U:{1s:\'#7g\',J:\'#7j\'},1s:\'#7i\',J:\'#7h\',1g:{h:\'g-5k\'}}}}(82));',62,499,'|||||||self|options||||if|elements|style|tip|qtip|tooltip||function|position||||width|false|show|event|target||content||corner||||this|return|else|hide|radius|css|height|true|border|color|top|when|left|size|interfaces|typeof|length|var|call|api|title|status|attr|coordinates|data|effect||id|div||coords|config|browser|type|fn|object|px|rendered|returned|msie|adjust|canvas|classes|adj|button|center|offset|targetHeight|text|context|my|targetWidth|get|newWidth|background|wrapper|Math|cache|string|url|contentWrapper|null|parseInt|1px|break|finalStyle|getContext|hidden|timers|max|class|bind|mouse|each|find|tips|unbind|ieAdjust|containers|first|rel|command|posOptions|for|inactive|solo|test|case|opts|name|bgiframe|disabled|positionAdjust|right|bottom|imagePos|visible|static|display|min|obj||window|zoom|clearTimeout|updatePosition|hideTarget|borders|betweenCorners|html|add|adapted|path|extend|margin|is|number|dimensions|overflow|styleExtend|children|padding|precedance|90|method|opacity|val|Corner|focus|toLowerCase|jQueryStyle|charAt|toggle|myOffset|afterHide|default|afterShow|atOffset|borderAdjust|elemHeight|elemWidth|at|line|new|styleObj|delay|adjusted|version|font|value|topEdge|document|pBottom|bottomEdge|absolute|mouseover|parsedContent|images|state|defaults|none|arguments|styles|getDimensions|borderTop|destroy|fixed|showTarget|borderBottom|leftEdge|current|replace|pRight|rightEdge|align|arc|solid|aria|index|fillcolor|inactiveEvents|inactiveMethod|fade|ready|elemIndex|delete|styleArray|prepend|image|scrollLeft|scroll|newIndex|scrollTop|floor|behavior|coordsize|topLeft|resize|shape|300|parent|bottomRight|newMargin|VML|stop|active|container|visiblity|remove|disable|pageX|focused|topRight|blanket|positionTip|removeAttribute|createTip|adapt|drawBorder|outerWidth|outerHeight|marginTop|ieStyle|sub|pageY|updateWidth|calculateBorders|ltr|borderCoord|paddingSize|sanitizeStyle|animated|dir|buildStyle|create|paddingCorner|animate|old|sideWidth|jquery|apply|calculateTip|drawTip|user|construct|mouseout|relative|oldattr|updateContent|curIndex|mousemove|setupContent|block|offsetParent|vertWidth|red|bottomLeft|afterLoad|loadedImages|mapName|setTimeout|switch|betweenWidth|hideMethod|vertical|unfocus|showMethod|src|img|ceil|58792E|body|onContentUpdate|onHide||beforeContentLoad|green|inline|beforeContentUpdate|screen|QTip|beforePositionUpdate|prependTo|createBorder|String|createTitle|onPositionUpdate|click|role|onRender|parents|push|undefined|mouseenter|blue|assignEvents|filter|beforeShow|slide|grow|onShow|condition|append|dequeue|queue|addClass|prerender|middle|match|abs|beforeHide|bottomright|onFocus|270|nodeName|reposition|fillStyle|beforeFocus|clearRect|beforeRender|topright|cream|A27D35|topleft|unshift|appendTo|lineTo|in|not|100|beginPath|clone|updateTitle|splice|fill|loadContent|post|beforeDestroy|onDestroy|onContentLoad|beforeTitleUpdate|onTitleUpdate|white|f3f3f3|zIndex|dark|bottomleft|alt|454545|light|auto|stroked|9C2F2F|dblclick|rightcenter|mouseup|mousedown|mouseleave|Right|Left|moveTo|filled|out|endangle|startangle|use|strict|bottomcenter|qtipSelector|leftbottom|topcenter|righttop|leave|eq|rightbottom|0px|labelledby|while|float|borderWidth|xe|leftcenter|marginLeft|search|lefttop|PI|complete|d3d3d3|9px|5px|250|e1e1e1|fontWeight|12px|7px|bold|textAlign|111|relatedTarget|enable|getPosition|removeData|removeAttr|gi|140|trigger|br|cursor|pointer|CDE6AC|b9db8c|A9DB66|F79992|ADD9ED|D0E9F5|4D9FBF|E5F6FE|5E99BD|f28279|CE6F6F|FBF7AA|F0DE7D|F9E98E|E2E2E2|f1f1f1|505050|404040|303030|15000|update|boolean|removeClass|slideUp|fadeOut|area|split|circle|load|usemap|map|slideDown|fadeIn|frameborder|iframe|preventDefault|stopPropagation|tabindex|javascript|webkit|moz|describedby|alpha|poly|rect|borderColor|200|siblings|backgroundColor|updateStyle|normal|swing|10000000em|jQuery'.split('|'),0,{}))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/static/js/projectscontents.js	Thu Sep 09 16:47:51 2010 +0200
@@ -0,0 +1,194 @@
+$.fn.realVal = function() {
+	var obj = $(this[0]);
+	if(obj.val) {
+		if(obj.val() == obj.attr('defaultText')) {
+			return '';
+		}
+		else {
+			return obj.val();
+		}
+	}
+	else {
+		return null;
+	}
+};
+
+function init_events_base(base_node) {
+
+	$('.ldt_link',base_node).nyroModal({
+       	type: 'iframe',
+       	forceType: 'iframe',
+   		height:662, 
+   		width:1022,
+   		bgColor: 'rgb(239, 239, 239)',
+   		padding: 5,
+   		titleFromIframe: false
+      	});
+    	
+ 	$('.ldt_link_create',base_node).nyroModal({
+        type: 'iframe',
+        forceType: 'iframe',
+        height:662, 
+        width:1022,
+        bgColor: 'rgb(239, 239, 239)',
+        padding: 5,
+        titleFromIframe: false,
+        beforeHideContent: function(elts, settings, callback){
+             try {
+	              var res = $('#ldtInitSwf',$('#nyroModalIframe').contents());
+	              if(res.length > 0)
+	              {
+	              	   res.get(0).forceSave();
+	              }
+             }
+             catch(err)
+             {
+              // do nothing
+             }                   
+             callback();
+        	}
+    	});
+
+	$('.ldt_link_embed',base_node).click(function(e) {
+		e.preventDefault();
+		var link = $(e.target);
+		var json_url = link.attr("href");
+		var player_id = link.attr("id");
+		/*$.nyroModalSettings({
+		 	ajax: { data: ({ json_url:json_url, player_id:player_id }) }
+		  	});*/
+		   $.nyroModalManual({
+		         type: 'iframe',
+		         forceType: 'iframe',
+		         titleFromIframe: false,
+		   	height:662, 
+		  		width:650,
+		  		bgColor: 'rgb(239, 239, 239)',
+		  		padding: 5,
+		    url: '{% url franceculture.views.popup_embed %}?json_url='+escape(json_url)+'&player_id='+escape(player_id),
+		   });
+		   return false;
+	});
+
+
+	$('.imageline',base_node).each(function(i) {
+	    var tr = $(this);
+		tr.mouseover(function() {
+	    	$('.cellimgdiv',this).css('visibility', 'visible');
+		}); 
+		tr.mouseout(function() {
+	    	$('.cellimgdiv',this).css('visibility', 'hidden');
+		});
+	});
+	
+	$('.cellimgdiv img').qtip({ 
+		style: { 
+			'name': 'dark',
+			'filter':'alpha(opacity=70)',
+			'-moz-opacity':'0.7',
+			'-khtml-opacity': '0.7',
+			'opacity': '0.7',
+			'border': {
+				'width' : '0',
+				'color': '#505050',
+			}, 
+			'tip': true
+		} 
+	});
+	
+
+};
+
+
+function searchCallback(target, container_selector, url, timeout) {
+
+	timeout = typeof(timeout) != 'undefined' ? timeout : 0;
+	var target = $(target); 
+
+	if(target.attr('timer')) {
+		clearTimeout(target.attr('timer'));
+	}
+	
+	target.attr('timer',setTimeout(function() {
+		target.next(".searchajaxloader").show();
+		url = url.replace('__FILTER__',escape($(target).realVal()));
+		$(container_selector).load(url, null, function() {
+			target.next(".searchajaxloader").hide();
+			init_events($(container_selector));
+			target.removeAttr('timer');
+		});
+	},
+	300));
+};
+
+
+function init_events_contents(base_node) {
+
+	init_events_base(base_node);
+	
+	$('.content_link_create').nyroModal({
+	    type: 'iframe',
+	    forceType: 'iframe',
+	    height:500, 
+	    width:765,
+	    bgColor: 'rgb(239, 239, 239)',
+	    padding: 5,
+	    titleFromIframe: false,
+	    endRemove: function(elts, settings) {
+	    	searchCallback($("#searchcontentsinput"),"#contentslistcontainer",content_filter_url)
+		},
+	  	endShowContent: function(elts, settings) {
+		  	$('#nyroModalIframe', elts.content).load(function() {
+			  	var form_status = $(this).contents().find("#content_form_status").val(); 
+			  	if(form_status == 'saved') {
+			  		$.nyroModalRemove();
+			  	}
+		  	});
+		}
+	});
+
+}
+
+
+
+function searchFieldInit(input_list_init) {
+
+	$(".searchfieldinputbase").keydown(function (e) {
+	 	if(e.which == 27) {
+	 	 	$(e.target).blur();
+	 	 	$(e.target).next(".searchajaxloader").hide();
+	 	}
+	});
+	
+	 
+	$('.searchfieldinput').each(function(i) {
+	     var sbox = $(this);
+	     if(sbox.val() != '') {
+	    	 sbox.attr('defaultText', sbox.val());
+	     }
+	
+	     sbox.focus(function() {
+	         box = $(this);
+	         if(box.val() == box.attr('defaultText')) {
+	             box.val('');
+	             box.toggleClass("searchfieldinput");
+	         }
+	     });
+	
+	     sbox.blur(function() {
+	         var box = $(this);
+	         if(box.val() == '' && box.attr('defaultText')) {
+	             box.val(box.attr('defaultText'));
+	             box.toggleClass("searchfieldinput");
+	         }
+	     });
+	     
+	});
+
+	$.each(input_list_init, function(index, value) {
+		$(value['input_selector']).keyup(function (e) {
+			searchCallback(e.target, value['container_selector'], value['url']);
+		});
+	});
+
+}