- Add the 'themes' directory
[infrastructure.git] / themes / democratica / scripts / scripts.js
diff --git a/themes/democratica/scripts/scripts.js b/themes/democratica/scripts/scripts.js
new file mode 100644 (file)
index 0000000..581cd77
--- /dev/null
@@ -0,0 +1,233 @@
+//My top Javascripts for Designers 
+//See http://www.blakems.com/archives/000087.html for more info.
+
+//expandCollapse
+function expandCollapse() {
+       for (var i=0; i<expandCollapse.arguments.length; i++) {
+               var element = document.getElementById(expandCollapse.arguments[i]);
+               element.style.display = (element.style.display == "none") ? "block" : "none";
+       }
+}
+//Hide Timer
+var timerID;
+
+function ShowLayer(id) {
+  document.getElementById().style.display = "block"; 
+}
+
+function HideTimedLayer(id) {  
+       clearTimeout(timerID);
+       document.getElementById(id).style.display = "none";
+}
+
+function timedLayer(id) {
+  setTimeout("HideTimedLayer(\"" + id + "\")", 5000); //5000= 5 seconds
+}
+//error check
+function check_required(myForm) {
+       var requiredFields = myForm.required.value.split("|");
+       var errorString = '';
+       for (var i=0; i<requiredFields.length; i++) {
+               var parts = requiredFields[i].split(",");
+               var field = parts[0]; var title = parts[1];
+               for (var j=0; j<myForm.elements.length; j++) {
+                       var myElement = myForm.elements[j];
+                       var isNull = false;
+                       if (myElement.name == field && myElement.style.display != "none") {
+                               if (myElement.type == "select-one" || myElement.type == "select-multiple") {
+                                       if ((myElement.options[myElement.selectedIndex].value == null || myElement.options[myElement.selectedIndex].value == '') && errorString.indexOf(title) == -1) {
+                                               isNull = true;
+                                       }
+                               } else if ((myElement.value == null || myElement.value.search(/\w/) == -1) && errorString.indexOf(title) == -1) {
+                                       isNull = true;
+                               }
+                               
+                               if (isNull) {
+                                       errorString += title + ", ";
+                                       if (document.getElementById('label_'+myElement.name)) { document.getElementById('label_'+myElement.name).className="er"; }
+                                       myElement.className="erInput";
+                               } else {
+                                       if (document.getElementById('label_'+myElement.name)) {
+                                               document.getElementById('label_'+myElement.name).className="s1";
+                                       }
+                                       myElement.className="s1";
+                               }
+                       }
+               }
+       }
+       if (errorString != '') {
+               errorString = errorString.slice(0,errorString.length-2);
+               window.alert("Please fill in the following required fields before submitting this form:\n\n"+errorString)
+               return false;
+       }
+       else {
+               return true;
+       }
+}
+//Sons of Suckerfish http://www.htmldog.com/articles/suckerfish/dropdowns/
+sfHover = function() {
+       var sfEls = document.getElementById("nav").getElementsByTagName("LI");
+       for (var i=0; i<sfEls.length; i++) {
+               sfEls[i].onmouseover=function() {
+                       this.className+=" sfhover";
+               }
+               sfEls[i].onmouseout=function() {
+                       this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
+               }
+       }
+}
+if (window.attachEvent) window.attachEvent("onload", sfHover);
+
+//Style switcher http://www.alistapart.com/articles/alternate/
+function setActiveStyleSheet(title) {
+  var i, a, main;
+  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
+    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
+      a.disabled = true;
+      if(a.getAttribute("title") == title) a.disabled = false;
+    }
+  }
+}
+
+function getActiveStyleSheet() {
+  var i, a;
+  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
+    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
+  }
+  return null;
+}
+
+function getPreferredStyleSheet() {
+  var i, a;
+  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
+    if(a.getAttribute("rel").indexOf("style") != -1
+       && a.getAttribute("rel").indexOf("alt") == -1
+       && a.getAttribute("title")
+       ) return a.getAttribute("title");
+  }
+  return null;
+}
+
+function createCookie(name,value,days) {
+  if (days) {
+    var date = new Date();
+    date.setTime(date.getTime()+(days*24*60*60*1000));
+    var expires = "; expires="+date.toGMTString();
+  }
+  else expires = "";
+  document.cookie = name+"="+value+expires+"; path=/";
+}
+
+function readCookie(name) {
+  var nameEQ = name + "=";
+  var ca = document.cookie.split(';');
+  for(var i=0;i < ca.length;i++) {
+    var c = ca[i];
+    while (c.charAt(0)==' ') c = c.substring(1,c.length);
+    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
+  }
+  return null;
+}
+
+window.onload = function(e) {
+  var cookie = readCookie("style");
+  var title = cookie ? cookie : getPreferredStyleSheet();
+  setActiveStyleSheet(title);
+}
+
+window.onunload = function(e) {
+  var title = getActiveStyleSheet();
+  createCookie("style", title, 365);
+}
+
+var cookie = readCookie("style");
+var title = cookie ? cookie : getPreferredStyleSheet();
+setActiveStyleSheet(title);
+
+//Get element height & width 
+//See http://www.aspandjavascript.co.uk/javascript/javascript_api/get_element_width_height.asp
+//get height
+function getElementHeight(Elem) {
+       if (ns4) {
+               var elem = getObjNN4(document, Elem);
+               return elem.clip.height;
+       } else {
+               if(document.getElementById) {
+                       var elem = document.getElementById(Elem);
+               } else if (document.all){
+                       var elem = document.all[Elem];
+               }
+               if (op5) { 
+                       xPos = elem.style.pixelHeight;
+               } else {
+                       xPos = elem.offsetHeight;
+               }
+               return xPos;
+       } 
+}
+
+// get width
+function getElementWidth(Elem) {
+       if(document.getElementById) {
+               var elem = document.getElementById(Elem);
+       } else if (document.all){
+               var elem = document.all[Elem];
+       }
+       if (op5) {
+               xPos = elem.style.pixelWidth;
+       } else {
+               xPos = elem.offsetWidth;
+       }
+       return xPos;
+}
+// from http://www.quirksmode.org/dom/getstyles.html
+function getOff(el) {
+       if (!document.createElement)
+       {
+               alert('This script won\'t work in your browser.');
+               return;
+       }
+       x = document.getElementById(el);
+       return x.offsetWidth;
+}
+
+function changeOff(amount) {
+       var y = getOff();
+       x.style.width = y + amount;
+}
+
+function movePar(el,newEl) {
+       if (!document.createElement)
+       {
+               alert('This script won\'t work in your browser.');
+               return;
+       }
+       var x = document.getElementById(el);
+       document.getElementById(newEl).appendChild(x);
+}
+
+function getStyle(el,styleProp) {
+       var x = document.getElementById(el);
+       if (window.getComputedStyle)
+               var y = window.getComputedStyle(x,null).getPropertyValue(styleProp);
+       else if (x.currentStyle)
+               var y = eval('x.currentStyle.' + styleProp);
+       return y;
+}
+
+function prepare() {
+       if (!document.createElement)
+       {
+               alert('This script won\'t work in your browser.');
+               return;
+       }
+       var z = document.forms[0].prop.value;
+       if (z) var y = getStyle('test',z);
+       alert(z + ' = ' + y);
+}
+
+
+function fixTableWidths() {
+  
+  
+}
\ No newline at end of file