if (typeof (Page) == 'undefined') {
	var Page = new Object();
}

Page.Dialog = new Object();

Page.Dialog.show = function(id, params) {
	var w = 0, h = 0;
	var left = -1, top = -1;
	var bodyWidth = 0, bodyHeight = 0;
	var d = document.getElementById(id);
	
	if (d) {
		if (!params) params = {};
		
		Page.Dialog.get_Overlay().style.display = 'block';
				
		if (params.width) {
			d.style.width = params.width + 'px';
			w = params.width;
		}
		
		if (params.height) {
			d.style.height = params.height + 'px';
			h = params.height;
		}
		
		d.style.display = 'block';
		
		if (!w) w = d.clientWidth;
		if (!h) h = d.clientHeight;
		
		if (document.body.scrollHeight > document.body.offsetHeight)
        {
			bodyWidth = document.body.scrollWidth;
            bodyHeight = document.body.scrollHeight;
        } else {
			bodyWidth = document.body.offsetWidth;
			bodyHeight = document.body.offsetHeight;
        }

        if (params.top) top = params.top;
		if (params.left) left = params.left;
		
		if (left < 0) {
			left = parseInt((bodyWidth - w) / 2);
			if (left < 0) left = 100;
        }
		
		if (top < 0) {
			top = parseInt((bodyHeight - h) / 2);
			if (top < 0) top = 100;
		}
            		
		d.style.top = top + 'px';
		d.style.left = left + 'px';;
				
		if(params.onShow) {
			params.onShow();
		}
	}
}

Page.Dialog.hide = function(id) {
	var d = document.getElementById(id);
	
	if (d) {
		Page.Dialog.get_Overlay().style.display = 'none';
		d.style.display = 'none';
	}
}

Page.Dialog.get_Overlay = function() {
	var ret = null;
	var id = 'PageDialogOverlay';
	
	ret = document.getElementById(id);
	if (!ret) {
		ret = document.createElement('DIV');
		
		ret.id = id;
		ret.className = 'page-dialog-overlay';
		ret.style.display = 'none';
		
		document.body.appendChild(ret);
	}
	
	return ret;
}

Page.Dialog.LoginBox = new Object();

Page.Dialog.LoginBox.terminology = null;

Page.Dialog.LoginBox.show = function() {
	Page.Dialog.show('Global_LoginBox', { top: 300, width: 380, onShow: function () {
			if (!Page.Dialog.LoginBox.terminology) {
				Page.Dialog.LoginBox.terminology = {};
				
				Page.Dialog.LoginBox.terminology.SpecifyEmail = document.getElementById('Global_LoginBox_SpecifyEmail').value;
				Page.Dialog.LoginBox.terminology.SpecifyUserName = document.getElementById('Global_LoginBox_SpecifyUserName').value;
				Page.Dialog.LoginBox.terminology.SpecifyPassword = document.getElementById('Global_LoginBox_SpecifyPassword').value;
				Page.Dialog.LoginBox.terminology.Email = document.getElementById('Global_LoginBox_Email').value;
				Page.Dialog.LoginBox.terminology.GetPassword = document.getElementById('Global_LoginBox_GetPassword').value;
				Page.Dialog.LoginBox.terminology.Login = document.getElementById('Global_LoginBox_Login').value;
				Page.Dialog.LoginBox.terminology.Username = document.getElementById('Global_LoginBox_Username').value;
			}
			
			Page.Dialog.LoginBox.empty();
			
			document.getElementById('Global_UserName').focus();
		} 
	});
}

Page.Dialog.LoginBox.hide = function() {
	Page.Dialog.hide('Global_LoginBox');
}

Page.Dialog.LoginBox.validate = function() {
	var ret = false;
	var txUserName = document.getElementById('Global_UserName');
	var txPassword = document.getElementById('Global_Password');
	var isForgotPassword = document.getElementById('Global_ForgotPassword').checked;
	
	ret = !!(txUserName && txUserName.value && txUserName.value.length);
	if (!ret) {
		if (isForgotPassword) {
			alert(Page.Dialog.LoginBox.terminology.SpecifyEmail);
		} else {
			alert(Page.Dialog.LoginBox.terminology.SpecifyUserName);
		}
	} else {
		if (!isForgotPassword) {
			ret = !!(txPassword && txPassword.value && txPassword.value.length);
			if (!ret) {
				alert(Page.Dialog.LoginBox.terminology.SpecifyPassword);
			}
		}
	}
	
	return ret;
}

Page.Dialog.LoginBox.toggleForgotPassword = function() {
	var cmdSubmit = document.getElementById('Global_SignIn');
	var txUserName = document.getElementById('Global_UserName');
	var rowPassword = document.getElementById('Global_Password_Row');
    var lbUserName = document.getElementById('Global_UserName_Label');
    var rowRememberMe = document.getElementById('Global_RememberMe_Row');
	
	if (document.getElementById('Global_ForgotPassword').checked) {
		rowPassword.style.visibility = 'hidden';    
		rowRememberMe.style.visibility = 'hidden'; 
		lbUserName.innerHTML = Page.Dialog.LoginBox.terminology.Email;
		cmdSubmit.value = Page.Dialog.LoginBox.terminology.GetPassword;
	} else {
		rowPassword.style.visibility = '';    
		rowRememberMe.style.visibility = ''; 
		cmdSubmit.value = Page.Dialog.LoginBox.terminology.Login;
		lbUserName.innerHTML = Page.Dialog.LoginBox.terminology.Username;
	}
	
	setTimeout(function() {
		try {
			txUserName.focus();
		} catch (ex) { }
	}, 25);
}

Page.Dialog.LoginBox.empty = function() {
	var txUserName = document.getElementById('Global_UserName');
	var txPassword = document.getElementById('Global_Password');
	var chkRemember = document.getElementById('Global_RememberMe');
	
	txUserName.value = '';
	txPassword.value = '';
	chkRemember.checked = true;
	
	Page.Dialog.LoginBox.setForgotPassword(false);
}

Page.Dialog.LoginBox.setForgotPassword = function(isVisible) {
	var chkForgotPassword = document.getElementById('Global_ForgotPassword');
	
	isVisible = !!isVisible;
	chkForgotPassword.checked = isVisible;
	
	Page.Dialog.LoginBox.toggleForgotPassword();
}
