// Common

var d=document;
var BASE_URL='http://www.ugovisciani.com/';

var XH=null;

function removeAllChild(obj)
{
  if(typeof(obj)=='string')
    {obj=d.getElementById(obj);}
  if(obj)
  {
    while(obj.firstChild)
      {obj.removeChild(obj.firstChild);}
  }
}

function setEvent(obj,ev,fnc)
{
  if(typeof(obj)=='string')
    {obj=d.getElementById(obj);}

  if(BROWSER=='Internet Explorer')
    {obj[ev]=new Function(fnc);}
  else
    {obj.setAttribute(ev,fnc);}
}

var timeouts=new Array();

function setVisibility(e,f,v,fd,af,at,oc)
{
  if(typeof(e)=='string')
    {e=d.getElementById(e);}

  if(e)
  {
    if(!fd || noFade)
    {
      if(f=='visibility')
        {e.style.visibility=v;}
      else if(f=='display')
        {e.style.display=v;}

      if(typeof(oc)=='function')
        {oc();}
    }
    else
    {
      if(!(af>=0) || !(at>=0))
      {
        if((f=='visibility' && v=='hidden') || (f=='display' && v=='none'))
        {
          af=100;
          at=0;
        }
        else
        {
          af=0;
          at=100;
        }
      }


      setVisibilityFade(e,f,v,af,at,oc);
    }
  }
}

function  setVisibilityFade(e,f,v,af,at,oc)
{
  if(typeof(e)=='string')
    {e=d.getElementById(e);}

  if(e)
  {
    if((f=='visibility' && v=='hidden') || (f=='display' && v=='none'))
    {
      if(!timeouts[e.id])
      {
        timeouts[e.id]=new Array();
        timeouts[e.id]['opacity']=af;
        if(BROWSER=='Internet Explorer')
          {e.style.filter='alpha(opacity='+(timeouts[e.id]['opacity'])+')';}
        else
          {e.style.opacity=(timeouts[e.id]['opacity']/100);}
        timeouts[e.id]['eventId']=window.setTimeout("setVisibilityFade('"+e.id+"','"+f+"','"+v+"','"+af+"','"+at+"')",10);
        if(typeof(oc)=='function')
          {timeouts[e.id]['oc']=oc;}
      }
      else
      {
        window.clearTimeout(timeouts[e.id]['eventId']);
        if(timeouts[e.id]['opacity']>at)
        {
          if(timeouts[e.id]['opacity']>=85)
            {timeouts[e.id]['opacity']-=5;}
          else if(timeouts[e.id]['opacity']>=60)
            {timeouts[e.id]['opacity']-=10;}
          else if(timeouts[e.id]['opacity']>=40)
            {timeouts[e.id]['opacity']-=15;}
          else
            {timeouts[e.id]['opacity']-=25;}

          if(timeouts[e.id]['opacity']<0)
            {timeouts[e.id]['opacity']=0;}

          if(BROWSER=='Internet Explorer')
            {e.style.filter='alpha(opacity='+(timeouts[e.id]['opacity'])+')';}
          else
            {e.style.opacity=(timeouts[e.id]['opacity']/100);}
          timeouts[e.id]['eventId']=window.setTimeout("setVisibilityFade('"+e.id+"','"+f+"','"+v+"','"+af+"','"+at+"')",10);
        }
        else
        {
          setVisibility(e.id,f,v);
          if(typeof(timeouts[e.id]['oc'])=='function')
            {timeouts[e.id]['oc']();}
          delete timeouts[e.id];
        }
      }
    }
    else
    {
      if(!timeouts[e.id])
      {
        timeouts[e.id]=new Array();
        timeouts[e.id]['opacity']=af;
        if(BROWSER=='Internet Explorer')
          {e.style.filter='alpha(opacity='+(timeouts[e.id]['opacity'])+')';}
        else
          {e.style.opacity=(timeouts[e.id]['opacity']/100);}
        setVisibility(e.id,f,v);
        timeouts[e.id]['eventId']=window.setTimeout("setVisibilityFade('"+e.id+"','"+f+"','"+v+"','"+af+"','"+at+"')",10);
      }
      else
      {
        window.clearTimeout(timeouts[e.id]['eventId']);
        if(timeouts[e.id]['opacity']<at)
        {
          if(timeouts[e.id]['opacity']>=70)
            {timeouts[e.id]['opacity']+=5;}
          else if(timeouts[e.id]['opacity']>=40)
            {timeouts[e.id]['opacity']+=10;}
          else
            {timeouts[e.id]['opacity']+=15;}

          if(timeouts[e.id]['opacity']>100)
            {timeouts[e.id]['opacity']=100;}

          if(BROWSER=='Internet Explorer')
            {e.style.filter='alpha(opacity='+(timeouts[e.id]['opacity'])+')';}
          else
            {e.style.opacity=(timeouts[e.id]['opacity']/100);}
          timeouts[e.id]['eventId']=window.setTimeout("setVisibilityFade('"+e.id+"','"+f+"','"+v+"','"+af+"','"+at+"')",10);
        }
        else
          {delete timeouts[e.id];}
      }
    }
  }
}

function clearTimeouts()
{
  for(var i=0;i<timeouts.length;i++)
    {window.clearTimeout(timeouts[i]['eventId']);}
  timeouts=new Array();
}

function getVisibility(e,f)
{
  if(typeof(e)=='string')
    {e=d.getElementById(e);}

  if(e)
  {
    if(f=='visibility')
      {return e.style.visibility;}
    else if(f=='display')
      {return e.style.display;}
  }
}

function getXPos(obj)
{
  if(typeof(obj)=='string')
    {obj=d.getElementById(obj);}

  if(obj)
  {
    var curleft=0;
    if(obj.offsetParent)
    {
      while(obj.offsetParent)
      {
        curleft+=obj.offsetLeft
        obj=obj.offsetParent;
      }
    }
    else if (obj.x)
      curleft+=obj.x;
    return curleft;
  }
  else
    {return -1;}
}

function getYPos(obj)
{
  if(typeof(obj)=='string')
    {obj=d.getElementById(obj);}

  if(obj)
  {
    var curtop=0;
    if(obj.offsetParent)
    {
      while(obj.offsetParent)
      {
        curtop+=obj.offsetTop
        obj=obj.offsetParent;
      }
    }
    else if (obj.y)
      curtop+=obj.y;
    return curtop;
  }
  else
    {return -1;}
}

function getInnerWindowWidth()
{
  if (!window.innerWidth)
    {return d.documentElement.clientWidth;}
  else
    {return window.innerWidth;}
}

function getInnerWindowHeight()
{
  if(!window.innerHeight)
    {return d.documentElement.clientHeight;}
  else
    {return window.innerHeight;}
}

function windowCenterX()
{
  if(d.documentElement.scrollLeft>=0)
    {return getInnerWindowWidth()/2+d.documentElement.scrollLeft;}
  else
    {return getInnerWindowWidth()/2+window.pageXOffset;}
}

function windowCenterY()
{
  return getInnerWindowHeight()/2+pageScrollTop();
}

function pageScrollTop()
{
  if(d.documentElement.scrollTop>=0)
    {return d.documentElement.scrollTop;}
  else
    {return window.pageYOffset;}
}

function setFullScreenHeight(obj)
{ 
  if(typeof(obj)=='string')
    {obj=d.getElementById(obj);}

  obj.style.height=(d.getElementById('dBody').offsetHeight>getInnerWindowHeight())?d.getElementById('dBody').offsetHeight+'px':getInnerWindowHeight()+'px';
}

function loadArray(s,d)
{
  return s.split(d);
}

function showLoadingOverlay()
{
  showOverlayFullScreen('loadingOverlay');
  setVisibility('loadingOverlay','visibility','visible',true,0,50);
}

function hideLoadingOverlay()
{
  setVisibility('loadingOverlay','visibility','hidden',true,50,0,hideOverlayFullScreen('loadingOverlay'));
}

function showOverlayFullScreen(obj)
{
  if(typeof(obj)=='string')
    {obj=d.getElementById(obj);}

  if(obj)
  {
    obj.style.width='100%';
    obj.style.height='100%';
  }
}

function hideOverlayFullScreen(obj)
{
  if(typeof(obj)=='string')
    {obj=d.getElementById(obj);}

  if(obj)
  {
    obj.style.width='0px';
    obj.style.height='0px';
  }
}

function onLoad()
{
  getBrowser();
  if(typeof(onLoadPage)=='function')
    {onLoadPage();}
  openCatMenu(0);
  if(BROWSER=='Safari')
    {d.getElementById('topBar').className='mac';}
  showImgControl(true);
}

function onUnload()
{
  if(typeof(onUnloadPage)=='function')
    {onUnloadPage();}
}

function createXMLHttpRequest()
{
  if (window.ActiveXObject)
    {return new ActiveXObject("Microsoft.XMLHTTP");}
  else if (window.XMLHttpRequest)
    {return new XMLHttpRequest();}
}



var autoOpenCatId=0;

function openCatMenu(id)
{
  if(!id>0 && autoOpenCatId>0)
    {id=autoOpenCatId;}

  for(var i=0;i<catIds.length;i++)
  {
    var ul=d.getElementById('catMenu'+catIds[i])
    var a=d.getElementById('catMenuA'+catIds[i])
    ul.style.display='none';
    a.className="";
  }

  if(id>0)
  {
    var ul=d.getElementById('catMenu'+id)
    var a=d.getElementById('catMenuA'+id)
    if(ul.style.display=='none')
    {
      ul.style.display='block';
      a.className="sel";
    }
    else
    {
      ul.style.display='none';
      a.className="";
    }
  }
}

var scrollerMargin=0;
var scrollerEventId=null;

function scrollTNPhoto(a)
{
  if(!scrolling)
  {
    if(a=='u')
    {
      var uF=false;
      var dF=false;

      if(!photoVs[0])
      {
        for(var i=0;i<photoVs.length;i++)
        {
          if(!photoVs[i] && photoVs[i+1] && !uF)
          {
            uF=true;
            photoVs[i]=true;
          }

          if(photoVs[i] && !photoVs[i+1] && !dF)
          {
            dF=true;
            photoVs[i]=false;
          }
        }
        scrollTimerMargin=0;
        scrollerEventId=window.setTimeout("scrollTimer('u')",5);
      }
    }
    else
    {
      var uF=false;
      var dF=false;

      if(!photoVs[photoVs.length-1])
      {
        for(var i=0;i<photoVs.length;i++)
        {
          if(photoVs[i] && !photoVs[i-1] && !uF)
          {
            uF=true;
            photoVs[i]=false;
          }

          if(photoVs[i-1] && !photoVs[i] && !dF)
          {
            dF=true;
            photoVs[i]=true;
          }
        }
        scrollTimerMargin=0;
        scrollerEventId=window.setTimeout("scrollTimer('d')",5);
      }
    }
  }
}

var scrollTimerMargin=0;
var scrolling=false;

function scrollTimer(a)
{
  if(a=='u')
  {
    scrollTimerMargin+=5;
    d.getElementById('serviceTNScroller').style.marginTop=(scrollerMargin+scrollTimerMargin)+'px';
    if(scrollTimerMargin<80)
    {
      scrolling=true;
      scrollerEventId=window.setTimeout("scrollTimer('u')",5);
    }
    else
    {
      scrollerMargin+=80;
      scrolling=false;
    }
  }
  else if(a=='d')
  {
    scrollTimerMargin-=5;
    d.getElementById('serviceTNScroller').style.marginTop=(scrollerMargin+scrollTimerMargin)+'px';
    if(scrollTimerMargin>-80)
    {
      scrolling=true;
      scrollerEventId=window.setTimeout("scrollTimer('d')",5);
    }
    else
    {
      scrollerMargin-=80;
      scrolling=false;
    }
  }
}

function changeBigPhotoSrc()
{
  img=d.getElementById('serviceImg');
  if(action=='show_service')
    {img.src='images/foto/'+bigPhotoId+'_small.jpg';}
  else if(action=='show_portfolio')
    {img.src='images/portfolio/'+bigPhotoId+'_small.jpg';}
  else if(action=='show_gift')
    {img.src='images/pills/'+bigPhotoId+'_small.jpg';}
}

function loadBigPhoto(id,sss)
{
  if(sss)
    {ctrlPauseSlideShow();}

  if(bigPhotoId!=id)
  {
    tn_img=d.getElementById('tnImg'+id);

    bigPhotoId=id;
    setEvent('serviceImg','onload','showBigPhoto()');
    setVisibility('serviceImg','visibility','hidden',true,100,0,changeBigPhotoSrc);

    for(var i=0;i<photoIds.length;i++)
      {d.getElementById('tnImg'+photoIds[i]).className='tnImg';}
    tn_img.className='tnImg sel';
    d.getElementById('pN').innerHTML=(photoIds.indexOf(bigPhotoId)+1);
  }
}

function showBigPhoto()
{
  img=d.getElementById('serviceImg');
  setEvent(img,'onload','');
  setVisibility('serviceImg','visibility','visible',true,0,100);
  setVisibility('serviceImgBG','visibility','visible',true,0,80);
}

var serviceImgControlVisibile=false;
var serviceImgControlHideEventId=null;

function showImgControl(ah)
{
  ctrl=d.getElementById('serviceImgControl');
  ctrl_bg=d.getElementById('serviceImgControlBG');
  if(ctrl)
  {
    ctrl.style.top=(getYPos('serviceImgBox')+465)+'px';
    ctrl.style.left=(getXPos('serviceImgBox')+207)+'px';
    ctrl_bg.style.top=(getYPos('serviceImgBox')+465)+'px';
    ctrl_bg.style.left=(getXPos('serviceImgBox')+207)+'px';
    if(!serviceImgControlVisibile)
    {
      setVisibility(ctrl,'visibility','visible',true,0,100);
      setVisibility(ctrl_bg,'visibility','visible',true,0,80);
      serviceImgControlVisibile=true;
    }
    window.clearTimeout(serviceImgControlHideEventId);
    if(ah)
      {serviceImgControlHideEventId=window.setTimeout("hideImgControl()",2000);}
  }
}

function hideImgControlTimeout()
{
  window.clearTimeout(serviceImgControlHideEventId);
  serviceImgControlHideEventId=window.setTimeout("hideImgControl()",2000);
}

function hideImgControl()
{
  if(serviceImgControlVisibile)
  {
    setVisibility('serviceImgControlBG','visibility','hidden',true,80,0);
    setVisibility('serviceImgControl','visibility','hidden',true,100,0);
    serviceImgControlVisibile=false;
  }
}

function ctrlPrevPhoto()
{
  if(bigPhotoId!=photoIds[0])
  {
    i=photoIds.indexOf(bigPhotoId);
    loadBigPhoto(photoIds[i-1]);
    scrollTNPhoto('u');
  }
}

var ssTimerId=null;

function ctrlPauseSlideShow()
{
  window.clearTimeout(ssTimerId);
  d.getElementById('ssPauseImg').style.display='none';
  d.getElementById('ssPlayImg').style.display='inline';
}

function ctrlStartSlideShow()
{
  if(ssTimerId)
    {window.clearTimeout(ssTimerId);}

  d.getElementById('ssPlayImg').style.display='none';
  d.getElementById('ssPauseImg').style.display='inline';
  ssTimerId=window.setTimeout("ctrlNextPhoto()",100);
}

function ctrlNextPhoto()
{
  if(bigPhotoId!=photoIds[photoIds.length-1])
  {
    i=photoIds.indexOf(bigPhotoId);
    loadBigPhoto(photoIds[i+1]);
    scrollTNPhoto('d');

    if(ssTimerId)
      {ssTimerId=window.setTimeout("ctrlNextPhoto()",7000);}
  }
  else if(ssTimerId)
    {ctrlPauseSlideShow();}
}




// Compatibility

if(!Array.indexOf)
{
  Array.prototype.indexOf=function(obj)
  {
    for(var i=0;i<this.length;i++)
    {
       if(this[i]==obj)
         {return i;}
    }
    return -1;
  }
}


// Browser Detection

var BROWSER='';
var BROWSER_VERSION='';
var BROWSER_VERSION_NUMBER='';

function getBrowser()
{
  var uA=navigator.userAgent;
  if(uA.indexOf('Opera')!=-1)
  {
    BROWSER='Opera';
    var s=uA.indexOf('Opera')+6;
    var e=uA.indexOf(' ',s);
    if(e>0)
      {BROWSER_VERSION=uA.substr(s,e-s);}
    else
      {BROWSER_VERSION=uA.substr(s);}
  }
  else if (uA.indexOf('MSIE')!=-1)
  {
    BROWSER='Internet Explorer';
    var s=uA.indexOf('MSIE ')+4;
    var e=uA.indexOf(';',s);
    BROWSER_VERSION=uA.substr(s,e-s);
  }
  else if (uA.indexOf('Firefox')!=-1)
  {
    BROWSER='Firefox';
    BROWSER_VERSION=uA.substr(uA.indexOf('Firefox/')+8);
  }
  else if (uA.indexOf('Safari')!=-1)
  {
    BROWSER='Safari';
    if(uA.indexOf('Version')!=-1)
      {BROWSER_VERSION=uA.substr(uA.indexOf('Version/')+8,(uA.indexOf(' ',uA.indexOf('Version/')+8))-(uA.indexOf('Version/')+8));}
    else
      {BROWSER_VERSION=uA.substr(uA.indexOf('safari/')+7);}
  }
  else if ((uA.indexOf('mozilla/5.0')!=-1) && (uA.indexOf('rv:')!=-1) && (uA.indexOf('gecko/')!=-1))
  {
    BROWSER='Mozilla';
    var s=uA.indexOf('rv:')+3;
    var e=uA.indexOf(')',s);
    if(e>0)
      {BROWSER_VERSION=uA.substr(s,e-s);}
    else
      {BROWSER_VERSION=uA.substr(s);}
  }

  if(BROWSER_VERSION!='')
  {
    var fp=true;
    var index=0;
    for(var i=0;i<BROWSER_VERSION.length;i++)
    {
      if(BROWSER_VERSION[i]>=0)
        {index=i;}
      else if(BROWSER_VERSION[i]=='.' && fp)
      {
        index=i;
        fp=false;
      }
      else
        {break;}
    }
    BROWSER_VERSION_NUMBER=BROWSER_VERSION.substr(0,index+1);

    if(!(BROWSER_VERSION_NUMBER>0))
      {BROWSER_VERSION_NUMBER='';}
  }
}