/* *********************************************************
*                                                          *
*  Javascript file for ARMIX.webnotes               v 1.0  *
*  Copyright 2004 - 2008 by Armin Baldemair                *
*                                                          *
********************************************************* */



////////////////////////////////////////////////////////////
// onmouseove-effect for view
//
function awn_onmouseoverrow(e)
 {
  if (document.getElementById(e).bgColor == "#f3f3f3") { document.getElementById(e).bgColor = "#e2e2e2"; }
  else                                                 { document.getElementById(e).bgColor = "#f3f3f3"; }
 }



////////////////////////////////////////////////////////////
// print a note
//
function awn_printnote()
 {
  if(confirm("Do you want to print this note now?"))
   {
    window.setTimeout("window.print()", 500);
   }
 }



////////////////////////////////////////////////////////////
// open print-window
//
function awn_printwindow(nid)
 {
  awnprint = window.open("/print/" + nid, "awnprint", "width=660,height=800,scrollbars=yes");
  awnprint.moveTo(50,50);  
  awnprint.focus();
 }



////////////////////////////////////////////////////////////
// create a new text range in a note
//
function awn_createnewtextsection(who, ali, fld)
 {
  var ts = new Date();
  var ts1 = ts.getFullYear(); if(ts1 < 10) { ts1 = "0" + ts1; }
  var ts2 = ts.getMonth();    if(ts2 < 10) { ts2 = "0" + ts2; }
  var ts3 = ts.getDate();     if(ts3 < 10) { ts3 = "0" + ts3; }
  var ts4 = ts.getHours();    if(ts4 < 10) { ts4 = "0" + ts4; }
  var ts5 = ts.getMinutes();  if(ts5 < 10) { ts5 = "0" + ts5; }
  var ts6 = ts.getSeconds();  if(ts6 < 10) { ts6 = "0" + ts6; }

  infbrk = "";
  infbrk = infbrk + "____________________________________________________________________\n";
  infbrk = infbrk + " UPDATED " + ts1 + "-" + ts2 + "-" + ts3 + " " + ts4 + ":" + ts5 + ":" + ts6 + " BY " + who.toUpperCase() + ":\n";
  infbrk = infbrk + "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n";
  infbrk = infbrk + "Type your text here...\n";
  infbrk = infbrk + "____________________________________________________________________\n\n\n";
  if(ali == "top")
   {
    fld.value = infbrk + fld.value;
    fld.focus();
    fld.setSelectionRange(199, 227);
   }
  else
   {
    fld.value = fld.value + infbrk;
    fld.focus();
   }
 }



////////////////////////////////////////////////////////////
// create a new text range in a note
//
function awn_checkff(ffn, fft, ffv, dbt, dbl)
 {
  var valid = -1;
  var bgcol0 = "#FF9999";
  var bgcol1 = "#99FF99";
  var errtxt = "";
  var vlen = ffv.length;

  ////// INPUT-TEXT mit VARCHAR
  //
  if(fft == "input.text" && dbt == "varchar")
   {
    if(vlen <= dbl)
     {
      valid = 1;
     }
    else
     {
      valid = 0;
      errtxt = "You entered " + vlen + " characters into the field " + ffn.toUpperCase() + " but the datastore allows only " + dbl + " characters here.\n\nPlease correct your input before you save it.";
     }
   }

  ////// INPUT-TEXT mit DECIMAL
  //
  if(fft == "input.text" && dbt == "decimal")
   {
    if(vlen == 0)
     {
      valid = 1;
     }
    else
     {
      var validchars = "0123456789,";
      var isnum = 1;
      var char;
      for (i = 0; i < vlen && isnum == true; i++)
       {
        char = ffv.charAt(i);
        if(validchars.indexOf(char) == -1) { isnum = 0; }
       }
      if(isnum == 1) { valid = 1; } else { valid = 0; errtxt = "You did not enter a decimal value into the field " + ffn.toUpperCase() + " but the datastore allows only decimal values here.\n\nPlease enter a decimal or integer value before you save it."; }
     }
   }

  ////// INPUT-TEXT mit FLOAT
  //
  if(fft == "input.text" && dbt == "float")
   {
    if(vlen == 0)
     {
      valid = 1;
     }
    else
     {
      var validchars = "0123456789,";
      var isnum = 1;
      var char;
      for (i = 0; i < vlen && isnum == true; i++)
       {
        char = ffv.charAt(i);
        if(validchars.indexOf(char) == -1) { isnum = 0; }
       }
      if(isnum == 1) { valid = 1; } else { valid = 0; errtxt = "You did not enter a decimal value into the field " + ffn.toUpperCase() + " but the datastore allows only decimal values here.\n\nPlease enter a decimal or integer value before you save it."; }
     }
   }

  ////// INPUT-TEXT mit INT
  //
  if(fft == "input.text" && dbt == "int")
   {
    if(vlen == 0)
     {
      valid = 1;
     }
    else
     {
      var validchars = "0123456789";
      var isnum = 1;
      var char;
      for (i = 0; i < vlen && isnum == true; i++)
       {
        char = ffv.charAt(i);
        if(validchars.indexOf(char) == -1) { isnum = 0; }
       }
      if(isnum == 1) { valid = 1; } else { valid = 0; errtxt = "You did not enter a integer value into the field " + ffn.toUpperCase() + " but the datastore allows only integer values here.\n\nPlease enter a integer value before you save it."; }
     }
   }

  ////// INPUT-TEXT mit DATETIME-DATE
  //
  if(fft == "input.text" && dbt == "date")
   {
    if(vlen == 0)
     {
      valid = 1;
     }
    else if(vlen == 10 && ffv.substring(2,3) == "." && ffv.substring(5,6) == ".")
     {
      vd=parseInt(ffv.substring(0,2),10);
      vm=parseInt(ffv.substring(3,5),10);
      vy=parseInt(ffv.substring(6,10),10);
      if(vd > 00 && vd < 32 && vm > 00 && vm < 13 && vy > 1900 && vy < 2100) { valid = 1; } else { valid = 0; errtxt = "Sie haben in das Feld " + ffn.toUpperCase() + " keinen gültigen Datumswert eingegeben. In der Datenbank sind jedoch in diesem Feld nur Werte von Typ Datum erlaubt. Das Datum muss im Format TT.MM.JJJJ angegeben werden.<br /><br />Bitte korrigieren Sie Ihre Eingabe, bevor Sie speichern."; }
     }
    else
     {
      valid = 0;
      errtxt = "You did note enter a valid date value into the field " + ffn.toUpperCase() + " but the datastore allows only date values here.\n\nPlease enter a valid date in DD.MM.YYYY format before you save it.";
     }
   }

  ////// TEXTAREA mit VARCHAR
  //
  if(fft == "textarea" && dbt == "varchar")
   {
    if(vlen <= dbl)
     {
      valid = 1;
     }
    else
     {
      valid = 0;
      errtxt = "You entered " + vlen + " characters into the field " + ffn.toUpperCase() + " but the datastore allows only " + dbl + " characters here.\n\nPlease correct your input before you save it.";
     }
   }

  ////// TEXTAREA mit TEXT
  //
  if(fft == "textarea" && dbt == "text")
   {
    if(vlen <= 2147483648)
     {
      valid = 1;
     }
    else
     {
      valid = 0;
      errtxt = "You entered " + vlen + " characters into the field " + ffn.toUpperCase() + " but the datastore allows only " + dbl + " characters here.\n\nPlease correct your input before you save it.";
     }
   }

  if(valid == 1)
   {
    document.getElementsByName(ffn)[0].style.background = bgcol1;
   }
  else if(valid == 0)
   {
    document.getElementsByName(ffn)[0].style.background = bgcol0;
    alert("ARMIX.webnotes\n\n" + errtxt);
   }
 }

