function _(text) 
{
    var rot13text_rotated = "";
    for (i = 1 ; i < (text.length + 1); i++) {
        k = text.charCodeAt(i-1);
        if (k >= 97 && k <= 109) {
            k = k + 13;
        } else
        if (k >= 110 && k <= 122) {
            k = k - 13;
        } else
        if (k >= 65 && k <= 77) {
            k = k + 13;
        } else
        if (k >= 78 && k <= 90) {
            k = k - 13;
        }
        rot13text_rotated = rot13text_rotated + String.fromCharCode(k);
    }
    return rot13text_rotated;
}


function WhichPlugin() {
	window.open('WhichPlugin.htm', 'whichplugin', 'dependent,scrollbars,WIDTH=400,HEIGHT=400');
}	

//
// Opens up the Usage page in a new window
//
function SampleUsage(sSample) {
	if (sSample == null || sSample == "") {
		sSample = "Simple";
	}
	window.open('Usage.htm#' + sSample, 'Usage', 'dependent,scrollbars,WIDTH=400,HEIGHT=400,resizable=yes');
}

//
// Opens up the Notes page in a new window
//
function SampleNotes(sSample) {
	if (sSample == null || sSample == "") {
		sSample = "Simple";
	}
	window.open('Notes.htm#' + sSample, 'Notes', 'dependent,scrollbars,WIDTH=500,HEIGHT=500,resizable=yes');
}

// name - name of the cookie
// value - value of the cookie
// [expires] - expiration date of the cookie (defaults to end of current session)
// [path] - path for which the cookie is valid (defaults to path of calling document)
// [domain] - domain for which the cookie is valid (defaults to domain of calling document)
// [secure] - Boolean value indicating if the cookie transmission requires a secure transmission
// * an argument defaults when it is assigned null as a placeholder
// * a null placeholder is not required for trailing omitted arguments

function setCookie(name, value) {
	setCookieIntern(name, value, null, null, null, null);
}

function setCookieIntern(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

// name - name of the desired cookie
// * return string containing value of specified cookie or null if cookie does not exist
function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

// name - name of the cookie
// [path] - path of the cookie (must be same as path used to create cookie)
// [domain] - domain of the cookie (must be same as domain used to create cookie)
// * path and domain default if assigned null or omitted if no explicit argument proceeds
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";
  }
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"
function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------
// Function roundOff() --  Round off floating point numbers
//                         to set level of precision
// ----------------------------------------------------------

function roundOff(value, precision) {

     precision = parseInt(precision, 10);
     precision = (!precision ? 2 : precision);
     return Math.round(value*Math.pow(10,precision))/Math.pow(10,precision);
}

//  --------------------------------------------------------------------------- 
//  getLatString() -- Get the LL text for a given coords Latitude 
//  --------------------------------------------------------------------------- 
 
function getLatString(latView) { 
 
    northSouth = "N"; 
    if (latView < 0) { 
        northSouth = "S"; 
        latView = Math.abs(latView); 
    } 
 
    latDegree = Math.floor(latView); 
    latFraction = latView - latDegree;
    latMinute = latFraction * 60; 
    latSeconds = Math.abs((latMinute - Math.floor(latMinute)) * 60); 
    latMinute = Math.floor(latMinute); 
    latSeconds = roundOff(latSeconds, 1); 
 
    return(latDegree + ":" + latMinute + ":" + latSeconds + northSouth); 
} 

//  --------------------------------------------------------------------------- 
//  getLonString() -- Get the LL text for a given coords Latitude 
//  --------------------------------------------------------------------------- 
 
function getLonString(longView) { 

    eastWest = "E"; 
    if (longView < 0) { 
        eastWest = "W"; 
        longView = Math.abs(longView); 
    } 
 
    longDegree = Math.floor(longView); 
    longFraction = longView - longDegree; 
    longMinute = longFraction * 60; 
    longSeconds = Math.abs((longMinute - Math.floor(longMinute)) * 60); 
    longMinute = Math.floor(longMinute); 
    longSeconds = roundOff(longSeconds, 1); 
 
    return(longDegree + ":" + longMinute + ":" + longSeconds + eastWest); 
} 