// global variables //
var TIMER = 5;
var SPEED = 10;
var WRAPPER = 'content';

// calculate the current window width //
function pageWidth() {
  return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}

// calculate the current window height //
function pageHeight() {
  return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
}

// calculate the current window vertical offset //
function topPosition() {
  return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
}

// calculate the position starting at the left of the window //
function leftPosition() {
  return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}

// build/show the dialog box, populate the data and call the fadeDialog function //
function showDialog(title,message,dWidth,dHeight,type,autohide,datedialog) {
  if(!type) {
    type = 'prompt';
  }
  var dialog;
  var dialogheader;
  var dialogclose;
  var dialogtitle;
  var dialogcontent;
  var dialogmask;
  if(!document.getElementById('dialog')) {
    dialog = document.createElement('div');
    dialog.id = 'dialog';
    dialogheader = document.createElement('div');
    dialogheader.id = 'dialog-header';
    dialogtitle = document.createElement('div');
    dialogtitle.id = 'dialog-title';
    dialogclose = document.createElement('div');
    dialogclose.id = 'dialog-close'
    dialogdaterangecontent = document.createElement('div');
    dialogdaterangecontent.id = 'dialog-daterange-content';
    dialogcontent = document.createElement('div');
    dialogcontent.id = 'dialog-content';
    dialogmask = document.createElement('div');
    dialogmask.id = 'dialog-mask';
    document.body.appendChild(dialogmask);
    document.body.appendChild(dialog);
    dialog.appendChild(dialogheader);
    dialogheader.appendChild(dialogtitle);
    dialogheader.appendChild(dialogclose);
    dialog.appendChild(dialogdaterangecontent);;
    dialog.appendChild(dialogcontent);;
    dialogclose.setAttribute('onclick','hideDialog()');
    dialogclose.onclick = hideDialog;
	dialogdaterangecontent.className = type;
	if(datedialog){
		var ctx = document.getElementById('ctx').value;
		
		message = '<div style="text-align:left">';
		message += '<input onclick="selectDateRadio(this.id);" id="before" type="radio" name="rangeType" value="before" checked>Before<br>';
		message += '<input onclick="selectDateRadio(this.id);" id="after" type="radio" name="rangeType" value="after">After<br>';
		message += '<input onclick="selectDateRadio(this.id);" id="between" type="radio" name="rangeType" value="between">Between';
		message += '</div><br><br><div style="text-align:left;padding-left:10px">';
		message += '<input type="text" id="fromDate"><a name="buttonCalendar1" onMouseOver="buttonUp(this.name);" onMouseOut="buttonOut(this.name);" onMouseDown="buttonDown(this.name);" onclick="pickDate(this,\'fromDate\');"><img style="vertical-align:-8px" id="buttonCalendar1" src="'+ctx+'/images/buttons/buttonCalendar.gif" title="Choose Date"/></a>';
		message += '<div id="toDateCell" style="visibility:hidden"> and <br>';
		message += '<input type="text" id="toDate"><a name="buttonCalendar2" onMouseOver="buttonUp(this.name);" onMouseOut="buttonOut(this.name);" onMouseDown="buttonDown(this.name);" onclick="pickDate(this,\'toDate\');"><img style="vertical-align:-8px" id="buttonCalendar2" src="'+ctx+'/images/buttons/buttonCalendar.gif" title="Choose Date"/></a>';
		message += '</div></div><br>';
		message += '<a name="buttonDone3" onclick="dateDone();" onMouseOver="buttonUp(this.name);" onMouseOut= "buttonOut(this.name);" onMouseDown="buttonDown(this.name);" onMouseUp="buttonUp(this.name);"><img src="'+ctx+'/images/buttons/buttonDone.gif" id="buttonDone3"/></a>';
		message += '<a name="buttonClear3" onclick="clearFilterAndClose();" onMouseOver="buttonUp(this.name);" onMouseOut= "buttonOut(this.name);" onMouseDown="buttonDown(this.name)" onMouseUp="buttonUp(this.name)"><img src="'+ctx+'/images/buttons/buttonClear.gif" id="buttonClear3"/></a>';
		message += '<a name="buttonCancel3" onclick="hideDialog();" onMouseOver="buttonUp(this.name);" onMouseOut= "buttonOut(this.name);" onMouseDown="buttonDown(this.name)" onMouseUp="buttonUp(this.name)"><img src="'+ctx+'/images/buttons/buttonCancel.gif" id="buttonCancel3"/></a>';
		dialogdaterangecontent.innerHTML = message;
	}
  } else {
    dialog = document.getElementById('dialog');
    dialogheader = document.getElementById('dialog-header');
    dialogtitle = document.getElementById('dialog-title');
    dialogclose = document.getElementById('dialog-close');
    dialogcontent = document.getElementById('dialog-content');
    dialogdaterangecontent = document.getElementById('dialog-daterange-content');
    dialogmask = document.getElementById('dialog-mask');
    dialogmask.style.visibility = "visible";
    dialog.style.visibility = "visible";
  }
  dialogcontent.style.overflow = 'auto';
  dialog.style.opacity = .00;
  dialog.style.filter = 'alpha(opacity=0)';
  dialog.alpha = 0;
  var width = pageWidth();
  var height = pageHeight();
  var left = leftPosition();
  var top = topPosition();
  var dialogwidth;
  if (dWidth!=null) {
	  dialog.style.width = dWidth + "px";
	  dialogwidth = dWidth;
	  dialogtitle.style.width = (dWidth - 10) + "px";
	  dialogheader.style.width = (dWidth - 10) + "px";
	  dialogcontent.style.width = (dWidth - 10) + "px";
  }
  else {
	  dialogwidth = dialog.offsetWidth;
  }
  var dialogheight;
  if (dHeight!=null) {
	  if(dHeight>(pageHeight()*0.75))
		  dHeight = pageHeight()*0.75;
	  
	  dialog.style.height = dHeight + "px";
	  dialogheight = dHeight;
	  
	  if (navigator.appName == "Microsoft Internet Explorer"){
		document.getElementById("dialog-daterange-content").style.height = (dHeight - 50) + "px";
		document.getElementById("dialog-content").style.height = (dHeight - 50) + "px";
	  }
	  else {
	    document.getElementById("dialog-daterange-content").style.height = (dHeight - 65) + "px";
	    document.getElementById("dialog-content").style.height = (dHeight - 65) + "px";
	   }
  }
  else {
	  dialogheight = dialog.offsetHeight;
  }
  var topposition = top + (height / 3) - (dialogheight / 2) + 55;
  var leftposition = left + (width / 2) - (dialogwidth / 2);
  dialog.style.top = topposition + "px";
  dialog.style.left = leftposition + "px";
  dialogheader.className = type + "header";
  dialogtitle.innerHTML = title;
  dialogcontent.className = type;
	
	if(datedialog){
    	dialogdaterangecontent.style.display = "block";
    	dialogcontent.style.display = "none";
	} else {
  		dialogcontent.innerHTML = message;
    	dialogdaterangecontent.style.display = "none";
    	dialogcontent.style.display = "block";
  	}
  var content = document.getElementById(WRAPPER);
  dialogmask.style.height = dialogheight + 'px';
  dialog.timer = setInterval("fadeDialog(1)", TIMER);
  if(autohide) {
    dialogclose.style.visibility = "hidden";
    window.setTimeout("hideDialog()", (autohide * 1000));
  } else {
    dialogclose.style.visibility = "visible";
  }
}

function showDateRangeDialog(){
	showDialog('Specify Date Range','',400,280,'prompt',false,true);
}

// hide the dialog box //
function hideDialog() {
  var dialog = document.getElementById('dialog');
  clearInterval(dialog.timer);
  dialog.timer = setInterval("fadeDialog(0)", TIMER);
}

// fade-in the dialog box //
function fadeDialog(flag) {
  if(flag == null) {
    flag = 1;
  }
  var dialog = document.getElementById('dialog');
  var value;
  if(flag == 1) {
    value = dialog.alpha + SPEED;
  } else {
    value = dialog.alpha - SPEED;
  }
  dialog.alpha = value;
  dialog.style.opacity = (value / 100);
  dialog.style.filter = 'alpha(opacity=' + value + ')';
  if(value >= 99) {
    clearInterval(dialog.timer);
    dialog.timer = null;
  } else if(value <= 1) {
    dialog.style.visibility = "hidden";
    document.getElementById('dialog-mask').style.visibility = "hidden";
    clearInterval(dialog.timer);
  }
}