var errorDialog;
var errorFieldNames;

function appendErrorFieldName(fieldName){
	if(errorFieldNames){
		errorFieldNames += "," + fieldName;
	} else {
		errorFieldNames = fieldName;
	}
}

function getErrorFieldNames(){
	return errorFieldNames;
}

function useModalDialog() {
	//IE6 - true
	//IE7 - false
	//FF - false
  //alert(navigator.appVersion.indexOf("MSIE 6")>-1);
  //return navigator.appName == "Microsoft Internet Explorer" ? navigator.appVersion.indexOf("MSIE 6")>-1 : false;
  return false;
}

function createErrorDialog(url){
	//alert("createErrorDialog - START - " + url);
	var popup = new PopupWindow();
	popup.setSize(700, 400);
	popup.autoHide();
	popup.setUrl(url);
	errorDialog = popup;
	//alert("createErrorDialog - END");
}

function showErrorDialog(anchor,exitUrl){
	windowProperties = "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable,alwaysRaised,dependent,titlebar=no";
	errorDialog.setWindowProperties(windowProperties);
	var existExitUrl = typeof(exitUrl) != 'undefined';
	var modal = existExitUrl ? true : useModalDialog();
	errorDialog.showPopup(anchor,null,modal);
	if (existExitUrl){
		if (window.opener){
			try{
				window.opener.pippo = "pippo";
				//popup di stampa
				window.opener.location.href=exitUrl;
				window.close();
			} catch(e){
				if (e.message=="Autorizzazione negata"){
					window.location.href=exitUrl;
				}else{
					throw e;
				}
			}
		}else{
			window.location.href=exitUrl;
		}
	}
}

function handleErrorDialog(anchor,url,exitUrl){
	createErrorDialog(url);
	showErrorDialog(anchor,exitUrl);
}

//TODO move to EventUtils.js
function appendHandlerToOnLoadHandler(document, form, curHandler, appendingHandler, arg1, arg2, arg3, arg4, arg5){
    var newHandler = function(){
	    if (typeof dojo=='undefined' && curHandler!=null){	       
	        eval(curHandler(document,form));	        
	    }
        eval(appendingHandler(arg1, arg2, arg3, arg4,arg5));
    };
	if (typeof dojo=='undefined'){
	    document.body.onload = newHandler;
	}else{
		dojo.addOnLoad(newHandler);
	}
}

function appendErrorHandlerToOnLoadHandler(document, form, anchor, url, exitUrl){
	var handler = document.body.onload;
	var appendingHandler = handleErrorDialog;

	if (typeof customErrorAppendingHandlerToOnLoadHandler!="undefined"){
		appendingHandler = function(){
	  		eval(handleErrorDialog(anchor,url,exitUrl));
	        eval(customErrorAppendingHandlerToOnLoadHandler(document, form));
		};
	}
	appendHandlerToOnLoadHandler(document, form, handler, appendingHandler, anchor, url, exitUrl);
}

//TODO move to EventUtils.js
function appendAlertToOnLoadHandler(document, form, msg, close){
	var handler = document.body.onload;
	var appendingHandler = function(){
	   alert(msg); 
	   if (close){
	   		window.close();
	   }else{
	   	   if (typeof customErrorAppendingHandlerToOnLoadHandler!="undefined"){
		        eval(customErrorAppendingHandlerToOnLoadHandler(document, form));
		   }
	   }
	};
	appendHandlerToOnLoadHandler(document, form, handler, appendingHandler, msg, close);
}


