//Global Variables
var xmlobj=null; // This is for Loading Data Function
var httpRequest = false; //Initially setting the Http Request to false 
var nPhotoNodes = 0; // No.of photo nodes
var imagePath = 0;
var searchStatus="document.getElementById('status')"; // Status of the Records
var dataIsNull=""; // If no data is retrieved then we are making that value as "N/A"
var presentPage = 1; //This is for Pagination

// Configuring XML Function
function configureXML()
{
	makeRequest('/web/ME/ciscoexposaudi2008/xml/photogallery.xml');	
}

//Making a request to the xml
function makeRequest(url) 
{
      httpRequest = false;
      if (window.XMLHttpRequest) { // For Mozilla, Safari,... Browser's
         httpRequest = new XMLHttpRequest();
         if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
         }
      } else if (window.ActiveXObject) { // For IE Browser
         try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!httpRequest) {
         alert('Cannot Create XMLHTTP Instance');
         return false;
      }
      httpRequest.onreadystatechange = photogallery; //Calling a function photogallery()
      httpRequest.open('GET', url, true);
      httpRequest.send(null);
}

//If the request is success then photogallery() function is called
function photogallery()
{
  if(httpRequest.readyState == 0) { eval(searchStatus).innerHTML = "<img src='/web/ME/ciscoexposaudi2008/images/loading.gif' border='0' />&nbsp;Sending Request..."; }
  if(httpRequest.readyState == 1) { eval(searchStatus).innerHTML = "<img src='/web/ME/ciscoexposaudi2008/images/loading.gif' border='0' />&nbsp;Loading Response..."; }
  if(httpRequest.readyState == 2) { eval(searchStatus).innerHTML = "<img src='/web/ME/ciscoexposaudi2008/images/loading.gif' border='0' />&nbsp;Response Loaded..."; }
  if(httpRequest.readyState == 3) { eval(searchStatus).innerHTML = "<img src='/web/ME/ciscoexposaudi2008/images/loading.gif' border='0' />&nbsp;Response Ready..."; }
  if(httpRequest.readyState == 4) 
	{
	 if (httpRequest.status == 200) 
		{
			imagePath = httpRequest.responseXML.getElementsByTagName('ImagePath');
			nPhotoNodes = httpRequest.responseXML.getElementsByTagName('photo');
			
			var imagePath = imagePath[0].firstChild.nodeValue; // Retrieving image path from "ImagePath" tag
			
			eval(searchStatus).innerHTML="";
			//var totalPhotoNodes=(nPhotoNodes.length)/5;
			var i=0;
			while(i<nPhotoNodes.length)
			{
				//alert(i);
				resultTable=document.getElementById("photogallerytable");
				var rowLength=resultTable.rows.length;
				tr1=resultTable.insertRow(Number(rowLength));
				var arrValues=new Array();
				var cellWidth=114;
				var cellHeight=125;
				
				
				for(j=0;j<3;j++)
				{
					if(i<nPhotoNodes.length)
					{
						var photoNodeObj=photoObject(i);
						arrValues[j]="<a href=\"javascript:void(0);\" onclick='window.open(\""+imagePath+photoNodeObj.imgfilename+"\",\"Expo2007\",\"scrollbars=yes, status=yes,width=552,height=381,screenX=200, screenY=200, top=200, left=200\")'><img src="+imagePath+"thumbnails/"+photoNodeObj.imgfilename+" border=\"0\"></a><br/>"+photoNodeObj.caption+"";
						i++;
					}
					else
					{
						arrValues[j]="";
					}
				}
				
				for(x=0;x<3;x++){
					trCells=tr1.insertCell(x);
					//trCells.onclick=function(){toggleDetails(this.parentNode.rowIndex,"top_new_success_stories","hideResult"+nodeNo+"");};
					if(x==0)
					{
						trCells.setAttribute("class","td-content-left");
						trCells.setAttribute("className","td-content-left");
					}else if(x==1)
					{
						trCells.setAttribute("class","td-content-center");
						trCells.setAttribute("className","td-content-center");
					}
					else if(x==2)
					{
						trCells.setAttribute("class","td-content-right");
						trCells.setAttribute("className","td-content-right");
					}
					trCells.setAttribute("align","center");					
					trCells.setAttribute("valign","middle");
					//trCells.setAttribute("style","vertical-align:middle");
					//trCells.setAttribute("vertical-align","bottom");					
					trCells.setAttribute("width",cellWidth);
					trCells.setAttribute("height",cellHeight);
					trCells.innerHTML=arrValues[x];
				}
			}
			pagination();
		}else
		{
			alert('There was a problem with the XML request.');
		}
	}
}

function photoObject(photoNumber)
{
	var photoObj=new Object();

	//imgfilename tag
	if(nPhotoNodes[photoNumber].getElementsByTagName("imgfilename")[0].hasChildNodes())
	{
		photoObj.imgfilename=nPhotoNodes[photoNumber].getElementsByTagName("imgfilename")[0].firstChild.nodeValue;
		//alert("photoObj.imgfilename: "+photoObj.imgfilename);
	}else
	{photoObj.imgfilename=dataIsNull;}

	//caption tag
	if(nPhotoNodes[photoNumber].getElementsByTagName("caption")[0].hasChildNodes())
	{
		photoObj.caption=nPhotoNodes[photoNumber].getElementsByTagName("caption")[0].firstChild.nodeValue;
		//alert("photoObj.caption: "+photoObj.caption);
	}else
	{photoObj.caption=dataIsNull;}

	return photoObj;
}

/* ------ Records Per Page ------ */
var pager = new Pager('photogallerytable', 4); 
/* ------ Pagination --------- */
function pagination()
{
	var presentPage = 1;
	pager.init(); 
	pager.showPageNav('pager', 'pageNavPosition'); 
	pager.showPage(1);
}

function Pager(tableName, itemsPerPage) {
    this.tableName = tableName;
    this.itemsPerPage = itemsPerPage;
    this.currentPage = 1;
    this.pages = 0;
    this.inited = false;
    
    this.showRecords = function(from, to) {        
        var rows = document.getElementById(tableName).rows;
        // i starts from 1 to skip table header row
        for (var i = 1; i < rows.length; i++) {
            if (i < from || i > to)
                rows[i].style.display = 'none';
            else
                rows[i].style.display = '';
        }
    }
    
    this.showPage = function(pageNumber) {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}
        this.currentPage = pageNumber;
        
        var from = (pageNumber - 1) * itemsPerPage + 1;
        var to = from + itemsPerPage - 1;
        this.showRecords(from, to);

		var pgNext=document.getElementById('pgNext');
		var pgPrev=document.getElementById('pgPrev');
	
		if(this.currentPage==this.pages)
			{
				pgNext.style.color='gray';
				pgNext.style.textDecoration='none';
			}
		else
			{
				pgNext.style.color='#000000';
				pgNext.style.textDecoration='underline';
			}

		if(this.currentPage==1)
			{
				pgPrev.style.color='gray';
				pgPrev.style.textDecoration='none';
			}
		else
			{
				pgPrev.style.color='#000000';
				pgPrev.style.textDecoration='underline';
			}
    }   
	
    this.prev = function() {
        if (this.currentPage > 1){
           this.showPage(this.currentPage - 1);
		   presentPage=eval(this.currentPage);
		   document.getElementById("presentpage").innerHTML=eval(presentPage);
		   document.pageForm.paginationdropdown.value=eval(this.currentPage);
		   window.scrollTo(0,5000);
		}
    }
    
    this.next = function() {
        if (this.currentPage < this.pages) {
            this.showPage(this.currentPage + 1);
		    presentPage=eval(this.currentPage);
			document.getElementById("presentpage").innerHTML=eval(presentPage);
			document.pageForm.paginationdropdown.value=eval(this.currentPage);
			window.scrollTo(0,5000);
        }
    }                        
    
    this.init = function() {
        var rows = document.getElementById(tableName).rows;
        var records = (rows.length - 1);
        this.pages = Math.ceil(records / itemsPerPage);
        this.inited = true;
    }

    this.showPageNav = function(pagerName, positionId) {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}

    	var element = document.getElementById(positionId);

		if(this.pages==0)
		{
			this.pages=1;
		}
		//var totalPages = this.pages;

var pagerHtml ='<table border="0"><tr><td align="right" valign="middle" style="padding-right:0px;"><div id="presentpage" style="font-family:Arial, Helvetica, sans-serif;font-size:11px;float:right;">1</div></td><td valign="middle" style="padding-right:0px;"><div style="font-family:Arial, Helvetica, sans-serif;font-size:11px;vertical-align:middle;">&nbsp;of&nbsp;&nbsp;'+this.pages+'&nbsp;&nbsp; | </div></td><td valign="middle" style="padding-right:0px;"><div style="font-family:Arial, Helvetica, sans-serif;font-size:11px;vertical-align:middle;cursor:pointer;">&lt; <a href="javascript:void(0)" onclick="' + pagerName + '.prev();" id="pgPrev">Previous</a>&nbsp;&nbsp;&nbsp;</div></td><td valign="middle" style="padding-right:0px;"><div style="font-family:Arial, Helvetica, sans-serif;font-size:11px;vertical-align:middle;"><select name="paginationdropdown" id="pageDropDown" style="font-family:Arial, Helvetica, sans-serif;font-size:11px;height:17px;vertical-align:middle;margin:0px;" onChange="' + pagerName + '.showPage(Number(this.value));javascript:document.getElementById(\'presentpage\').innerHTML=eval(this.value);"></select></div></td><td valign="middle" style="padding-right:0px;"><div style="font-family:Arial, Helvetica, sans-serif;font-size:11px;vertical-align:middle;cursor:pointer;vertical-align:middle;">&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" onclick="'+pagerName+'.next();" id="pgNext">Next</a> &gt;</div></td></tr></table>';

        element.innerHTML = pagerHtml;

        for (var page = 1; page <= this.pages; page++) 
            {
				document.pageForm[0].options[document.pageForm[0].options.length]=new Option(page,page);
			}

	//var totalRecords = 0;
	//totalRecords=((document.getElementById(tableName).rows.length)-2); 
	//document.getElementById("status").innerHTML="<p>Total Records Found: <strong>"+totalRecords+"<strong></p>";
    }
}
/* ----------- End of Pagination ------------ */