// 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;
}



function getWindowData()
{ 
    var widthViewport,heightViewport,xScroll,yScroll,widthTotal,heightTotal; 
    if (typeof window.innerWidth != 'undefined')
	{ 
        widthViewport= window.innerWidth-17; 
        heightViewport= window.innerHeight-17; 
    }
	else if(typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth !='undefined' && document.documentElement.clientWidth != 0)
	{ 
        widthViewport=document.documentElement.clientWidth; 
        heightViewport=document.documentElement.clientHeight; 
    }
	else
	{ 
        widthViewport= document.getElementsByTagName('body')[0].clientWidth; 
        heightViewport=document.getElementsByTagName('body')[0].clientHeight; 
    } 
    
	xScroll=self.pageXOffset || (document.documentElement.scrollLeft+document.body.scrollLeft); 
    yScroll=self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop); 
    widthTotal=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth,widthViewport); 
    heightTotal=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,heightViewport); 
    
	return [widthViewport,heightViewport,xScroll,yScroll,widthTotal,heightTotal]; 
} 






// build/show the dialog box, populate the data and call the fadeDialog function //
function showDialog(title,message,type,opM,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;
	  
	  
	  
	  sA = getWindowData();
	  	  
	  var width = sA[4];//pageWidth();
	  var height = sA[5];//pageHeight();
	  var left = sA[2];//leftPosition();
	  var top =  sA[3];//topPosition();
	  var dialogwidth = dialog.offsetWidth;
	  var dialogheight = dialog.offsetHeight;
	  var topposition = top + (height / 3) - (dialogheight / 2);
	  var leftposition = left + (width / 2) - (dialogwidth / 2);
	  topposition = topposition + 50;
	  
	  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 = height + 'px'; //content.offsetHeight + 'px';
	 
	 
	 if(opM)
	 {
		dialogmask.setAttribute('onclick','hideDialog()');
		dialogmask.onclick = hideDialog;
	 }	
	 	 
	 
	 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);
}

// 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);
  }
  
}