﻿var myHTMLSite = new HTMLSite("home");


window.onload=function(){
    myHTMLSite.init();
    myHTMLSite.renderPage('home');
}





/* class */
function HTMLSite(rootPage)
{
    /* set class vars */
    this.currentLanguage = "en";
    this.absolutePrefixUrl = "";
    this.webServicesGatewayJsonUrl = "";
    this.breadcrumbsLength = 7;
    this.rootPage = rootPage;
    
    this.currentPage = rootPage;
    this.currentPageTitle = rootPage;
    this.currentArticleNameunique = "";
    this.currentPageNodeNameunique = "";
    this.currentNewsId;
    this.currentGalleryFather = "";

    
    this.navHistory = new Array();
    
    



    /* class methods */
    
    this.init = function()
    {
        //do all initialization tasks
        this.setUrls();
    }
    
    this.renderPage = function (currentPage)
    {
        this.currentPage = currentPage;
        
        //scroll page on top
        window.scroll(0,0);

        //do generic tasks
        this.setDateTime("local_datetime");

        //render page specific content
        switch (currentPage)
        {
            case "home" :
                this.currentPageTitle = "home";
                this.removeAll();
                this.RErenderSingleNode("pagina_home", "main", "remmain", "9th International Workshop on Research and Education in Mechatronics 2008", 4, 3);
                break;
            case "news" :
                this.currentPageTitle = "news";
                this.removeAll();
                this.RErenderNews("news", "main", "remmain", "News", 3, 1);
                break;
            case "all_the_news" :
                this.currentPageTitle = "all the news";
                this.removeAll();
                this.RErenderAbstracts("news", "main", "remmain", "News", 200, 1);
                break;
            case "single_news" :
                this.currentPageTitle = "news article";
                this.removeAll();
                this.RErenderSubArticle(this.currentArticleNameunique, "main", "remmain", this.currentArticleNameunique, 100, 4);
                break;
            case "organization" :
                this.currentPageTitle = "organization";
                this.removeAll();
                this.RErenderSingleNode("organization", "main", "remmain", "Organization", 4, 3);
                break;
            case "authorguide" :
                this.currentPageTitle = "authorguide";
                this.removeAll();
                this.RErenderTextAndFiles("author_guide", "main", "remmain", "For authors", 4, 3);
                break;
            case "registration" :
                this.currentPageTitle = "registration";
                this.removeAll();
                this.RErenderSingleNode("registration", "main", "remmain", "Registration", 4, 3);
                this.RErenderAbSector("registration", "main", "remmain", "Further information", 1, 10);
                break;
            case "fees" :
                this.currentPageTitle = "fees";
                this.removeAll();
                this.RErenderSubArticle("fees", "main", "remmain", "Fees", 4, 4);
                break;
            case "form" :
                this.currentPageTitle = "form";
                this.removeAll();
                this.RErenderSubArticle("form", "main", "remmain", "Form", 4, 3);
                break;
            case "program" : 
                this.currentPageTitle = "program";
                this.removeAll();
                this.RErenderLinksOnly("program", "main", "remmain", "Social events", 3, 3); //myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine 
                this.RErenderSingleNode("program", "main", "remmain", "Program", 1, 1);
                this.RErenderAbSector("program", "main", "remmain", "Social events", 3, 3);
                break;
            case "meetings" :
                this.currentPageTitle = "meetings";
                this.removeAll();
                this.RErenderAbSector("program", "main", "remmain", "Social events", 3, 3);
                break;
            case "welcome" :
                this.currentPageTitle = "welcome";
                this.removeAll();
                this.RErenderSubArticle("welcome", "main", "remmain", "Welcome", 100, 2);
                break;
            case "dinner" :
                this.currentPageTitle = "dinner";
                this.removeAll();
                this.RErenderSubArticle("dinner", "main", "remmain", "Dinner", 100, 1);
                break;
            case "social" :
                this.currentPageTitle = "social";
                this.removeAll();
                this.RErenderSubArticle("social", "main", "remmain", "Social", 100, 1);
                break;
            case "participants" :
                this.currentPageTitle = "participants";
                this.removeAll();
                this.RErenderSingleNode("participants", "main", "remmain", "Participants List", 100, 2);
                this.RErenderGalleryBox("imagegallery", "main", "remmain", "Photo Gallery", 3, 3);
                break;
            case "gallery_all" :
                this.currentPageTitle = "gallery_all";
                this.removeAll();
                this.RErenderGalleryAll(this.currentGalleryFather, "main", "remmain", "Photo Gallery", 500, 4);
                break;
            case "accomodations" :
                this.currentPageTitle = "accomodations";
                this.removeAll();
                this.RErenderSingleNode("accomodations", "main", "remmain", "Reservations", 1, 10);
                //this.RErenderAbSector("accomodations", "main", "remmain", "Hotels & Restaurants", 2, 2);
                break;
            case "hotels" :
                this.currentPageTitle = "hotels";
                this.removeAll();
                this.RErenderSubArticle("hotels", "main", "remmain", "Hotels", 2, 2);
                break;
            case "restaurants" :
                this.currentPageTitle = "restaurants";
                this.removeAll();
                this.RErenderSubArticle("restaurants", "main", "remmain", "Restaurants", 2, 2);
                break;
            case "travelling" :
                this.currentPageTitle = "travelling";
                this.removeAll();
                this.RErenderSingleNode("travelling", "main", "remmain", "Location", 4, 3);
                this.RErenderAbstracts("maps", "main", "remmain", "Maps", 10, 3);
                break;
            case "maps" :
                this.currentPageTitle = "maps";
                this.removeAll();
                this.RErenderAbstracts("maps", "main", "remmain", "Maps", 10, 3);
                break;
            default :
        }
        
        //add current page to navigation history
        this.navHistoryState = new Object();
        this.navHistoryState.Page = currentPage;
        this.navHistoryState.PageTitle = this.currentPageTitle;
        this.navHistoryState.ArticleNameunique = this.currentArticleNameunique;
        this.navHistoryState.NewsId = this.currentNewsId;
        this.navHistoryState.GalleryFather = this.currentGalleryFather;
        this.navHistoryState.NewsTitle = this.currentNewsTitle;
        this.navHistory.push(this.navHistoryState);
        
        //update breadcrumbs
        var myStartHistoryIndex = this.navHistory.length - this.breadcrumbsLength;
        if ( myStartHistoryIndex < 0 ) { myStartHistoryIndex = 0; }
        $("testata_breadcrumbs").innerHTML = "<div class=\"text_mini\">last " + ( this.navHistory.length - myStartHistoryIndex ) + " visited pages:&nbsp;</div>";
        for (var i=myStartHistoryIndex; i<this.navHistory.length;i++)
        {
            $("testata_breadcrumbs").innerHTML += "<div class=\"testata_breadcrumbslink\" onClick=\"myHTMLSite.renderPageFromHistory("+i+");\" >"+this.navHistory[i].PageTitle+"</div><div class=\"text_mini\">/</div>";
        }

    }

    this.renderPageFromHistory = function (myHistoryState)
    {
        //recall my state
        this.currentPage = this.navHistory[myHistoryState].Page;
        this.currentPageTitle = this.navHistory[myHistoryState].PageTitle;
        this.currentArticleNameunique = this.navHistory[myHistoryState].ArticleNameunique;
        this.currentNewsId = this.navHistory[myHistoryState].NewsId;
        this.currentGalleryFather = this.navHistory[myHistoryState].GalleryFather;
        
        
        //render page
        this.renderPage(this.currentPage);
    }
    
    this.RErenderLinksOnly = function (myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine )
    {
        //var imgurl = new Template ("#imgurl");
        var tplContainer = new Template(
            "<div id=\"RErenderLinksOnly\">"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
            "<div class=\"node_box\">"+
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var tplNodeboxFooter = new Template(""
                //"<div class=\"node_navigation\">"+
                    //"<div class=\"bg_"+myStyle+"\">"+
                        //"<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPageFromHistory(1);\" >&#149;&nbsp;back to main page</div>"+
                       //<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPage('all_the_news');\" >&#149;&nbsp;back to main page</div>"+   
                    //"</div>"+
                //"</div>"+
            //"</div>"
        );
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodesAndImgsByFatherNameuniqueLEFTJOIN/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var json = transport.responseText.evalJSON();
                var myHTMLOutput = "";
                myHTMLOutput += tplNodeboxHeader.evaluate();
                for (var i=0; i<json.length;i++)
                {
                
                
                    miaStringa = "<div class=\"node_linkbutton_box_"+myAbstractsNumPerLine+"\">";
                    /*
                            if (json[i].imgurl != null) {
                                miaStringa += "<div class=\"node_image\">"+
                                "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" width=\"80\" />"+
                                "</div>"
                            };
                    */
                    miaStringa += "<div class=\"node_linkbutton\" onClick=\"myHTMLSite.currentArticleNameunique='#{nameunique}';myHTMLSite.renderPage('single_news');\">#{name}</div>"+
                            //"<div class=\"node_body\" >#{description}</div>"+
                            //"<div class=\"node_datetime\">"+
                            //"<p>Last Updated #{date}&nbsp;#{time}</p>"+
                            //"</div>"+
                            //"<div class=\"node_navigation\">"+
                            //"<div class=\"bg_"+myStyle+"\">"+
                            //"<div class=\"node_navigation_link\" onClick=\"myHTMLSite.currentArticleNameunique='#{nameunique}';myHTMLSite.renderPage('single_news');\" >&#149;&nbsp;read all</div>"+
                            //"</div>"+
                            //"</div>"+
                        "</div>";
                        


                var tplNodeboxAbstract = new Template(miaStringa); 
                    if ( i < myAbstractsNum )
                    {
                        myHTMLOutput += tplNodeboxAbstract.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                myHTMLOutput += tplNodeboxFooter.evaluate();
                $("RErenderLinksOnly").innerHTML += myHTMLOutput;
                new Effect.Appear($(myDomId));
            }.bind(this)
        });
        
    }
    
    //render Home Page / Organization / Author Guide
    this.RErenderSingleNode = function (myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine )
    {
        var myTplContainerId = "RErenderHome_"+myNodeNameunique;
        var tplContainer = new Template(
            "<div id=\""+myTplContainerId+"\">"+
                "<div class=\"node_box\">"+
                    "<div id=\""+myTplContainerId+"Header\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"Images\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"Body\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"DateTime\">"+
                    "</div>"+
                    "<div class=\"node_navigation\">"+
                        "<div class=\"bg_"+myStyle+"\">"+
                            //"<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPage('authorguide');\" >&#149;&nbsp;archivio: tutti gli articoli</div>"+
                        "</div>"+
                    "</div>"+
                "</div>"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"+
                //"<div class=\"node_name\">#{name}</div>"+
                "<div class=\"node_description\">"+
                    "<p>#{description}</p>"+
                "</div>"
        );
        var tplNodeboxDateTime = new Template(
                "<div class=\"node_datetime\">"+
                    "<p>Last Updated #{date}&nbsp;#{time}</p>"+
                "</div>"
        );
        var tplNodeboxBodyEn = new Template(
                "<div class=\"node_body\">#{htmltext_en}</div>"
        );
        var tplNodeboxBodyIt = new Template(
                "<div class=\"node_body\">#{htmltext_it}</div>"
        );
        var tplNodeboxImageForArticle = new Template(
                "<div class=\"node_article_image_link\" onClick=\"myHTMLSite.showPopupImage('"+this.absolutePrefixUrl+"#{originalImageUrl}');\" >"+
                    "<img src=\""+this.absolutePrefixUrl+"#{imageUrl}\" />"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var currentLanguage = this.currentLanguage;
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Effect.Appear($(myDomId));
        
        //get node base data
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodeBasedataFromNameunique/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                myHTMLOutput += tplNodeboxHeader.evaluate(json[0]);
                myHTMLOutput += tplNodeboxSeparator.evaluate();
                //alert(myHTMLOutput);
                $(myTplContainerId+"Header").innerHTML += myHTMLOutput;
                $(myTplContainerId+"DateTime").innerHTML += tplNodeboxDateTime.evaluate(json[0]);
            }
        });
        //get node body
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodeBodyTextFromNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                if ( currentLanguage == "en" )
                {
                    myHTMLOutput += tplNodeboxBodyEn.evaluate(json[0]);
                }
                else if ( currentLanguage == "it" )
                {
                    myHTMLOutput += tplNodeboxBodyIt.evaluate(json[0]);
                }
                //alert(myHTMLOutput);
                $(myTplContainerId+"Body").innerHTML += myHTMLOutput;
            }.bind(this)
        });
        //get node images
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getImagesByNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myAbstractsNum )
                    {
                        myHTMLOutput += tplNodeboxImageForArticle.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                //alert(myHTMLOutput);
                $(myTplContainerId+"Images").innerHTML += myHTMLOutput;
            }
        });
        //get node file attachment (demi)
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getFilesByNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myAbstractsNum )
                    {
                        myHTMLOutput += tplNodeboxFileForArticle.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                //alert(myHTMLOutput);
                $(myTplContainerId+"Files").innerHTML += myHTMLOutput;
            }
        });
        
    }
    
    
    
    //render SubArticle 
    this.RErenderSubArticle = function (myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine )
    {
        var myTplContainerId = "RErenderSubArticle_"+myNodeNameunique;
        var tplContainer = new Template(
            "<div id=\""+myTplContainerId+"\">"+
                "<div class=\"node_box\">"+
                    "<div id=\""+myTplContainerId+"Header\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"Images\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"Body\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"DateTime\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"NodeFather\">"+
                    "</div>"+
                "</div>"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
                "<div class=\"color_"+myStyle+"\">"+
                    /*"<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+ */
                "<div class=\"node_name\">#{name}</div>"+                    
                "</div>"+ "<p></p>"/* +
                "<div class=\"node_description\">"+
                    "<p>#{description}</p>"+
                "</div>" */
        );
        var tplNodeboxDateTime = new Template(
                "<div class=\"node_datetime\">"+
                    "<p>Last Updated #{date}&nbsp;#{time}</p>"+
                "</div>"
        );
        var tplNodeboxBodyEn = new Template(
                "<div class=\"node_body\">#{htmltext_en}</div>"
        );
        var tplNodeboxBodyIt = new Template(
                "<div class=\"node_body\">#{htmltext_it}</div>"
        );
        var tplNodeboxImageForArticle = new Template(
                "<div class=\"node_article_image_link\" onClick=\"myHTMLSite.showPopupImage('"+this.absolutePrefixUrl+"#{originalImageUrl}');\" >"+
                    "<img src=\""+this.absolutePrefixUrl+"#{imageUrl}\" width=\"150\" />"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var tplNodeboxNodeFather = new Template(
                "<div class=\"node_navigation\">"+
                        "<div class=\"bg_"+myStyle+"\">"+
                            "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPage('#{nameunique}');\" >&#149;&nbsp;back to main page</div>"+
                        "</div>"+
                    "</div>"
        );        
        var currentLanguage = this.currentLanguage;
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Effect.Appear($(myDomId));
        
        //get node base data
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodeBasedataFromNameunique/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                myHTMLOutput += tplNodeboxHeader.evaluate(json[0]);
                myHTMLOutput += tplNodeboxSeparator.evaluate();
                //alert(myHTMLOutput);
                $(myTplContainerId+"Header").innerHTML += myHTMLOutput;
                $(myTplContainerId+"DateTime").innerHTML += tplNodeboxDateTime.evaluate(json[0]);
            }
        });
        //get node body
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodeBodyTextFromNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                if ( currentLanguage == "en" )
                {
                    myHTMLOutput += tplNodeboxBodyEn.evaluate(json[0]);
                }
                else if ( currentLanguage == "it" )
                {
                    myHTMLOutput += tplNodeboxBodyIt.evaluate(json[0]);
                }
                //alert(myHTMLOutput);
                $(myTplContainerId+"Body").innerHTML += myHTMLOutput;
            }.bind(this)
        });
        //get node images
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getImagesByNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myAbstractsNum )
                    {
                        myHTMLOutput += tplNodeboxImageForArticle.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                //alert(myHTMLOutput);
                $(myTplContainerId+"Images").innerHTML += myHTMLOutput;
            }
        });
        //get Node Father by Nameunique
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodeFathersByNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                    myHTMLOutput += tplNodeboxNodeFather.evaluate(json[0]);
                //alert(myHTMLOutput);
                $(myTplContainerId+"NodeFather").innerHTML += myHTMLOutput; 
            }.bind(this)
        });
    }
      
    //Show Pop Up Image
    this.showPopupImage = function (myImgUrl)
    {
        var win = new Window({className: "oootheme", title: "REM 2008 - Image", width:350, height:250}); 
        win.setDestroyOnClose(); 
        //win.setLocation(10, 500);
        win.setSize(800,500);
        win.showCenter();
        win.toFront();
        win.getContent().innerHTML = "<div class=\"node_image_popup\"><img src=\""+myImgUrl+"\" /></div>";
    
    }


    
  
    // Render Gallery Box
    this.RErenderGalleryBox = function (myNodeNameunique, myDomId, myStyle, myTitle, myPicturesNum, myPicturesNumPerLine, useExternalLinks )
    {
        var tplContainer = new Template(
            "<div id=\"RErenderGalleryBox\">"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
            "<div class=\"node_box\">"+
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxAbstract = new Template(
                "<div class=\"node_gallery_image_link\" onClick=\"myHTMLSite.showPopupImage('"+this.absolutePrefixUrl+"#{imgurloriginal}');\" >"+
                    "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" width=\"95\" />"+
                "</div>"
        );
        var tplNodeboxAbstractExternalLinks = new Template(
                "<div class=\"node_gallery_image_link\" onClick=\"self.location='#{description}';\" >"+
                    "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" width=\"95\" />"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var tplNodeboxFooter = new Template(
                "<div class=\"node_navigation\">"+
                    "<div class=\"bg_"+myStyle+"\">"+
                        "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.currentGalleryFather='"+myNodeNameunique+"'; myHTMLSite.renderPage('gallery_all');\" >&#149;&nbsp;Archive: all photos</div>"+
                    "</div>"+
                "</div>"+
            "</div>"
        );
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodesAndImgsByFatherNameunique/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var json = transport.responseText.evalJSON();
                var myHTMLOutput = "";
                myHTMLOutput += tplNodeboxHeader.evaluate();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myPicturesNum )
                    {
                        if ( useExternalLinks )
                        {
                            myHTMLOutput += tplNodeboxAbstractExternalLinks.evaluate(json[i]);
                        }
                        else
                        {
                            myHTMLOutput += tplNodeboxAbstract.evaluate(json[i]);
                        }
                        if ( ( ( i + 1 ) % myPicturesNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                            }
                }
                myHTMLOutput += tplNodeboxFooter.evaluate();
                $("RErenderGalleryBox").innerHTML += myHTMLOutput;
                new Effect.Appear($(myDomId));				
            }
        });
        
    }
    
    // Render Gallery All
    this.RErenderGalleryAll = function (myNodeNameunique, myDomId, myStyle, myTitle, myPicturesNum, myPicturesNumPerLine )
    {
        var tplContainer = new Template(
            "<div id=\"RErenderGalleryBox\">"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
            "<div class=\"node_box\">"+
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxAbstract = new Template(
                "<div class=\"node_gallery_image_link\" onClick=\"myHTMLSite.showPopupImage('"+this.absolutePrefixUrl+"#{imgurloriginal}');\" >"+
                    "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" width=\"95\" />"+
                    "<div class=\"node_body\" >#{filesize} bytes</div>"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var tplNodeboxFooter = new Template(
                "<div class=\"node_navigation\">"+
                    "<div class=\"bg_"+myStyle+"\">"+
                    "</div>"+
                "</div>"+
            "</div>"
        );
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodesAndImgsByFatherNameunique/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var json = transport.responseText.evalJSON();
                var myHTMLOutput = "";
                myHTMLOutput += tplNodeboxHeader.evaluate();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myPicturesNum )
                    {
                        myHTMLOutput += tplNodeboxAbstract.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myPicturesNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                myHTMLOutput += tplNodeboxFooter.evaluate();
                $("RErenderGalleryBox").innerHTML += myHTMLOutput;
                new Effect.Appear($(myDomId));				
            }
        });
        
    }
    
    this.RErenderAbstractsOneBig = function (myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine )
    {
        var tplContainer = new Template(
            "<div id=\"RErenderAbstractsOneBig\">"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
            "<div class=\"node_box\">"+
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxAbstract = new Template(
                "<div class=\"node_abstract_box_small\">"+
                    "<div class=\"node_image\">"+
                        "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" width=\"80\" />"+
                    "</div>"+
                    "<div class=\"node_horiz_separator\">"+
                    "</div>"+
                    "<div class=\"node_description\">#{name}</div>"+
                    "<div class=\"node_body\">#{description}</div>"+
                    "<div class=\"node_datetime\">"+
                        "<p>Last Updated #{date}&nbsp;#{time}</p>"+
                    "</div>"+
                    "<div class=\"node_navigation\">"+
                        "<div class=\"bg_"+myStyle+"\">"+
                            "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.currentArticleNameunique='#{nameunique}';myHTMLSite.renderPage('single_news');\" >&#149;&nbsp;read all</div>"+
                        "</div>"+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxAbstractOneBig = new Template(
                "<div class=\"node_abstract_box_onebig\">"+
                    "<div class=\"node_image\">"+
                        "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" />"+
                    "</div>"+
                    "<div class=\"node_name\">"+
                        "<p>#{name}</p>"+
                    "</div>"+
                    "<div class=\"node_description\">#{description}</div>"+
                    "<div class=\"node_body\">#{htmltext}</div>"+
                    "<div class=\"node_datetime\">"+
                        "<p>Last Updated #{date}&nbsp;#{time}</p>"+
                    "</div>"+
                    "<div class=\"node_navigation\">"+
                        "<div class=\"bg_"+myStyle+"\">"+
                            "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.currentArticleNameunique='#{nameunique}';myHTMLSite.renderPage('single_news');\" >&#149;&nbsp;read all</div>"+
                        "</div>"+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var tplNodeboxFooter = new Template(
                "<div class=\"node_navigation\">"+
                    "<div class=\"bg_"+myStyle+"\">"+
                        "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPage('all_the_news');\" >&#149;&nbsp;read all the news</div>"+
                    "</div>"+
                "</div>"+
            "</div>"
        );
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodesAndImgsByFatherNameuniqueLEFTJOIN/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var json = transport.responseText.evalJSON();
                var myHTMLOutput = "";
                myHTMLOutput += tplNodeboxHeader.evaluate();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myAbstractsNum )
                    {
			if ( json[i].imgurl == null )
			{
				json[i].imgurl = "contentRem2008/html/imgs/unibglogo_mini.jpg";
			}
                        if ( i == 0 )
                        {
                            //first abstract is bigger
                            var myString = new String(json[i].htmltext);
                            json[i].htmltext = myString.substr(0,750) + "<div>...</div>";
                            myHTMLOutput += tplNodeboxAbstractOneBig.evaluate(json[i]);
                        }
                        else
                        {
                            //others are smaller
                            myHTMLOutput += tplNodeboxAbstract.evaluate(json[i]);
                            if ( ( ( i ) % myAbstractsNumPerLine ) == 0 )
                            {
                                myHTMLOutput += tplNodeboxSeparator.evaluate();
                            }
                        }
                    }
                }
                myHTMLOutput += tplNodeboxFooter.evaluate();
                $("RErenderAbstractsOneBig").innerHTML += myHTMLOutput;
                new Effect.Appear($(myDomId));
            }
        });
    }
    
    this.RErenderNews = function (myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine )
    {
        var tplContainer = new Template(
            "<div id=\"RErenderAbstracts\">"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
            "<div class=\"node_box\">"+
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxAbstract = new Template(
                "<div class=\"node_abstract_box_"+myAbstractsNumPerLine+"\">"+ 
                    "<div class=\"node_image\">"+
                    "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" width=\"80\" />"+
                    "</div>"+
                    "<div class=\"node_name\">#{name}</div>"+
                    "<div class=\"node_description\">#{description}</div>"+
                    "<div class=\"node_datetime\">"+
                        "<p>Last Updated #{date}&nbsp;#{time}</p>"+
                    "</div>"+
                    "<div class=\"node_navigation\">"+
                        "<div class=\"bg_"+myStyle+"\">"+
                            "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.currentArticleNameunique='#{nameunique}';myHTMLSite.renderPage('single_news');\" >&#149;&nbsp;read all</div>"+
                        "</div>"+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );

        var tplNodeboxFooter = new Template(
                "<div class=\"node_navigation\">"+
                    "<div class=\"bg_"+myStyle+"\">"+
                        "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPage('all_the_news');\" >&#149;&nbsp;read all the news</div>"+
                    "</div>"+
                "</div>"+
            "</div>"
        );
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodesAndImgsByFatherNameuniqueLEFTJOIN/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var json = transport.responseText.evalJSON();
                var myHTMLOutput = "";
                myHTMLOutput += tplNodeboxHeader.evaluate();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myAbstractsNum )
                    {
			if ( json[i].imgurl == null )
			{
				json[i].imgurl = "contentRem2008/html/imgs/unibglogo_mini.jpg";
			}
                        myHTMLOutput += tplNodeboxAbstract.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                myHTMLOutput += tplNodeboxFooter.evaluate();
                $("RErenderAbstracts").innerHTML += myHTMLOutput;
                new Effect.Appear($(myDomId));
            }
        });
        
    }
    
    // Render MultiNodes NEWS
    this.RErenderAbstracts = function (myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine )
    {
        var tplContainer = new Template(
            "<div id=\"RErenderAbstracts\">"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
            "<div class=\"node_box\">"+
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxAbstract = new Template(
                "<div class=\"node_abstract_box_"+myAbstractsNumPerLine+"\">"+ 
                    "<div class=\"node_image\">"+
                    "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" width=\"80\" />"+
                    "</div>"+
                    "<div class=\"node_description\">#{name}</div>"+
                    "<div class=\"node_body\">#{description}</div>"+
                    "<div class=\"node_datetime\">"+
                        "<p>Last Updated #{date}&nbsp;#{time}</p>"+
                    "</div>"+
                    "<div class=\"node_navigation\">"+
                        "<div class=\"bg_"+myStyle+"\">"+
                            "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.currentArticleNameunique='#{nameunique}';myHTMLSite.renderPage('single_news');\" >&#149;&nbsp;read all</div>"+
                        "</div>"+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var tplNodeboxFooter = new Template(
                "<div class=\"node_navigation\">"+
                    "<div class=\"bg_"+myStyle+"\">"+
                        //"<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPageFromHistory(1);\" >&#149;&nbsp;back to main page</div>"+
                       //<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPage('all_the_news');\" >&#149;&nbsp;back to main page</div>"+   
                    "</div>"+
                "</div>"+
            "</div>"
        );
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodesAndImgsByFatherNameuniqueLEFTJOIN/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var json = transport.responseText.evalJSON();
                var myHTMLOutput = "";
                myHTMLOutput += tplNodeboxHeader.evaluate();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myAbstractsNum )
                    {
			if ( json[i].imgurl == null )
			{
				json[i].imgurl = "contentRem2008/html/imgs/unibglogo_mini.jpg";
			}
                        myHTMLOutput += tplNodeboxAbstract.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                myHTMLOutput += tplNodeboxFooter.evaluate();
                $("RErenderAbstracts").innerHTML += myHTMLOutput;
                new Effect.Appear($(myDomId));
            }
        });
        
    }
    
    
    
     // Render Abstracts Sector
    this.RErenderAbSector = function (myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine )
    {
        //var imgurl = new Template ("#imgurl");
        var tplContainer = new Template(
            "<div id=\"RErenderAbSector\">"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
            "<div class=\"node_box\">"+
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"
        );
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var tplNodeboxFooter = new Template(
                "<div class=\"node_navigation\">"+
                    "<div class=\"bg_"+myStyle+"\">"+
                        //"<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPageFromHistory(1);\" >&#149;&nbsp;back to main page</div>"+
                       //<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPage('all_the_news');\" >&#149;&nbsp;back to main page</div>"+   
                    "</div>"+
                "</div>"+
            "</div>"
        );
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodesAndImgsByFatherNameuniqueLEFTJOIN/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var json = transport.responseText.evalJSON();
                var myHTMLOutput = "";
                myHTMLOutput += tplNodeboxHeader.evaluate();
                for (var i=0; i<json.length;i++)
                {
                
                
                    miaStringa = "<div class=\"node_abstract_box_"+myAbstractsNumPerLine+"\">";
                            if (json[i].imgurl != null) {
                                miaStringa += "<div class=\"node_image\">"+
                                "<img src=\""+this.absolutePrefixUrl+"#{imgurl}\" width=\"80\" />"+
                                "</div>"
                            };

                    miaStringa += "<div class=\"node_description\">#{name}</div>"+
                            "<div class=\"node_body\">#{description}</div>"+
                            "<div class=\"node_datetime\">"+
                            "<p>Last Updated #{date}&nbsp;#{time}</p>"+
                            "</div>"+
                            "<div class=\"node_navigation\">"+
                            "<div class=\"bg_"+myStyle+"\">"+
                            "<div class=\"node_navigation_link\" onClick=\"myHTMLSite.currentArticleNameunique='#{nameunique}';myHTMLSite.renderPage('single_news');\" >&#149;&nbsp;read all</div>"+
                            "</div>"+
                            "</div>"+
                        "</div>";


                var tplNodeboxAbstract = new Template(miaStringa); 
                
                
                
                
                    if ( i < myAbstractsNum )
                    {
                        myHTMLOutput += tplNodeboxAbstract.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                myHTMLOutput += tplNodeboxFooter.evaluate();
                $("RErenderAbSector").innerHTML += myHTMLOutput;
                new Effect.Appear($(myDomId));
            }.bind(this)
        });
        
    }
    
       
    //render Node with Text, Images and Files
    this.RErenderTextAndFiles = function (myNodeNameunique, myDomId, myStyle, myTitle, myAbstractsNum, myAbstractsNumPerLine )
    {
        var myTplContainerId = "RErenderTextAndFiles_"+myNodeNameunique;
        var tplContainer = new Template(
            "<div id=\""+myTplContainerId+"\">"+
                "<div class=\"node_box\">"+
                    "<div id=\""+myTplContainerId+"Header\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"Images\">"+
                    "</div>"+
                    "<div id=\""+myTplContainerId+"Body\">"+
                    "</div>"+
                    "<br/>"+
                    "<br/>"+
                    "<div id=\""+myTplContainerId+"Files\">"+
                    "</div>"+
                    "<br/>"+
                    "<br/>"+
                    "<div id=\""+myTplContainerId+"DateTime\">"+
                    "</div>"+
                    "<div class=\"node_navigation\">"+
                        "<div class=\"bg_"+myStyle+"\">"+
                            //"<div class=\"node_navigation_link\" onClick=\"myHTMLSite.renderPage('authorguide');\" >&#149;&nbsp;archivio: tutti gli articoli</div>"+
                        "</div>"+
                    "</div>"+
                "</div>"+
            "</div>"
        );
        var tplNodeboxHeader = new Template(
                "<div class=\"color_"+myStyle+"\">"+
                    "<div class=\"node_name\">"+
                        myTitle+
                    "</div>"+
                "</div>"+
                //"<div class=\"node_name\">#{name}</div>"+
                "<div class=\"node_description\">"+
                    "<p>#{description}</p>"+
                "</div>"
        );
        var tplNodeboxDateTime = new Template(
                "<div class=\"node_datetime\">"+
                    "<p>Last Updated #{date}&nbsp;#{time}</p>"+
                "</div>"
        );
        var tplNodeboxBodyEn = new Template(
                "<div class=\"node_body\">#{htmltext_en}</div>"
        );
        var tplNodeboxBodyIt = new Template(
                "<div class=\"node_body\">#{htmltext_it}</div>"
        );
        var tplNodeboxImageForArticle = new Template(
                "<div class=\"node_article_image_link\" onClick=\"myHTMLSite.showPopupImage('"+this.absolutePrefixUrl+"#{originalImageUrl}');\" >"+
                    "<img src=\""+this.absolutePrefixUrl+"#{imageUrl}\" />"+
                "</div>"
        );
        var tplNodeboxFilesForArticle = new Template(
                "<div class=\"node_file\" onClick=\"javascript:window.open('"+this.absolutePrefixUrl+"#{fileurl}');\" ><img src=\"imgs/download.gif\">&nbsp;&nbsp;#{filename} &nbsp;&nbsp;[#{filesize}bytes]"+
                "</div><br/><br/>"
        );
        
        var tplNodeboxSeparator = new Template(
                "<div class=\"node_horiz_separator\">"+
                "</div>"
        );
        var currentLanguage = this.currentLanguage;
        $(myDomId).innerHTML += tplContainer.evaluate();
        new Effect.Appear($(myDomId));
        
        //get node base data
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodeBasedataFromNameunique/"+myNodeNameunique+"/"+this.currentLanguage, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                myHTMLOutput += tplNodeboxHeader.evaluate(json[0]);
                myHTMLOutput += tplNodeboxSeparator.evaluate();
                //alert(myHTMLOutput);
                $(myTplContainerId+"Header").innerHTML += myHTMLOutput;
                $(myTplContainerId+"DateTime").innerHTML += tplNodeboxDateTime.evaluate(json[0]);
            }
        });
        //get node body
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getNodeBodyTextFromNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                if ( currentLanguage == "en" )
                {
                    myHTMLOutput += tplNodeboxBodyEn.evaluate(json[0]);
                }
                else if ( currentLanguage == "it" )
                {
                    myHTMLOutput += tplNodeboxBodyIt.evaluate(json[0]);
                }
                myHTMLOutput += tplNodeboxSeparator.evaluate(); //aggiunto demi
                //alert(myHTMLOutput);
                $(myTplContainerId+"Body").innerHTML += myHTMLOutput;
            }.bind(this)
        });
        //get node images
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getImagesByNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myAbstractsNum )
                    {
                        myHTMLOutput += tplNodeboxImageForArticle.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                //alert(myHTMLOutput);
                $(myTplContainerId+"Images").innerHTML += myHTMLOutput;
            }
        });
        //get node file attachment (demi)
        new Ajax.Request(this.webServicesGatewayJsonUrl+"NodeAdmin.getFilesByNameunique/"+myNodeNameunique, {
            method:'get',
            onSuccess: function(transport){
                var myHTMLOutput = "";
                var json = transport.responseText.evalJSON();
                for (var i=0; i<json.length;i++)
                {
                    if ( i < myAbstractsNum )
                    {
                        myHTMLOutput += tplNodeboxFilesForArticle.evaluate(json[i]);
                        if ( ( ( i + 1 ) % myAbstractsNumPerLine ) == 0 )
                        {
                            //myHTMLOutput += tplNodeboxSeparator.evaluate();
                        }
                    }
                }
                //alert(myHTMLOutput);
                myHTMLOutput += tplNodeboxSeparator.evaluate();
                $(myTplContainerId+"Files").innerHTML += myHTMLOutput;
            }
        });
        
    }
    
    
    this.removeAll = function ()
    {
        this.removeMain();
        this.removeSpalladx();
    }
    
    this.removeMain = function ()
    {
        $("main").hide();
        $("main").innerHTML = "";
    }
    
    this.removeSpalladx = function ()
    {
        $("spalladx").hide();
        $("spalladx").innerHTML = "";
    }
    
    this.setDateTime = function (myDomId)
    {
        // var monthNames = new Array( "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno","Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre");
        // var DaysOfWeek = new Array( "Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato");
        var monthNames = new Array( "January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December");
        var DaysOfWeek = new Array( "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Satuday");
        var now = new Date();
        var thisYear = now.getYear();
        if (thisYear < 1900) {thisYear += 1900};
        var mins = now.getMinutes();
        if(mins<=9){mins="0"+mins}
        var secs = now.getSeconds();
        if(secs<=9){secs="0"+secs}
        
        $(myDomId).innerHTML = DaysOfWeek[now.getDay()] + " " + now.getDate() + " " + monthNames[now.getMonth()] + " " + thisYear + " - " + now.getHours() + ":" + mins + ":" + secs;
        //$("local_datetime").innerHTML = "vaffanculo";
      
        
    }
    
    this.setUrls = function ()
    {
        var myUrl = document.URL;
        var myUrlPieces = myUrl.split("/");
        for (var i=0;i<myUrlPieces.length;i++)
        {
            if ( i < ( myUrlPieces.length - 3 ) )
            {
                this.absolutePrefixUrl += myUrlPieces[i] + "/";
            }
        }
        this.webServicesGatewayJsonUrl = this.absolutePrefixUrl + "amfphp/json.php/";
    }
    
    this.RErenderSeparator = function(myDomId)
    {
        $(myDomId).innerHTML += "<div class=\"node_horiz_separator\"></div>";
    }
    
    
    
    
    
    
   
    
    
    
}


