﻿function INPUT_DisplayOtherInput(e, id, dropdownID)
{
  var entrylabel=document.getElementById("OtherSourceSpan");
  var entrytext=document.getElementById("OtherSourceTextBox");
  var dropdown=document.getElementById(dropdownID);
  if (dropdown.value == '1')
  {
    entrylabel.style.display = "block";
    entrytext.style.display = "block";
  }
  else
  {
    entrylabel.style.display = "none";
    entrytext.style.display = "none";
  }
}


function SELECTDATE_DisplayCalendar(e,id,dateTextBox,dateFormat,direction){
  var c=document.getElementById("calendarControl");
  document.body.appendChild(c);

  c.style.left=((e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) - 5);
  c.style.top=((e.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) - 5);
  
  c.style.left="830px";
  c.style.top="530px";

  c.style.display="block";
  var dateValue=SELECTDATE_GetDateTextBoxValue(dateTextBox);  
  SELECTDATE_SetDate(id,dateValue,dateTextBox,dateFormat,direction);
  document.getElementById("closeCalendar").onclick=function SELECTDATE_Close(){document.getElementById('calendarControl').style.display='none';};
}
function SELECTDATE_SetDate(id,dateValue,dateTextBox,dateFormat,direction){
  var separator=dateFormat=="dd/MM/yyyy"?"/":" ";
  var d;  
  if(dateValue==""){
    d=new Date()    
    var months=dateFormat=="dd/MM/yyyy"?new Array("01","02","03","04","05","06","07","08","09","10","11","12"):new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
    dateValue=(d.getDate().toString().length==1?"0"+d.getDate():d.getDate())+separator+months[d.getMonth()]+separator+d.getFullYear();    
  }    
  var dateParts=dateValue.split(separator);  
  var monthDd=document.getElementById("calendarMonth");
  var i=0;
  while(i<monthDd.options.length){
    if((dateFormat=="dd/MM/yyyy"&&monthDd.options[i].value==dateParts[1])||(dateFormat!="dd/MM/yyyy"&&monthDd.options[i].text==dateParts[1])){
      monthDd.options[i].selected=true;
      i=monthDd.options.length;
    }
    else{
      i++;
    }
  }  
  monthDd.onchange=function SELECTDATE_NewMonth(){SELECTDATE_SetDate(id,dateParts[0]+separator+(dateFormat=="dd/MM/yyyy"?monthDd.value:monthDd.options[monthDd.selectedIndex].text)+separator+dateParts[2],dateTextBox,dateFormat,direction);}
  var yearDd=document.getElementById("calendarYear");
  i=0;
  while(i<yearDd.options.length){
    if(yearDd.options[i].text==dateParts[2]){
      yearDd.selectedIndex=i;
      i=yearDd.options.length;
    }
    else{
      i++;
    }
  }  
  dateParts[2]=yearDd.value;
  yearDd.onchange=function SELECTDATE_NewYear(){SELECTDATE_SetDate(id,dateParts[0]+separator+dateParts[1]+separator+yearDd.value,dateTextBox,dateFormat,direction);}
  var tbody=document.getElementById("dateRange");
  for(i=tbody.childNodes.length-1;i>=0;i--){
    tbody.removeChild(tbody.childNodes[i]);
  }
  d=new Date(dateParts[2], monthDd.selectedIndex, 1);
  d=new Date(d-86400000*d.getDay());  
  while((d.getMonth()<=monthDd.selectedIndex&&d.getFullYear()==dateParts[2])||(d.getMonth()==11&&monthDd.selectedIndex==0)){
    var row=document.createElement("tr");
    for(i=0;i<7;i++){
      var cell=document.createElement("td");      
      if(d.getDate()==dateParts[0]&&d.getMonth()==monthDd.selectedIndex){
        cell.className="currentDay";
      }
      else{
        if(d.getDay()==0||d.getDay()==6){
          cell.className="weekEnd";
        }
        else{
          cell.className="weekDay";
        }          
      }        
      if(d.getMonth()==monthDd.selectedIndex){      
        cell.innerHTML="<span onclick=\"SELECTDATE_SetDateTextBoxValue('"+dateTextBox+"','"+(d.getDate().toString().length<2?"0"+d.getDate().toString():d.getDate().toString())+separator+dateParts[1]+separator+dateParts[2]+"',"+direction+");document.getElementById('calendarControl').style.display='none';\" >"+d.getDate()+"</span>";        
      }
      row.appendChild(cell);
      var currDay=d.getDay();            
      while(d.getDay()==currDay){
        d=new Date(d-0+86400000);
      }
    }
    tbody.appendChild(row);
  }  
}


function SELECTDATE_SetDateTextBoxValue(dateTextBox,value,reverse){  
  var ids=dateTextBox.split("|");
  for(i=0;i<ids.length;i++){
    var currEnd=document.getElementById(ids[i]).value;
    if(i==0){
      document.getElementById(ids[i]).value=value;
    }
    else{
      var start;
      var end;
      if(value.length==11){
        start=value.substr(7,4)+SELECTDATE_MonthToNumber(value)+value.substr(0,2);
        end=currEnd.substr(7,4)+SELECTDATE_MonthToNumber(currEnd)+currEnd.substr(0,2);
      }
      else{
        start=value.substr(7,4)+value.substr(3,2)+value.substr(0,2);
        end=currEnd.substr(7,4)+currEnd.substr(3,2)+currEnd.substr(0,2);
      }
      if((end<start&&!reverse)||(end>start&&reverse)){
        document.getElementById(ids[i]).value=value;
      }
    }
  }
}
function SELECTDATE_GetDateTextBoxValue(dateTextBox){
  var ids=dateTextBox.split("|");
  return(document.getElementById(ids[0]).value); 
}
function SELECTDATE_MonthToNumber(value){
  var num;
  switch(value.substr(3,3)){
    case "Jan":
      num="01";
      break;
    case "Feb":
      num="02";
      break;
    case "Mar":
      num="03";
      break;
    case "Apr":
      num="04";
      break;
    case "May":
      num="05";
      break;
    case "Jun":
      num="06";
      break;
    case "Jul":
      num="07";
      break;
    case "Aug":
      num="08";
      break;
    case "Sep":
      num="09";
      break;
    case "Oct":
      num="10";
      break;
    case "Nov":
      num="11";
      break;
    case "Dec":
      num="12";
      break;
  }
  return(num);
}