﻿
var cleanseList = Array(
	"1|/hair_care_advisor/_images/cleanse/Shampoo_FrenchLav.png|/Products/French-Lavender---Everyday-Shampoo-84-oz__636874090245_New.aspx|French Lavender|636874090245_New",
	"2|/hair_care_advisor/_images/cleanse/Shampoo_ChamHoney.png|/Products/Chamomile-and-Honey---Restorative-Shampoo-84-oz__636874090054_New.aspx|Chamomile & Honey|636874090054_New",
	"3|/hair_care_advisor/_images/cleanse/Shampoo_RoseCham.png|/Products/Rose-and-Chamomile---Protective-Shampoo-84-oz__636874090177_New.aspx|Rose & Chamomile|636874090177_New",
	"4|/hair_care_advisor/_images/cleanse/Shampoo_SweetOrange.png|/Products/Sweet-Orange---Clarifying-Shampoo-84-oz__636874090238_New.aspx|Sweet Orange|636874090238_New",
	"5|/hair_care_advisor/_images/cleanse/Shampoo_RsmaryMint.png|/Products/Rosemary-and-Mint---Volumizing-Shampoo-84-oz__636874090160_New.aspx|Rosemary & Mint|636874090160_New"
	);
	
var conditionList = Array(
	"1|/hair_care_advisor/_images/condition/Conditioner_FrenchLav.png|/Products/French-Lavender---Everyday-Conditioner-84-oz__636874090252New2.aspx|French Lavender|636874090252New2",
	"2|/hair_care_advisor/_images/condition/Conditioner_ChamHoney.png|/Products/Chamomile-and-Honey---Restorative-Conditioner-84-oz__636874090047New1.aspx|Chamomile & Honey|636874090047New1",
	"3|/hair_care_advisor/_images/condition/Conditioner_Rose_Cham.png|/Products/Rose-and-Chamomile---Protective-Conditioner-84-oz__636874090207New1.aspx|Rose & Chamomile|636874090207New1",
	"4|/hair_care_advisor/_images/condition/Conditioner_RseGrnm_citrus.png|/Products/Rose-Geranium-and-Citrus---Restorative-Conditioner-84-oz__636874090153New2.aspx|Rose Geranium & Citrus|636874090153New2",
	"5|/hair_care_advisor/_images/condition/Conditioner_RsmryMint.png|/Products/Rosemary-and-Mint---Volumizing-Conditioner-84-oz__636874090214New2.aspx|Rosemary & Mint|636874090214New2"
	);

var treatList = Array("1|/hair_care_advisor/_images/treat/HairRepair_WildLime_Gngr.png|/Products/Repair---Deep-Conditioner-Wild-Lime-and-Ginger-4-oz__636874100050-New.aspx|Wild Lime & Ginger - 4 oz|636874100050-New");

var eleMotion = false;

function SelOb(mvOb) {
	if (eleMotion) 
		return;
	
    var destOb = document.getElementById("selList");
    var parUL, offSetY = (-30 * (mvOb.id.replace(/[a-zA-Z]/g, "")));
    if (!destOb || !mvOb) return;

    parUL = mvOb.parentNode;

    if (parUL.id == destOb.id)
        return;

	var uls = document.getElementById("divChoices").getElementsByTagName("ul");
	for (var i = 0; i < uls.length; i++) {
		if (uls[i].id == mvOb.parentNode.id) {
			offSetY += (30 * i);
			break;
		}
	}

	new Effect.Move(mvOb, { x: 650, y: offSetY, mode: 'absolute', afterFinish: function() { FinishMove(mvOb, parUL, destOb); } });

	var appId;
	var uls = document.getElementById("divChoices").getElementsByTagName("ul");
	for (var i = 0; i < uls.length; i++) {
		if (uls[i].id == parUL.id && i < (uls.length - 1)) {
			appId = uls[i + 1].id;
			break;
		}
	}

	if (parUL.id == "listConcern")
		Effect.Fade(parUL.id, { duration: 1, afterFinish: function() { SuggestProducts(); mvOb.style.display = ""; } });
	else
		Effect.Fade(parUL.id, { duration: 1, afterFinish: function() { Effect.Appear(appId); mvOb.style.display = ""; } });
	eleMotion = true;
}

function FinishMove(mvOb, parOb, destOb) {
    var appId;
    var tmpLi = document.createElement("li");
    tmpLi.innerHTML = mvOb.innerHTML;
    tmpLi.className = mvOb.className;

    destOb.appendChild(tmpLi);

    mvOb.style.display = "none";
    mvOb.style.left = 0;
    mvOb.style.top = 0;

    eleMotion = false;
        
}

function SuggestProducts() {
	var selLis = document.getElementById("selList").getElementsByTagName("li");
	if (selLis.length < 4) return;

	SetTableProd(GetCleanser(selLis[0].innerHTML, selLis[2].innerHTML, selLis[3].innerHTML), "tdCleanse", cleanseList, "");

	SetTableProd(GetConditioner(selLis[0].innerHTML, selLis[2].innerHTML, selLis[3].innerHTML, selLis[1].innerHTML), "tdCondition", conditionList, "");

	SetTableProd("1", "tdTreat", treatList, GetTreat(selLis[0].innerHTML, selLis[2].innerHTML, selLis[3].innerHTML));

	Effect.Appear("suggestedProductsContainer");
}

function ResetSelector() {

	document.getElementById("selList").innerHTML = "";
	document.getElementById("suggestedProductsContainer").style.display = "none";

	var uls = document.getElementById("divChoices").getElementsByTagName("ul");
	for (var i = 0; i < uls.length; i++) {
		if (uls[i].parentNode.id == "divChoices") {
			if (i == 0)
				Effect.Appear(uls[i].id);
			else
				uls[i].style.display = "none";
		}
	}
}

function SetTableProd(cProds, tdId, arrVar, msg) {
    var tmpProds = cProds.split(",");
    var tdOb = document.getElementById(tdId);
    var tmpStr = "";
    var prodInfo;
    var testStr = "";

    for (var i = 0; i < tmpProds.length; i++) {
    	for (var x = 0; x < arrVar.length; x++) {
    		testStr += arrVar[x].substring(0, 2) + " == " + tmpProds[i] + "|\n";
    		if (arrVar[x].substring(0, 2) == tmpProds[i] + "|") {
    			prodInfo = arrVar[x].split("|");
    			break;
    		}
    	}
    	
    	tmpStr += "<div class=\"product\">"
    		+ "<div class=\"product_image\"><img src=\"" + prodInfo[1] + "\" /></div>"
    		+ "<div class=\"product_name\"><a href=\"" + prodInfo[2] + "\" target=\"_blank\">" + prodInfo[3] + "</a></div>"
			+ "<div class=\"product_description\">" + ProductDescription(prodInfo[4]) + "</div>"
			+ (msg != "" && msg != "|" ? "<div class=\"use_instructions\">" + msg.split("|")[0] + "</div>" : "<div>&nbsp;</div>")
			+ "<div class=\"select_product\"><label for=\"product" + prodInfo[4] + "\"><input type=\"checkbox\" value=\"" + prodInfo[4] + "\" name=\"products\" id=\"product" + prodInfo[4] + "\" /> Select Product</label></div>"
			+ "</div>";
    }

    tdOb.innerHTML = tmpStr
}

function GetCleanser(selMoisture, selCondition, selFactor) {
	var csCheck = selMoisture.replace(/ /g, "") + '||' + (selFactor == "Normal/Healthy" ? selCondition.replace(/ /g, "") : selFactor.replace(/ /g, ""));
	
	switch (csCheck) {
		case "NormalHair||Normal/Healthy":
		case "NormalHair||Thick/Coarse":
		case "NormalHair||Curly/Wavy":
		case "NormalHair||Straight":
		case "NormalHair||Fine":
		case "OilyHair||Stressed/SunDamaged/Brittle":
			return "1";
			break;
		case "DryHair||Normal/Healthy":
		case "DryHair||Thick/Coarse":
		case "DryHair||Curly/Wavy":
		case "DryHair||Straight":
		case "DryHair||Fine":
		case "DryHair||Stressed/SunDamaged/Brittle":
		case "DryHair||ScalpDryness":
		case "DryHair||Frizzy/Fly-Away":
		case "NormalHair||Stressed/SunDamaged/Brittle":
		case "NormalHair||ScalpDryness":
		case "NormalHair||Frizzy/Fly-Away":
		case "OilyHair||Frizzy/Fly-Away":
			return "2";
			break;
		case "DryHair||ChemicallyProcessed/ColorTreated":
		case "NormalHair||ChemicallyProcessed/ColorTreated":
		case "OilyHair||ChemicallyProcessed/ColorTreated":
			return "3";
			break;
		case "DryHair||Scalp/ProductBuild-up":
		case "OilyHair||Normal/Healthy":
		case "OilyHair||Thick/Coarse":
		case "OilyHair||Curly/Wavy":
		case "OilyHair||Straight":
		case "OilyHair||Fine":
			return "4";
			break;
		case "OilyHair||Scalp/ProductBuild-up":
			return "4,5";
			break;

		case "NormalHair||Scalp/ProductBuild-up":
			return "5";
			break;
		case "OilyHair||ScalpDryness":
			return "4,1";
			break;
		default:
		return "0";
		break;

	}
	return "";
}

function GetConditioner(selMoisture, selCondition, selFactor, selVolume) {
	var csCheck = selMoisture.replace(/ /g, "") + '||' + (selFactor == "Normal/Healthy" ? selCondition.replace(/ /g, "") : selFactor.replace(/ /g, "")) + "||" + selVolume.replace(/ /g, "");
	var ret = "", tmpStr = new String("");

	for (var i = 0; i < conditionList.length; i++) {
		tmpStr = "";
		switch (conditionList[i].substring(0,2)) {

		    case "1|":
				tmpStr = "DryHair||Normal/Healthy||Low,DryHair||Curly/Wavy||Low,DryHair||Straight||Low,DryHair||Fine||Maximum,DryHair||Fine||Moderate,DryHair||Fine||Low,"
				+ "DryHair||Stressed/SunDamaged/Brittle||Low,DryHair||Scalp/ProductBuild-up||Moderate,DryHair||Scalp/ProductBuild-up||Low,"
				+ "DryHair||ScalpDryness||Low,NormalHair||Normal/Healthy||Maximum,NormalHair||Normal/Healthy||Moderate,NormalHair||Normal/Healthy||Low,"
				+ "NormalHair||Thick/Coarse||Low,NormalHair||Curly/Wavy||Low,NormalHair||Straight||Moderate,NormalHair||Fine||Moderate,"
				+ "NormalHair||ChemicallyProcessed/ColorTreated||Moderate,DryHair||ChemicallyProcessed/ColorTreated||Low,NormalHair||Stressed/SunDamaged/Brittle||Low,"
				+ "NormalHair||Frizzy/Fly-Away||Low,OilyHair||Normal/Healthy||Maximum,OilyHair||Thick/Coarse||Maximium,OilyHair||Curly/Wavy||Maximium,"
				+ "OilyHair||Straight||Maximium,OilyHair||ChemicallyProcessed/ColorTreated||Moderate,OilyHair||ChemicallyProcessed/ColorTreated||Low,"
				+ "OilyHair||Stressed/SunDamaged/Brittle||Low,OilyHair||Stressed/SunDamaged/Brittle||Moderate,OilyHair||Stressed/SunDamaged/Brittle||Maximum,"
				+ "OilyHair||Scalp/ProductBuild-up||Maximum,OilyHair||ScalpDryness||Maximum,OilyHair||Frizzy/Fly-Away||Maximum,OilyHair||Frizzy/Fly-Away||Moderate,"
				+ "OilyHair||Frizzy/Fly-Away||Low,NormalHair||ChemicallyProcessed/ColorTreated||Low,";

				if (tmpStr.indexOf(csCheck + ",") > -1)
					ret += (ret == "" ? "" : ",") + "1";
				break;

			case "2|":
				tmpStr = "DryHair||Normal/Healthy||Maximum,DryHair||Thick/Coarse||Maximum,DryHair||Curly/Wavy||Maximum,DryHair||Straight||Maximum,"
				+ "DryHair||ChemicallyProcessed/ColorTreated||Maximum,DryHair||Stressed/SunDamaged/Brittle||Maximum,DryHair||ScalpDryness||Maximum,"
				+ "DryHair||Frizzy/Fly-Away||Maximum,NormalHair||Thick/Coarse||Maximum,NormalHair||Curly/Wavy||Maximum,NormalHair||Stressed/SunDamaged/Brittle||Maximum,"
				+ "NormalHair||ScalpDryness||Maximum,NormalHair||Frizzy/Fly-Away||Maximum,";

				if (tmpStr.indexOf(csCheck + ",") > -1)
					ret += (ret == "" ? "" : ",") + "2";
				break;
				
            case "3|":
				tmpStr ="DryHair||Normal/Healthy||Moderate,DryHair||Thick/Coarse||Moderate,DryHair||Thick/Coarse||Low,DryHair||Curly/Wavy||Moderate,"
				+ "DryHair||Straight||Moderate,DryHair||ChemicallyProcessed/ColorTreated||Moderate,DryHair||ChemicallyProcessed/ColorTreated||Low,"
				+ "DryHair||Stressed/SunDamaged/Brittle||Moderate,DryHair||Scalp/ProductBuild-up||Maximum,DryHair||ScalpDryness||Moderate,"
				+ "DryHair||Frizzy/Fly-Away||Moderate,DryHair||Frizzy/Fly-Away||Low,NormalHair||Thick/Coarse||Moderate,NormalHair||Curly/Wavy||Moderate,"
				+ "NormalHair||Straight||Maximum,NormalHair||Fine||Maximum,NormalHair||ChemicallyProcessed/ColorTreated||Maximum,NormalHair||Stressed/SunDamaged/Brittle||Moderate,"
				+ "NormalHair||ScalpDryness||Moderate,NormalHair||Frizzy/Fly-Away||Moderate,OilyHair||ChemicallyProcessed/ColorTreated||Maximum,";

				if (tmpStr.indexOf(csCheck + ",") > -1)
					ret += (ret == "" ? "" : ",") + "3";
				break;

            case "4|":
				tmpStr = "DryHair||Scalp/ProductBuild-up||Moderate,DryHair||Scalp/ProductBuild-up||Low,NormalHair||Scalp/ProductBuild-up||Maximum,"
				+ "OilyHair||Normal/Healthy||Maximum,OilyHair||Thick/Coarse||Maximum,OilyHair||Curly/Wavy||Maximum,OilyHair||Straight||Maximum,"
				+ "OilyHair||Fine||Maximum,OilyHair||ChemicallyProcessed/ColorTreated||Moderate,OilyHair||ChemicallyProcessed/ColorTreated||Low,"
				+ "OilyHair||Scalp/ProductBuild-up||Maximum,";

				if (tmpStr.indexOf(csCheck + ",") > -1)
					ret += (ret == "" ? "" : ",") + "4";
				break;

			case "5|":
				tmpStr = "NormalHair||Straight||Low,NormalHair||Fine||Low,NormalHair||Scalp/ProductBuild-up||Moderate,NormalHair||Scalp/ProductBuild-up||Low,"
				+ "NormalHair||ScalpDryness||Low,OilyHair||Normal/Healthy||Moderate,OilyHair||Normal/Healthy||Low,OilyHair||Thick/Coarse||Moderate,"
				+ "OilyHair||Thick/Coarse||Low,OilyHair||Curly/Wavy||Moderate,OilyHair||Curly/Wavy||Low,OilyHair||Straight||Moderate,OilyHair||Straight||Low,"
				+ "OilyHair||Fine||Moderate,OilyHair||Fine||Low,OilyHair||Scalp/ProductBuild-up||Moderate,OilyHair||Scalp/ProductBuild-up||Low,"
				+ "OilyHair||ScalpDryness||Moderate,OilyHair||ScalpDryness||Low,";

				if (tmpStr.indexOf(csCheck + ",") > -1)
					ret += (ret == "" ? "" : ",") + "5";
				break;

		}
}

	return ret;
}

function GetTreat(selMoisture, selCondition, selFactor) {
	var csCheck = selMoisture + '||' + (selFactor == "Normal/Healthy" ? selCondition : selFactor);
	var msg = "";

	switch (csCheck.replace(/ /g, "")) {
		case "DryHair||Normal/Healthy":
		case "DryHair||Thick/Coarse":
		case "DryHair||ChemicallyProcessed/ColorTreated":
		case "DryHair||Stressed/SunDamaged/Brittle":
			msg = "Use 1 to 2 times weekly";
			break;

		case "DryHair||Curly/Wavy":
		case "DryHair||Straight":
		case "NormalHair||Thick/Coarse":
		case "NormalHair||Curly/Wavy":
		case "NormalHair||Straight":
		case "NormalHair||Frizzy/Fly-Away":
			msg = "Use once weekly";
			break;

		case "DryHair||Fine":
		case "OilyHair||Fine":
			msg = "Use once weekly on ends of hair";
			break;

		case "DryHair||Scalp/ProductBuild-up":
		case "DryHair||ScalpDryness":
		case "DryHair||Frizzy/Fly-Away":
		case "NormalHair||Fine":
		case "NormalHair||Scalp/ProductBuild-up":
		case "NormalHair||ScalpDryness":
		case "OilyHair||Frizzy/Fly-Away":
		case "OilyHair||Chemically Processed/ColorTreated":
		case "OilyHair||Normal/Healthy":
		case "OilyHair||Thick/Coarse":
		case "OilyHair||Curly/Wavy":
		case "OilyHair||Straight":
			msg = "Use as needed";
			break;

		case "NormalHair||Normal/Healthy":
			msg = "Use as needed based on season & activity level";
			break;

		case "NormalHair||ChemicallyProcessed/ColorTreated":
			msg = "Use once weekly or as needed";
			break;

		case "NormalHair||Stressed/SunDamaged/Brittle":
			msg = "Use twice weekly";
			break;
	}

	if (csCheck.replace(/ /g, "") == "OilyHair||Frizzy/Fly-Away" || csCheck.replace(/ /g, "") == "OilyHair||ChemicallyProcessed/ColorTreated" ||
		csCheck.replace(/ /g, "") == "DryHair||Frizzy/Fly-Away")
		return msg + "|2";
	else
		return msg + "|";
}

function ProductDescription(sku) {
	switch (sku) {
		case "636874090054_New":
		    return "Combines beneficial ingredients to protect hair from daily environmental effects";
			break;
		case "636874090245_New":
		    return "Combines synergistic ingredients to protect hair from daily environmental effects with a balanced Nourishing Complex";
			break;
		case "636874090160_New":
		    return "Combines therapeutic ingredients in a unique hair Volume Complex to gently cleanse";
			break;
		case "636874090177_New":
		    return "A protective complex that leaves hair soft, shiny and color rich";
			break;
		case "636874090238_New":
		    return "Combines beneficial therapeutic ingredients in a Clarifying Complex to gently cleanse hair";
			break;
		case "636874090252New2":
		    return "A unique formula that gently conditions, repairs existing damage, and protects hair";
			break;
		case "636874090207New1":
		    return "A Protective Complex and therapeutic botanicals leave hair, soft, shiny and color rich";
			break;
		case "636874090047New1":
		    return "Combines beneficial ingredients to hydrate and restore hair health with moisture rich conditioning";
			break;
		case "636874090153New2":
		    return "This unique formula clarifies the hair shaft removing excess oil for a light and clean feel";
			break;
		case "636874090214New2":
			return "This uplifting formula adds volume while protecting hair to facilitate healthy growth";
			break;
		case "636874100050-New":
		    return "Combines synergistic ingredients to restore hair health";
			break;
		default:
			return "";
			break;
	}
}

function AddProducts() {
	var skus = "";
	var inps = document.getElementsByTagName("input");

	for (var i = 0; i < inps.length; i++) {
		if (inps[i].name == "products" && inps[i].checked)
			skus += (skus != "" ? ";" : "") + inps[i].value;
	}

	if (skus == "") {
		alert("You must select at least one product to add to your cart.");
		return;
	}

	window.open("/cart.aspx?multi=" + skus);
}