function isReadonlyElement(element) {
	if (element==null || element.readOnly==null){
		return false;
	}
	return element.readOnly;
}

function isDisabledElement(element) {
	if (element==null || element.disabled==null){
		return false;
	}
	return element.disabled;
}

function isActiveElement(element) {
	return isInputTag(element)
	       || isSelectTag(element)
	       || isAnchorTag(element);
}

function isInputTag(tag) {
	if (tag==null){
		return false;
	}
	return tag.tagName=="INPUT";
}

function isTextareaTag(tag) {
	if (tag==null){
		return false;
	}
	return tag.tagName=="TEXTAREA";
}

function isSelectTag(tag) {
	if (tag==null){
		return false;
	}
	return tag.tagName=="SELECT";
}

function isAnchorTag(tag) {
	if (tag==null){
		return false;
	}
	return tag.tagName=="A";
}

function isTextElement(element) {
	if (element==null || element.type==null){
		return false;
	}
	return element.type=="text";
}

function isButtonElement(element) {
	if (element==null || element.type==null){
		return false;
	}
	return element.type=="button";
}

function isSubmitElement(element) {
	if (element==null || element.type==null){
		return false;
	}
	return element.type=="submit";
}

function isRadioElement(element) {
	if (element==null || element.type==null){
		return false;
	}
	if (element.length){
		return element[0].type=="radio";
	}else{
		return element.type=="radio";
	}
}

function isSelectElement(element) {
	if (element==null || element.type==null){
		return false;
	}
	return element.type=="select-one"
	       || element.type=="select-multiple";
}

function isHiddenElement(element) {
	if (element==null || element.type==null){
		return false;
	}
	//31/01/2008-bolofel
	return element.tagName=="INPUT" && element.type=="hidden";
}

function cleanUpFieldsOnChangeValue(event){
	element = getEventSourceElement(event);
	oldValue = element.oldValue
	newValue = element.value;
	if (newValue!=oldValue){
	   cleanUpFieldsByEvent.apply(cleanUpFieldsByEvent, arguments);
	}
}

function preserveFieldOldValue(event){
  	element = getEventSourceElement(event);
	element.oldValue = element.value;
}

function cleanUpFieldsByEvent(event) {
	if (arguments.length==1){
		return;
	}
	for (var i = 1; i < arguments.length; i++) {
	    name = arguments[i];
		element = getElementByEvent(event,name);
		if (element!=null){
			element.value='';
		}
	}
}

var lastFocusField = "";
function onFocusField(obj){
	lastFocusField = obj.id;
}

var doubleSubmitCheckToken = false;
function getDoubleSubmitCheckToken(){
	//18/05/2009-UGF05565
	try{
	   return window.top.doubleSubmitCheckToken;
	} catch (e){
	   return doubleSubmitCheckToken;
	}
}

function setDoubleSubmitCheckToken(valore){
	//18/05/2009-UGF05565
	try{
  	   window.top.doubleSubmitCheckToken = valore;
	} catch (e){
	   doubleSubmitCheckToken = valore;
	}
	
}

function executeFormSubmit(disableDoubleSubmitCheck){
    if (disableDoubleSubmitCheck){
        setDoubleSubmitCheckToken(false);
    	return true;
    }
    if(!getDoubleSubmitCheckToken()){
        setDoubleSubmitCheckToken(true);
        
		if(enablePageReposition){
			/*
			* mamato: cerco di trovare il form di cui sto facendo il post
			* per aggiungere alla action il parametro sul l'ultimo campo
			* che ha avuto il focus
			*/
	        try{
	        	var myObj;
	        	var myAction;

	        	if(event.srcElement.tagName=='FORM'){
	        		myObj = event.srcElement;
	        	}
	        	if(event.srcElement.tagName=='INPUT'){
	        		myObj = event.srcElement.form;
	        	}
	        	
	        	myAction = myObj.action;
	        	
	        	if(myAction.indexOf("?") > 0){
	        		myAction = myAction + "&";
	        	} else {
	        		myAction = myAction + "?";
	        	}
	        	myAction = myAction + "f=" + lastFocusField;
	        	
	        	myObj.action = myAction;
	       } catch (e){}
		}

        return true;
    } else {
        return false;
    }
}

