// Viene evitato di visualizzare (in IE) il menu contestuale an alto a sx nelle immagini
document.write('<meta http-equiv="imagetoolbar" content="false">');

// Velocizza il rendering delle pagine (In FF) ma sovente crea problemi in caso di uso di Javascript
//user_pref("nglayout.initialpaint.delay", 0);

if(top!=window){
        if(top.location.replace&&!window.opera)top.location.replace('http://www.gorinisrl.com');
        else setTimeout('top.location.href="http://www.gorinisrl.com"',500);
}

var isDOM=document.getElementById?1:0
var isIE=document.all?1:0
var isNS4=navigator.appName=='Netscape'&&!isDOM?1:0
var isOp=self.opera?1:0
var isDyn=isDOM||isIE||isNS4;


function getResX(){
  if(isIE){
    return document.body.clientWidth+21;
  }
  else{
    return screen.width;
  }
}

function getResY(){
  if(isIE){
    return document.body.clientHeight+199;
  }
  else{
    return screen.height;
  }
}


function getRef(i,p){
        p=!p?document:(p.navigator?p.document:p);
        return isIE?p.all[i]:isDOM?(p.getElementById?p:p.ownerDocument).getElementById(i):isNS4?p.layers[i]:null
};

function getSty(i,p){
        var r=getRef(i,p);
        return r?isNS4?r:r.style:null
};

if(!self.LayerObj) var LayerObj=new Function('i','p','this.ref=getRef(i,p);this.sty=getSty(i,p);return this');

function getLyr(i,p){
        return new LayerObj(i,p)
};


function LyrFn(n,f){
        LayerObj.prototype[n]=new Function('var a=arguments,p=a[0],px=isNS4||isOp?0:"px";with(this){'+f+'}')
};


LyrFn('x','if(!isNaN(p)) sty.left=p+px;else return parseInt(sty.left)');
LyrFn('y','if(!isNaN(p)) sty.top=p+px;else return parseInt(sty.top)');




function addEvent(o,n,f,l){
        var a='addEventListener',h='on'+n;
        if(o[a]&&!l)return o[a](n,f,false);
        if(o[h]){
                o._c|=0;
                var b='_b'+(++o._c);
                o[b]=o[h]}o[h]=function(e){e=e||self.event;
                var r=true;
                if(o[b]) r=o[b](e)!=false&&r;
                o._f=f;r=o._f(e)!=false&&r;
                return r
        }
};

//              'Menu',true,'Visibility','visible','hidden'
function FSMenu(myName,nested,cssProp,cssVis,cssHid){
        this.myName=myName;
        this.nested=nested;
        this.cssProp=cssProp;
        this.cssVis=cssVis;
        this.cssHid=cssHid;
        this.cssLitClass='';
        this.menus={ root:new FSMenuNode('root',true,this) };
        this.menuToShow=[];
        this.mtsTimer=null;
        this.showDelay=0;
        this.switchDelay=125;
        this.hideDelay=500;
        this.showOnClick=0;
        this.animations=[];
        this.animSpeed=100
};

FSMenu.prototype.show=function(mN){
        with(this){
                menuToShow.length=arguments.length;
                for(var i=0;i<arguments.length;i++) menuToShow[i]=arguments[i];
                clearTimeout(mtsTimer);
                if(!nested)mtsTimer=setTimeout(myName+'.menus.root.over()',10)
        }
};

FSMenu.prototype.hide=function(mN){
        with(this){
                clearTimeout(mtsTimer);
                if(menus[mN])menus[mN].out()
        }
};

function FSMenuNode(id,isRoot,obj){
        this.id=id;
        this.isRoot=isRoot;
        this.obj=obj;
        this.lyr=this.child=this.par=this.timer=this.visible=null;
        this.args=[];
        var node=this;

        this.over=function(evt){
                with(node)with(obj){
                        if(isNS4&&evt&&lyr.ref)lyr.ref.routeEvent(evt);
                        clearTimeout(timer);
                        clearTimeout(mtsTimer);
                        if(!isRoot&&!visible)node.show();
                        if(menuToShow.length){
                                var a=menuToShow,m=a[0];
                                if(!menus[m]||!menus[m].lyr.ref)menus[m]=new FSMenuNode(m,false,obj);
                                var c=menus[m];
                                if(c==node){
                                        menuToShow.length=0;
                                        return
                                }
                                clearTimeout(c.timer);
                                if(c!=child&&c.lyr.ref){
                                        c.args.length=a.length;
                                        for(var i=0;i<a.length;i++)c.args[i]=a[i];
                                        var delay=child?switchDelay:showDelay;
                                        c.timer=setTimeout('with('+myName+'){menus["'+c.id+'"].par=menus["'+node.id+'"];menus["'+c.id+'"].show()}',delay?delay:1)
                                }
                                menuToShow.length=0
                        }
                        if(!nested&&par)par.over()
                }
        };

        this.out=function(evt){
                with(node)with(obj){
                        if(isNS4&&evt&&lyr&&lyr.ref)lyr.ref.routeEvent(evt);
                        clearTimeout(timer);
                        if(!isRoot){
                                timer=setTimeout(myName+'.menus["'+id+'"].hide()',hideDelay);
                                if(!nested&&par)par.out()
                        }
                }
        };

        if(this.id!='root') with(this)with(lyr=getLyr(id))
        if(ref){
                if(isNS4)ref.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT);
                addEvent(ref,'mouseover',this.over);
                addEvent(ref,'mouseout',this.out);
                if(obj.nested){
                        addEvent(ref,'focus',this.over);
                        addEvent(ref,'click',this.over);
                        addEvent(ref,'blur',this.out)
                }
        }
};

FSMenuNode.prototype.show=function(){
        with(this)with(obj){
                if(!lyr||!lyr.ref) return;
                if(par){
                        if(par.child&&par.child!=this) par.child.hide();
                        par.child=this
                }
                var offR=args[1],offX=args[2],offY=args[3],lX=0,lY=0,doX=''+offX!='undefined',doY=''+offY!='undefined';
                if(self.page&&offR&&(doX||doY)){
                        with(page.elmPos(offR,par.lyr?par.lyr.ref:0))lX=x,lY=y;
                        if(doX)lyr.x(lX+eval(offX));
                        if(doY)lyr.y(lY+eval(offY))
                }
                if(offR)lightParent(offR,1);
                visible=1;
                if(obj.onshow)obj.onshow(id);
                setVis(1)
        }
};

FSMenuNode.prototype.hide=function(){
        with(this)with(obj){
                if(!lyr||!lyr.ref)return;
                if(isNS4&&self.isMouseIn&&isMouseIn(lyr.ref))return show();
                if(args[1])lightParent(args[1],0);
                if(child)child.hide();
                if(par&&par.child==this)par.child=null;
                par=null;
                if(lyr){
                        visible=0;
                        if(obj.onhide)obj.onhide(id);setVis(0);
                }
        }
};

FSMenuNode.prototype.lightParent=function(elm,lit){
        with(this)with(obj){
                if(!cssLitClass||isNS4) return;
                if(lit)elm.className+=(elm.className?' ':'')+cssLitClass;
                else elm.className=elm.className.replace(new RegExp('(\\s*'+cssLitClass+')+$'),'')
        }
};

FSMenuNode.prototype.setVis=function(sh){
        with(this)with(obj){
                lyr.timer|=0;lyr.counter|=0;
                with(lyr){
                        clearTimeout(timer);
                        if(sh&&!counter)sty[cssProp]=cssVis;
                        if(isDOM&&animSpeed<100)
                        for(var a=0;a<animations.length;a++) animations[a](ref,counter);
                        counter+=animSpeed*(sh?1:-1);
                        if(counter>100) counter=100
                        else if(counter<=0){
                                counter=0;
                                sty[cssProp]=cssHid
                        }else if(isDOM)timer=setTimeout(myName+'.menus["'+id+'"].setVis('+sh+')',50)
                }
        }
};

FSMenu.prototype.activateMenu=function(id,subInd){
        with(this){
                if(!isDOM)return;
                var a,ul,li,mRoot=getRef(id),nodes,count=1;
                if(isIE){
                        var aNodes=mRoot.getElementsByTagName('a');
                        for(var i=0;i<aNodes.length;i++){
                                addEvent(aNodes[i],'focus',new Function('e','var node=this.parentNode;while(node){if(node.onfocus)setTimeout(node.onfocus,1,e);node=node.parentNode}'));
                                addEvent(aNodes[i],'blur',new Function('e','var node=this.parentNode;while(node){if(node.onblur)node.onblur(e);node=node.parentNode}'))
                        }
                }
                var lists=mRoot.getElementsByTagName('ul');
                for(var i=0;i<lists.length;i++){li=ul=lists[i];
                while(li){
                        if(li.nodeName.toLowerCase()=='li')break;
                        li=li.parentNode
                }if(!li) continue;
                a=null;
                for(var j=0;j<li.childNodes.length;j++) if(li.childNodes[j].nodeName.toLowerCase()=='a')
                a=li.childNodes[j];
                if(!a)continue;
                var menuID=myName+'-id-'+count++;
                if(ul.id)menuID=ul.id;
                else ul.setAttribute('id',menuID);
                var sOC=(showOnClick==1&&li.parentNode==mRoot)||(showOnClick==2);
                var eShow=new Function('with('+myName+'){'+(sOC?'if(menus["'+menuID+'"]&&menus["'+menuID+'"].visible)':'')+' show("'+menuID+'",this)}');
                var eHide=new Function(myName+'.hide("'+menuID+'")');
                addEvent(a,'mouseover',eShow);addEvent(a,'focus',eShow);
                addEvent(a,'mouseout',eHide);addEvent(a,'blur',eHide);
                if(sOC)addEvent(a,'click',new Function('e',myName+'.show("'+menuID+'",this);if(e.cancelable&&e.preventDefault)e.preventDefault();return false'));
                if(subInd)a.insertBefore(subInd.cloneNode(true),a.firstChild)}menus[id]=new FSMenuNode(id,true,this)
        }
};

var menu=new FSMenu('menu',true,'visibility','visible','hidden');
menu.cssLitClass='highlighted';

function animClipDown(ref,counter){
        var cP=Math.pow(Math.sin(Math.PI*counter/200),0.75);
        ref.style.clip=(counter==100?(window.opera?'':'rect(auto,auto,auto,auto)'):'rect(0,'+(ref.offsetWidth*cP)+'px,'+(ref.offsetHeight*cP)+'px,0)')
};

menu.animations[menu.animations.length]=animClipDown;menu.animSpeed=20;
var menuFloat=1;
var menuFixed=!isIE||isOp;
var loha=0;


function menuLock(){
    if(loha==0) {
      loha++;
    }else{
      menuFloat=!menuFloat;
    }
    var mc=getSty('navigation');
    if(menuFixed){
        mc.position=menuFloat?'fixed':'absolute';
        mc.top=menuFloat?'10em':'2em';
    }else{
        if(menuFloat){
          window.onscroll();
          mc.top= '10em';
        }
        else {
          mc.top= '2em';
          mc.paddingTop=0
        }
    }


    
    var tag=getRef('menulock');
    tag.removeChild(tag.firstChild);
    tag.appendChild(document.createTextNode('[ Menu '+(menuFloat?'Scorrevole':'Ancorato')+' ]'));
    if(!document.cookie.match(/navsettings=/)){
        document.cookie='navsettings=menufloat:'+(menuFloat?0:1)+';path=/'
    }
    else{ document.cookie=document.cookie.replace(/menufloat:./,'menufloat:'+(menuFloat?0:1)) }

};


if(!menuFixed)window.onscroll=function(){
        if(menuFloat&&isDOM)getSty('navigation').paddingTop=(document.body.scrollTop||(isDOM?document.documentElement.scrollTop:0))+'px'
}
/*
if(!document.all){
   getSty('navigation').position='fixed';
}
*/

function loadHandler(){
        if(!isDOM)return;
        var arrow=null;
        if(document.createElement&&document.documentElement){
                arrow=document.createElement('span');
                arrow.appendChild(document.createTextNode('>'));
                arrow.className='subind'
        }
        menu.activateMenu("menuroot",arrow);

        
        // Per variare il compoetamento del menu fisso scommenta sotto e
        // vedi funzione "menuLock()"
        
        if(document.createTextNode){
                var ml=document.createElement('span');
                ml.setAttribute('id','menulock');
                addEvent(ml,'click',menuLock);
                ml.appendChild(document.createTextNode('[ Menu Scorrevole ]'));
                getRef('navigation').appendChild(ml);
                if(document.cookie&&document.cookie.match(/menufloat:1/))menuLock()
        }
        else


        if(!document.documentElement||(isIE&&!isOp&&(navigator.userAgent.indexOf('Mac')>-1)))return;
        var lt=document.createElement('div'),nav=getRef('navigation');
        lt.setAttribute('id','linktitle');
        nav.appendChild(lt);
        addEvent(nav,'mouseover',new Function('e','e=e||window.event;var lt=getRef("linktitle");if(lt){while(lt.firstChild)lt.removeChild(lt.firstChild);e=e.target||e.srcElement;while(e&&(!e.title&&!e.title_orig))e=e.parentNode;if(e&&e.getAttribute){var t=e.getAttribute("title");if(t){e.title_orig=t;e.setAttribute("title","")}lt.appendChild(document.createTextNode(e.title_orig));}}'));
        addEvent(nav,'mouseout',new Function('e','var lt=getRef("linktitle");if(lt)while(lt.firstChild)lt.removeChild(lt.firstChild)'));
        
        menuLock();
};

/*
if(navigator.userAgent.indexOf('KHTML')>-1)var safHack=setInterval('if(document.readyState=="complete"){clearInterval(safHack);loadHandler()}',100);
else addEvent(window,'load',loadHandler);
*/

if(isDOM&&document.documentElement){
        document.write('<style type="text/css">h1{visibility:hidden}</style>');
        document.write('<style type="text/css">h2{visibility:hidden}</style>');
        document.write('<style type="text/css">h3{visibility:hidden}</style>');
}




