// 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,type,autohide) {

  if(!type) {

    type = 'error';

  }

  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'

    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(dialogcontent);;

    dialogclose.setAttribute('onclick','hideDialog()');

    dialogclose.onclick = hideDialog;

  } 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');

    dialogmask = document.getElementById('dialog-mask');

    dialogmask.style.visibility = "visible";

    dialog.style.visibility = "visible";

  }

  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 = dialog.offsetWidth;

  var dialogheight = dialog.offsetHeight;

  var topposition = top + (height / 3) - (dialogheight / 2);

  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;

  dialogcontent.innerHTML = message;

  var content = document.getElementById(WRAPPER);

  dialogmask.style.height = content.offsetHeight + 'px';

  dialog.timer = setInterval("fadeDialog(1)", TIMER);

  if(autohide) {

    dialogclose.style.visibility = "hidden";

    window.setTimeout("hideDialog()", (autohide * 1000));

  } else {

    dialogclose.style.visibility = "visible";

  }

 

}



// hide the dialog box //

function hideDialog() {

  var dialog = document.getElementById('dialog');

  clearInterval(dialog.timer);

  dialog.timer = setInterval("fadeDialog(0)", TIMER);

   gotofocus();

}



// 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);

  }

}