var req = false;

var param = new Array();
var params = "";

var urlA = window.location.href.split( "?" );

if( urlA[ 1 ] ) {
  params = urlA[ 1 ];

  urlA[ 1 ] = urlA[ 1 ].replace( "&", "=" );
  var paramA = urlA[ 1 ].split( "=" );
  var i = 0;
  while( paramA[ i ] ) {
    param[ paramA[ i ] ] = paramA[ i+1 ];
    i=i+2;
  }
}

var raceId = param[ 'raceId' ];
if( ! raceId )
    raceId = 1;

var page = param[ 'page' ];

if( ! page )
  page = 1;
  
page = Math.round( page );
  
var lastPage = 0;
var imagesPerPage = 9;
var detail_page = "2006_gallery_detail.html";
  
function goFirstPage() {
  page=1;
  reLoad();
}

function goPrevPage() {
  page=page-1;
  reLoad();
}

function goNextPage() {
	if (page < lastPage) {
		page=page+1;
	}
  reLoad();
}

function goLastPage() {
  page=lastPage;
  reLoad();
}

function imageDetail( imgNum ) {
  s = detail_page+"?raceId="+raceId+"&page="+(page*imagesPerPage-imagesPerPage+imgNum);
  window.location.href = s;
}

function loadXMLProto( url ) {
  req = false;
  if( window.XMLHttpRequest ) {
    try {
      req = new XMLHttpRequest();
    } catch(e) {
      req = false;
    }
  }
  else if( window.ActiveXObject )
  {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
    try {
      req = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
      req = false;
    }
  }
  }
  
  if(req) {
    req.onreadystatechange = this.proccesReqChange;
    req.open("GET", url, true);
    req.send("");
  }
    
}

function processReqChangeProto() {
  if( req.readyState == 4 && req.status == 200 && req.responseXML != null ) {
    onLoadXML();
  }
}

function onLoadProto() {
}

function ajaxControlObj() {
  this.loadXML = loadXMLProto;
  this.proccesReqChange = processReqChangeProto;
  this.onLoad = onLoadProto;
}

function getChildText( node, childName ) {
  var nodes = node.childNodes;
  for( var i=0; i < nodes.length; i++ ) {
    if( nodes[ i ].nodeName.toLowerCase() == childName.toLowerCase() ) {
      if( ! nodes[ i ].hasChildNodes() )
        return "";
      else
        return nodes[ i ].firstChild.nodeValue;
    }
  }
  return null;
}  

function getAttrText( node, attrName ) {
  if( ! node.getAttribute( attrName ))
    return "";
  else
    return node.getAttribute( attrName );
}  

function getObject( name ) {
  if( document.getElementById )
    return document.getElementById( name );
  else
    return document.all[ name ];
}

function onLoadXML() {
  var nodes = req.responseXML.getElementsByTagName( 'image' );
  lastPage = Math.round( (nodes.length / imagesPerPage)+0.49 );
  getObject( 'lastPageSpan' ).innerHTML = lastPage;
  getObject( 'currPageSpan' ).innerHTML = page;
  
  getObject( 'firstPageLinkSpan' ).style.visibility = ( page == 1 ) ? "hidden" : "visible";
  getObject( 'prevPageLinkSpan' ).style.visibility = ( page == 1 ) ? "hidden" : "visible";
    
  getObject( 'nextPageLinkSpan' ).style.visibility = ( page == lastPage ) ? "hidden" : "visible";
  getObject( 'lastPageLinkSpan' ).style.visibility = ( page == lastPage ) ? "hidden" : "visible";
  
  for( i = 1; i <= imagesPerPage; i++ ) {
    imgNum = page*imagesPerPage-imagesPerPage+i;
    
    if( imgNum-1 <= nodes.length-1 ) {
      thumbName = getAttrText( nodes[ imgNum-1 ], "thumbName" );
      if( getObject( "imageThumb"+i ))
        getObject( "imageThumb"+i ).src = "images/"+thumbName;
      
      fileName = getAttrText( nodes[ imgNum-1 ], "fileName" );
      if( getObject( "galleryImage"+i ))
        getObject( "galleryImage"+i ).src = "images/"+fileName;

      imageText = nodes[ imgNum-1 ].firstChild.nodeValue;
      if( getObject( "image"+i+"Text" ))
        getObject( "image"+i+"Text" ).innerHTML = imageText;
      
    } else {
      if( getObject( "imageThumb"+i ))
        getObject( "imageThumb"+i ).src = "images/clearspacer.gif";
      
     if( getObject( "image"+i+"Text" ))
        getObject( "image"+i+"Text" ).innerHTML = "";
    }
  
  }
}
