From b847bde6b78ea36e2dd749ddadad63c163a23c47 Mon Sep 17 00:00:00 2001
From: martin speleo <martin.speleo@gmail.com>
Date: Sun, 28 Jun 2009 19:33:24 +0100
Subject: [PATCH] [svn] Fixed small semantics issues stopping base.js working
 with IE. Made toggle eyecandy persistent (using a cookie) Made toggle
 eyecandy turn off footer menu images Only load footer menu images if the
 eyecandy is being used.

---
 expo/views_other.py     |  5 ++-
 media/js/base.js        | 91 ++++++++++++++++++++++++++++++++---------
 templates/base.html     | 21 +++++-----
 templates/eyecandy.html |  3 ++
 urls.py                 |  7 ++--
 5 files changed, 92 insertions(+), 35 deletions(-)
 create mode 100644 templates/eyecandy.html

diff --git a/expo/views_other.py b/expo/views_other.py
index f56f8bc..790c779 100644
--- a/expo/views_other.py
+++ b/expo/views_other.py
@@ -149,4 +149,7 @@ def downloadQMs(request):
 def ajax_test(request):
     post_text = request.POST['post_data']
     return HttpResponse("{'response_text': '"+post_text+" recieved.'}", 
-                                   mimetype="application/json")
\ No newline at end of file
+                                   mimetype="application/json")
+                                   
+def eyecandy(request):
+    return render_response(request,'eyecandy.html', {})
diff --git a/media/js/base.js b/media/js/base.js
index 62a72f4..91305a2 100644
--- a/media/js/base.js
+++ b/media/js/base.js
@@ -10,34 +10,40 @@ function setMaxHeight(group, target) {
 		thisHeight = $(this).height();
 		if(thisHeight > tallest) {
 			tallest = thisHeight;
-		}
+		};
 	});
 	target.height(tallest);
-}
+};
+
 
 
 /*This is the jquery stuff */
-$(document).ready(function() { 
+$(document).ready(function() {
 
 $('.searchable li').quicksearch({
   position: 'before',
   attached: 'ul.searchable',
   labelText: '',
   loaderText: '',
-  delay: 100
-})
+  delay: 100});
 
 $('table.searchable tr').quicksearch({
   position: 'before',
-  attached: 'table.searchable:first',
-});
+  attached: 'table.searchable:first'});
 
-$(".toggleEyeCandy").click(function () {
-		  $(".leftMargin,.rightMargin").toggle("fade");
-		  $(".toggleEyeCandy").toggle();
- });
+$(".killEyeCandy").click(function () {
+                                         killEyeCandy();
+                                         setCookie("eyeCandy", "False", 100);
+                                        }
+                           );
 
-$(".toggleMenu").click(function () {								 
+$(".showEyeCandy").click(function () {
+		                         showEyeCandy();
+		                         setCookie("eyeCandy", "True", 100);
+                                        }
+                           );
+
+$(".toggleMenu").click(function () {
 		  $("ul.dropdown li:not(.toggleMenu)").toggle();
 		  $(".toggleMenu").toggle();
  });
@@ -52,30 +58,50 @@ $("a.closeDiv").click(function () {
 
 /*$("#footerLinks").hover(
 		  function() {$(".footer").fadeIn("slow")},
-		  function() {$(".footer").fadeOut("slow")}		  
+		  function() {$(".footer").fadeOut("slow")}
 );*/
 
 function linkHover(hoverLink,image){
 
-$(hoverLink).hover(
+$(hoverLink).bind('mouseover',
 		  function() {
-			  $(image).fadeIn("slow");
+                          $(image).stop().css("opacity", "1.0").fadeIn("slow");
 /*			  $(hoverLink).css("background","gray");*/
-		  },
+		  });
+$(hoverLink).bind('mouseout',
 		  function() {
-			  $(image).fadeOut("slow");
+			  $(image).stop().fadeOut("slow");
 /*			  $(hoverLink).css("background","black");*/
-		  }		  
+		  }
 );
 
 
 
 };
 
+function showEyeCandy(){
+$("#eyeCandyFooterPopUps").load("/eyecandy");
+$(".leftMargin,.rightMargin").show();
+$(".showEyeCandy").hide();
+$(".killEyeCandy").show();
 linkHover("#cavesLink","#richardBanner");
 linkHover("#caversLink","#timeMachine");
 linkHover("#surveyBinderLink","#surveyHover");
-linkHover("#troggle","#timeMachine");
+linkHover("#troggle","#timeMachine");};
+
+function killEyeCandy(){
+$(".leftMargin,.rightMargin").hide();
+$(".showEyeCandy").show();
+$(".killEyeCandy").hide();
+$("#cavesLink").unbind('mouseover').unbind('mouseout');
+$("#caversLink").unbind('mouseover').unbind('mouseout');
+$("#surveyBinderLink").unbind('mouseover').unbind('mouseout');
+$("#troggle").unbind('mouseover').unbind('mouseout');};
+
+if (getCookie("eyeCandy") == "False")
+    {killEyeCandy();}
+else
+    {showEyeCandy();}
 
 /*dropdown (well, up actually) menu code from http://css-tricks.com/simple-jquery-dropdowns/*/
 $("ul.dropdown li").hover(
@@ -83,7 +109,7 @@ $("ul.dropdown li").hover(
 		$(this).addClass("hover");
 		$('ul:first',this).css('visibility','visible')
 	},
-	
+
 	function(){
         $(this).removeClass("hover");
         $('ul:first',this).css('visibility', 'hidden');		
@@ -94,3 +120,28 @@ $("ul.dropdown li").hover(
 	
 });
 
+
+/* Cookies */
+function setCookie(c_name,value,expiredays)
+{
+var exdate=new Date();
+exdate.setDate(exdate.getDate()+expiredays);
+document.cookie=c_name + "=" +escape(value) +
+((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) + ";path=/";
+}
+
+function getCookie(c_name)
+{
+if (document.cookie.length>0)
+  {
+  c_start=document.cookie.indexOf(c_name + "=");
+  if (c_start!=-1)
+    {
+    c_start=c_start + c_name.length+1;
+    c_end=document.cookie.indexOf(";",c_start);
+    if (c_end==-1) c_end=document.cookie.length;
+    return unescape(document.cookie.substring(c_start,c_end));
+    }
+  }
+return "";
+};
\ No newline at end of file
diff --git a/templates/base.html b/templates/base.html
index ff06ebf..6fc3e30 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -27,9 +27,9 @@ window.onload = contentHeight;
         {% endif %}.
     | <a href="{% url auth_logout %}">Log out</a> {% else %} <a href="{% url registration_register %}">Sign up</a> | <a href="{% url auth_login %}">Log in</a> {% endif %}
     {% endblock%}
-    | <a href="{{ settings.URL_ROOT }}">Home</a> | <a class="toggleEyeCandy">Kill Eyecandy</a><a class="toggleEyeCandy" style="display: none;">Show Eyecandy</a>
+    | <a href="{{ settings.URL_ROOT }}">Home</a> | <a class="killEyeCandy">Kill Eyecandy</a><a class="showEyeCandy" style="display: none;">Show Eyecandy</a>
     {% block editLink %}
-    
+
     {% endblock %}
    </div>
 </div>
@@ -42,19 +42,18 @@ window.onload = contentHeight;
  
  
   <div id="content" >
-  
+
   	{% block contentheader %}
     {% endblock %}
-    
+
     {% block content %}
     REPLACE : The content
     {% endblock %}
-    
-  </div>
 
-<img id="richardBanner" class="footer eyeCandy" src="{{ settings.MEDIA_URL }}expoBanner.gif"/>
-<img id="timeMachine" class="footer eyeCandy" src="{{ settings.MEDIA_URL }}timemachine.gif"/>
-<img id="surveyHover" class="footer eyeCandy" src="{{ settings.MEDIA_URL }}surveyHover.gif"/>
+  </div>
+<div id="eyeCandyFooterPopUps" class = "eyeCandy">
+
+</div>
 {% block margins %}
 <img class="leftMargin eyeCandy" src="{{ settings.MEDIA_URL }}eieshole.jpg">
 <img class="rightMargin eyeCandy" src="{{ settings.MEDIA_URL }}goesser.jpg">
@@ -90,9 +89,9 @@ window.onload = contentHeight;
                     <li><a id="cuccLink" href="{% url controlpanel %}">Import / export data</a></li>
                     <li><a id="expoWebsiteLink" href="{{ settings.URL_ROOT }}admin">Troggle administration pages</a></li>
                 </ul>
-        <li class="toggleMenu"><a href="#">hide menu</a></li> 
+        <li class="toggleMenu"><a href="#">hide menu</a></li>
 
 	</ul>
-        <div class="toggleMenu" style="display:none; position:fixed; bottom:0; right:130px"><a href="#">Show menu</a></li> 
+        <div class="toggleMenu" style="display:none; position:fixed; bottom:0; right:130px"><a href="#">Show menu</a></li>
 </body>
 </html>
diff --git a/templates/eyecandy.html b/templates/eyecandy.html
new file mode 100644
index 0000000..a1b9b3f
--- /dev/null
+++ b/templates/eyecandy.html
@@ -0,0 +1,3 @@
+<img id="richardBanner" class="footer" src="{{ settings.MEDIA_URL }}expoBanner.gif" style="display: none;"/>
+<img id="timeMachine" class="footer" src="{{ settings.MEDIA_URL }}timemachine.gif" style="display: none;"/>
+<img id="surveyHover" class="footer" src="{{ settings.MEDIA_URL }}surveyHover.gif" style="display: none;"/>
\ No newline at end of file
diff --git a/urls.py b/urls.py
index d888e9d..5f0822a 100644
--- a/urls.py
+++ b/urls.py
@@ -65,8 +65,9 @@ urlpatterns = patterns('',
     url(r'^logbook(?P<year>\d\d\d\d)\.(?P<extension>.*)/?$',views_other.downloadLogbook),
     url(r'^logbook/?$',views_other.downloadLogbook, name="downloadlogbook"),
     url(r'^cave/(?P<cave_id>[^/]+)/qm\.csv/?$', views_other.downloadQMs, name="downloadqms"),        
-    (r'^downloadqms$', views_other.downloadQMs),      
-    url(r'^cave/(?P<cave_id>[^/]+)(?P<subcave>/.*)/?$', subcave, name="subcave"),    
+    (r'^downloadqms$', views_other.downloadQMs),
+    url(r'^cave/(?P<cave_id>[^/]+)(?P<subcave>/.*)/?$', subcave, name="subcave"),
+    url(r'^eyecandy$', views_other.eyecandy),
 
     (r'^admin/doc/?', include('django.contrib.admindocs.urls')),
     (r'^admin/(.*)/?', admin.site.root),
@@ -74,7 +75,7 @@ urlpatterns = patterns('',
 
     (r'^accounts/', include('registration.urls')),
     (r'^profiles/', include('profiles.urls')),
-    
+
 #   (r'^personform/(.*)$', personForm),
 
     (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',