﻿var iStoredValue = 0;
var iTenderMode;

function setStoredValue(oObj)
{
  iStoredValue = oObj.value;
}

function InitTender()
{
  iTenderMode = document.getElementById('tendermode').value; 
  var oTenderReq = document.getElementById('txtTenderReq');
  var sCookieValue = '';
  
  if(oTenderReq.value != '')
  {
    sCookieValue = oTenderReq.value;
    
    if(getCookie('txtTenderReq' + '_' + iTenderMode) != null){sCookieValue += getCookie('txtTenderReq' + '_' + iTenderMode);}   
    setCookie('txtTenderReq_' + iTenderMode, sCookieValue);
  }
  
  try
  {
    LoadCmbWeek();
    setDateFields();
    LoadCurrentDate();
    updateDaysDisplay();
  } catch (err) {
    //Do nothing
  }
  
  restoreItems();
  InitDropDown();
}

function onloadglobal()
{
  InitTender();
  initForm('tenderform', 'txtCompanyName');
}

function saveItem(oObj)
{
  if(oObj.value != null)
  {
    setCookie(oObj.id + '_' + iTenderMode, oObj.value);
  }
}

//This event will be called from the autosuggest code:
function onblur(oInputText)
{
  if(oInputText.value != null)
  {
    saveItem(oInputText)
  }
}

function restoreItems()
{
  var eleInput = new Array(); 
  var eleSelect = new Array(); 
  var eleTextar = new Array(); 
  var aElements = new Array();
  
  eleInput = formElements('tenderform', 'input');
  eleSelect = formElements('tenderform', 'select');
  eleTextar = formElements('tenderform', 'textarea');
  
  //Merge all results:
  aElements = MergeArray(eleInput, 0, eleSelect, 0);
  aElements = MergeArray(aElements, 0, eleTextar, 0);
  
  //Loop through all of them and restore values, skip asp.net inputs and stuff without id's:
  for(var i=0;i<aElements.length;i++)
  {
    if((aElements[i].id != '') && (aElements[i].id.substr(0, 1) != '_'))
    {
      if(getCookie(aElements[i].id + '_' + iTenderMode) != null)
      {
        aElements[i].value = getCookie(aElements[i].id + '_' + iTenderMode);
      } 
  
      /*
      if((getCookie(aElements[i].id + '_' + iTenderMode) != null) && (getCookie(aElements[i].id + '_' + iTenderMode).indexOf('[EMPTY]')) >= 0)
      {
        aElements[i].value = '';
      }
      */
    }
  }
}

function ProvideSuggestions(oObj, bTypeAhead)
{
  var aSuggestions = [];
  var aInput = [];
  var sTxtBox = document.getElementById("txtPhoneNumber").value;
 
  aInput = document.getElementById('phonenumbers').value.split('|');

  for(i=0;i<aInput.length;i++)
  {
    if(aInput[i].substr(0, sTxtBox.length).toLowerCase() == sTxtBox.toLowerCase())
    {
      aSuggestions.push(aInput[i]);
    }
  }  
  
  oObj.autosuggest(aSuggestions, bTypeAhead);
}

function InitDropDown()
{ 
  var oTarget = document.getElementById('txtPhoneNumber');
  var oTextBoxz = new AutoSuggestControl(oTarget, this, true, ' [');
}

function LoadCmbWeek()
{
  var cmbWeek;
  
  oCmbWeek = document.getElementById('cmbWeeks');
  
  oCmbWeek.options[0] = new Option("---", "---");
  
  for(i=1;i<=52;i++)
  {
    oCmbWeek.options[i] = new Option(i, i);
  }
}

function CheckData(oObj)
{
  var dFDate = new Date(document.getElementById('cmbHireFromYear').value, (document.getElementById('cmbHireFromMonth').value - 1), document.getElementById('cmbHireFromDay').value);
  var dTDate = new Date(document.getElementById('cmbHireTillYear').value, (document.getElementById('cmbHireTillMonth').value - 1), document.getElementById('cmbHireTillDay').value);
  var cDate = new Date(document.getElementById('serveryear').value, (document.getElementById('servermonth').value - 1), document.getElementById('serverday').value);
  var iTmp = iStoredValue;
  
  //Check if we went back in time:
  if(dFDate < cDate)
  {
    oObj.value = iTmp;
    alert(document.getElementById('backintime').value);
  }
 
  //Check if start date is after the end date:
  if(dFDate > dTDate)
  {
    oObj.value = iTmp;
    alert(document.getElementById('startafterend').value);
  }
  
  //We've used one of the data combo boxes, set weeks on ---
  document.getElementById('cmbWeeks').selectedIndex = 0;
}

function LoadCurrentDate()
{
  document.getElementById('cmbHireFromDay').value = document.getElementById('serverday').value;
  document.getElementById('cmbHireFromMonth').value = document.getElementById('servermonth').value;
  document.getElementById('cmbHireFromYear').value = document.getElementById('serveryear').value;
  document.getElementById('cmbHireTillDay').value = document.getElementById('serverday').value;
  document.getElementById('cmbHireTillMonth').value = document.getElementById('servermonth').value;
  document.getElementById('cmbHireTillYear').value = document.getElementById('serveryear').value;
}

function updateTillDate()
{
  //Calculate new hire till date:
  if(IsNumeric(document.getElementById('cmbWeeks').value) == true)
  {
    var dDate = new Date(document.getElementById('cmbHireFromYear').value, (document.getElementById('cmbHireFromMonth').value - 1), document.getElementById('cmbHireFromDay').value);
    var iDays = document.getElementById('cmbWeeks').value * 7;
    
    dDate.setDate(dDate.getDate() + iDays);
      
    document.getElementById('cmbHireTillDay').value = (dDate.getDate() - 1);
    document.getElementById('cmbHireTillMonth').value = (dDate.getMonth() + 1);
    document.getElementById('cmbHireTillYear').value = (dDate.getFullYear());
    
    updateDaysDisplay();
  }
}

function DaysInMonth(year, month){
  return 32 - new Date(year, month, 32).getDate();
}

function updateDaysDisplay()
{
  document.getElementById('dayscount').innerHTML = calcAantalDagen();
}

function emptyform()
{
  var eleInput = new Array(); 
  var eleSelect = new Array(); 
  var aElements = new Array();
  
  eleInput = formElements('tenderform', 'input');
  eleSelect = formElements('tenderform', 'select');
  eleTextar = formElements('tenderform', 'textarea');
  
  //Merge all results:
  aElements = MergeArray(eleInput, 0, eleSelect, 0);
  aElements = MergeArray(aElements, 0, eleTextar, 0);
  
  //Loop through all of them and restore values, skip asp.net inputs and stuff without id's:
  for(var i=0;i<aElements.length;i++)
  {
    if((aElements[i].id != '') && (aElements[i].id.substr(0, 1) != '_'))
    {
      if(aElements[i].type != 'submit'){aElements[i].value = ''};
      deleteCookie(aElements[i].id);
      //Ignore text area because we've still want to accept input from the server:
      if((aElements[i].type != 'textarea') && (aElements[i].type != 'submit')){setCookie(aElements[i].id, '[EMPTY]');}
    }
  }
}

function setDateFields(){
  changeDaysVan();
  changeDaysTot();
  
  eJaarBegin = document.getElementById('cmbHireFromYear'); 
  eJaarEind =  document.getElementById('cmbHireTillYear'); 
  
  sJaarEind = document.getElementById('cmbHireTillYear').value; 
  sJaarBegin = document.getElementById('cmbHireFromYear').value;
  
  
  var thedate = new Date( );
  var theyear = thedate.getFullYear( );
  
  for (i=0; i<=5; i++){
    eJaarBegin.options[i] = new Option(i + parseInt(theyear), i + parseInt(theyear));   
    eJaarEind.options[i] = new Option(i + parseInt(theyear), i + parseInt(theyear));   
  }
}

function calcAantalDagen(){
  var one_day = 1000*60*60*24;
  var iRes

  beginDatum = new Date(document.getElementById('cmbHireFromYear').value, document.getElementById('cmbHireFromMonth').value - 1, document.getElementById('cmbHireFromDay').value);
  eindDatum = new Date(document.getElementById('cmbHireTillYear').value, document.getElementById('cmbHireTillMonth').value - 1, document.getElementById('cmbHireTillDay').value);
  
  iRes = Math.ceil((eindDatum.getTime()-beginDatum.getTime()) / one_day) + 1;
  
  return iRes;
}

function changeDaysVan(){
  var sMaand;
  var sJaar;
  var iDaysInMonth;
  var eOption;
  
  eOption = document.getElementById('cmbHireFromDay');
  
  //de geselecteerde waarde opslaan voor later gebruik
  sMaand = document.getElementById('cmbHireFromMonth').value;
  sJaar = document.getElementById('cmbHireFromYear').value;
  sDag = document.getElementById('cmbHireFromDay').value;

  eOption.options.length = 0;

  iDaysInMonth = DaysInMonth(sJaar, sMaand - 1);
  
  //option list word opnieuw gevult
  for(i=1;i<=iDaysInMonth;i++) {
    eOption.options[i - 1] = new Option(i, i);
  }
  
  //als de geselecteerde dag niet in die maand bestaat word hij op de laatste dag gezet gezet
  if (iDaysInMonth < sDag){
    sDag=iDaysInMonth;
  }
  
  
  eOption.selectedIndex = sDag - 1;
}

function changeDaysTot(){
  var sMaand;
  var sJaar;
  var iDaysInMonth;
  var eOption;
  
  eOption = document.getElementById('cmbHireTillDay');
  
  //de geselecteerde waarde opslaan voor later gebruik
  sMaand = document.getElementById('cmbHireTillMonth').value;
  sJaar = document.getElementById('cmbHireTillYear').value;
  sDag = document.getElementById('cmbHireTillDay').value;

  eOption.options.length = 0;

  iDaysInMonth = DaysInMonth(sJaar, sMaand - 1);
  
  //option list word opnieuw gevult
  for(i=1;i<=iDaysInMonth;i++) {
    eOption.options[i - 1] = new Option(i, i);
  }
  
  
  //als de geselecteerde dag niet in die maand bestaat word hij op de laatste dag gezet gezet
  if (iDaysInMonth < sDag){
    sDag=iDaysInMonth;
  }
 
  eOption.selectedIndex = sDag - 1;
}