var TIMER = 5;
var SPEED = 20;
var WRAPPER = 'wr_template_main_div';
var global_deny_dialogok;
var global_deny_close;
var global_dialogok_callback;


function pageWidth() {
  return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}
function pageHeight() {
  return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
}
function topPosition() {
  return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
}
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 showDialog(message, title, deny_close, deny_dialogok, dialog_width, autohide, dialogok_callback) {
	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';
		dialogheader.onmousedown=function(event){initMove(document.getElementById("dialog"), event); return false;}
		dialogheader.onmouseup = function(event){moveState = false;}
		dialogheader.onmousemove = function(event){moveHandler(document.getElementById("dialog"), event); }
		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';
		dialogmask.innerHTML='<!--[if lte IE 6.5]><iframe frameborder="0"></iframe><![endif]-->';
		//document.body.appendChild(dialogmask);
		//document.body.appendChild(dialog);
		document.getElementById("wr_dialog_box_div").appendChild(dialogmask);
		document.getElementById("wr_dialog_box_div").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;
	dialogcontent.className = "wr_dialog";
	dialogcontent.innerHTML = message+(deny_dialogok? '': '<br><br><a href="" onClick="'
		+(dialogok_callback? dialogok_callback.replace('"', '\\"'): 'hideDialog();')+' return false;" class="dialogok" id="dialogok">OK</a>');
	dialog.style.width = (dialog_width? dialog_width: 470);
	var width = pageWidth();
	var height = pageHeight();
	var left = leftPosition();
	var top = topPosition();
	var dialogwidth = dialog.offsetWidth;
	var dialogheight = dialog.offsetHeight;
	var topposition = top + (height / (dialogheight<height/2? 2.5: 2)) - (dialogheight / 2);
	var leftposition = left + (width / 2) - (dialogwidth / 2);
	dialog.style.top = topposition + "px";
	dialog.style.left = leftposition + "px";
	dialogheader.className = "wr_dialogheader";
	dialogtitle.innerHTML = (title? title: 'WEB-ROM.ru');
	var content = document.getElementById(WRAPPER);
	dialogmask.style.height = content.offsetHeight + 'px';
	dialog.timer = setInterval("fadeDialog(1)", TIMER);
	if (!deny_dialogok || !deny_close){
		if (!deny_dialogok){ document.getElementById('dialogok').focus(); }
		global_deny_dialogok=deny_dialogok;
		global_deny_close=deny_close;
		global_dialogok_callback=dialogok_callback;
		document.onkeydown = function(e) {
			e = e || window.event;
			if (!global_deny_dialogok && (e.keyCode==32 || e.keyCode==13)) {
				if (dialogok_callback){
					eval(dialogok_callback);
				}else{
					hideDialog();
				}
				return false;
			}
			if (!global_deny_close && e.keyCode==27) {
				hideDialog();
				return false;
			}
		}
	}
	dialogclose.style.visibility=(!deny_close? "visible": "hidden");
	if(autohide) {
		window.setTimeout("hideDialog()", (autohide * 1000));
	}
}

function showDialog_confirm(message, on_ok_click, dialog_width, no_hideDialog) {
	message=message+'<br><br><a href="" onClick="'+on_ok_click+'; '+(no_hideDialog? '': 'hideDialog();')+' return false;" class="dialogok" id="dialogok">OK</a> &nbsp; <a href="" onClick="hideDialog(); return false;" class="dialogok">Отмена</a>';
	showDialog(message, '', 0, 1, dialog_width);
	focus_by_id('dialogok');
}


function hideDialog() {
  var dialog = document.getElementById('dialog');
  clearInterval(dialog.timer);
  dialog.timer = setInterval("fadeDialog(0)", TIMER);
  document.onkeydown = '';
}

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);
	}
}



var moveState = false;
var x0, y0;
var divX0, divY0;

function defPosition(event) {
    var x = y = 0;
    if (document.attachEvent != null) { // Internet Explorer & Opera
        x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
    }
    if (!document.attachEvent && document.addEventListener) { // Gecko
        x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
    }
    return {x:x, y:y};
}

function initMove(div, event) {
    var event = event || window.event;
    x0 = defPosition(event).x;
    y0 = defPosition(event).y;
    divX0 = parseInt(div.style.left);
    divY0 = parseInt(div.style.top);
    moveState = true;
}

document.onmouseup = function() {
    moveState = false;
}

function moveHandler(div, event) {
    var event = event || window.event;
    if (moveState) {
        div.style.left = divX0 + defPosition(event).x - x0;
        div.style.top  = divY0 + defPosition(event).y - y0;
    }
}

