﻿function $(i){return document.getElementById(i)}
function confirmSubmit(msg)
{
var agree=confirm(msg);
if (agree)
	return true ;
else
	return false ;
}
function removeClass(element, className) {
  element.className = element.className.replace(className, "");
}

//attach event listener of type to element el
function attachElEvent(el, type, listener) {
  if (el.addEventListener){//DOM
    el.addEventListener(type, listener, false); 
  } else if (el.attachEvent){//IE
    el.attachEvent("on" + type, listener);
  }
}
function removeEvent( el, type, listener ) {
  if ( el.detachEvent ) {
    el.detachEvent( 'on'+type, listener );
    el[type+listener] = null;
  } else
    el.removeEventListener( type, listener, false );
}
function getPageOffsetLeft(el) {
  var x = el.offsetLeft;
  if (el.offsetParent != null) { x += getPageOffsetLeft(el.offsetParent); }
  return x;
}

function getPageOffsetTop(el) {
  var y = el.offsetTop;
  if (el.offsetParent != null) { y += getPageOffsetTop(el.offsetParent); }
  return y;
}

//create Anchor element
function createAnchor(href, classname, onclickevent, text) {
  var a = document.createElement("a");
  a.setAttribute("href",href);
  if (classname) {
    a.setAttribute("class",classname);//DOM
    a.setAttribute("className",classname);//IE
  }
  if (onclickevent) {
    a.onclick = onclickevent;
  }
  a.appendChild(document.createTextNode(text));
  return a;
}

//create Table Header element
function createTh(scope, classname, text) {
  var th = document.createElement("th");
  th.setAttribute("scope",scope);
  if (classname) {
    th.setAttribute("class",classname);//DOM
    th.setAttribute("className",classname);//IE
  }
  if (text) {
    th.innerHTML = text;
  }
  return th;
}

//create Table Data element
function createTd(colspan,classname,text) {
  var td = document.createElement("td");
  if (colspan) {
    td.setAttribute("colSpan",colspan);
  }
  if (classname) {
    td.setAttribute("class",classname);//DOM
    td.setAttribute("className",classname);//IE
  }
  if (text) {
    td.innerHTML = text;
  }
  return td;
}
function addZero(n) { //adds a leading zero to single figure numbers
  return (n < 10) ? "0"+String(n) : n;
}
var days = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var shortmonths = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

//format optional JS date d
function formatDate(to,d) {
  d = new Date(d);
  switch(to) {
    case "short":
      return (addZero(d.getDate())+"/"+addZero((d.getMonth()+1))+"/"+d.getFullYear());
      break;
    case "shortmonth":
      return addZero(d.getDate())+ " " +shortmonths[d.getMonth()]+ " " + d.getFullYear();
      break;
    case "long":
      return addZero(d.getDate()+" "+months[d.getMonth()]+" "+d.getFullYear());
      break;
    case "day":
      return days[d.getDay()]
      break;
    case "time":
      return (d.getHours()>12?d.getHours()-12:d.getHours())+":"+addZero(d.getMinutes())+":"+addZero(d.getSeconds())+(d.getHours()>12?" PM":" AM");
      break;
    case "time24":
      return addZero(d.getHours())+":"+addZero(d.getMinutes())+":"+addZero(d.getSeconds());
      break;
    case "sql":
      return d.getDate()+"-"+months[d.getMonth()].substr(0,3)+"-"+d.getYear();
      break;
  }
}
//converts dd/mm/yyyy or dd-mm-yyyy to a Javascript date object

function toJsDate(d) {
  if (d) {
    ar = String(d).split(/\/|-/);
    var MonthNumber = 0;
    if (isNaN(ar[1])) {
        for (var i =0; i < 12; i++) {
            if (ar[1] == shortmonths[i]) {
                MonthNumber = i+1;
            }
        }
    } else {
        MonthNumber = ar[1];
    }
    d = new Date(ar[2],MonthNumber-1,ar[0]);
  } else { d = new Date(); }
  return d;
}

function formatNumber(num, dec) {
    var numString = num.toString();
    if (numString.indexOf(".") == -1) {
        return numString;
    } else {
        return numString.substring(0,numString.indexOf(".") + dec + 1);
    }
}
function SetCell(x) {
    x.style.background="#fdfe95";
    x.style.border="solid 1px #7f9db9";
    x.style.padding="0.1em 0.2em 0.1em 0.2em";
}
function resetCell(x) {
    x.style.background="white";
    x.style.border="solid 1px #7f9db9";
    x.style.padding="0.1em 0.2em 0.1em 0.2em";
}
function getValue(id) {
    if (isNaN(document.getElementById(id).value) || document.getElementById(id).value == '') {
        return 0
    } else {
        return parseFloat(document.getElementById(id).value)
    }
}
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) 	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	{
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	}	
	return (((sign)?'':'-') +  num + '.' + cents);
}
// Changes the cursor to an hourglass
function cursor_wait() {
document.body.style.cursor = 'wait';
}

// Returns the cursor to the default pointer
function cursor_clear() {
document.body.style.cursor = 'default';
}
function showSelects(){
   var elements = document.getElementsByTagName("select");
   for (i=0;i< elements.length;i++){
      elements[i].style.visibility='visible';
   }
}

function hideSelects(){
   var elements = document.getElementsByTagName("select");
   for (i=0;i< elements.length;i++){
   elements[i].style.visibility='hidden';
   }
}
function enableSelects(){
	toValidate = false;
   var elements = document.getElementsByTagName("select");
   for (i=0;i< elements.length;i++){
	elements[i].disabled=false;
   }
}
// ----------------------------------------------------------------------------
// frmRequest_KeyDown
//
// Description: event handler for request form key down event
//    translates returns on option buttons to a tab
//    this works only for IE, the keypress event is used for other browsers
//
// Arguments : 
//    e - the event object
//
// Dependencies : none
//
// History :
// 2006.07.13 - WSR : adapted to this project
//
function frmRequest_KeyDown( e )
   {

   var numCharCode;
   var elTarget;
   var strType;

   // get event if not passed
   if (!e) var e = window.event;

   // get character code of key pressed
   if (e.keyCode) numCharCode = e.keyCode;
   else if (e.which) numCharCode = e.which;

   // get target
   if (e.target) elTarget = e.target;
   else if (e.srcElement) elTarget = e.srcElement;
                                              
   // if form input field
   if ( elTarget.tagName.toLowerCase() == 'input' )
      {

      // get type
      strType = elTarget.getAttribute('type').toLowerCase();

      // based on type
      switch ( strType )
         {
         case 'checkbox' :
         case 'radio' :
         case 'text' :

            // if this is a return - change to tab
            if ( numCharCode == 13 )
               {
               if (e.keyCode) e.keyCode = 9;
               else if (e.which) e.which = 9;
               }

            break;
            
         }

      }

   // process default action
   return true;

   }
//
// frmRequest_KeyDown
// ----------------------------------------------------------------------------


// ----------------------------------------------------------------------------
// frmRequest_KeyPress
//
// Description: event handler for request form key press event
//    cancels returns on form elements that would prematurely submit the form
//
// Arguments : 
//    e - the event object
//
// Dependencies : none
//
// History :
// 2006.07.13 - WSR : adapted to this project
//
function frmRequest_KeyPress( e )
   {

   var numCharCode;
   var elTarget;
   var strType;

   // get event if not passed
   if (!e) var e = window.event;

   // get character code of key pressed
   if (e.keyCode) numCharCode = e.keyCode;
   else if (e.which) numCharCode = e.which;

   // get target
   if (e.target) elTarget = e.target;
   else if (e.srcElement) elTarget = e.srcElement;
                                              
   // if form input field
   if ( elTarget.tagName.toLowerCase() == 'input' )
      {

      // get type
      strType = elTarget.getAttribute('type').toLowerCase();

      // based on type
      switch ( strType )
         {
         case 'checkbox' :
         case 'radio' :
         case 'text' :

            // if this is a return
            if ( numCharCode == 13 )
               {
               // cancel event to prevent form submission
               return false;
               }

            break;
            
         }

      }

   // process default action
   return true;

   }
//
// frmRequest_KeyPress
// ------------
