//------------------------------------------------------------------------------
// DomAPI multilingual routines
// D. Kadrioski 5/4/2002
// (c) Nebiru Software 2001-2004
//------------------------------------------------------------------------------

domapi = {};
domapi.isNil = function(s)  {return s==null || !String(s).length};
domapi.rVal  = function(s,d){return(domapi.isNil(s)?(domapi.isNil(d)?"":d):s)};
//------------------------------------------------------------------------------
domapi.loadLang = function(s){
  domapi.loadUnit("../lang/" + s, 1);
};
//------------------------------------------------------------------------------
domapi.lang = {};
//------------------------------------------------------------------------------
domapi.getString = function(key){
  var s = domapi.lang[key];
  if(typeof s == "undefined")s = key;
  return s;
};
//------------------------------------------------------------------------------
domapi.formatGetString = function(key,p){ // requires sysutils.js
  return sysutils.formatString(domapi.getString(key),p);
};
//------------------------------------------------------------------------------
// english, overwrite values in separate language files
domapi.lang["WEEKDAYS"           ] = "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(",");
domapi.lang["SHORTWEEKDAYS"      ] = "Su,Mo,Tu,We,Th,Fr,Sa".split(",");
domapi.lang["STARTOFWEEK"        ] = 0; // sunday
domapi.lang["TODAYSTR"           ] = "Today";
domapi.lang["MONTHS"             ] = "January,February,March,April,May,June,July,August,September,October,November,December".split(",");
domapi.lang["SHORTMONTHS"        ] = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(",");
domapi.lang["DROPDOWN_OPEN"      ] = "Click to open";
domapi.lang["DROPDOWN_CLOSE"     ] = "Click to close";
domapi.lang["HANDLER_NO_ATTACH"  ] = "Handler could not be attached.";
domapi.lang["HANDLER_NO_DETACH"  ] = "Handler could not be removed.";
domapi.lang["COLORPICKER_SAFE"   ] = "Safe";
domapi.lang["COLORPICKER_CUSTOM" ] = "Custom";
domapi.lang["COLORPICKER_SELECT" ] = "Click to select";
domapi.lang["LISTGRID_SORT"      ] = "Click to sort";
domapi.lang["LISTGRID_RESIZE"    ] = "Drag to resize";
domapi.lang["VAL_DOLLAR"         ] = "Please enter a valid dollar amount.";
domapi.lang["VAL_STATE"          ] = "Invalid state code. Please enter 2-letter state abbreviation.";
domapi.lang["VAL_STRING"         ] = "You must provide a %1";
domapi.lang["VAL_STRING_LEN"     ] = "%1 must be at least %2 character%3 long.";
domapi.lang["VAL_ZIP"            ] = "Invalid zip code. Please enter 5-digit or 9-digit zip code.";
domapi.lang["VAL_NUMBER"         ] = "You must provide a valid %1";
domapi.lang["VAL_DATE"           ] = "%1 is not a valid date.  Please use %2 format.";
domapi.lang["WINDOW_NOT_IFRAME"  ] = "Cannot load a URL into a window without an IFRAME.";
domapi.lang["WINDOW_MINIMIZE"    ] = "Minimize";
domapi.lang["WINDOW_MAXIMIZE"    ] = "Maximize";
domapi.lang["WINDOW_RESTORE"     ] = "Restore";
domapi.lang["WINDOW_HELP"        ] = "Help";
domapi.lang["WINDOW_CLOSE"       ] = "Close";
domapi.lang["GRID_CTRL_SEL"      ] = "Control row (0) cannot be selected.";
domapi.lang["GRID_CTRL_SWP"      ] = "Control row (0) cannot be swapped.";
domapi.lang["GRID_CTRL_DEL"      ] = "Control row (0) cannot be deleted.";
domapi.lang["GRID_NO_SEL"        ] = "Grid does not allow there to be no selection (allowNoSelect=true)";
domapi.lang["RPC_DEF_STATUS"     ] = "Loading";
domapi.lang["RPC_TIMED_OUT"      ] = "Packet which already timed out finally received.";
domapi.lang["RPC_NO_HEAD1"       ] = "No HEAD tag found! Document is not well-formed. Could not cleanup response.";
domapi.lang["RPC_NO_HEAD2"       ] = "No HEAD tag found! Document is not well-formed. Could not dispatch request.";
domapi.lang["RPC_NO_SCRIPT"      ] = "No SCRIPT tag found! Could not cleanup response.";
domapi.lang["TREE_NO_PARENT"     ] = "Node cannot be created without specifying parent.";
domapi.lang["TREE_NO_NODE"       ] = 'No node sent to Tree method "%1()"';
domapi.lang["ERR_GET_CONTENT"    ] = "Error in getContent: ";
domapi.lang["ERR_POST_CONTENT"   ] = "Error in postContent: ";
domapi.lang["ERR_EVAL_JSON"      ] = "Error occured deserializing JSON string: ";
domapi.lang["INCREMENT_MONTH"    ] = "Increment month";
domapi.lang["DECREMENT_MONTH"    ] = "Decrement month";
domapi.lang["ERR_NO_MS_XMLHTTP"  ] = "No valid XML parser was found.";
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// This method returns an array of [day,title] elements for the current month
// and year. Overwrite this method with your own localized holidays.  The 
// defaults are for North America.
//------------------------------------------------------------------------------
domapi.lang.calculateHolidays = function(m,y){ // month is 0..11
  var r = [];
  switch(m){
    case 0 :
      r.push([1,"New Years Day"]);
      r.push([sysutils.findFirstDay(3, 1, 0, y), "Martin Luther King Day"]);
      break;
    case 1 :
      r.push([sysutils.findFirstDay(3, 1, 1, y), "Presidents Day"]);
      break;
    case 2,3 :
      var t = sysutils.easterSunday(y);
      if(t[0] == m){
        r.push([t[1],  "Easter Sunday"]);
        r.push([t[1]-2,"Good Friday"]);
      }
      break;
    case 4 :
      r.push([sysutils.findFirstDay(-1, 1, 5, y), "Victoria Day"]);
      r.push([sysutils.findFirstDay( 0, 1, 5, y), "Memorial Day"]);
      break;
    case 5 :      
      break;
    case 6 :
      r.push([1, "Canada Day"]);
      r.push([4, "Independance Day"]);
      break;
    case 7 :      
      break;
    case 8 :
      r.push([sysutils.findFirstDay(1, 1, 8, y), "Labor Day"]);
      r.push([31, "Halloween"]);
      break;
    case 9 :
      r.push([sysutils.findFirstDay(2, 1, 9, y), "Canadian Thanksgiving"]);
      r.push([sysutils.findFirstDay(2, 1, 9, y), "Columbus Day"]);
      break;
    case 10 :
      r.push([11, "Veterans Day"]);
      r.push([sysutils.findFirstDay(1, 1, 10, y)+1, "Election Day"]);
      r.push([sysutils.findFirstDay(4, 4, 10, y), "Thanksgiving Day"]);
      break;
    case 11 :
      r.push([25, "Christmas Day"]);
      r.push([26, "Boxing Day"]);
      break;
  }
  return r;
};
//------------------------------------------------------------------------------
domapi.lang._firstDay = function(n,d,m,y){
  // finds to nth day (d) in month and year - days are 0..6, s..s
  var startday  = sysutils.getStartDay(m, y);
};
//------------------------------------------------------------------------------
