


/**
 *    util.js         2006-06-27
 *
 *
 *    Copyright:      Frontlinesystem
 *                    All rights reserved.
 *
 *    Version:        1.5.1
 */
 

var LANG_STR;
var UPLOADED_IMAGE_PATH, STATIC_IMAGE_PATH, TRANSPARENT_GIF_URL, SESSION_PATH;


function setPaths(uploadedPath, staticPath, sessionPath) {
  UPLOADED_IMAGE_PATH = uploadedPath;
  STATIC_IMAGE_PATH = staticPath;
  SESSION_PATH = sessionPath;
  TRANSPARENT_GIF_URL = STATIC_IMAGE_PATH + "transp.gif"
} 


function setImagePaths(uploadedPath, staticPath) {
  UPLOADED_IMAGE_PATH = uploadedPath;
  STATIC_IMAGE_PATH = staticPath;
  TRANSPARENT_GIF_URL = STATIC_IMAGE_PATH + "transp.gif"
} 
function setLanguageStrings(str) {
  LANG_STR = str;
} 
 
 

function getRandomInt() {
  return parseInt(Math.random() * 10000000);
}


function removeItem(arr, itemToRemove) {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == itemToRemove) {
      arr.splice(i, 1);
    }
  }
}




function getInt(q) {
  return (isNaN(parseInt(q))) ? 0 : parseInt(q);
}
function getFloat(q) {
  return (isNaN(parseFloat(q))) ? 0 : parseFloat(q);
}



function func(functionName, param1, param2) {
  if (param2) {
    return new Function(functionName + "(\"" + param1 + "\", \"" + param2 + "\")");
  } else {
    return new Function(functionName + "(\"" + param1 + "\")");
  }
}


function apply(arr, func, param) {
  var newArr = new Array();
  for (var i = 0; i < arr.length; i++) {
    newArr.push(func(arr[i], param));
  }
  return newArr;
}

function extraValueFunction(func, extraValue) {
  return function(value) {
    return func(value, extraValue);
  }
}

function callWithEach(functionRef, arr, extraParam1) {
  return apply(arr, extraValueFunction(functionRef, extraParam1));
}




function isMember(value, arr) {
  if (!arr) {
    return false;
  }
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == value) {
      return true;
    }
  }
  return false;
}




function formatAsMoney(mnt) {
    mnt -= 0;
    mnt = (Math.round(mnt * 100)) / 100;
    return (mnt == Math.floor(mnt)) ? mnt + '.00' : ( (mnt*10 == Math.floor(mnt*10)) ? mnt + '0' : mnt);
}





/* DOM functions */


function getScrollComp() {
  var scrollComp;
  if (self.pageYOffset) {
	scrollComp = self.pageYOffset;
  } else if (document.documentElement && document.documentElement.scrollTop) {
	scrollComp = document.documentElement.scrollTop;
  } else if (document.body) {
	scrollComp = document.body.scrollTop;
  }
  return scrollComp;
}

function createVAlignImg(size) {
  var elem = createImg(TRANSPARENT_GIF_URL);
  elem.style.height = "100%";
  elem.style.width = "0";
  elem.style.verticalAlign = "middle";
  return elem;
}

function createTranspImg() {
  var elem = createImg(TRANSPARENT_GIF_URL);
  return elem;
}

function createBr(clear) { return createBR(clear); }
function createBR(clear) {
  var elem = createElem("br");
  if (clear) elem.clear = "all";
  return elem;
}

function appElem(parent, name, id, className) {
  var elem = document.createElement(name);
  elem.id = id;
  elem.className = className;
  parent.appendChild(elem);
  return elem;
}

function appendChildren(elem) {
  var args = appendChildren.arguments;
  for (var i = 1; i < args.length; i++) {
    elem.appendChild(args[i]);
  }
  return elem;
}

function appendChildrenChain() {
  var args = appendChildrenChain.arguments;
  for (var i = 0; i < args.length - 1; i++) {
    args[i].appendChild(args[i + 1]);
  }
}


function appText(parent, text) { appTxt(parent, text) }
function appTxt(parent, txt) {
  //child = document.createTextNode(child);
  var txtNode = document.createTextNode(txt);
  parent.appendChild(txtNode);
  return txtNode;
}

function createImage(src, alt, id, className) { return createImg(src, alt, id, className) }
function createImg(src, alt, id, className) {
  var elem = document.createElement("img");
  elem.src = src;
  if (alt == undefined) alt = "";
  elem.alt = alt;
  elem.title = alt;
  if(id) elem.id = id;
  if(className) elem.className = className;
  return elem;
}


function createElem(name, id, className) {
  var elem = document.createElement(name);
  if (id) elem.id = id;
  if (className) elem.className = className;
  return elem;
}
function createTxtElem(name, html, id, className) {
  return createTextElem(name, html, id, className) }
function createTextElem(name, html, id, className) {
  var elem = createElem(name, id, className);
  elem.innerHTML = html;
  return elem;
} 



function createInput(type, name, value, id, className) {
  var elem = document.createElement("input");
  elem.type = type;
  elem.name = name;
  elem.autoComplete = "off";
  elem.autocomplete = "off";
  if (value) elem.value = value;
  if (id) elem.id = id;
  if (className) elem.className = className;
  return elem;
}

function createSpan(id, className) { 
  return createElem("span", id, className); 
}
function createDiv(id, className) { 
  return createElem("div", id, className);
}

function createTd(id, className) { 
  var td = createElem("td", id, className);
  td.setAttribute("valign", "top");
  td.setAttribute("align", "left");
  return td;
}


function createTR(id, className) { return createTr(id, className) } 
function createTr(id, className) { 
  return createElem("tr", id, className);
}


function createTBody(id, className) { return createTbody(id, className) }
function createTbody(id, className) { 
  return createElem("tbody", id, className);
}



function createTxt(txt) { return createText(txt) }
function createText(txt) {
  return document.createTextNode(txt);
}

function createTable(id, className) { return createTbl(id, className) }
function createTbl(id, className) {
  var tbl = createElem("table", id, className);
  tbl.cellPadding = "0";
  tbl.cellSpacing = "0";
  tbl.width = "100%";
  return tbl;
}

function removeNode(node) {
  if (node == null || node == undefined) 
    return;
  if (node.parentNode) {
    node.parentNode.removeChild(node);
  }
}

 
function getId(id) {
  return document.getElementById(id);
}


function getNames(name) {
  return document.getElementsByName(name);
}


function displayBlock(block) {
  var block = getId(block);
  block.style.display = (block.style.display == "none") ? "block" : "none";
}


function preloadImage(src) {
  var img = new Image();
  img.src = src;
}

function minInArray(arr, valueFunction) {
  var minIndex = null;
  var minValue = null;
  var value;
  for (var i = 0; i < arr.length; i++) {
    value = valueFunction(arr[i]);
    if (minIndex == null || value < minValue) {
      minIndex = i;
      minValue = value;
    }
  }
  return (minIndex == null) ? null : arr[minIndex];
}


function setHoverClassMouseEvents(elem) {
  elem.onmouseover  = function() { this.className += "_hover" };
  elem.onmouseout   = function() { 
    if (this.className.indexOf("_hover") != -1) {
      this.className = this.className.substring(0, this.className.indexOf("_hover"));
    }
  };
}

function isValidEmail(email) {
  emailRe = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/
  return emailRe.test(email);
}