﻿var CD_tmr;
var CD_id;
var CD_vis;

function CD_HideList(id)
{
  CD_id=id;
  CD_tmr=window.setInterval(CD_HideListTimed,250);  
}
function CD_HideListTimed()
{
  window.clearInterval(CD_tmr);
  CD_tmr=null;
  document.getElementById(CD_Prefix+CD_id).style.display="none";
}
function CD_SelectItem(id)
{
  var sel=document.getElementById(CD_Prefix+id);  
  if(sel.selectedIndex>-1)
  {
    var fields=sel.options[sel.selectedIndex].value.split("~");
    if(id=="ArticleList")
    {
      document.getElementById(CD_Prefix+"ArticleId").value=fields[0];
      document.getElementById(CD_Prefix+"ArticleNameTextBox").value=fields[1];
    }
    else
    {
      document.getElementById(CD_Prefix+"AssociatedUserId").value=fields[0];
      document.getElementById(CD_Prefix+"CompanyTextBox").value=fields[1];
      document.getElementById(CD_Prefix+"LocationTextBox").value=fields[2];
      document.getElementById(CD_Prefix+"DateIncorporatedTextBox").value=fields[3];
      document.getElementById(CD_Prefix+"WebSiteTextBox").value=fields[4];
    }
  }
  sel.style.display="none";
}
function CD_PopulateList(id,id2,id3,id4)
{
  if(document.getElementById(CD_Prefix+id2)!=null)
  {
    var sel=document.getElementById(CD_Prefix+id);
    var filter=document.getElementById(CD_Prefix+id2).value.toUpperCase();
    var list=document.getElementById(CD_Prefix+id3).value.split("|");
    sel.innerHTML="";
    if(list!="")
    {
      for(var i=0; i<list.length; i++)
      {
        var items=list[i].split("~");
        if(items[1].substr(0,filter.length).toUpperCase()==filter)
        {
          var opt=document.createElement("option");
          opt.value=list[i];
          opt.text=items[1];
          sel.options.add(opt);
        }
      }
      if(sel.options.length==1&&sel.options[0].text.toUpperCase()==filter)
      {
        document.getElementById(CD_Prefix+id4).value=sel.options[0].value;
        CD_vis=false;
      }     
    }
    else
    {
      CD_vis=false;
    }
    sel.style.display=(CD_vis==true?"block":"none");
  }  
}

// Displays a JavaScript enabled calendar control.
function CD_DisplayCalendar(e,id,dateTextBox,dateFormat){
  var c=document.getElementById("CalendarControl");
  document.body.appendChild(c);
  c.style.left=(e.pageX || (e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) - 5);
  c.style.top=(e.pageY || (e.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) - 5);
  c.style.visibility="visible";
  var dateValue=document.getElementById(dateTextBox).value;
  CD_SetDate(id,dateValue,dateTextBox,dateFormat);
  document.getElementById(id+"closeCalendar").onclick=function CD_Close(){document.getElementById('CalendarControl').style.visibility='hidden';};
}
function CD_SetDate(id,dateValue,dateTextBox,dateFormat){
  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(id+"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].innerHTML==dateParts[1])){
      monthDd.options[i].selected=true;
      i=monthDd.options.length;
    }
    else{
      i++;
    }
  }   
  monthDd.onchange=function CD_NewMonth(){CD_SetDate(id,dateParts[0]+separator+(dateFormat=="dd/MM/yyyy"?monthDd.value:monthDd.options[monthDd.selectedIndex].innerHTML)+separator+dateParts[2],dateTextBox,dateFormat);}
  var yearDd=document.getElementById(id+"CalendarYear");  
  i=0;
  while(i<yearDd.options.length){
    if(yearDd.options[i].innerHTML==dateParts[2]){
      yearDd.selectedIndex=i;
      i=yearDd.options.length;
    }
    else{
      i++;
    }
  }      
  dateParts[2]=yearDd.value;
  yearDd.onchange=function CD_NewYear(){CD_SetDate(id,dateParts[0]+separator+dateParts[1]+separator+yearDd.value,dateTextBox,dateFormat);}
  var tbody=document.getElementById(id+"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=tbody.insertRow(-1);
    for(i=0;i<7;i++){
      var cell=row.insertCell(-1);
      var cellClass;
      if(d.getDate()==dateParts[0]&&d.getMonth()==monthDd.selectedIndex){
        cellClass="CurrentDay";        
      }
      else{
        if(d.getDay()==0||d.getDay()==6){
          cellClass="WeekEnd";
        }
        else{
          cellClass="WeekDay";
        }          
      } 
      cell.className=cellClass;
      cell.i_value=cellClass;
      if(d.getMonth()==monthDd.selectedIndex){      
        cell.onmouseover=function Change(){this.className='DayOver';}; 
        cell.onmouseout=function Change(){this.className=this.i_value;};
        cell.innerHTML="<span onclick=\"document.getElementById('"+dateTextBox+"').value='"+(d.getDate().toString().length<2?"0"+d.getDate().toString():d.getDate().toString())+separator+dateParts[1]+separator+dateParts[2]+"';document.getElementById('CalendarControl').style.visibility='hidden';\" >"+d.getDate()+"</span>";        
      }
      var currDay=d.getDay();            
      while(d.getDay()==currDay){
        d=new Date(d-0+86400000);
      }
    }
  }  
}
function CD_ShowDateSelection(o,id,cid)
{
  if(CD_IDS!="")
  {
    CD_IDS=CD_IDS+"|";
  }
  CD_IDS=CD_IDS+o.id+"~"+id+"~"+cid;
  CD_WindowResize();
}
function CD_HideDateSelection(id,cid)
{
  var ids=CD_IDS.split("|");
  CD_IDS="";
  for(var i=0;i<ids.length;i++)
  {
    if(ids[i].indexOf(id)==-1)
    {
      if(CD_IDS!="")
      {
        CD_IDS=CD_IDS+"|";
      }
      CD_IDS=CD_IDS+ids[i];  
    }
  }  
  document.getElementById(id).style.display="none";
  document.getElementById(cid).style.display="none";
}

function CD_WindowResize()
{
  var ids=CD_IDS.split("|");
  for(var i=0; i<ids.length; i++)
  {
    if(ids[i]!="")
    {
      var objs=ids[i].split("~");
      var pos=CD_findPos(document.getElementById(objs[0]));
      var sel=document.getElementById(objs[1]);
      sel.style.left=pos[0];  
      sel.style.top=pos[1];
      sel.style.display="block";
      var c=document.getElementById(objs[2]); 
      document.body.appendChild(c);
      c.style.width=(DLDLG_scrollWidth())+"px";
      c.style.height=(DLDLG_scrollHeight())+"px";
      c.style.display="block";      
    }
  }
}
function CD_findPos(obj) {
	var curleft=0;
	var curtop=0;
  if(obj.offsetParent){
    do{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
    }while(obj=obj.offsetParent);
  }
  return [curleft,curtop];
}