﻿
/*
This file defines the AJAX functions for the page tothetrade/placeandorder/default.aspx.
*/

/*AJAX function. Takes in a SKU and uses AJAX to return a message code 1 = SKU OK, 2 = SKU offline, 3 = SKU not found.
Then hides or shows messages depending on which one was returned.*/
function ResetMessage(index, sku)
{
    var http = CreateXmlHttpRequestObject();
    var span1 = document.getElementById("SPAN1_" + index);
    var span2 = document.getElementById("SPAN2_" + index);
    var span3 = document.getElementById("SPAN3_" + index);
    var lnk1 = document.getElementById("LNK1_" + index);
    var span1pattern = document.getElementById("SPAN1PATTERN_" + index);
    var span2pattern = document.getElementById("SPAN2PATTERN_" + index);
    
    span1.style.display = "none";
    span2.style.display = "none";
    span3.style.display = "none";
   	
    sURL = "default_AJAXHandler.ashx?sSKU=" + sku;
	//alert(sURL);
	
	http.open("GET", sURL, true);
	http.onreadystatechange = function()
	{
		if (http.readyState == READYSTATE_COMPLETE) 
		{		
		   if (http.status == HTTPSTATUS_OK)
		   {
			    var resultsArray = http.responseText.split("&");
			    var MessageCode = resultsArray[0];
			    var Pattern = resultsArray[1];

				switch(MessageCode){
				    case '1':
				        span1.style.display = "";
				        lnk1.href = "/search/ProductDetail.aspx?sku=" + sku;
				        span1pattern.innerHTML = Pattern;
				        span2.style.display = "none";
				        span3.style.display = "none";
				        break;
				    case '2':
				        span1.style.display = "none";
				        span2.style.display = "";
				        span2pattern.innerHTML = Pattern;
				        span3.style.display = "none";
				        break;
				    case '3':
				        span1.style.display = "none";
				        span2.style.display = "none";
				        span3.style.display = "";
				        break;
				    default:
				        span1.style.display = "none";
				        span2.style.display = "none";
				        span3.style.display = "none";
				        break;
				}
			}
		}
	}
	http.send(null);
}

/*AJAX function. Checks availability in the background.*/
function CheckStatus(UserID, SKU, AccountNumber, Quantity, Target)
{
    if (UserID == "" || SKU == "" || AccountNumber == "" || Quantity == "" || Target == "")
    {
        alert("Unable to process request.  Required field missing.")
        return
    }
            
    if (Quantity == "")
    {
        Target.innerHTML = "";
        return;
    }
    else if (isNaN(Quantity))
    {
        Target.innerHTML = "Error";
        return;
    }
        
    var http = CreateXmlHttpRequestObject();
    
    Target.innerHTML = "Checking..."
    
    var sURL = ""

	sURL = "/Share/default_AJAXhandler.ashx?sCmd=GetAvailability&sUserID=" + UserID + "&sAccountNumber=" + AccountNumber + "&sSKU=" + SKU + "&sQuantity=" + Quantity;
	//alert(sURL);
	http.open("GET", sURL, true);
	http.onreadystatechange = function()
	{
		if (http.readyState == READYSTATE_COMPLETE) 
		{		
			if (http.status == HTTPSTATUS_OK)
			{
				var results = http.responseText;
				Target.innerHTML = results;
			}
			else
			{
			   Target.innerHTML = "Error"; 
			}
		}
	}
	http.send(null);	
}

/* Common values for the ReadyState of the XMLHttpRequest object */
var READYSTATE_UNINITIALIZED = 0;
var READYSTATE_LOADING = 1;
var READYSTATE_LOADED = 2;
var READYSTATE_INTERACTIVE = 3;
var READYSTATE_COMPLETE = 4;

/* Common values for HTTP status codes */
var HTTPSTATUS_OK = 200;


/*Creates an XMLHTTP object that can be used in firefox and IE*/
function CreateXmlHttpRequestObject()
{
    var xmlObj;
    if (window.ActiveXObject)
    {
        try
        {
           xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e)
        {
           xmlObj = new ActiveXObject("Msxml2.XMLHTTP");
        }
    }
    else
        xmlObj = new XMLHttpRequest();
    return xmlObj;
}