﻿
var imagePath = "/App_Themes/Default/Images/";
var fontFamily = "verdana";
var fontSize = "9px";
var mainBG = "#ece9d8";
var outerBorderColor = "black";
var outerBGColor = "white";
var titleFontSize = "11px";
var titleBGColor = "#A34149";
var titleColor = "#ffffff";
var mouseOverBGColor = "#A19374";
var mouseOverBorder = "1px solid black";
var textColor = "black";
var suffixColor = "#808080";

var ie=document.all;
var dom=document.getElementById;
var ns4=document.layers;
var bShow=false;
var textCtl;

function setTimePicker(t) {
//textCtl.value=t;
document.getElementById(textCtl).value=t;
closeTimePicker();
}

function refreshTimePicker(mode) {

if (mode==0)
  { 
    suffix="AM"; 
  }
else
  { 
    suffix="PM"; 
  }

sHTML = "<table><tr><td><table cellpadding=2 cellspacing=0 bgcolor='" + mainBG + "'>";
for (i=0;i<=11;i++) {

  sHTML+="<tr align=right style='font-family:" + fontFamily + ";font-size:" + fontSize + ";'>";

  if (i==0) {
    hr = 12;
  }
  else {
    hr=i;
  }  

  for (j=0;j<4;j++) {
    sHTML+="<td width=57 style='cursor:hand; border: 1px solid " + mainBG + "' onmouseover='this.style.backgroundColor=\"" + mouseOverBGColor + "\", this.style.border=\"" + mouseOverBorder + "\"' onmouseout='this.style.backgroundColor=\"\", this.style.border=\"1px solid " + mainBG + "\"' onclick='setTimePicker(\""+ hr + ":" + padZero(j*15) + " " + suffix + "\")'><a style='text-decoration:none;color:" + textColor + "' href='javascript:setTimePicker(\""+ hr + ":" + padZero(j*15) + " " + suffix + "\")'>" + hr + ":"+padZero(j*15) + "<font color=\"" + suffixColor + "\">" + suffix + "</font></a></td>";
  }

  sHTML+="</tr>";
}
sHTML += "</table></td></tr></table>";
document.getElementById("timePickerContent").innerHTML = sHTML;
}

if (dom){
document.write ("<div id='timepicker' style='z-index:+999;position:absolute;visibility:hidden;'><table style='border: 1px solid " + outerBorderColor + "' bgcolor='" + outerBGColor + "' cellpadding=0><tr bgcolor='" + titleBGColor + "'><td><table cellpadding=0 cellspacing=0 width='100%' background='" + imagePath + "titleback.gif'><tr valign=bottom height=21><td style='font-family:" + fontFamily + ";font-size:" + titleFontSize + ";color:" + titleColor + ";padding:3px' valign=center><B>&nbsp;&nbsp;Select a Time&nbsp;&nbsp;</B></td><td><img id='iconAM' src='" + imagePath + "am1.png' onclick='document.getElementById(\"iconAM\").src=\"" + imagePath + "am1.png\";document.getElementById(\"iconPM\").src=\"" + imagePath + "pm2.png\";refreshTimePicker(0)' style='cursor:hand'></td><td><img id='iconPM' src='" + imagePath + "pm2.png' onclick='document.getElementById(\"iconAM\").src=\"" + imagePath + "am2.png\";document.getElementById(\"iconPM\").src=\"" + imagePath + "pm1.png\";refreshTimePicker(1)' style='cursor:hand'></td><td align=right valign=center>&nbsp;<img onclick='closeTimePicker()' src='" + imagePath + "close.png'  STYLE='cursor:hand'>&nbsp;</td></tr></table></td></tr><tr><td colspan=2><span id='timePickerContent'></span></td></tr></table></div>");
refreshTimePicker(0);
}

var crossobj=(dom)?document.getElementById("timepicker").style : ie? document.all.timepicker : document.timepicker;
var currentCtl

function selectTime(ctl,ctl2) {

if(!ie) {
    var x = ctl.offsetLeft;
    var y = ctl.offsetTop + ctl.offsetHeight;
    
    document.getElementById("timepicker").style.left = x + "px";
    document.getElementById("timepicker").style.top = y + 2 + "px";
}

var leftpos=0
var toppos=0

textCtl=ctl2;
currentCtl = ctl
currentCtl.src=imagePath + "timepicker2.gif";

aTag = ctl
do {
  aTag = aTag.offsetParent;
  leftpos  += aTag.offsetLeft;
  toppos += aTag.offsetTop;
} while(aTag.tagName!="BODY");

crossobj.left =  ctl.offsetLeft  + leftpos 
crossobj.top = ctl.offsetTop +  toppos + ctl.offsetHeight +  2 

crossobj.visibility=(dom||ie)? "visible" : "show"
hideElement( 'SELECT', document.getElementById("calendar") );
hideElement( 'APPLET', document.getElementById("calendar") );      
bShow = true;
}

// hides <select> and <applet> objects (for IE only)
function hideElement( elmID, overDiv ){
if( ie ){
  for( i = 0; i < document.all.tags( elmID ).length; i++ ){
    obj = document.all.tags( elmID )[i];
    if( !obj || !obj.offsetParent ){
        continue;
    }
      // Find the element's offsetTop and offsetLeft relative to the BODY tag.
      objLeft   = obj.offsetLeft;
      objTop    = obj.offsetTop;
      objParent = obj.offsetParent;
      while( objParent.tagName.toUpperCase() != "BODY" )
      {
      objLeft  += objParent.offsetLeft;
      objTop   += objParent.offsetTop;
      objParent = objParent.offsetParent;
      }
      objHeight = obj.offsetHeight;
      objWidth = obj.offsetWidth;
      if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
      else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
      else if( overDiv.offsetTop >= ( objTop + objHeight + obj.height ));
      else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
      else
      {
      obj.style.visibility = "hidden";
      }
  }
}
}
 
//unhides <select> and <applet> objects (for IE only)
function showElement( elmID ){
if( ie ){
  for( i = 0; i < document.all.tags( elmID ).length; i++ ){
    obj = document.all.tags( elmID )[i];
    if( !obj || !obj.offsetParent ){
        continue;
    }
    obj.style.visibility = "";
  }
}
}

function closeTimePicker() {
crossobj.visibility="hidden"
showElement( 'SELECT' );
showElement( 'APPLET' );
currentCtl.src=imagePath + "timepicker.gif"
}

document.onkeypress = function hideTimePicker1 () { 
if (event.keyCode==27){
  if (!bShow){
    closeTimePicker();
  }
}
}

function isDigit(c) {

return ((c=='0')||(c=='1')||(c=='2')||(c=='3')||(c=='4')||(c=='5')||(c=='6')||(c=='7')||(c=='8')||(c=='9'))
}

function isNumeric(n) {

num = parseInt(n,10);

return !isNaN(num);
}

function padZero(n) {
v="";
if (n<10){ 
  return ('0'+n);
}
else
{
  return n;
}
}

function validateDatePicker(ctl) {

t=ctl.value.toLowerCase();
t=t.replace(" ","");
t=t.replace(".",":");
t=t.replace("-","");

if ((isNumeric(t))&&(t.length==4))
{
  t=t.charAt(0)+t.charAt(1)+":"+t.charAt(2)+t.charAt(3);
}

var t=new String(t);
tl=t.length;

if (tl==1 ) {
  if (isDigit(t)) {
    ctl.value=t+":00 AM";
  }
  else {
    return false;
  }
}
else if (tl==2) {
  if (isNumeric(t)) {
    if (parseInt(t,10)<13){
      if (t.charAt(1)!=":") {
        ctl.value= t + ':00 AM';
      } 
      else {
        ctl.value= t + '00 AM';
      }
    }
    else if (parseInt(t,10)==24) {
      ctl.value= "0:00 AM";
    }
    else if (parseInt(t,10)<24) {
      if (t.charAt(1)!=":") {
        ctl.value= (t-12) + ':00 PM';
      } 
      else {
        ctl.value= (t-12) + '00 PM';
      }
    }
    else if (parseInt(t,10)<=60) {
      ctl.value= '0:'+padZero(t)+' AM';
    }
    else {
      ctl.value= '1:'+padZero(t%60)+' AM';
    }
  }
  else
       {
    if ((t.charAt(0)==":")&&(isDigit(t.charAt(1)))) {
      ctl.value = "0:" + padZero(parseInt(t.charAt(1),10)) + " AM";
    }
    else {
      return false;
    }
  }
}
else if (tl>=3) {

  var arr = t.split(":");
  if (t.indexOf(":") > 0)
  {
    hr=parseInt(arr[0],10);
    mn=parseInt(arr[1],10);

    if (t.indexOf("PM")>0) {
      mode="PM";
    }
    else {
      mode="AM";
    }

    if (isNaN(hr)) {
      hr=0;
    } else {
      if (hr>24) {
        return false;
      }
      else if (hr==24) {
        mode="AM";
        hr=0;
      }
      else if (hr>12) {
        mode="PM";
        hr-=12;
      }
    }
  
    if (isNaN(mn)) {
      mn=0;
    }
    else {
      if (mn>60) {
        mn=mn%60;
        hr+=1;
      }
    }
  } else {

    hr=parseInt(arr[0],10);

    if (isNaN(hr)) {
      hr=0;
    } else {
      if (hr>24) {
        return false;
      }
      else if (hr==24) {
        mode="AM";
        hr=0;
      }
      else if (hr>12) {
        mode="PM";
        hr-=12;
      }
    }

    mn = 0;
  }
  
  if (hr==24) {
    hr=0;
    mode="AM";
  }
  ctl.value=hr+":"+padZero(mn)+" "+mode;
}
}