function AjaxGetData(cSwitch,cPage,cForm)
{
	
	var oGetRecord= new GetAjaxObject();
	var cUrlCall="";
	
	// If the Object was not created, report back to the user
	if(oGetRecord==null)
	{
		alert ("This Browser does not support HTTP Request");
		return false;
	}
	
	// Set the Vbscript Page
	switch (cSwitch)
	{
		case 'AccountCreate':
			cUrl='inserts/AccountCreate.asp?Redirect='+cPage;
			break;
		case 'Login':
			cUrl='inserts/Login.asp?Redirect='+cPage;
			break;
		case 'Logout':
			cUrl='inserts/Logout.asp?Redirect='+cPage;
			break;
		case 'ResetPassword':
			cUrl='inserts/SetupPassword.asp?'+cForm;
			cForm='';
			break;
		case 'Services':
			cUrl='services/'+cPage+'.asp?Run=Yes';
			break;
		case 'Clients':
			cUrl='clients/'+cPage+'.asp?Run=Yes';
			break;
		case 'SalesDashboard':
			cUrl='inserts/SalesDashboard.asp?'+cPage;
			break;
		case 'NewsletterSignup':
			cUrl='panels/newsletter.asp?'+cPage+'=Yes&Redirect='+cForm;
			cForm='';
			break;
		case 'Newsletter':
			cUrl='newsletter/'+cPage+'.asp?Run=Yes';
			break;
		case 'Staff':
			cUrl='staff/'+cPage+'/'+cPage+'.asp?Run=Yes';
			break;
		case 'SupportDetail':
			cUrl='inserts/SupportDetail.asp?'+cPage;
			break;
		case 'Poll':
			cUrl='inserts/'+cPage+'.asp?Run=Yes';
			break;
		case 'AccountInformation':
			cUrl='inserts/AccountInformation.asp?information_type='+cPage;
			break;
		case 'AccountAddress':
			cUrl='inserts/AccountAddress.asp?address_type='+cPage;
			break;
		case 'KnowledgeView':
			cUrl='inserts/KnowledgeView.asp?articleid='+cPage;
			break;
		case 'ProductListing':
			cUrl='inserts/ProductListing.asp?ProductListing'+cPage+'='+cForm;
			cForm='';
			break;
		case 'Search':
			cUrl='inserts/ProductListing.asp?Run=Yes';
			break;
		case 'Product':
			cUrl='inserts/Product.asp?InvCode='+cPage;
			cForm='';
			break;
		case 'AddItem':
			cUrl='inserts/Cart.asp?Run=Yes';
			break;
		case 'AddSingleItem':
			cUrl='inserts/Cart.asp?AddSingleItem=Yes&'+cPage;
			break;
		case 'RemoveItem':
			cUrl='inserts/Cart.asp?RemoveItem=Yes&'+cPage;
			break;
		case 'ForgotPassword':
			cUrl='inserts/'+cPage+'.asp?Check=Yes';
			break;
		case 'Review':
			cUrl='inserts/Product.asp?Save_Review=Yes&InvCode='+cPage;
			break;
		case 'Checkout':
			cUrl='inserts/Checkout.asp?ProcessStep='+cForm;
			if (cPage != '')
			{
				cUrl=cUrl+'&Previous=Yes'
			}
			break;
		case 'PaymentProcessing':
			cUrl='inserts/PaymentProcessing.asp?ProcessStep='+cForm;
			if (cPage != '')
			{
				cUrl=cUrl+'&Previous=Yes'
			}
			break;
		case 'GetShipping':
			cUrl='scripts/Shipping.asp?Run=Yes';
			break;
		default:
			cUrl='inserts/'+cPage+'.asp?Run=Yes';
			break; 
	}
	cUrlCall = cUrl + "&sid="+Math.random()
	
	//Call a function when the state changes
	oGetRecord.onreadystatechange = function() 
	{
		try
		{
			if(oGetRecord.readyState == 4)
			{
				if(oGetRecord.status == 200)
				{
					// Choose The Response For The Data
					switch (cSwitch)
					{
						case 'Staff':
							StaffPage(oGetRecord.responseText);
							break;
						case 'Product':
						case 'Review':
							ProductPage(oGetRecord.responseText);
							break;
						case 'NewsletterSignup':
							NewsletterSignupPage(oGetRecord.responseText);
							break;
						case 'AccountCreate':
							CreatePage(oGetRecord.responseText);
							break;
						case 'Login':
							LoginPage(oGetRecord.responseText);
							break;
						case 'Logout':
							LogoutPage(oGetRecord.responseText);
							break;
						case 'ResetPassword':
							ResetPasswordPage(oGetRecord.responseText);
							break;
						case 'ProductListing':
							ProductListingPage(oGetRecord.responseText);
							break;
						case 'PaymentProcessing':
							PaymentProcessingPage(oGetRecord.responseText);
							break;
						case 'Checkout':
							CheckoutPage(oGetRecord.responseText);
							break;
						case 'GetShipping':
							GetShippingPage(oGetRecord.responseText);
							break;
						default:
							MainPage(oGetRecord.responseText);
							break;
					}
				}
				else if(oGetRecord.status == 401)
				{
					alert("Please Contact A Technical Rep.\n Issue: Access Denied.");
				}
				else if(oGetRecord.status == 404)
				{
					alert("Please Contact A Technical Rep.\n Issue: Page is Missing.");
				}
				else if(oGetRecord.status == 408)
				{
					alert("Please Contact A Technical Rep.\n Issue: Timeout while getting Data.");
				}
				else if(oGetRecord.status == 500)
				{
					alert("Please Contact A Technical Rep");
					error_window = window.open("","Issue","status=1,toolbar=0,location=0,menubar=1,directories=0,reziseable=0,scrollbar=1,width=600,height=600");
					error_window.document.write(oGetRecord.responseText);
				}
				else
				{
					alert("Unknown Issue: " + oGetRecord.Status);
				}
			}
		}
		catch(e)
		{
			alert("Please Contact A Technical Rep.\n An Exception was caught.\n Error: "+e.name+' Mssg: '+e.message+' Instance: '+e.instanceOf);
		}
	}
	
	//Open the Connection
	oGetRecord.open("POST",cUrlCall,true);
	
	//Send the proper header information along with the request
	oGetRecord.setRequestHeader("Cache-Control", "no-cache");
	oGetRecord.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	oGetRecord.setRequestHeader("Connection", "close");
	
	//Send the Request
	if (cForm == '')
	{
		oGetRecord.setRequestHeader("Content-length", cUrlCall.length);
		oGetRecord.send("");
	}
	else
	{
		cDataToSend=GetFormValues(cForm);
		cDataToSend=cDataToSend.split(' ').join('_@_');
		oGetRecord.setRequestHeader("Content-length", cDataToSend.length);
		oGetRecord.send(cDataToSend);
	}
}

function GetAjaxObject()
{
	var oAjax=null
	// Used to create appropriate object for Mozilla, Safari, etc.
	if (window.XMLHttpRequest)
	{
		oAjax = new XMLHttpRequest();
        if (XMLHttpRequest.overrideMimeType)
		{
        	oAjax.overrideMimeType('text/xml');
            // See note below about this line
        }
	}
	// Used to create object for Internet Explorer
    else if (window.ActiveXObject)
	{
		try
		{
           	oAjax = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
		{
			try
			{
				oAjax = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) 
			{
				alert('Missing Code');
				return false;
			}
		}
	}
	return oAjax;
}

// **********************************************
// ************* Response Functions *************
// **********************************************

function MainPage(cResponse)
{
	document.getElementById('MainInnerData').innerHTML = cResponse
	//if (cPage == 'Main')
	//{
		//ie_png.fix('.home-banner, .block-banner img, .block-banner-2 img');
	//}
}

function NewsletterSignupPage(cResponse)
{
	AjaxGetData('',cResponse,'');
}

function CreatePage(cResponse)
{
	document.getElementById('MainInnerData').innerHTML = cResponse
	if (document.getElementById('Success').value == 'True')
	{
		document.getElementById('LoginLink').innerHTML='Logout';
		document.getElementById('LoginLink').href="javascript:AjaxGetData('Logout','Main','');";
		document.getElementById('LoginMenu').innerHTML='<span>Logout</span>';
		document.getElementById('LoginMenu').href="javascript:AjaxGetData('Logout','Main','');";
		AjaxGetData('',document.getElementById('Redirect').value,'');
	}
}

function LoginPage(cResponse)
{
	document.getElementById('MainInnerData').innerHTML = cResponse
	if (document.getElementById('Success').value == 'True')
	{
		document.getElementById('LoginLink').innerHTML='Logout';
		document.getElementById('LoginLink').href="javascript:AjaxGetData('Logout','Main','');";
		document.getElementById('LoginMenu').innerHTML='<span>Logout</span>';
		document.getElementById('LoginMenu').href="javascript:AjaxGetData('Logout','Main','');";
		AjaxGetData('',document.getElementById('Redirect').value,'');
	}
}

function LogoutPage(cResponse)
{
	document.getElementById('MainInnerData').innerHTML = cResponse
	document.getElementById('LoginLink').innerHTML='Login / Register';
	document.getElementById('LoginLink').href="javascript:AjaxGetData('Login','Main','');";
	document.getElementById('LoginMenu').innerHTML='<span>Login / Register</span>';
	document.getElementById('LoginMenu').href="javascript:AjaxGetData('Login','Main','');";
	AjaxGetData('','Main','');
}

function ResetPasswordPage(cResponse)
{
	alert(cResponse);
}

function StaffPage(cResponse)
{
	document.getElementById('StaffData').innerHTML = cResponse
}

function ProductPage(cResponse)
{
	document.getElementById('MainInnerData').innerHTML = cResponse
	// Image Zoom
	product_zoom = new Product.Zoom('image', 'track', 'handle', 'zoom_in', 'zoom_out', 'track_hint');
	// Tabs at Bottom
	current = 0;
	$('tabs').firstDescendant().className += ' active-tab';
	active_tab = $('tabs').firstDescendant().firstDescendant().firstDescendant();
	motion = false;
}

function ProductListingPage(cResponse)
{
	document.getElementById('MainInnerData').innerHTML = cResponse
	decorateTable('products-grid-table');
}

function PaymentProcessingPage(cResponse)
{
	document.getElementById('MainInnerData').innerHTML = cResponse
	var accordion = new Accordion('PaymentSteps', '.step-title', true);
	switch (document.getElementById('Current-Step').value)
	{
		case '1':
			accordion.openSection('pay-information');
			break;
		case '2':
			accordion.openSection('pay-amount');
			HideItem('payment-please-wait-1');
			document.getElementById('pay-information').setAttribute("class", "section allow");
			document.getElementById('pay-amount').setAttribute("class", "section");
			document.getElementById('pay-date').setAttribute("class", "section");
			document.getElementById('pay-verify').setAttribute("class", "section");
			document.getElementById('pay-authorize').setAttribute("class", "section");
			document.getElementById('pay-confirmation').setAttribute("class", "section");
			break;
		case '3':
			accordion.openSection('pay-date');
			HideItem('payment-please-wait-2');
			document.getElementById('pay-information').setAttribute("class", "section allow");
			document.getElementById('pay-amount').setAttribute("class", "section allow");
			document.getElementById('pay-date').setAttribute("class", "section");
			document.getElementById('pay-verify').setAttribute("class", "section");
			document.getElementById('pay-authorize').setAttribute("class", "section");
			document.getElementById('pay-confirmation').setAttribute("class", "section");
			break;
		case '4':
			accordion.openSection('pay-verify');
			HideItem('payment-please-wait-3');
			document.getElementById('pay-information').setAttribute("class", "section allow");
			document.getElementById('pay-amount').setAttribute("class", "section allow");
			document.getElementById('pay-date').setAttribute("class", "section allow");
			document.getElementById('pay-verify').setAttribute("class", "section allow");
			document.getElementById('pay-authorize').setAttribute("class", "section");
			document.getElementById('pay-confirmation').setAttribute("class", "section");
			break;
		case '5':
			accordion.openSection('pay-authorize');
			HideItem('payment-please-wait-4');
			document.getElementById('pay-information').setAttribute("class", "section allow");
			document.getElementById('pay-amount').setAttribute("class", "section allow");
			document.getElementById('pay-date').setAttribute("class", "section allow");
			document.getElementById('pay-verify').setAttribute("class", "section allow");
			document.getElementById('pay-authorize').setAttribute("class", "section allow");
			document.getElementById('pay-confirmation').setAttribute("class", "section");
			break;
		case '6':
			accordion.openSection('pay-confirmation');
			HideItem('payment-please-wait-5');
			document.getElementById('pay-information').setAttribute("class", "section");
			document.getElementById('pay-amount').setAttribute("class", "section");
			document.getElementById('pay-date').setAttribute("class", "section");
			document.getElementById('pay-verify').setAttribute("class", "section");
			document.getElementById('pay-authorize').setAttribute("class", "section");
			document.getElementById('pay-confirmation').setAttribute("class", "section");
			break;
		default:
			accordion.openSection('pay-information');
			HideItem('payment-please-wait-1');
			document.getElementById('pay-information').setAttribute("class", "section");
			document.getElementById('pay-amount').setAttribute("class", "section");
			document.getElementById('pay-date').setAttribute("class", "section");
			document.getElementById('pay-verify').setAttribute("class", "section");
			document.getElementById('pay-authorize').setAttribute("class", "section");
			document.getElementById('pay-confirmation').setAttribute("class", "section");
			break;
	}
}

function CheckoutPage(cResponse)
{
	document.getElementById('MainInnerData').innerHTML = cResponse
	var accordion = new Accordion('CheckoutSteps', '.step-title', true);
	switch (document.getElementById('Current-Step').value)
	{
		case '1':
			accordion.openSection('checkout-login');
			HideItem('checkout-please-wait-1');
			document.getElementById('checkout-login').setAttribute("class", "section allow");
			document.getElementById('checkout-billing').setAttribute("class", "section");
			document.getElementById('checkout-shipping').setAttribute("class", "section");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section");
			document.getElementById('checkout-payment').setAttribute("class", "section");
			document.getElementById('checkout-review').setAttribute("class", "section");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
			break;
		case '2':
			accordion.openSection('checkout-billing');
			HideItem('checkout-please-wait-2');
			document.getElementById('checkout-login').setAttribute("class", "section allow");
			document.getElementById('checkout-billing').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping').setAttribute("class", "section");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section");
			document.getElementById('checkout-payment').setAttribute("class", "section");
			document.getElementById('checkout-review').setAttribute("class", "section");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
			break;
		case '3':
			accordion.openSection('checkout-shipping');
			HideItem('checkout-please-wait-3');
			document.getElementById('checkout-login').setAttribute("class", "section allow");
			document.getElementById('checkout-billing').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section");
			document.getElementById('checkout-payment').setAttribute("class", "section");
			document.getElementById('checkout-review').setAttribute("class", "section");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
			break;
		case '4':
			accordion.openSection('checkout-shipping_method');
			HideItem('checkout-please-wait-4');
			document.getElementById('checkout-login').setAttribute("class", "section allow");
			document.getElementById('checkout-billing').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section allow");
			document.getElementById('checkout-payment').setAttribute("class", "section");
			document.getElementById('checkout-review').setAttribute("class", "section");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
			break;
		case '5':
			accordion.openSection('checkout-payment');
			HideItem('checkout-please-wait-5');
			document.getElementById('checkout-login').setAttribute("class", "section allow");
			document.getElementById('checkout-billing').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section allow");
			document.getElementById('checkout-payment').setAttribute("class", "section allow");
			document.getElementById('checkout-review').setAttribute("class", "section");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
			break;
		case '6':
			accordion.openSection('checkout-review');
			HideItem('checkout-please-wait-5');
			document.getElementById('checkout-login').setAttribute("class", "section allow");
			document.getElementById('checkout-billing').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section allow");
			document.getElementById('checkout-payment').setAttribute("class", "section allow");
			document.getElementById('checkout-review').setAttribute("class", "section allow");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
			break;
		case '7':
			accordion.openSection('checkout-processing');
			HideItem('checkout-please-wait-6');
			document.getElementById('checkout-login').setAttribute("class", "section");
			document.getElementById('checkout-billing').setAttribute("class", "section");
			document.getElementById('checkout-shipping').setAttribute("class", "section");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section");
			document.getElementById('checkout-payment').setAttribute("class", "section");
			document.getElementById('checkout-review').setAttribute("class", "section");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
		case '8':
			accordion.openSection('checkout-confirmation');
			HideItem('checkout-please-wait-7');
			document.getElementById('checkout-login').setAttribute("class", "section");
			document.getElementById('checkout-billing').setAttribute("class", "section");
			document.getElementById('checkout-shipping').setAttribute("class", "section");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section");
			document.getElementById('checkout-payment').setAttribute("class", "section");
			document.getElementById('checkout-review').setAttribute("class", "section");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
		default:
			accordion.openSection('checkout-login');
			HideItem('checkout-please-wait-1');
			document.getElementById('checkout-billing').setAttribute("class", "section allow");
			document.getElementById('checkout-shipping').setAttribute("class", "section");
			document.getElementById('checkout-shipping-method').setAttribute("class", "section");
			document.getElementById('checkout-payment').setAttribute("class", "section");
			document.getElementById('checkout-review').setAttribute("class", "section");
			document.getElementById('checkout-processing').setAttribute("class", "section");
			document.getElementById('checkout-confirmation').setAttribute("class", "section");
			break;
	}
}

function GetShippingPage(cResponse)
{
	document.getElementById('co-shipping-options-data').innerHTML = cResponse;
	document.getElementById('shipping-zip-form').style.display='none';
}
