/** \file html\javascript\java.js
* \brief ZKL webinterface general javascript functions.
* \author Rob Schalken, Core|Vision
* \version 1.0
* \date 17-10-2008
*
* This file contains the general framework javascript functions.
*/
/**
* Return element ID (Browser independend)
*
* Inputs:
* - aID: Element ID
*
* Return: ID
*/
function getElement(id) {
if (document.getElementById(id) || (!document.getElementById(id) && document.getElementsByName(id).length==0)) {
// IF An ID attribute is assigned
// OR No ID attribute is assigned but using IE and Opera
// (which will find the NAME attribute value using getElementById)
// OR No element has this ID or NAME attribute value
// (used internally by the script)
// THEN Return the required element.
return document.getElementById(id);
}
else {
if (document.getElementsByName(id).length==1) {
// IF No ID attribute is assigned
// AND Using a standards-based browser
// AND Only one element has the NAME attribute set to the value
// THEN Return the required element (using the NAME attribute value).
return document.getElementsByName(id)[0];
}
else {
if (document.getElementsByName(id).length>1) {
// IF No ID attribute is assigned
// AND using a standards-based browser
// AND more than one element has the NAME attribute set to the value
// THEN alert developer to fix the fault.
return (document.getElementsByName(id)[0]);
}
else return null;
}
}
}
/**
* Return elements by class name
*
* Inputs:
* - oElm: Element name
* - strTagName: Tag name
* - oClassNames: Class name
*
* Return: Array containing elements
*/
function getElementsByClassName(oElm, strTagName, oClassNames) {
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
var arrRegExpClassNames = new Array();
if(typeof oClassNames == "object"){
for(var i=0; i -1 ){
var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
var aQueryString = strQueryString.split("&");
for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
var aParam = aQueryString[iParam].split("=");
strReturn = aParam[1];
break;
}
}
}
return unescape(strReturn);
}
/**
* Open window
*
*/
function windowOpener(url, name, args)
{
if (typeof(popupWin) != "object"){
popupWin = window.open(url,name,args);
}
else {
if (!popupWin.closed){
popupWin.location.href = url;
}
else {
popupWin = window.open(url, name,args);
}
}
popupWin.focus();
}
/**
* screen width?
*
*/
function ScreenWidth() {
var myWidth = 0;
if( typeof( window.innerWidth ) == 'number' ) {
//Non-IE
myWidth = window.innerWidth;
} else if( document.documentElement && document.documentElement.clientWidth ) {
//IE 6+ in 'standards compliant mode'
myWidth = document.documentElement.clientWidth;
} else if( document.body && document.body.clientWidth ) {
//IE 4 compatible
myWidth = document.body.clientWidth;
}
return myWidth;
}
/**
* screen height?
*
*/
function ScreenHeight() {
var myHeight = 0;
if( typeof( window.innerHeight ) == 'number' ) {
//Non-IE
myHeight = window.innerHeight;
} else if( document.documentElement && document.documentElement.clientHeight ) {
//IE 6+ in 'standards compliant mode'
myHeight = document.documentElement.clientHeight;
} else if( document.body && document.body.clientHeight ) {
//IE 4 compatible
myHeight = document.body.clientHeight;
}
return myHeight;
}
/**
* Redirect parent
*
*/
function goParent(url)
{
parent.location.href = url;
}
/**
* Get current datetime
*
*/
function getDateTime()
{
// Get date object
var d = new Date();
d_month = d.getMonth();
if (d_month < 10) {
var d_month = '0' + d_month;
}
d_date = d.getDate();
if (d_date < 10) {
var d_date = '0' + d_date;
}
d_hour = d.getHours();
if (d_hour < 10) {
var d_hour = '0' + d_hour;
}
d_min = d.getMinutes();
if (d_min < 10) {
var d_min = '0' + d_min;
}
d_sec = d.getSeconds();
if (d_sec < 10) {
var d_sec = '0' + d_sec
}
return d.getFullYear() + '-' + d_month + '-' + d_date + ' ' + d_hour + ':' + d_min + ':' + d_sec;
}
/**
* Get current time
*
*/
function getTime()
{
// Get date object
var d = new Date();
d_hour = d.getHours();
if (d_hour < 10) {
var d_hour = '0' + d_hour;
}
d_min = d.getMinutes();
if (d_min < 10) {
var d_min = '0' + d_min;
}
d_sec = d.getSeconds();
if (d_sec < 10) {
var d_sec = '0' + d_sec
}
return d_hour + ':' + d_min + ':' + d_sec;
}
/**
* Get current date
*
*/
function getDate()
{
// Get date object
var d = new Date();
d_month = d.getMonth();
if (d_month < 10) {
var d_month = '0' + d_month;
}
d_date = d.getDate();
if (d_date < 10) {
var d_date = '0' + d_date;
}
return d.getFullYear() + '-' + d_month + '-' + d_date;
}
/*
* Sort array associative
*/
function sortAssoc(aInput){
var aTemp = [];
for (var sKey in aInput)
aTemp.push([sKey, aInput[sKey]]);
aTemp.sort(function () {return arguments[0][1] < arguments[1][1]});
var aOutput = [];
for (var nIndex = aTemp.length-1; nIndex >=0; nIndex--)
aOutput[aTemp[nIndex][0]] = aTemp[nIndex][1];
return aOutput;
}
/*
* Show elements by Class name
*/
function showClass(className) {
var x = getElementsByClassName(document, '*', className);
for (i = 0; i < x.length; i++) {
x[i].style.visibility = "visible";
}
}
/*
* Hide elements by Class name
*/
function hideClass(className) {
var x = getElementsByClassName(document, '*', className);
for (i = 0; i < x.length; i++) {
x[i].style.visibility = "hidden";
}
}
/*
* Active window height
*/
function ActiveWindowHeight() {
if (parseInt(navigator.appVersion) > 3) {
if (navigator.appName=="Netscape") {
return window.innerHeight - 16;
}
if (navigator.appName.indexOf("Microsoft") != -1) {
return document.body.offsetHeight - 20;
}
}
}
/*
* Active window window
*/
function ActiveWindowWidth() {
if (parseInt(navigator.appVersion) > 3) {
if (navigator.appName=="Netscape") {
return window.innerWidth - 16;
}
if (navigator.appName.indexOf("Microsoft") != -1) {
return document.body.offsetWidth - 20;
}
}
}
/*
* Print layout (hide skin items)
*/
function PrintLayout() {
// Store old values to restore
var header_height = getElement('header').style.height;
var led_height = getElement('greenled').style.height;
var body_background = document.body.style.background;
getElement('content_table_col1').style.visibility = 'hidden';
getElement('header').style.visibility = 'hidden';
getElement('header').style.height = '150px';
getElement('svg_logo').style.visibility = 'visible';
getElement('footer_container').style.visibility = 'hidden';
getElement('greenled').style.height = '0px';
getElement('redled').style.height = '0px';
document.body.style.background = '#ffffff';
// Show print popup
window.print();
getElement('content_table_col1').style.visibility = 'visible';
getElement('header').style.visibility = 'visible';
getElement('header').style.height = header_height;
getElement('svg_logo').style.visibility = 'visible';
getElement('footer_container').style.visibility = 'visible';
getElement('greenled').style.height = led_height;
getElement('redled').style.height = led_height;
document.body.style.background = body_background;
}