function postFormData( formElem, callbackName) { // composizione dei parametri var formParam = "dosearch=true"; var formInput; for( var i=0; i < formElem.elements.length; i++ ) { formInput = formElem.elements[i]; if (!formInput.disabled) { if( formInput.type == 'text' ) formParam += "&" + formInput.name + "=" + encodeURIComponent(formInput.value); else if( formInput.type == 'hidden' ) formParam += "&" + formInput.name + "=" + encodeURIComponent(formInput.value); else if( formInput.type == 'radio' && formInput.checked ) formParam += "&" + formInput.name + "=" + encodeURIComponent(formInput.value); else if (formInput.type == 'checkbox' && formInput.checked ) formParam += "&" + formInput.name + "=" + encodeURIComponent(formInput.value); else if( formInput.type == 'select-one' && formInput.options[ formInput.selectedIndex ].value != "" ) formParam += "&" + formInput.name + "=" + encodeURIComponent(formInput.options[ formInput.selectedIndex ].value); else if( formInput.type == 'select-multiple' ) { for( var j=0; j < formInput.options.length; j++ ) if( formInput.options[j].selected ) formParam += "&" + formInput.name + "=" + encodeURIComponent(formInput.options[j].value); } else if( formInput.type == 'textarea' ) { formParam += "&" + formInput.name + "=" + encodeURIComponent(formInput.value); } // else // alert( formInput.name + "/" + formInput.type + " non supported" ); } } // alert( formParam ); // start dell'immagine di loading startLoading(); /* alert( "formParam = " + formParam + "\n" + "action = " + formElem.action + "\n" ); */ // esecuzione della richiesta req = getXmlHttp(); if(req!=null) { req.onreadystatechange = eval( callbackName ); req.open( "post", formElem.action, true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send( formParam ); } return false; } /* esegue la get di e richiama la funzione il cui nome � in */ function getUrl( url, callbackName ) { // esecuzione della richiesta req = getXmlHttp(); if(req!=null) { req.onreadystatechange = eval( callbackName ); //alert( url + ", " + callbackName ); //req.onreadystatechange = callbackName; req.open( "get", url, true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send( null ); } startLoading(); } /* funzione cross-browser per ottenere l'oggetto XmlHttpRequest */ function getXmlHttp() { req = null; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } return req; } /* fa il trim di una stringa */ function trim(stringa) { reTrim = /\s+$|^\s+/g; return stringa.replace(reTrim,""); } /* fa partire il loading */ function startLoading() { if (document.getElementById("loadingTr")) document.getElementById("loadingTr").innerHTML = "Loading details..."; } /* ferma il loading */ function stopLoading() { if(document.getElementById("loadingTr")) document.getElementById("loadingTr").style.display = "none"; } /************** QueryResult JS Object *******************************************************************************/ QueryResult = function( columns, data, currentPage, totItems, totPages, searchUrl, sortColumn, mode ) { this.columns = columns; this.data = data; this.currentPage = currentPage; this.totItems = totItems; this.totPages = totPages; this.sortColumn = sortColumn; this.mode = mode; if( searchUrl.indexOf( "?" ) < 0 ) searchUrl += "?"; else searchUrl += "&"; this.searchUrl = searchUrl; } QueryResult.prototype.getSortColumn = function () { return this.sortColumn; } QueryResult.prototype.setMode = function (mode) { this.mode = mode; } QueryResult.prototype.getMode = function () { return this.mode; } QueryResult.prototype.getColumns = function () { return this.columns; } QueryResult.prototype.getData = function () { return this.data; } QueryResult.prototype.getCurrentPage = function () { return this.currentPage; } QueryResult.prototype.getTotItems = function () { return this.totItems; } QueryResult.prototype.getTotPages = function () { return this.totPages; } QueryResult.prototype.getSearchUrl = function () { return this.searchUrl; } QueryResult.prototype.getPaginazione = function () { var orderedSearchUrl = this.searchUrl; if( this.getSortColumn() != null && this.getSortColumn() != "" ) { orderedSearchUrl += "sort=" + this.getSortColumn(); if( this.getMode() == null ) orderedSearchUrl += "&mode=false"; else orderedSearchUrl += "&mode="+this.getMode(); orderedSearchUrl += "&"; //alert(orderedSearchUrl); } var firstLink = orderedSearchUrl + "p=0"; var prevLink = orderedSearchUrl + "p=" + (this.getCurrentPage() - 1); var nextLink = orderedSearchUrl + "p=" + (this.getCurrentPage() + 1); var lastLink = orderedSearchUrl + "p=" + (this.getTotPages() - 1); var result = "
"+ ""+ ""+ ""+ ""+ ""+ "" + "" + " " + ""+ ""+ "
"+ "
" + this.getTotItems() + " ???label.results???
" + "
"+ "
"+ ( this.getCurrentPage() > 0 ? "???label.first_page??? " : "" ) + ( this.getCurrentPage() > 0 ? "???label.prev_page??? " : "" ) + "
"+ "
"+ "  ???label.page??? " + (this.getTotPages() > 0 ? this.getCurrentPage()+1 : 0) + " ???label.of??? " + this.getTotPages() + " " + ""+ ( this.getCurrentPage() < this.getTotPages()-1 ? "???label.next_page???" : "" ) + ( this.getCurrentPage() < this.getTotPages()-1 ? " ???label.last_page???" : "" ) + "" + "
???label.go_to_page???: " + " " + "
" + "
"+ "
"+ "
"+ ""+ ""+ ""; for ( var i = 0; i "; else result += ""; else result += ""; else result += ""; result+= ""; for ( var i = 0; i "; for (var j = 1; j"; } result+= ""; } result += ""+ ""+ "
"; return result; }