﻿var resultText;
var xmlhttp;
var currUrl = "http://www.abazias.com/webserv/MyWebService.asmx";

function SubmitTotalQuery( shape, startPrice, endPrice, startCarat, endCarat, colorString, clarityString, cutString, certString, minDepth, maxDepth, minTable, maxTable, isCouples )
{   
    var display = "";
    
     // code for Mozilla, etc.
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
        xmlhttp.onreadystatechange=state_Change;
        xmlhttp.open("POST",currUrl,false);
        xmlhttp.setRequestHeader("SOAPAction", "http://www.abazias.com/webserv/GetSearchTotal");
        xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8" ) ;
        xmlhttp.send( GenerateSoapVar( shape, startPrice, endPrice, startCarat, endCarat, colorString, clarityString, cutString, certString, minDepth, maxDepth, minTable, maxTable, isCouples ) )
        resultText = xmlhttp.responseXML;
    }
    // code for IE
    else if (window.ActiveXObject)
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
        if (xmlhttp)
        {
            xmlhttp.onreadystatechange=state_Change;
            xmlhttp.open("POST",currUrl,false);
            xmlhttp.setRequestHeader("SOAPAction", "http://www.abazias.com/webserv/GetSearchTotal");
            xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8" ) ;
            xmlhttp.send( GenerateSoapVar( shape, startPrice, endPrice, startCarat, endCarat, colorString, clarityString, cutString, certString, minDepth, maxDepth, minTable, maxTable, isCouples ) )
            resultText = xmlhttp.responseXML;
        }
    }
    
    if( resultText )
    {
        myNodes=resultText.getElementsByTagName("Total");
        
        //Extract the different values using a loop.
        for(var counter=0;counter<myNodes.length;counter++) {
          display += myNodes.item(counter).firstChild.nodeValue +"\n";
        }
    }
    
    return( display );
}    

function GetNextRingGroup( currPage )
{   
    var display = "";
    
     // code for Mozilla, etc.
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
        xmlhttp.onreadystatechange=state_Change;
        xmlhttp.open("POST",currUrl,false);
        xmlhttp.setRequestHeader("SOAPAction", "http://www.abazias.com/webserv/GetEngagementRingGroup");
        xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8" ) ;
        xmlhttp.send( GenerateSoapVar_RingGroup( currPage ) )
        resultText = xmlhttp.responseXML;
    }
    // code for IE
    else if (window.ActiveXObject)
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
        if (xmlhttp)
        {
            xmlhttp.onreadystatechange=state_Change;
            xmlhttp.open("POST",currUrl,false);
            xmlhttp.setRequestHeader("SOAPAction", "http://www.abazias.com/webserv/GetEngagementRingGroup");
            xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8" ) ;
            xmlhttp.send( GenerateSoapVar_RingGroup( currPage ) )
            resultText = xmlhttp.responseXML;
        }
    }
    
    var returnArray = new Array();
    if( resultText )
    {
        var xmlobject = resultText;
        var root = xmlobject.getElementsByTagName('GetEngagementRingGroupResult')[0];
        var items = root.getElementsByTagName("JewelryItem");
        for (var i = 0 ; i < items.length ; i++) 
        {
        	var item = items[i];
        	returnArray[i] = new Array();
        	returnArray[i][0] = item.getElementsByTagName("EntryId")[0].firstChild.nodeValue;
        	returnArray[i][1] = item.getElementsByTagName("StockNum")[0].firstChild.nodeValue;
        	//returnArray[i][2] = item.getElementsByTagName("ThumbImage")[0].firstChild.nodeValue;
        	returnArray[i][2] = "";
        	returnArray[i][3] = item.getElementsByTagName("Price")[0].firstChild.nodeValue;
        }
    }             
    return( returnArray );
}        
         
function state_Change()
{        
// if xmlhttp shows "loaded"
if (xmlhttp.readyState==4)
  {      
  // if "OK"
  if (xmlhttp.status==200)
  {
    resultText = xmlhttp.responseXML;
  //document.getElementById('T1').innerHTML+=resultText;
  }
  }
}

function GetXMLObject()
{
    if(window.XMLHttpRequest) 
        return new XMLHttpRequest();
    else if(window.ActiveXObject) 
        return new ActiveXObject("Microsoft.XMLHTTP");
}


function GetXmlHttpPrefix()
{
	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var o;
	for(var i = 0; i < prefixes.length; i++)
	{
		try
		{
			o = new ActiveXObject(prefixes[i] + ".XmlHttp");
			return prefixes[i];
		}
		catch (ex) {};
	}
	throw new Error("Could not find an installed XML parser");
}

function GetChildNodes( currNode )
{
    for( i = 0; i < currNode.childNodes.length; i++ )
    {
        if( currNode.childNodes[i].hasChildNodes ) {
            alert( currNode.childNodes[i].nodeName + ": " + currNode.childNodes[i].nodeValue );
            GetChildNodes( currNode.childNodes[i] );
        }
    }
}
            
function GenerateSoapVar( shape, minPrice, maxPrice, minCarat, maxCarat, currColor, currClarity, currCut, currCert, minDepth, maxDepth, minTable, maxTable, isCouples )
{
    var sXml  = "<?xml version=\"1.0\" ?>" ;
                      sXml += "<soap:Envelope "
                      sXml += "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " ;
                      sXml += "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " ;
                      sXml += "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" ;
                      sXml += "<soap:Body>" ;
                      sXml += "<GetSearchTotal xmlns=\"http://www.abazias.com/webserv/\">" ;
                      sXml += "<Shape>" + shape + "</Shape>" ;         
                      sXml += "<MinPrice>" + minPrice + "</MinPrice>" ;                     
                      sXml += "<MaxPrice>" + maxPrice + "</MaxPrice>" ;  
                      sXml += "<MinCarat>" + minCarat + "</MinCarat>" ;                     
                      sXml += "<MaxCarat>" + maxCarat + "</MaxCarat>" ;  
                      sXml += "<Color>" + currColor + "</Color>" ;                     
                      sXml += "<Clarity>" + currClarity+ "</Clarity>" ;  
                      sXml += "<Cut>" + currCut+ "</Cut>" ;  
                      sXml += "<Cert>" + currCert+ "</Cert>";  
                      sXml += "<MinDepth>" + minDepth+ "</MinDepth>";  
                      sXml += "<MaxDepth>" + maxDepth + "</MaxDepth>";  
                      sXml += "<MinTable>" + minTable + "</MinTable>";  
                      sXml += "<MaxTable>" + maxTable + "</MaxTable>";  
                      sXml += "<IsCouples>" + isCouples + "</IsCouples>";
                      sXml += "</GetSearchTotal></soap:Body></soap:Envelope>"
    return( sXml );                  
}

function GenerateSoapVar_RingGroup( currPage )
{
    var sXml  = "<?xml version=\"1.0\" ?>" ;
                      sXml += "<soap:Envelope "
                      sXml += "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " ;
                      sXml += "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " ;
                      sXml += "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" ;
                      sXml += "<soap:Body>" ;
                      sXml += "<GetEngagementRingGroup xmlns=\"http://www.abazias.com/webserv/\">" ;
                      sXml += "<jumpTo>" + currPage + "</jumpTo>" ;         
                      sXml += "</GetEngagementRingGroup></soap:Body></soap:Envelope>"
    return( sXml );                  
}