var hU = new HashUpdaterPhoto('phC',onChange,null,null,onChanged);
var mti=13;
var mbi=6;
var bInT=false;
var pg=new Array();
var photoId=0;       
var rate=0;
var thumbIdx=0;
var bPages=0;
var bPCur=0;
var bPSize=45;
var bInit=false;
function phGalleryStart(bInTournament)
{
  if(bInit){return;}
  bInit=true;
  if (bInTournament!==undefined&&bInTournament){mti=8;mbi=4;bInT=true;}
  var pc=null;
  pc=document.getElementsByClassName('phLi');
  var i;for (i=0;i<pc.length;i++){pg.push(pc[i].id.sub('ph',''));}
  hU.start();
}
function phGetIndex(id){var i;for (i=0;i<pg.length;i++){if(pg[i]==id)return i;}return-1;}
function phGetCount(){return pg.length;}
function phIsLast(id){if (phGetIndex(id)==(pg.length-1))return true;return false;}
function phIsFirst(id){if (phGetIndex(id)==0)return true;return false;}
function phGet(id){try{var s=$('ph'+pg[id]).innerHTML.sub('<span','<img');s=s.sub('<SPAN','<img');s=s.sub('> <','><');return s;}catch(e){}}
function onChange(h,u)
{
  if (h==null||h=='') h=pg[0];
  if (h==null||h=='') return '';
  if (isNaN(h)){activateBrowse();return '';}
  return '/photo/pics/_,photoid='+h+'.html';
}
function activateBrowse()
{
  $('phtoolbar').hide();
  $('phC').hide();
  $('phC').update(' ');
  $('phBrowse').show();
  var u='/photo/largethumb/_,photoid='+pg[0]+'.html'
  new Ajax.Updater({success:'phBFirst'},u,{method:'get'});
  bPages=Math.ceil((phGetCount()-1)/bPSize);
  bPCur=0;  
  drawBrowsePage();
}
function prevBPage()
{
  bPCur--;
  if(bPCur<0)bPCur=bPages-1;
  drawBrowsePage();
}
function nextBPage()
{
  bPCur++;
  if(bPCur>=bPages)bPCur=0;
  drawBrowsePage();
}
function moveBPage(i)
{
  if(i<0||i>bPages)return;
  bPCur=i;drawBrowsePage();
}
function drawBrowsePage()
{
  var i,st=bPCur*bPSize,nh='<ul>',bh='';
  for (i=0;i<bPSize;i++){if((i+st+1)<phGetCount()) nh+='<li>'+phGet(i+st+1)+'</li>'}nh+='</ul>';
  if (bPages>1)
  {
    bh+='<div id="bAL" onclick="prevBPage();">&nbsp;</div><div class="bullets">';
    for (i=0;i<bPages;i++){
      bh+='<a src="#" onclick="moveBPage('+i+');" class="'+(i!=bPCur?'nbSel':'')+'">';
      bh+='<span class="nT">'+i+'</span>&nbsp;</a>';}
    bh+='</div><div id="bAR" onclick="nextBPage();">&nbsp;</div>';
  }
  $('phBNav').innerHTML=nh;
  $('phBNavBar').innerHTML=bh;
}
function disableBrowse()
{
  //alert('phC show')
  $('phC').show();
  //alert('phtoolbar show')
  //document.getelementById('phC').show();
  $('phtoolbar').show();
  //alert('phBrowse show')
  $('phBrowse').hide();
}
function onChanged(u)
{
  disableBrowse();
  var h=u.h;
  
  if(h==null||h=='')h=pg[0];
  if(h==null||h=='')return;
  photoId=h;
  
  //Rating.init(photoId);
  var phIdx=phGetIndex(photoId),fIdx,lIdx;
  if(phGetCount()<=mti){fIdx=0;lIdx=phGetCount()-1;}
  else{fIdx=phIdx-mbi;lIdx=phIdx-mbi+mti-1;if (fIdx<0){fIdx=0;lIdx=mti-1}if (lIdx>=phGetCount()){fIdx=phGetCount()-mti;lIdx=phGetCount()-1}}    
  thumbIdx=fIdx; 
  $('pnAR').hide();
  if(!phIsFirst(photoId)){
    $('pnAR').show();
    $('pnAR').setAttribute("href","#"+pg[phIdx-1])
  }  
   //alert ("hide freccia sx")
  $('pnAL').hide();
    
    if(!phIsLast(photoId)){
    //alert ("show freccia sx")
    //alert ($('pnAL').style.value+' vede pnAL')
      $('pnAL').show();
      //alert ($('pnAL').style.value+' vede pnAL')
      $('pnAL').setAttribute("href","#"+pg[phIdx+1])
      //alert ("quoooo")
    }
  drawThumbs (thumbIdx)
}
function drawThumbs (sIdx)
{
  var nh='<ul>',i,lI;
  lI=sIdx+mti;if (lI>phGetCount()) lI=phGetCount();
  for (i=sIdx;i<lI;i++){nh+='<li>'+phGet(i)+'</li>'}nh+='</ul>';
  $('phlist').innerHTML=nh;
  $('ptAR').hide();if(sIdx>0)$('ptAR').show()
  $('ptAL').hide();if((sIdx+mti)<phGetCount())$('ptAL').show()
}
function prevThum()
{
  if (thumbIdx==0) return;
  thumbIdx--;
  drawThumbs (thumbIdx);
}
function nextThum()
{
  if ((thumbIdx+mti)>=phGetCount()) return;
  thumbIdx++;
  drawThumbs (thumbIdx);
}

var zXml={useActiveX:(typeof ActiveXObject!="undefined"),useDom:document.implementation&&document.implementation.createDocument,useXmlHttp:(typeof XMLHttpRequest!="undefined")};zXml.ARR_XMLHTTP_VERS=["MSXML2.XmlHttp.6.0","MSXML2.XmlHttp.3.0"];zXml.ARR_DOM_VERS=["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.3.0"];function zXmlHttp(){}zXmlHttp.createRequest=function(){if(zXml.useXmlHttp){return new XMLHttpRequest();}else if(zXml.useActiveX){if(!zXml.XMLHTTP_VER){for(var i=0;i<zXml.ARR_XMLHTTP_VERS.length;i++){try{new ActiveXObject(zXml.ARR_XMLHTTP_VERS[i]);zXml.XMLHTTP_VER=zXml.ARR_XMLHTTP_VERS[i];break;}catch(oError){;}}}if(zXml.XMLHTTP_VER){return new ActiveXObject(zXml.XMLHTTP_VER);}else{throw new Error("Could not create XML HTTP Request.");}}else{throw new Error("Your browser doesn't support an XML HTTP Request.");}};zXmlHttp.isSupported=function(){return zXml.useXmlHttp||zXml.useActiveX;};function zXmlDom(){}zXmlDom.createDocument=function(){if(zXml.useDom){var oXmlDom=document.implementation.createDocument("","",null);oXmlDom.parseError={valueOf:function(){return this.errorCode;},toString:function(){return this.errorCode.toString()}};oXmlDom.__initError__();oXmlDom.addEventListener("load",function(){this.__checkForErrors__();this.__changeReadyState__(4);},false);return oXmlDom;;}else if(zXml.useActiveX){if(!zXml.DOM_VER){for(var i=0;i<zXml.ARR_DOM_VERS.length;i++){try{new ActiveXObject(zXml.ARR_DOM_VERS[i]);zXml.DOM_VER=zXml.ARR_DOM_VERS[i];break;}catch(oError){;}}}if(zXml.DOM_VER){return new ActiveXObject(zXml.DOM_VER);}else{throw new Error("Could not create XML DOM document.");}}else{throw new Error("Your browser doesn't support an XML DOM document.");}};zXmlDom.isSupported=function(){return zXml.useDom||zXml.useActiveX;};var oMozDocument=null;if(typeof XMLDocument!="undefined"){oMozDocument=XMLDocument;}else if(typeof Document!="undefined"){oMozDocument=Document;}if(oMozDocument&&!window.opera){oMozDocument.prototype.readyState=0;oMozDocument.prototype.onreadystatechange=null;oMozDocument.prototype.__changeReadyState__=function(iReadyState){this.readyState=iReadyState;if(typeof this.onreadystatechange=="function"){this.onreadystatechange();}};oMozDocument.prototype.__initError__=function(){this.parseError.errorCode=0;this.parseError.filepos=-1;this.parseError.line=-1;this.parseError.linepos=-1;this.parseError.reason=null;this.parseError.srcText=null;this.parseError.url=null;};oMozDocument.prototype.__checkForErrors__=function(){if(this.documentElement.tagName=="parsererror"){var reError=/>([\s\S]*?)Location:([\s\S]*?)Line Number(\d+),Column(\d+):<sourcetext>([\s\S]*?)(?:\-*\^)/;reError.test(this.xml);this.parseError.errorCode=-999999;this.parseError.reason=RegExp.$1;this.parseError.url=RegExp.$2;this.parseError.line=parseInt(RegExp.$3);this.parseError.linepos=parseInt(RegExp.$4);this.parseError.srcText=RegExp.$5;}};oMozDocument.prototype.loadXML=function(sXml){this.__initError__();this.__changeReadyState__(1);var oParser=new DOMParser();var oXmlDom=oParser.parseFromString(sXml,"text/xml");while(this.firstChild){this.removeChild(this.firstChild);}for(var i=0;i<oXmlDom.childNodes.length;i++){var oNewNode=this.importNode(oXmlDom.childNodes[i],true);this.appendChild(oNewNode);}this.__checkForErrors__();this.__changeReadyState__(4);};oMozDocument.prototype.__load__=oMozDocument.prototype.load;oMozDocument.prototype.load=function(sURL){this.__initError__();this.__changeReadyState__(1);this.__load__(sURL);};Node.prototype.__defineGetter__("xml",function(){var oSerializer=new XMLSerializer();return oSerializer.serializeToString(this,"text/xml");});Node.prototype.__defineGetter__("text",function(){var sText="";for(var i=0;i<this.childNodes.length;i++){if(this.childNodes[i].hasChildNodes()){sText+=this.childNodes[i].text;}else{sText+=this.childNodes[i].nodeValue;}}return sText;});}function zXslt(){}zXslt.transformToText=function(oXml,oXslt){if(typeof XSLTProcessor!="undefined"){var oProcessor=new XSLTProcessor();oProcessor.importStylesheet(oXslt);var oResultDom=oProcessor.transformToDocument(oXml);var sResult=oResultDom.xml;if(sResult.indexOf("<transformiix:result")>-1){sResult=sResult.substring(sResult.indexOf(">")+1,sResult.lastIndexOf("<"));}return sResult;;}else if(zXml.useActiveX){return oXml.transformNode(oXslt);}else{throw new Error("No XSLT engine found.");}};function zXPath(){}zXPath.selectNodes=function(oRefNode,sXPath,oXmlNs){if(typeof XPathEvaluator!="undefined"){oXmlNs=oXmlNs||{};var nsResolver=function(sPrefix){return oXmlNs[sPrefix];};var oEvaluator=new XPathEvaluator();var oResult=oEvaluator.evaluate(sXPath,oRefNode,nsResolver,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);var aNodes=new Array;if(oResult!=null){var oElement=oResult.iterateNext();while(oElement){aNodes.push(oElement);oElement=oResult.iterateNext();}}return aNodes;}else if(zXml.useActiveX){if(oXmlNs){var sXmlNs="";for(var sProp in oXmlNs){sXmlNs+="xmlns:"+sProp+"=\'"+oXmlNs[sProp]+"\' ";}oRefNode.ownerDocument.setProperty("SelectionNamespaces",sXmlNs);};return oRefNode.selectNodes(sXPath);}else{throw new Error("No XPath engine found.");}};zXPath.selectSingleNode=function(oRefNode,sXPath,oXmlNs){if(typeof XPathEvaluator!="undefined"){;oXmlNs=oXmlNs||{};var nsResolver=function(sPrefix){return oXmlNs[sPrefix];};var oEvaluator=new XPathEvaluator();var oResult=oEvaluator.evaluate(sXPath,oRefNode,nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null);if(oResult!=null){return oResult.singleNodeValue;}else{return null;};}else if(zXml.useActiveX){if(oXmlNs){var sXmlNs="";for(var sProp in oXmlNs){sXmlNs+="xmlns:\'"+sProp+"="+oXmlNs[sProp]+"\' ";}oRefNode.ownerDocument.setProperty("SelectionNamespaces",sXmlNs);};return oRefNode.selectSingleNode(sXPath);}else{throw new Error("No XPath engine found.");}};function zXMLSerializer(){}zXMLSerializer.prototype.serializeToString=function(oNode){var sXml="";switch(oNode.nodeType){case 1:sXml="<"+oNode.tagName;for(var i=0;i<oNode.attributes.length;i++){sXml+=" "+oNode.attributes[i].name+"=\""+oNode.attributes[i].value+"\"";}sXml+=">";for(var i=0;i<oNode.childNodes.length;i++){sXml+=this.serializeToString(oNode.childNodes[i]);}sXml+="</"+oNode.tagName+">";break;case 3:sXml=oNode.nodeValue;break;case 4:sXml="<![CDATA["+oNode.nodeValue+"]]>";break;case 7:sXml="<?"+oNode.nodevalue+"?>";break;case 8:sXml="<!--"+oNode.nodevalue+"-->";break;case 9:for(var i=0;i<oNode.childNodes.length;i++){sXml+=this.serializeToString(oNode.childNodes[i]);}break;};return sXml;};


