blob: 298a799d0a62a5ce0b690458269390a9d181e65c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. The ASF licenses this file to You
* under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License. For additional information regarding
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
/* This function is used to set cookies */
function setCookie(name,value,expires,path,domain,secure) {
document.cookie = name + "=" + escape (value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}
/* This function is used to get cookies */
function getCookie(name) {
var prefix = name + "=";
var start = document.cookie.indexOf(prefix);
if (start===-1) {
return null;
}
var end = document.cookie.indexOf(";", start+prefix.length);
if (end===-1) {
end=document.cookie.length;
}
var value=document.cookie.substring(start+prefix.length, end);
return unescape(value);
}
/* This function is used to delete cookies */
function deleteCookie(name,path,domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
function rememberUser(theForm) {
var expires = new Date();
expires.setTime(expires.getTime() + 24 * 365 * 60 * 60 * 1000); // sets it for approx 365 days.
// sets it for entire domain, so freeroller will remember for all users
setCookie("commentAuthor",theForm.name.value,expires,"/");
setCookie("commentEmail",theForm.email.value,expires,"/");
setCookie("commentUrl",theForm.url.value,expires,"/");
}
function forgetUser(theForm) {
deleteCookie("commentAuthor","/");
deleteCookie("commentEmail","/");
deleteCookie("commentUrl","/");
}
/* This function is used to show/hide elements with a display:none style attribute */
function toggle(targetId) {
if (document.getElementById) {
target = document.getElementById(targetId);
if (target.style.display === "none") {
target.style.display = "";
} else {
target.style.display = "none";
}
}
}
/* The toggleFolder and togglePlusMinus functions are for expanding/contracting folders */
function toggleFolder(targetId) {
var expanded;
if (document.getElementById) {
target = document.getElementById(targetId);
if (target.style.display === "none") {
target.style.display = "";
expanded = true;
} else {
target.style.display = "none";
expanded = false;
}
togglePlusMinus("i" + targetId);
// set a cookie to remember this preference
var expires = new Date();
expires.setTime(expires.getTime() + 24 * 365 * 60 * 60 * 1000); // sets it for approx 365 days.
setCookie("rfolder-"+targetId,expanded,expires,"/");
}
}
function togglePlusMinus(targetId) {
if (document.getElementById) {
target = document.getElementById(targetId);
if (target.innerHTML === "+") {
target.innerHTML = "-";
} else {
target.innerHTML = "+";
}
}
}
/* This function is to set folders to expand/contract based on a user's preference */
function folderPreference(folderId) {
var folderCookie = getCookie("rfolder-"+folderId);
if (folderCookie != null) { // we have user's last setting
var folder = document.getElementById(folderId);
var plusMinus = document.getElementById("i"+folderId);
if (folderCookie === "true") { // show
folder.style.display = "";
plusMinus.innerHTML = "-";
} else { // hide
folder.style.display = "none";
plusMinus.innerHTML = "+";
}
}
}
function toggleNextRow(e) {
if (e.type === "checkbox") {
var checked = e.checked;
} else if (e.type === "radio") {
var v = e.value;
var checked = (v === "1" || v === "y" || v === "true");
}
// var nextRow = e.parentNode.parentNode.nextSibling;
// the above doesn't work on Mozilla since it treats white space as nodes
var thisRow = e.parentNode.parentNode;
var tableBody = thisRow.parentNode;
var nextRow = tableBody.getElementsByTagName("tr")[thisRow.rowIndex+1];
if (checked === true) {
nextRow.style.display = "";
} else {
nextRow.style.display = "none";
}
}
function toggleControl(toggleId, targetId) {
var expanded;
if (document.getElementById) {
target = document.getElementById(targetId);
toggle = document.getElementById(toggleId);
if (target.style.display === "none") {
target.style.display = "";
expanded = true;
} else {
target.style.display = "none";
expanded = false;
}
togglePlusMinus("i" + targetId);
// set a cookie to remember this preference
var expires = new Date();
expires.setTime(expires.getTime() + 24 * 365 * 60 * 60 * 1000); // sets it for approx 365 days.
setCookie("control_"+targetId,expanded,expires,"/");
}
}
function isblank(s) {
for (var i=0; i<s.length; s++) {
var c = s.charAt(i);
if ((c!==' ') && (c!=='\n') && (c!=='')) return false;
}
return true;
}
// Show the document's title on the status bar
window.defaultStatus=document.title;
// Toggle check boxes
function toggleFunctionAll(toggle) {
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length ; i++) {
if(inputs[i].name !== "control" && inputs[i].type === 'checkbox' && inputs[i].disabled === false ) {
if (inputs[i].checked === true){
inputs[i].checked = !inputs[i].checked;
} else{
inputs[i].checked = toggle;
}
}
}
}
function toggleFunction(toggle,name) {;
var inputs = document.getElementsByName(name);
for(var i = 0; i < inputs.length ; i++) {
if(inputs[i].type === 'checkbox' && inputs[i].disabled === false) {
inputs[i].checked = toggle;
}
}
}
function isValidUrl(url) {
return /^(http|https|ftp):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/i.test(url);
}
function validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
$(document).ready(function () {
jQuery("form.validate-form").validate();
// Added method to check valid email address and add a custom error message
jQuery.validator.addMethod(
"regex",
function(value, element, regexp) {
if (regexp && regexp.constructor != RegExp) {
regexp = new RegExp(regexp);
} else if (regexp.global) {
regexp.lastIndex = 0;
}
return this.optional(element) || regexp.test(value);
}
);
// Applied email rules to field with class name validate-email
jQuery( ".validate-email" ).rules( "add", {
minlength: 3,
maxlength: 255,
email: true,
regex: /^\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i
});
});