﻿/* Helper options scripting
--------------------------  */

function getregions(o) {
    if (o.value != "") {
        if (o.value == "United States") {
            document.getElementById("lblpostcode").innerHTML = "Zip Code:*";
        }
        else {
            document.getElementById("lblpostcode").innerHTML = "Postcode:*";
        }

        TheSniffa.Get_Regions(o.value, getregionscallback);
    }
}

function getregionscallback(response)
{
    // Check id
    var fid = "signupregion";
    if (document.getElementById("eventregion")) {
        fid = "eventregion"
    }
    else if (document.getElementById("addregion")) {
        fid = "addregion"
    }
    else if (!document.getElementById("signupregion")) {
        fid = "profileregion"
    }
    // remove current options
    document.getElementById(fid).options.length = 0;
    // Check for errors
    if(response.error != null) {
        document.getElementById(fid).options[0] = new Option("N/A","N/A");
    	document.getElementById(fid).disabled = true;
		return;
	}
    // Get the response value
    if (response.value.length == 0) {
        document.getElementById(fid).options[0] = new Option("N/A","N/A");
    	document.getElementById(fid).disabled = true;
    }
    else {
        for (var i = 0; i < response.value.length; i++) {
            document.getElementById(fid).options[i] = new Option(response.value[i],response.value[i]);
        }
    	document.getElementById(fid).disabled = false;
    }
}

function suggestbusiness(o) {
    // Get suggestions
    TheSniffa.Suggest_Businesses(o.value, suggestbusinessback);
}

function suggestbusinessback(response)
{
	// Check for no matches
    // IE
    if(response.error != null) {
		return;
	}
    if (response.value != "") {
        // remove current options
        document.getElementById("autoSuggestBusiness").innerHTML = "";

        for (var i = 0; i < response.value.length; i++) {
            var liopt = document.createElement("LI")
            liopt.innerHTML = response.value[i];
            if (isIE) {
                liopt.attachEvent("onclick", selectbusiness);
            }
            else {
                liopt.setAttribute("onclick", "selectbusiness(this);");
            }
            document.getElementById("autoSuggestBusiness").appendChild(liopt);
        }

        // Show and position the list
        //document.getElementById("autoSuggestBusiness").innerHTML = value;
        document.getElementById("autoSuggestBusiness").className = "autosuggest";
    }
}

function suggestdog(o, dtype) {
    // Get suggestions
    TheSniffa.Suggest_Dog(o.value, dtype, suggestdogback);
}

function suggestdogback(response)
{
	// Check for no matches
    // IE
    if(response.error != null) {
		return;
	}
    if (response.value != "") {
        // remove current options
        document.getElementById("autoSuggest" + response.value[0][0]).innerHTML = "";
        for (var i = 0; i < response.value.length; i++) {
            var liopt = document.createElement("LI")
            liopt.innerHTML = response.value[i][3];
            if (isIE) {
                liopt.attachEvent("onclick", selectdog);
            }
            else {
                liopt.setAttribute("onclick", "selectdog(this);");
            }
            liopt.setAttribute("dogid", response.value[i][1]);
            liopt.setAttribute("breedid", response.value[i][2]);
            document.getElementById("autoSuggest" + response.value[i][0]).appendChild(liopt);
        }

        // Show and position the list
        //document.getElementById("autoSuggestBusiness").innerHTML = value;
        document.getElementById("autoSuggest" + response.value[0][0]).className = "autosuggest";
    }
}

function suggestpals(o) {
    // Get suggestions
    TheSniffa.Suggest_Pals(o.value, suggestpalsback);
}

function suggestpalsback(response)
{
	// Check for no matches
    // IE
    if(response.error != null) {
		return;
	}

    // remove current options
    document.getElementById("autoSuggestPals").innerHTML = "";
    if (response.value != "") {
        for (var i = 0; i < response.value.length; i++) {
            var liopt = document.createElement("LI")
            liopt.innerHTML = response.value[i][1];
            if (isIE) {
                liopt.attachEvent("onclick", selectpals);
            }
            else {
                liopt.setAttribute("onclick", "selectpals(this);");
            }
            liopt.setAttribute("id", response.value[i][0]);
            document.getElementById("autoSuggestPals").appendChild(liopt);
        }

        // Show and position the list
        document.getElementById("autoSuggestPals").className = "autosuggest";
    }
    else {
        var liopt = document.createElement("LI");
        liopt.innerHTML = "No matching pals found";
        document.getElementById("autoSuggestPals").appendChild(liopt);

        // Show and position the list
        document.getElementById("autoSuggestPals").className = "autosuggest";
    }
}

function hidesuggestions(stype)
{
    // hide the list
    window.setTimeout('document.getElementById("autoSuggest' + stype + '").className = "autosuggest hidden"', 200);
}

function selectbusiness(e) {
    var selectedbusiness;
    if(e.srcElement) {
        selectedbusiness = e.srcElement.innerHTML;
    }
    else {
        selectedbusiness = e.innerHTML;
    }
    document.getElementById("signupbusinesstype").value = selectedbusiness;
}

function selectdog(e) {
    var o;
    if(e.srcElement) {
        o = e.srcElement;
    }
    else {
        o = e;
    }
    
    // Get the parent div
    var pdiv = o;
    while (pdiv.tagName != "DIV") {
        pdiv = pdiv.parentNode;
    }
    var firstinput, lastinput;
    firstinput = pdiv.firstChild;
    while (firstinput.tagName != "INPUT") {
        firstinput = firstinput.nextSibling;
    }
    lastinput = pdiv.lastChild;
    while (lastinput.tagName != "INPUT") {
        lastinput = lastinput.previousSibling;
    }

    firstinput.value = o.innerHTML;
    firstinput.setAttribute("dogid", o.getAttribute("dogid"));
    firstinput.setAttribute("breedid", o.getAttribute("breedid"));
    lastinput.value = o.getAttribute("dogid");
    
    // Set the breed if this is the dam or sire
    if (firstinput.id.indexOf("addam") > -1) {
        // Check if sire is set as different breed
        if (document.getElementById(firstinput.id.replace("addam", "adsire")).getAttribute("breedid") && document.getElementById(firstinput.id.replace("addam", "adsire")).getAttribute("breedid") != o.getAttribute("breedid")) {
            document.getElementById("addogbreed").value = 210;
        }
        else {
            document.getElementById("addogbreed").value = o.getAttribute("breedid");
        }
        setbreedvalue(document.getElementById("addogbreed"));
    }
    else if (firstinput.id.indexOf("sire")) {
        // Check if sire is set as different breed
        if (document.getElementById(firstinput.id.replace("adsire", "addam")).getAttribute("breedid") && document.getElementById(firstinput.id.replace("adsire", "addam")).getAttribute("breedid") != o.getAttribute("breedid")) {
            document.getElementById("addogbreed").value = 210;
        }
        else {
            document.getElementById("addogbreed").value = o.getAttribute("breedid");
        }
        setbreedvalue(document.getElementById("addogbreed"));
    }
    
}
