/************************************************************************************************************

************************************************************************************************************/
var ajaxObjects = new Array();
var stato = "c"
function clearAjaxSession(ajaxIndex) {
	if (ajaxObjects.length == ajaxIndex) 
		ajaxObjects.pop();		
	else
		ajaxObjects[ajaxIndex] = false;		
}
function isDefined(type) {
  return type != 'undefined' && type != 'unknown';
}
function gid(id) {
//	return document.getElementById(id);
  if (isDefined(typeof document.getElementById)) {
     return document.getElementById(id);
  } else if (isDefined(typeof document.all)) {
     return document.all[id];
  } else {
    throw new Error("Can not find a method to locate DOM element.");
    return null;
  }
}
function IEdetect(){
  if (navigator.userAgent.toLowerCase().indexOf("msie") != -1){
    return true;
  }  
}

//Per far COMPARIRE un elemento
function opacity_IN(id,op,duration){
 e = document.getElementById(id);
 e.style.display = 'block';
 e.style.visibility = 'visible';
 
 if(IEdetect()){
   e.style.filter='alpha(opacity='+op*10+')';
 }else{
   e.style.opacity = op/10;
 }
 op++;
 temp = duration/10;
 if(op <= 10){
  setTimeout("opacity_IN('"+id+"',"+op+","+duration+")", temp);
 }
}

//Per far SCOMPARIRE un elemento
function opacity_OUT(id,op,duration){
 e = document.getElementById(id);
 
 if(IEdetect()){
   e.style.filter='alpha(opacity='+op*10+')';
 }else{
   e.style.opacity = op/10;
 }
 op--;
 temp = duration/10;
 if(op >= 0){
  setTimeout("opacity_OUT('"+id+"',"+op+","+duration+")", temp);
  if(op == 0){
   e.style.display = 'none';
   e.style.visibility = 'hidden';  
  }
 }
}
function HTMLDecode(text)
{
	if ( !text )
		return '' ;
	text = text.replace( /&gt;/g, '>' ) ;
	text = text.replace( /&lt;/g, '<' ) ;
	text = text.replace( /&amp;/g, '&' ) ;
	text = text.replace( /&quot;/g, '"' ) ;
 	return decodeURI(text) ;
}
function checkEnter(e){ //e is event object passed from function invocation
	var characterCode // literal character code will be stored in this variable
	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e
		characterCode = e.which //character code is contained in NN4's which property
	} else {
		e = event
		characterCode = e.keyCode //character code is contained in IE's keyCode property
	}
	if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
  		return false;
	} else {
		return true;
	}
}
function XmlGet(xObj, row, fld) {
	var ret
	try {
		ret = xObj[row].getElementsByTagName(fld)[0].firstChild.data;
	} catch (er) {
		ret = null;
	}

	return ret;
}

function isValidObject(objToTest) {
  if (null == objToTest) return false;
  if ("undefined" == typeof(objToTest)) return false;
  return true;
}

function ajaxprocess(el)
{
	var fine = false
	var startprocess = 0
	var endprocess = 0
	var element = el
	function checkStato()
	{		
		if (fine != true) {
			var e = gid(element)
			var op = 1
			if (startprocess != endprocess) op = 0.5
 			if(IEdetect()) {
				e.innerHTML
				e.style.filter="alpha(opacity=" + (op * 100) + ")";
 			} else {
   				e.style.opacity = op;
			}
			if (startprocess == endprocess) {
				reset();
				fine = true;
			}
		}
	}
	function reset() {
		endprocess = 0;
		startprocess = 0;
		fine = false;
	}
	this.start = function() {
		startprocess++;
		checkStato();
	}
	this.end = function() {
		endprocess++;
		checkStato();
	}
	this.reset = function() { reset(); }
}

// Removes leading whitespaces
function LTrim( value ) {
  var re = /\s*((\S+\s*)*)/;
  return value.replace(re, "$1");
}
// Removes ending whitespaces
function RTrim( value ) {
  var re = /((\s*\S+)*)\s*/;
  return value.replace(re, "$1");
}
// Removes leading and ending whitespaces
function trim( value ) {
  return LTrim(RTrim(value));
}
// Date Validation Javascript
// copyright 30th October 2004, by Stephen Chapman
// http://javascript.about.com

// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.

function valDateFmt(datefmt) {myOption = -1;
for (i=0; i<datefmt.length; i++) {if (datefmt[i].checked) {myOption = i;}}
if (myOption == -1) {alert("You must select a date format");return ' ';}
return datefmt[myOption].value;}
function valDateRng(daterng) {myOption = -1;
for (i=0; i<daterng.length; i++) {if (daterng[i].checked) {myOption = i;}}
if (myOption == -1) {alert("You must select a date range");return ' ';}
return daterng[myOption].value;}
function stripBlanks(fld) {var result = "";for (i=0; i<fld.length; i++) {
if (fld.charAt(i) != " " || c > 0) {result += fld.charAt(i);
if (fld.charAt(i) != " ") c = result.length;}}return result.substr(0,c);}
var numb = '0123456789';
function isValid(parm,val) {if (parm == "") return true;
for (i=0; i<parm.length; i++) {if (val.indexOf(parm.charAt(i),0) == -1)
return false;}return true;}
function isNum(parm) {return isValid(parm,numb);}
var mth = new Array(' ','january','february','march','april','may','june','july','august','september','october','november','december');
var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
function validateDate(fld,fmt,rng) {
var dd, mm, yy;var today = new Date;var t = new Date;fld = stripBlanks(fld);
if (fld == '') return false;var d1 = fld.split('\/');
if (d1.length != 3) d1 = fld.split(' ');
if (d1.length != 3) return false;
if (fmt == 'u' || fmt == 'U') {
  dd = d1[1]; mm = d1[0]; yy = d1[2];}
else if (fmt == 'j' || fmt == 'J') {
  dd = d1[2]; mm = d1[1]; yy = d1[0];}
else if (fmt == 'w' || fmt == 'W'){
  dd = d1[0]; mm = d1[1]; yy = d1[2];}
else return false;
var n = dd.lastIndexOf('st');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('nd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('rd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('th');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf(',');
if (n > -1) dd = dd.substr(0,n);
n = mm.lastIndexOf(',');
if (n > -1) mm = mm.substr(0,n);
if (!isNum(dd)) return false;
if (!isNum(yy)) return false;
if (!isNum(mm)) {
  var nn = mm.toLowerCase();
  for (var i=1; i < 13; i++) {
    if (nn == mth[i] ||
        nn == mth[i].substr(0,3)) {mm = i; i = 13;}
  }
}
if (!isNum(mm)) return false;
dd = parseFloat(dd); mm = parseFloat(mm); yy = parseFloat(yy);
if (yy < 100) yy += 2000;
if (yy < 1582 || yy > 4881) return false;
if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
if (mm < 1 || mm > 12) return false;
if (dd < 1 || dd > day[mm-1]) return false;
t.setDate(dd); t.setMonth(mm-1); t.setFullYear(yy);
if (rng == 'p' || rng == 'P') {
if (t > today) return false;
}
else if (rng == 'f' || rng == 'F') {
if (t < today) return false;
}
else if (rng != 'a' && rng != 'A') return false;
return true;
}