// JavaScript Document
function loadXML()
{
	var xmlDoc = null;
	// code for IE
	if (window.ActiveXObject)
	  {
	  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	  xmlDoc.async=false;
	  xmlDoc.load("bullionCatalog.xml");
	  return xmlDoc;
	  }
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument)
	  {
	  xmlDoc=document.implementation.createDocument("","",null);
	  xmlDoc.async=false;
	  xmlDoc.load("bullionCatalog.xml");
	  return xmlDoc;
	  }
	else
	  {
		alert('Your browser cannot handle this script');
	  }
}

function readXmlUsingXPath(xPath){
	var data = new Array();
	var xmlDoc = loadXML();    
	if (xmlDoc == null) {
		alert("XML DOM object is null");
		return;
	}
	var xmlNode = SelectSingleNode(xmlDoc,xPath);
	return xmlNode;
}


function Info(id,name){
    var info = new Array();;
	info[0] = new Array();
	xmlNode  = readXmlUsingXPath("//Categories/Category[@Id="+id+"]/Coins/Coin[@name = '"+name+"']");
    var xmlNodeTable;
	for(i=0;i<xmlNode.childNodes.length;i++){
		switch(xmlNode.childNodes[i].nodeName){
			case "Images":
					for(j=0;j<xmlNode.childNodes[i].childNodes.length;j++){
						if(xmlNode.childNodes[i].childNodes[j].nodeName == "Image"){
							info[0][j] = xmlNode.childNodes[i].childNodes[j].firstChild.nodeValue;
						}
					}
					break;
			case "Description":
					info[1] = xmlNode.childNodes[i].firstChild.nodeValue;
					break;
			case "Sizes":
					xmlNodeTable =  xmlNode.childNodes[i];
					break;
		}
	}

	var img = "";
	for(i=0;i<info[0].length;i++){
		 img += "<img alt='' src='"+info[0][i]+"'><br />";
	}

	
	var datos = img + info[1];
		
	var t = "";
	if(xmlNodeTable != null){
	    var otable = new Array();
	    for(i=0;i<xmlNodeTable.childNodes.length;i++){
	      if(xmlNodeTable.childNodes[i].nodeName == "Size"){
				otable[i] = new Array();
				otable[i][0] = xmlNodeTable.childNodes[i].attributes.getNamedItem("Type").value;
				var hijos = new Array();
				for(j=0;j<xmlNodeTable.childNodes[i].childNodes.length;j++){
					switch(xmlNodeTable.childNodes[i].childNodes[j].nodeName){
						case "GoldContent":
							hijos[0] = xmlNodeTable.childNodes[i].childNodes[j].attributes.getNamedItem("Oz").value;
							hijos[1] = xmlNodeTable.childNodes[i].childNodes[j].attributes.getNamedItem("Grs").value;
							break;
						case "GrossWeight":
							hijos[2] = xmlNodeTable.childNodes[i].childNodes[j].attributes.getNamedItem("Oz").value;
							hijos[3] = xmlNodeTable.childNodes[i].childNodes[j].attributes.getNamedItem("Grs").value;
							break;
						case "Diameter":
							hijos[4] = xmlNodeTable.childNodes[i].childNodes[j].attributes.getNamedItem("In").value;
							hijos[5] = xmlNodeTable.childNodes[i].childNodes[j].attributes.getNamedItem("Mm").value;
							break;
						case "Thickness":
							hijos[6] = xmlNodeTable.childNodes[i].childNodes[j].attributes.getNamedItem("In").value;
							hijos[7] = xmlNodeTable.childNodes[i].childNodes[j].attributes.getNamedItem("Mm").value;
							break;
					}
				}
				otable[i][1] = new Array();
				otable[i][1] =  hijos;
		    }
	    }
	    t = "<div id='table_info'><table align='center' width='90%' cellpading='0' cellspacing='0' border='1' style='border:solid 1px #CCC'><tr><th>Coin Size</th><th>Gold Content</th><th>Gross Weight</th><th>Diameter</th><th>Thickness</th></tr>";
	    for(k=0;k<otable.length;k++){
			if(otable[k] != undefined){
				t += "<tr>";
				t +="<td>"+otable[k][0]+"</td>";
				//Gold Content
				if(otable[k][1][0] && otable[k][1][1])
					t +="<td>"+otable[k][1][0]+" Oz. <br />"+ otable[k][1][1] +" Grs</td>";
				else if(otable[k][1][0])
					t +="<td>"+ otable[k][1][0] +" Oz</td>";
				else if(otable[k][1][1])
					t +="<td>"+ otable[k][1][1] +" Grs</td>";
				else
					t +="<td></td>";
				//GrossWeight	
				if(otable[k][1][2] && otable[k][1][3])
					t +="<td>"+otable[k][1][2]+" Oz. <br />"+ otable[k][1][3] +" Grs</td>";
				else if(otable[k][1][2])
					t +="<td>"+ otable[k][1][2] +" Oz</td>";
				else if(otable[k][1][3])
					t +="<td>"+ otable[k][1][3] +" Grs</td>";
				else
					t +="<td></td>";
				//Diameter
				if(otable[k][1][4] && otable[k][1][5])
					t +="<td>"+otable[k][1][4]+" In. <br />"+ otable[k][1][5] +" Mm</td>";
				else if(otable[k][1][4])
					t +="<td>"+ otable[k][1][4] +" In</td>";
				else if(otable[k][1][5])
					t +="<td>"+ otable[k][1][5] +" Mm</td>";
				else
					t +="<td></td>";
				//Thickness
				if(otable[k][1][6] && otable[k][1][7])
					t +="<td>"+otable[k][1][6]+" In. <br />"+ otable[k][1][7] +" Mm</td>";
				else if(otable[k][1][6])
					t +="<td>"+ otable[k][1][6] +" In</td>";
				else if(otable[k][1][7])
					t +="<td>"+ otable[k][1][7] +" Mm</td>";
				else
					t +="<td></td>";
				t+="</tr>";
	       }
	    }
	    t +="</table></div>";
	}
	var divContenido = document.getElementById('contenido');
	var alto = xmlNode.attributes.getNamedItem("height");
	
	if(alto.value != null){
		divContenido.style.height = alto.value + "px";
		
		document.getElementById("content_cc").setAttribute("height", alto.value + "px");
        document.getElementById("content_cc").style.height = alto.value + "px";
        
        document.getElementById("right_col").setAttribute("height", alto.value + "px");
        document.getElementById("right_col").style.height = alto.value + "px";
        
	}
    
	divContenido.innerHTML = datos+"<br/>"+t;
	ChangeDimensions();
	
}

function InfoCategory(id){
    var info = new Array();;
	info[0] = new Array();
	xmlNode  = readXmlUsingXPath("//Categories/Category[@Id="+id+"]");
	
	for(i=0;i<xmlNode.childNodes.length;i++){
		switch(xmlNode.childNodes[i].nodeName){
			case "Images":
					for(j=0;j<xmlNode.childNodes[i].childNodes.length;j++){
						
						if(xmlNode.childNodes[i].childNodes[j].nodeName == "Image"){
							info[0][j] = xmlNode.childNodes[i].childNodes[j].firstChild.nodeValue;
						}
					}
					break;
			case "Description":
					info[1] = xmlNode.childNodes[i].firstChild.nodeValue;
					break;
		}
	}
	var divContenido = document.getElementById('contenido');
	var img = "";
	
	for(i=0;i<info[0].length;i++){
		 img += "<img alt='' src='"+info[0][i]+"'><br />";
	}
	divContenido.innerHTML = img + info[1];
}


function SelectSingleNode(xmlDoc, elementPath)
{
	if(window.ActiveXObject)
	{
		return xmlDoc.selectSingleNode(elementPath);
	}
	else
	{
	   var xpe = new XPathEvaluator();
	   var results = xpe.evaluate(elementPath,xmlDoc,null,9, null);
	  return results.singleNodeValue; 
	   
	}
}