var columnList = "";
var sourceLink = -1;
var source2Link = -1;
var whereClause = "";
var SQLStatement = "";
var windowNo = 0;
var prevDivId = "dt1";
function showDataTaskInput(showDivId) {
  if (document.getElementByType) {
    // this is the way the standards work
    hideStyle = document.getElementByType(prevDivId).style;
    showStyle = document.getElementByType(showDivId).style;
  } else if (document.all) {
    // this is the way old msie versions work
    alert( prevDivId );
    hideStyle = document.all[prevDivId].style;
    showStyle = document.all[showDivId].style;
  } else if (document.layers) {
    // this is the way nn4 works
    prevStyle = document.layers[prevDivId].style;
    showStyle = document.layers[showDivId].style;
  } else if (document.getElementById) {
    hideStyle = document.getElementById(prevDivId).style;
    showStyle = document.getElementById(showDivId).style;
  }
    
  hideStyle.display = "none";
  showStyle.display = "block";
  prevDivId = showDivId;
}
function setFileTypeIndex ( indexNo ) {
  WebFileTypeIndex.value = indexNo;
  ClientFileTypeIndex.value = indexNo;
  var currentFILETYPE = new Array();
  currentFILETYPE = jsFILETYPE[indexNo].split("^ ");
  setFileType( currentFILETYPE ); 
}
function setFileType ( currentFILETYPE ) {
  if (document.getElementByType) {
    // this is the way the standards work
    document.getElementByType("jFIELDNAMESINFIRSTLINE").value = currentFILETYPE[1];
    document.getElementByType("jROWDELIMITER").value = currentFILETYPE[2];
    document.getElementByType("jDELIMITER").value = currentFILETYPE[3];
    document.getElementByType("jOPTIONALENCLOSURE").value = currentFILETYPE[4];
    document.getElementByType("jDESCRIPTION").value = currentFILETYPE[5];
    document.getElementByType("jURL").value = currentFILETYPE[6];
    document.getElementByType("newFILETYPE").value = currentFILETYPE[0];
    document.getElementByType("newFIELDNAMESINFIRSTLINE").value = currentFILETYPE[1];
    document.getElementByType("newROWDELIMITER").value = currentFILETYPE[2];
    document.getElementByType("newDELIMITER").value = currentFILETYPE[3];
    document.getElementByType("newOPTIONALENCLOSURE").value = currentFILETYPE[4];
    document.getElementByType("newDESCRIPTION").value = currentFILETYPE[5];
    document.getElementByType("newURL").value = currentFILETYPE[6];
  } else if (document.all) {
    // this is the way old msie versions work
    document.all["jFIELDNAMESINFIRSTLINE"].value = currentFILETYPE[1];
    document.all["jROWDELIMITER"].value = currentFILETYPE[2];
    document.all["jDELIMITER"].value = currentFILETYPE[3];
    document.all["jOPTIONALENCLOSURE"].value = currentFILETYPE[4];
    document.all["jDESCRIPTION"].value = currentFILETYPE[5];
    document.all["jURL"].value = currentFILETYPE[6];
    document.all["jFILETYPE"].value = currentFILETYPE[0];
    document.all["newFILETYPE"].value = currentFILETYPE[0];
    document.all["newFIELDNAMESINFIRSTLINE"].value = currentFILETYPE[1];
    document.all["newROWDELIMITER"].value = currentFILETYPE[2];
    document.all["newDELIMITER"].value = currentFILETYPE[3];
    document.all["newOPTIONALENCLOSURE"].value = currentFILETYPE[4];
    document.all["newDESCRIPTION"].value = currentFILETYPE[5];
    document.all["newURL"].value = currentFILETYPE[6];
  } else if (document.layers) {
    // this is the way nn4 works
    document.layers["jFIELDNAMESINFIRSTLINE"].value = currentFILETYPE[1];
    document.layers["jROWDELIMITER"].value = currentFILETYPE[2];
    document.layers["jDELIMITER"].value = currentFILETYPE[3];
    document.layers["jOPTIONALENCLOSURE"].value = currentFILETYPE[4];
    document.layers["jDESCRIPTION"].value = currentFILETYPE[5];
    document.layers["jURL"].value = currentFILETYPE[6];
    document.layers["newFILETYPE"].value = currentFILETYPE[0];
    document.layers["newFIELDNAMESINFIRSTLINE"].value = currentFILETYPE[1];
    document.layers["newROWDELIMITER"].value = currentFILETYPE[2];
    document.layers["newDELIMITER"].value = currentFILETYPE[3];
    document.layers["newOPTIONALENCLOSURE"].value = currentFILETYPE[4];
    document.layers["newDESCRIPTION"].value = currentFILETYPE[5];
    document.layers["newURL"].value = currentFILETYPE[6];
  } else if (document.getElementById) {
    document.getElementById("jFIELDNAMESINFIRSTLINE").value = currentFILETYPE[1];
    document.getElementById("jROWDELIMITER").value = currentFILETYPE[2];
    document.getElementById("jDELIMITER").value = currentFILETYPE[3];
    document.getElementById("jOPTIONALENCLOSURE").value = currentFILETYPE[4];
    document.getElementById("jDESCRIPTION").value = currentFILETYPE[5];
    document.getElementById("jURL").value = currentFILETYPE[6];
    document.getElementById("newFILETYPE").value = currentFILETYPE[0];
    document.getElementById("newFIELDNAMESINFIRSTLINE").value = currentFILETYPE[1];
    document.getElementById("newROWDELIMITER").value = currentFILETYPE[2];
    document.getElementById("newDELIMITER").value = currentFILETYPE[3];
    document.getElementById("newOPTIONALENCLOSURE").value = currentFILETYPE[4];
    document.getElementById("newDESCRIPTION").value = currentFILETYPE[5];
    document.getElementById("newURL").value = currentFILETYPE[6];
  }
  errorMessage = "";
}
function searchForward ( lastSearch, webPageBeg, webPageEnd ) {
  resultStart = lastSearch - 1;
  if ( lastSearch == 999 )
    resultStart = 0
  for (var i=20;i>=0;i--) {
    windowNo++;
    windowStart = resultStart + i*10;
    slideShowPage = webPageBeg + windowStart.toString() + webPageEnd;
    window_handle = popup2( slideShowPage, 'SourceWindow'+windowNo );
  }
}
function searchBack ( lastSearch, webPageBeg, webPageEnd ) {
  resultStart = 0;
  while ( resultStart < lastSearch ) {
    windowNo++;
    slideShowPage = webPageBeg + resultStart.toString() + webPageEnd;
    window_handle = popup2( slideShowPage, 'SourceWindow'+windowNo );
    resultStart = resultStart + 10;
  }
}
function goToResult ( resultAt, webPageBeg, webPageEnd ) {
  resultAt--;
  if ( resultAt == 998 )
    resultAt = 0
  showPage = webPageBeg + resultAt.toString() + webPageEnd;
  windowNo++;
  window_handle = popup2( showPage, 'SourceWindow'+windowNo );
}
function popup2(mylink, windowname) {
  if (! window.focus)return true;
  var href;
  if (typeof(mylink) == 'string')
    href=mylink;
  else {
    href='view-source:' + mylink;
    href=mylink.href;
  }
  window_handle =
    window.open( href, windowname, 'left=150,top=100,width=600,height=400,location=yes,scrollbars=yes,resizable=yes');
  return window_handle;
}

function popup(mylink, windowname) {
  if (! window.focus)return true;
  var href;
  if (typeof(mylink) == 'string') {
    if ( mylink.indexOf( "Select" ) == 0 )
      return false;
    href=mylink;
  } else
    href=mylink.href;
  if ( windowname == "SQL" ) {
    href += '?select=' + columnList;
    if ( whereClause.length > 0 )
      href += '?where=' + whereClause;
  } else
  if ( windowname == "Destination" )
    href += SQLStatement;
  window_handle =
    window.open(href, windowname, 'left=150,top=100,width=600,height=400,location=yes,scrollbars=yes,resizable=yes');
  window_handle.focus();
  return false;
}

function addLink(theElement) {
  var theForm = theElement.form;
  for (z = 0; z< theForm.length; z++) {
    if (theForm[z].type == 'checkbox') {
      if (theForm[z].checked == true) {
        if (sourceLink == -1) {
          sourceLink = z;
        } else {
          source2Link = z;
        }
      }
    }
  }
  if (sourceLink == -1 || source2Link == -1) {
    alert ("Link Failed!");
  } else {
    source = theForm[sourceLink].value;
    source2 = theForm[source2Link].value;
    
    whereClause += source + "=" + source2;

    sourceTableEnd = source.lastIndexOf(".");
    source2TableEnd = source2.lastIndexOf(".");
    sourceTableBegin = source.indexOf("_")+1;
    source2TableBegin = source2.indexOf("_")+1;
    sourceTable = source.substring(sourceTableBegin, sourceTableEnd);
    sourceOwner = source.substring(0, sourceTableBegin-1);
    source2Owner = source2.substring(0, source2TableBegin-1);
    sourceTable = source.substring(sourceTableBegin, sourceTableEnd);
    source2Table = source2.substring(source2TableBegin, source2TableEnd);
    sourceColumn = source.substring(sourceTableEnd+1);
    source2Column = source2.substring(source2TableEnd+1);
    sourceLabel = eval("From"+sourceColumn);
    source2Label = eval("From2"+source2Column);
    sourceLabel.innerHTML = "<font color='green'>" + source2Column+"</font>";
    source2Label.innerHTML = "<font color='blue'>" + sourceColumn+"</font>";
    sourceLabel.href="ConvertData?fromName="+source+"&toName="+source2+"&jOWNER="+source2Owner+"&jTABLE_NAME="+source2Table;
    source2Label.href="ConvertData?fromName="+source2+"&toName="+source+"&jOWNER="+sourceOwner+"&jTABLE_NAME="+sourceTable;
  } 
  return false;
}

function writeFrom(ParameterValue) {
  if ( crossRefText.value == "" )
    currentLine = ParameterValue;
  else
    currentLine = " " + ParameterValue;
  crossRefText.value += currentLine;
  return false;
}

function writeTo(ParameterValue) {
  fillLength = numOfCols - currentLine.length - ParameterValue.length;
  for (i=1;i<fillLength;i++)
    crossRefText.value += "-";
  crossRefText.value += ParameterValue;
  return false;
}

function SQLColClick(cb, ParameterValue) {
  box = eval(cb);
  if (box.checked == true) {
    //alert ("Adding " + ParameterValue);
    if ( columnList.length ==  0 )
      columnList = ParameterValue;
    else
      columnList += "," + ParameterValue;
  } else {
    //alert ("Deleting " + ParameterValue);
    columnList = columnList.replace( ParameterValue, "");
    lastComma = columnList.lastIndexOf( "," );
    if (lastComma == columnList.length-1 )
      columnList = columnList.substring(0, lastComma);
    if ( columnList.indexOf( "," ) == 0)
      columnList = columnList.substring(1);
    columnList = columnList.replace(",,", ",");
  }
  //alert ("New Column List " + columnList);
  return false;
}

function checkUncheckAll(theElement) {
  var theForm = theElement.form;
  changeValue = true;
  if (theForm.SelectAll.value == "Unselect All") {
    changeValue = false;
    theForm.SelectAll.value = "Select All";
    columnList = "";
  } else
    theForm.SelectAll.value = "Unselect All";
  for (z = 0; z< theForm.length; z++) {
    if (theForm[z].type == 'checkbox') {
      theForm[z].checked = changeValue;
      SQLColClick(theForm[z], theForm[z].value);
    }
  }
  return false;
}

function setFocus() {
  form = document.forms[0]
  for (x = 0; x < form.elements.length; x++) {
    if (form.elements[x].className == "mandatory" && form.elements[x].value == "") {
      form.elements[x].focus()
      break
    }
  }
}

function validate() {
  canSend = true
  form = document.forms[0]
  for (x = 0; x < form.elements.length; x++) {
    if (form.elements[x].className == "mandatory" && form.elements[x].value == "") {
      alert('Please fill in mandatory fields')
      canSend = false
      break
    }
  }
  if (canSend) {
    document.forms[0].submit()
  } else {
    setFocus()
  }
}
function checkDataTasks(x) {
  document.processingForm.DataTasks[x].checked = true
}
function hidebuttons(processingForm) {
    processingForm.ApplyFilter.value = "Update"
}

