﻿function faqSearch()
{
	window.location = 'http://crateandbarrel.custhelp.com/cgi-bin/crateandbarrel.cfg/php/enduser/crate_results.php?p_search_text=' + $F('txtFaqSearch')
}

//order tracking login (which is slightly different then account's login procedure)
function ot_orderTrack()
{
	var orderNumber = $("txtOrderNum");
	var zipCode = $("txtZip");
	var callerName = $("hddCaller");
	
	var MessageList = new Array(0);
    var HasClientErrors = false;
    
    MessageList = IsValidReqTextBox(MessageList, OrderNum, orderNumber.id);
    MessageList = IsValidZipCode(MessageList,zipCode,Zip,true);
    
    //check if any client side errors
    for(var iii = 0;     iii < MessageList.length; iii++) {
        if (!MessageList[iii].valid){
            HasClientErrors = true;
        }
    }
    
    //make server call (if appropriate)
    if (!HasClientErrors){
        //TODO Call AJAX to verify the order num exists before redirecting
        //CS_ValidateOrderNum(orderNumber.value.strip(), zipCode.value.strip())
        
        if(callerName !=null)
        window.location = "/Customer-Service/MyOrderTracking.aspx?order_number="+orderNumber.value+"&billing_zip="+zipCode.value;
        else
        window.location = "/Customer-Service/OrderTrackingResults.aspx?order_number="+orderNumber.value+"&billing_zip="+zipCode.value;
        
    } else 
    {
        
        DisplayValidation(MessageList,"OrderNumStatusMessage");
    }
}

function cs_ot_login()
{
    var AccountName = $('login-name');
    var AccountPassword = $('login-password');

    var MessageList = IsValidLogin(AccountName, AccountPassword);
    var HasClientErrors = false;
    
    //check if any client side errors
    for(var iii = 0;     iii < MessageList.length; iii++) {
        if (!MessageList[iii].valid){
            HasClientErrors = true;
        }
    }
    
    //make server call (if appropriate)
    if (!HasClientErrors){
        //login the user and 
        CS_LoginToAccount(AccountName.value.strip(), AccountPassword.value.strip())
    } else {
        DisplayValidation(MessageList);
    }
}

//_____________________________________________________________________________________________________
//contact us
function submitRequest(corporate)
{
	var container = $("formContainer");
	var txtFirstName = $("txtFirstName");
	var txtLastName = $("txtLastName");
	var txtPhone1 = $("txtPhone1");
	var txtPhone2 = $("txtPhone2");
	var txtPhone3 = $("txtPhone3");
	var txtEmail = $("txtEmail");
	var ddlSubject = container.down("[id$=ddlSubject]");
	var txtOther = $("txtOtherSubject");
	var txtOrder = $("txtOrderNum");
	var txtComments = $("txtComments");
	
	var valid = validateContactUs(corporate);

	if(valid && !corporate)
	{
		SendContactUs(txtFirstName.value,txtLastName.value,txtPhone1.value + "." + txtPhone2.value + "." + txtPhone3.value,txtEmail.value,ddlSubject.options[ddlSubject.selectedIndex].value,txtOther.value,txtOrder.value,txtComments.value);
	}
	else if(valid && corporate)
	{
		var stateList = $("ctl00_CrateMainContent_ddlStates");
		var address = $("txtAddress");
		var city = $("txtCity");
		var zip = $("txtZip");
		var companyName = $("txtCompanyName");
		var aptNum = $("txtAptNum");
		
		var addressVal = new AddressValidation({type: "AVS",company: companyName,address2: aptNum, firstname: txtFirstName, lastname: txtLastName,address1: address, city: city, state: stateList, zip: zip, onReadyDelegate: function(){
			if(addressVal.Valid)
				SendContactUsCorporate(txtFirstName.value,txtLastName.value,txtPhone1.value + "." + txtPhone2.value + "." + txtPhone3.value,txtEmail.value,ddlSubject.options[ddlSubject.selectedIndex].value,txtOther.value,txtOrder.value,txtComments.value, companyName.value,address.value,aptNum.value,city.value,stateList.options[stateList.selectedIndex].value,zip.value);
		}});
	}
}

function validateContactUs(corporate)
{
	var container = $("formContainer");
	var MessageList = new Array(0);
	MessageList = IsValidReqTextBox(MessageList,FirstName,"txtFirstName");
	MessageList = IsValidReqTextBox(MessageList,LastName,"txtLastName");
	MessageList = IsValidEmailAddress(MessageList,"txtEmail",InvalidEmail,true);
	MessageList = IsValidReqDDL(MessageList, NoSubject, container.down("[id$=ddlSubject]"));
	MessageList = IsValidReqTextBox(MessageList, NoComments, "txtComments");
	
	var valid = true;
	
	//check corporate flag
	if(corporate)
	{
		MessageList = IsValidReqDDL(MessageList, NoSubject, "ctl00_CrateMainContent_ddlStates");
		MessageList = IsValidReqTextBox(MessageList,LastName,"txtAddress");
		MessageList = IsValidReqTextBox(MessageList,NoCity,"txtCity");
		MessageList = IsValidZipCode(MessageList,$("txtZip"),Zip,true)
			}
	
	for(var i = 0;i < MessageList.length; i++) {
        if (!MessageList[i].valid){
            valid = false;
        }
    }
	
	if(!valid)
	{
		DisplayValidation(MessageList);
		return false;
	}
	else
	{
		return true;
	}
}

function Opt(type)
{
	var MessageList = new Array(0);

	IsValidEmailAddress(MessageList,$("txtEmail"),InvalidEmailAddressForOptIn, true);
	IsValidEmailAddress(MessageList,$("txtEmailConfirm"),InvalidEmailAddressForOptIn, true);
	

	if($F("txtEmail") != $F("txtEmailConfirm"))
	{
		MessageList.push(new ValidationResult(false, "The emails do not match", $("txtEmailConfirm")));
	}

	if(MessageList.find(function(v){return !v.valid}))
	{
		DisplayValidation(MessageList);
		return;
	}
	
	var xml = "<AJAX><ACTION>OPT" + type + "</ACTION><EMAIL>" + $F("txtEmailConfirm").escapeHTML() + "</EMAIL></AJAX>";
	PostXML(xml, "/handlers/AjaxCustomerServHandler.ashx", function(x){
		var error = $xml(x, "ERROR");
		
		if(error == "")
		{
			if($("innererrorpu"))
			{
				$("innererrorpu").replace("");
			}
			var message = $xml(x, "MESSAGE");
			MessageList.push(new ValidationResult(true, message, null));
			DisplayValidation(MessageList, "StatusMessage", false, 'form');
		}
	});
}

function OptOut()
{
	var MessageList = new Array(0);

	IsValidEmailAddress(MessageList,$("txtEmail"),InvalidEmailAddressForOptIn, true);
	IsValidEmailAddress(MessageList,$("txtEmailConfirm"),InvalidEmailAddressForOptIn, true);
	

	if($F("txtEmail") != $F("txtEmailConfirm"))
	{
		MessageList.push(new ValidationResult(false, "The emails do not match", $("txtEmailConfirm")));
	}

	if(MessageList.find(function(v){return !v.valid}))
	{
		DisplayValidation(MessageList);
		return false;
	}
	
	return true;
}

function NLA(type)
{
	var MessageList = new Array(0);
	IsValidReqTextBox(MessageList,FirstName,"txtFirstName");
	IsValidReqTextBox(MessageList,LastName,"txtLastName");
	IsValidEmailAddress(MessageList,"txtEmail",InvalidEmail,true);
	IsValidPhone(MessageList,"txtPhone1","txtPhone2","txtPhone3",InvalidPhone,true)
	IsValidReqDDL(MessageList, NoSubject, $$(".ddlStates")[0]);
	IsValidReqTextBox(MessageList,LastName,"txtAddress");
	IsValidReqTextBox(MessageList,NoCity,"txtCity");
	IsValidZipCode(MessageList,$("txtZip"),Zip,true);
	IsValidReqTextBox(MessageList,"Order number is required","txtOrderNumber");
	IsValidReqTextBox(MessageList,"Item number is required","txtItemNumber");
	
	if(MessageList.find(function(v){return !v.valid}))
	{
		DisplayValidation(MessageList, "StatusMessage", true, 'form');
		return;
	}
	
	var addressVal = new AddressValidation({type: "UPS",address1: $("txtAddress"),city: $("txtCity"),state: $$(".ddlStates")[0],zip: $("txtZip"),onReadyDelegate: Delegate_NLAAddVal});
	
	function Delegate_NLAAddVal(event)
	{
		if(event.memo.AddressValObj.Valid)
		{
			var xml = "<AJAX><ACTION>" + type + "</ACTION>";
			xml += "<FIRST>" + $F("txtFirstName") + "</FIRST>";
			xml += "<LAST>" + $F("txtLastName") + "</LAST>";
			xml += "<COMPANY>" + $F("txtCompanyName") + "</COMPANY>";
			xml += "<ADDRESS>" + $F("txtAddress") + "</ADDRESS>";
			xml += "<APT>" + $F("txtAptNum") + "</APT>";
			xml += "<CITY>" + $F("txtCity") + "</CITY>";
			xml += "<STATE>" + $F($$(".ddlStates")[0]) + "</STATE>";
			xml += "<ZIP>" + $F("txtZip") + "</ZIP>";
			xml += "<PHONE>" + $F("txtPhone1") + $F("txtPhone2") + $F("txtPhone3") + "</PHONE>";
			xml += "<EMAIL>" + $F("txtEmail") + "</EMAIL>";
			xml += "<ORDERNUMBER>" + $F("txtOrderNumber") + "</ORDERNUMBER>";
			xml += "<ITEMNUMBER>" + $F("txtItemNumber") + "</ITEMNUMBER>";
			xml += "<PROCESS>" + ($("radNextStepComplete").checked ? "COMPLETE" : "CANCEL") + "</PROCESS>";
			xml += "</AJAX>";
			
			PostXML(xml, "/handlers/AjaxCustomerServHandler.ashx", function(x){
				var error = $xml(x, "ERROR");
				var MessageList = new Array(0);
				if(error == "")
				{
					$("divNLAContainer").hide();
					MessageList.push(new ValidationResult(true, "Request sent successfully", null));
				}
				else
				{
					MessageList.push(new ValidationResult(false, error, null));
				}
				
				DisplayValidation(MessageList, "StatusMessage", false, 'form');
			});
		}
	}
}