//Dimensional Concepts
//http://www.dci.us
addEvent(window, "load", function() {
  if(document.getElementById && document.createTextNode){
    var pageInputs=document.getElementsByTagName("input");
    for(var q=0;q<pageInputs.length;q++) {
      var thisInput=pageInputs[q]
      if(thisInput.type=="text"){
//        thisInput.onblur=function(e){this.value=tCase(this.value,e)}
      }
      if(String(thisInput.className).toLowerCase().indexOf("curbox")>=0){
        thisInput.onblur=function(){this.value=money(this.value)}
      }
    }

    var allTables = document.getElementsByTagName("table");
    var alterCols = new Array();
    for(var whichTable = 0;whichTable<allTables.length;whichTable++) {
      if(allTables[whichTable].className.indexOf("ruler")>=0){//Find all tables built by reportBuilder
        var colEl = allTables[whichTable].getElementsByTagName("col")
        for(var whichCol = 0;whichCol<colEl.length;whichCol++) {//Loop through the columns and see if there are any classed for numbers or cash.
          if(colEl[whichCol].className.indexOf("rl")>=0 || colEl[whichCol].className.indexOf("cur")>=0 || colEl[whichCol].className.indexOf("int")>=0 || colEl[whichCol].className.indexOf("dat")>=0 || colEl[whichCol].className.indexOf("num")>=0){
            //Store the col number and alignment type
            alterCols[(alterCols.length)] = whichCol+"~"+(colEl[whichCol].className.indexOf("dat")>=0?"center":"right")
          }
        }
      
        var trEl = allTables[whichTable].getElementsByTagName("tr") //grab the rows of the table
        for(var whichTr = 0;whichTr<trEl.length;whichTr++) {
          var tdEl = trEl[whichTr].getElementsByTagName("td")       
          if(tdEl.length==colEl.length){ //only work with full rows, nothing with a colspan gets through.
            for(var z = 0;z<alterCols.length;z++) {
              var rowDetail = alterCols[z].split("~")
              tdEl[rowDetail[0]].setAttribute("align",rowDetail[1]);
            }
          }
        }
      }
    }
  }
});

//pageBreaks
addEvent(window, "load", function() {
  var divSet = document.getElementsByTagName("div")
  var resultSet = [];
  for(var i=0;i<divSet.length;i++) {
    if(divSet[i].id.indexOf("reportResults")>=0){
      resultSet.push(divSet[i])
    }
  }
  if(resultSet.length>0){
    for(var i=0;i<resultSet.length;i++) {
      var results = resultSet[i]
      var sigBlock = document.getElementById("sigBlock");
      var sigHeight = sigBlock.offsetHeight;
      var maxPageHeight = 775;
      if(results){
        var partialPage = (results.offsetHeight+sigHeight)%maxPageHeight;
        if(partialPage < sigHeight){
          results.parentNode.style.pageBreakAfter = "always";
        }
        else {
          var sandbag = document.createElement("div")
            sandbag.className = "sandbag"
            sandbag.style.height = (maxPageHeight-partialPage)+"px"
            results.parentNode.insertBefore(sandbag,sigBlock)
        }
      }
    }
  }
});
//Form Autosubmiter
addEvent(window,"load",function(){
  if(document.getElementById && document.createTextNode){
    var myForm = document.getElementById("loadMe")
    if(myForm) setTimeout ("submitMe('loadMe')",2000)
  }
});
function submitMe(x){
  document.getElementById(x).submit()
}
function reportSubmit(x) { 
  var reportSender = document.getElementById("reportSender");
  var newReqVendor = document.getElementById("changeReqVendor");
  if(newReqVendor){
    var myReq = document.getElementById("mReq");
    var myVen = document.getElementById("mVendor");
//ID's cannot be only numbers, this removes the 'n' that reportBuilder() places in front of the value
    var marker = x.substr(1,x.length)
    if(marker>0) myVen.value=marker;
    newReqVendor.submit();
    return;
  }
  else if(reportSender){
    var formField = reportSender.getElementsByTagName("input");
//ID's cannot be only numbers, this removes the 'n' that reportBuilder() places in front of the value
    var marker = x.substr(1,x.length)
    if(marker>0) formField[0].value=marker;
    reportSender.submit();

    return;
  }
}

addEvent(window,"load",function(){
  if(document.getElementById && document.createTextNode){
    var helpMe = document.getElementById("help")
    if(helpMe){
      var dds = helpMe.getElementsByTagName("dd")
      for(var i=0;i<dds.length;i++) {
        dds[i].className = swapClass(dds[i],"","hideMe");
      }
    }
  }
});


function swapClass(thisEl,oldClass,newClass){
  var introClass = String(thisEl.className).replace(/ /g,",");
  var elClass = introClass.split(",");
  var returnClass = ""//this is what the elements class will be set to on return
  if(elClass.length>1){
    for(var i=0;i<elClass.length;i++){
      if(elClass[i]!=oldClass) returnClass+=elClass[i]+" ";
      if(elClass[i]==newClass) newClass="";
    }
  }
  returnClass+=newClass
//  alert("ID="+thisEl.id+" className=="+oldClass+" | "+returnClass)
  return returnClass.replace(/\,/g," ");
}

addEvent(window, "load", function() {
  //check to see if the browser supports the DOM
  if(document.getElementById && document.createTextNode){
    var tables=document.getElementsByTagName("table");
    for(var q=0;q<tables.length;q++) {
      if(String(tables[q].className).indexOf("ruler")>=0){
        var trs= tables[q].getElementsByTagName("tr");
        for(var s=0;s<trs.length;s++){
            
          if(trs[s].id && (trs[s].parentNode.nodeName=="TBODY") && (trs[s].parentNode.nodeName!="thead") && (trs[s].className!="total")){
            //add the hilite class to the existing class
            trs[s].onmouseover=function(){switchClass(this.id,"hilite")}
            trs[s].onmouseout=function(){switchClass(this.id,"hilite")}
						trs[s].onclick=function(){if(this.id){reportSubmit(this.id)}}
//            if(String(tables[q].className).indexOf("selecTable")>=0){
//  						trs[s].onclick=function(){selectRow(this.id,"rowList")}
//            }
          }
        }
      }
    }
  }
});

function switchClass(elId,classChange){
  var el = document.getElementById(elId)
  var newClass="";
  if(elId){
    var thisClass=el.className.split(" ");
    var hit = 0
    for(var i=0;i<thisClass.length;i++){
      if(thisClass[i]==classChange){
        hit=1
      }
      else {
        newClass+=thisClass[i]+" ";
      }
    }
    el.className=String(newClass+(hit?"":","+classChange)).replace(","," ");
    return false
  }
  else {
    return "";
  }
}

function addEvent(obj, evType, fn){
//attachEvent is IE only.
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
 } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
 } else {
    return false;
 }
} 


function emptyCheck(frm,req) {
// req == some fields are required 1:0
  var fields=0
  var flds="";
  var prob=0;
  for (i = 0; i < frm.length-1; ++i) {
    var el = frm.elements[i];
    if(req){
      if(el.type!="hidden") {
        var c1 = el.className.substr(0,1);
        var c4 = el.className.substr(3,1);
        var elParent = el.parentNode
        if(String(elParent.className).indexOf("required")>0) {
//        if(String(el.className).indexOf("required")>0) {
          if(el.value == "" || el.value == "null"){ //if the value is a literal string("null"), its is a select box on its default setting
//            el.style.borderColor = "red";           //and not allowed to remain on its default setting.
            el.className = "mustEnter";           //and not allowed to remain on its default setting.
            if(prob==0) prob=el;
          }
          else
            el.style.color = "green";
        }
      }
    }
//    if(el.tagName.toLowerCase()=="textarea")
    if(el.name<="") continue;                     // if they didn't _name_ the field, skip it
    if(el.name=="fields") fields=el;              // find the txtbox to store the value in
      
//    if(el.value=="null"){ alert(el.name+"="+el.value);el.value="0";alert(el.name+"="+el.value);return false}

    var cn=el.className.toLowerCase();
    if(cn=="txtbox" || cn=="dattim" || cn=="textarea")
      flds+="~t_"+el.name;
    else if(cn=="txtarea")
      flds+="~t_"+el.name;
    else if(cn=="numbox")
      flds+="~n_"+el.name;
    else if(cn=="chkbox")
      flds+="~y_"+el.name;
    else if(cn=="marker")
      flds+="~m_"+el.name;
//    else if(cn=="dattim")
//      flds+="~d_"+el.name;
    else if(cn=="phonum")
      flds+="~p_"+el.name;
    else if(cn=="curbox")
      flds+="~c_"+el.name;
    else if(cn=="htmbox")
      flds+="~h_"+el.name;
  }
  if(prob!=0) {
    alert ("Missing information! Please complete all fields.\n\nClick OK to fill in missing information.")
    prob.focus()
    return false
  }
  if(fields!=0) fields.value=flds;
  return true
}

function dolcomma(x){
 x.value=money(x.value)
}
function tCase(inputValue,e){
  var inputValue=inputValue.split(" ");
  var wackComma = /,/g;
  for(var i=0;i<inputValue.length;i++) {
    inputValue[i]=inputValue[i].substr(0,1).toUpperCase()+inputValue[i].substr(1,inputValue[i].length).toLowerCase()
  }
  return String(inputValue).replace(wackComma," ")
}
