var browserOS;
var browserName;
var browserVersion;

function getBrowserID() {
    var appVersion = navigator.appVersion;
    if (appVersion.indexOf("Win") > 0) {
        browserOS = "WIN";
    } else if (appVersion.indexOf("Mac") > 0) {
        browserOS = "MAC";
    } else if (appVersion.indexOf("X11") > 0) {
        browserOS = "UNX";
    } else {
        browserOS = "UNK";
    }

    var browser = navigator.appName;
    if (browser.substring(0, 8) == "Netscape") {
        browserName = "NN";
    } else if (browser.substring(0, 9) == "Microsoft") {
        browserName = "IE";
    } else {
        browserName = browser;
    }

    var msidx = appVersion.indexOf("MSIE");
    if (msidx > 0) {
       browserVersion = parseFloat(appVersion.substring(msidx+5)) * 1000;
    } else {
       browserVersion = parseFloat(appVersion) * 1000;
    }
}

// ------------------------------
function getRadioValue(buttonName) {
    var el = document.dogform.elements[buttonName];

    for (idx=0; idx<el.length; idx++) {
        if (el[idx].checked) {
            return el[idx].value;
        }
    }
    return 0;
}

//***********************************

var userSizeM = "";
var userCoatM = "";
var userTypesM = "";
var userTraining = 0;
var userHasTrained = 0;
var userExercise = 0;
var userGrooming = 0;
var userProfGrooming = 0;
var userIndependence = 1;
var userFriendlyM = "";
var userDom1 = 1;
var userDom2 = 0;
var userPeople = 0;
var userPeopleM = "";
var userPets = 0;
var userPetsM = "";
var userSpace = 1;
var userClimate = 0;
var userTalents = "NNNNNNNNNNNNNNNNNNNNNNN";

var typeNames = "ABCDEFGHIJK";

var talentRbNames = new Array("talent_assist",
                              "talent_jog",
                              "talent_hunt",
                              null,
                              "talent_track",
                              "talent_retrieve",
                              "talent_point",
                              "talent_herd",
                              "talent_watch",
                              "talent_guard",
                              null,               //10 police-not used
                              "talent_search",
                              "talent_water",
                              null,               //13 guide-same as service
                              "talent_snow",
                              null,               //15 carting-not used
                              "talent_weight",
                              "talent_agility",
                              "talent_lure",
                              "talent_compob",
                              "talent_schutz",
                              "talent_tricks",
                              "talent_companion"
                             );

// ------------------------------
function makeCookieString() {
    var userCookieValue = "";

    if (userTalents == null) {
        userTalents = "NNNNNNNNNNNNNNNNNNNNNNN";
    }

    userCookieValue += userSizeM;               // 0
    userCookieValue += "&" + userCoatM;
    userCookieValue += "&" + userTypesM;
    userCookieValue += "&" + userFriendlyM;
    userCookieValue += "&" + userIndependence;
    userCookieValue += "&" + userDom1;
    userCookieValue += "&" + userDom2;
    userCookieValue += "&" + userTraining;
    userCookieValue += "&" + userExercise;
    userCookieValue += "&" + userGrooming;
    userCookieValue += "&" + userProfGrooming;  // 10

    userCookieValue += "&" + (userHasTrained ? "Y" : "N");  // Novice
    userCookieValue += "&" + userPeople;
    userCookieValue += "&" + userPeopleM;
    userCookieValue += "&" + userPets;
    userCookieValue += "&" + userPetsM;
    userCookieValue += "&" + userSpace;
    userCookieValue += "&" + userClimate;
    userCookieValue += "&" + userTalents;       // 16

    //alert("makeCookieString, userCookieValue=" + userCookieValue);

    document.cookie = "breedSelectorData=" + escape(userCookieValue);
}

// ------------------------------
function getVarsFromCookie() {
    var allCookies = "" + document.cookie;
    //debugwrite("allCookies=" + allCookies);
    var start = allCookies.indexOf("breedSelectorData=");
    //debugwrite("start=" + start);
    
    if (start == -1) {
        //alert("Cookie data not found.");
        return;
    } else { 
        start += "breedSelectorData=".length;
		
        var end = allCookies.indexOf(':', start);
        if (end == -1) {
            end = allCookies.length;
        }

        var cookieString = unescape(allCookies.substring(start, end));

        //debugwrite("cookieString=" + cookieString);

        var tokens = cookieString.split("&");

        userSizeM = tokens[0];
        userCoatM = tokens[1];
        userTypesM = tokens[2];
        userFriendlyM = tokens[3];
        userIndependence = tokens[4];
        userDom1 = tokens[5];
        userDom2 = tokens[6];
        userTraining = tokens[7];
        userExercise = tokens[8];
        userGrooming = tokens[9];
        userProfGrooming = tokens[10];

        userHasTrained = (tokens[11] == "Y");

        userPeople = tokens[12];
        userPeopleM = tokens[13];
        userPets = tokens[14];
        userPetsM = tokens[15];
        userSpace = tokens[16];
        userClimate = tokens[17];
        userTalents = tokens[18];

        var semiPos = userTalents.indexOf(";");
        if (semiPos > -1) {
            userTalents = userTalents.substring(0, semiPos);
        }

        //debugwrite("userSizeM=" + userSizeM);
        //debugwrite("userCoatM=" + userCoatM);
        //debugwrite("userTypesM=" + userTypesM);
        //debugwrite("userTalents=" + userTalents);
    }
}

// ------------------------------
function setFormFromCookie() {
    var el;
    var idx;
    var talentIdx;
    
    getVarsFromCookie();
   
    // size (cb)
    el = document.dogform.elements["size0"];
    el.checked = (userSizeM.length == 0);
	
    for (idx = 1; idx <= 5; idx++) {
        el = document.dogform.elements["size" + idx];
		
        el.checked = (userSizeM.indexOf(el.value) > -1);
		
    }
    
    // coat (cb)
    el = document.dogform.elements["coat0"];
    el.checked = (userCoatM.length == 0);
    for (idx = 1; idx <= 6; idx++) {
        el = document.dogform.elements["coat" + idx];
        el.checked = (userCoatM.indexOf(el.value) > -1);
    }

    // looks (cb)
    el = document.dogform.elements["look0"];
    el.checked = (userTypesM.length == 0);
    for (idx = 0; idx <= 10; idx++) {
        el = document.dogform.elements["look" + typeNames.charAt(idx)];
        el.checked = (userTypesM.indexOf(el.value) > -1);
    }

    // training (rb)
    el = document.dogform.elements["dogtrain"];
    for (idx=0; idx<el.length; idx++) {
        el[idx].checked = (userTraining == el[idx].value);
    }

    // exercise (rb)
    el = document.dogform.elements["dogexercise"];
    for (idx=0; idx<el.length; idx++) {
        el[idx].checked = (userExercise == el[idx].value);
    }

    // has trained (single cb)
    el = document.dogform.elements["hastrained"];
    el.checked = userHasTrained;

    // grooming (rb)
    el = document.dogform.elements["doggroom"];
    for (idx=0; idx<el.length; idx++) {
        el[idx].checked = (userGrooming == el[idx].value);
    }

    // prof grooming (rb)
    el = document.dogform.elements["profgroom"];
    for (idx=0; idx<el.length; idx++) {
        el[idx].checked = (userProfGrooming == el[idx].value);
    }

    // independence (rb)
    el = document.dogform.elements["dogindep"];
    for (idx=0; idx<el.length; idx++) {
        el[idx].checked = (userIndependence == el[idx].value);
    }

    // friendliness (cb)
    el = document.dogform.elements["friend1"];
    el.checked = (userFriendlyM.indexOf(el.value) > -1);
    el = document.dogform.elements["friend3"];
    el.checked = (userFriendlyM.indexOf(el.value) > -1);
    el = document.dogform.elements["friend5"];
    el.checked = (userFriendlyM.indexOf(el.value) > -1);

    // dominance (select)
    document.dogform.selectDom1.selectedIndex = userDom1 - 1;
    document.dogform.selectDom2.selectedIndex = userDom2;

    // people (cb)
    for (idx = 1; idx <= 3; idx++) {
        el = document.dogform.elements["people" + idx];
        el.checked = (userPeopleM.indexOf(el.value) > -1);
    }

    // pets (cb)
    for (idx = 1; idx <= 3; idx++) {
        el = document.dogform.elements["pets" + idx];
        el.checked = (userPetsM.indexOf(el.value) > -1);
    }

    // outdoor space (rb)
    el = document.dogform.elements["dogspace"];
    for (idx=0; idx<el.length; idx++) {
        el[idx].checked = (userSpace == el[idx].value);
    }

    // climate (rb)
    el = document.dogform.elements["dogclimate"];
    for (idx=0; idx<el.length; idx++) {
        el[idx].checked = (userClimate == el[idx].value);
    }
   
    // talents (rb)
    for (talentIdx=0; talentIdx<talentRbNames.length; talentIdx++) {
        if (talentRbNames[talentIdx] != null) { 
           el = document.dogform.elements[talentRbNames[talentIdx]];
		    for (idx=0; idx<el.length; idx++) {
			    el[idx].checked = (userTalents.charAt(talentIdx) == el[idx].value);
			}
       }
    }
}

// ------------------------------
function getRadioValue(buttonName) {
    var el = document.dogform.elements[buttonName];

    for (idx=0; idx<el.length; idx++) {
        if (el[idx].checked) {
            return el[idx].value;
        }
    }
    return 0;
}

// ------------------------------
function setUserChoiceVars() {
    var el;
    var idx;

    userSizeM = "";

    for (idx = 1; idx < 6; idx++) {
        el = document.dogform.elements["size" + idx];
        if (el.checked) {
            userSizeM = userSizeM + idx;
        }
    }

    userCoatM = "";
    for (idx = 1; idx < 7; idx++) {
        el = document.dogform.elements["coat" + idx];
        if (el.checked) {
            userCoatM = userCoatM + idx;
        }
    }

    userTypesM = "";
    for (idx = 0; idx < 11; idx++) {
        el = document.dogform.elements["look" + typeNames.charAt(idx)];
        if (el.checked) {
            userTypesM = userTypesM + typeNames.charAt(idx);
        }
    }

    userHasTrained = document.dogform.hastrained.checked;

    userFriendlyM = "";
    if (document.dogform.elements["friend1"].checked) {
        userFriendlyM = userFriendlyM + "1";
    }
    if (document.dogform.elements["friend3"].checked) {
        userFriendlyM = userFriendlyM + "3";
    }
    if (document.dogform.elements["friend5"].checked) {
        userFriendlyM = userFriendlyM + "5";
    }
    userDom1 = document.dogform.selectDom1.selectedIndex + 1;
    userDom2 = document.dogform.selectDom2.selectedIndex;

    userPeople = 0;
    userPeopleM = "";
    if (document.dogform.people2.checked) {
        userPeopleM = userPeopleM + "2";
        userPeople = "3";
    }
    if (document.dogform.people3.checked) {
        userPeopleM = userPeopleM + "3";
        userPeople = "3";
    }
    if (document.dogform.people1.checked) {
        userPeopleM = userPeopleM + "1";
        userPeople = "5";
    }

    userPets = 0;
    userPetsM = "";
    if (document.dogform.pets1.checked) {
        userPetsM = userPetsM + "1";
        userPets = "3";
    }
    if (document.dogform.pets2.checked) {
        userPetsM = userPetsM + "2";
        userPets = "5";
    }
    if (document.dogform.pets3.checked) {
        userPetsM = userPetsM + "3";
        userPets = "5";
    }

    makeCookieString();
}

// ------------------------------
function resetUserChoiceVars() {
    userSizeM = "";
    userCoatM = "";
    userTypesM = "";
    userTraining = 0;
    userHasTrained = 0;
    userExercise = 0;
    userGrooming = 0;
    userProfGrooming = 0;
    userIndependence = 1;
    userFriendlyM = "";
    userDom1 = 1;
    userDom2 = 0;
    userPeople = 0;
    userPeopleM = "";
    userPets = 0;
    userPetsM = "";
    userSpace = 1;
    userClimate = 0;
    userTalents = "NNNNNNNNNNNNNNNNNNNNNNN";
}

// ------------------------------
function setChar(str, idx, c) {
    return str.substring(0, idx) + c + str.substring(idx+1, str.length);
}

// ------------------------------
function unCheckAllSize() { 
    if (document.dogform.size0.checked) {
        for (var idx = 1; idx < 6; idx++) {
            document.dogform.elements["size" + idx].checked = false;
        }
    }
}

// ------------------------------
function unCheckSizePref() { 
    for (var idx = 1; idx < 6; idx++) { 
        if (document.dogform.elements["size" + idx].checked) { 
            document.dogform.size0.checked = false;
            break;
        }
    }
}

// ------------------------------
function unCheckAllCoat() {
    if (document.dogform.coat0.checked) {
        for (var idx = 1; idx < 7; idx++) {
            document.dogform.elements["coat" + idx].checked = false;
        }
    }
}

// ------------------------------
function unCheckCoatPref() {
    for (var idx = 1; idx < 7; idx++) {
        if (document.dogform.elements["coat" + idx].checked) {
            document.dogform.coat0.checked = false;
            break;
        }
    }
}

// ------------------------------
function unCheckAllLook() {
    if (document.dogform.look0.checked) {
        for (var idx = 0; idx < 11; idx++) {
            document.dogform.elements["look" + typeNames.charAt(idx)].checked = false;
        }
    }
}

// ------------------------------
function unCheckLookPref() {
    for (var idx = 0; idx < 11; idx++) {
        if (document.dogform.elements["look" + typeNames.charAt(idx)].checked) {
            document.dogform.look0.checked = false;
            break;
        }
    }
}

// --------------------------------------------
var debugWin;
function debugwrite(str) {
alert(str);
/*
    if (debugWin == null || debugWin.closed) {
        debugWin = window.open("", "debugWin", "width=450,height=600,scrollbars,resizable");
    }
    debugWin.document.write(str + "<BR>");
*/
}

// --------------------------------------------

var resNum = 0;

function showResults() {
    if (browserOS == null) {
        getBrowserID();
    }

  resNum++;

    //if (resultsWin == null || resultsWin.closed) {
    resultsWin = window.open("", "resultsWin"+resNum, "resizable,scrollbars,left=30,top=100,width=450,height=450");
    //}

 var doc = resultsWin.document;

    if (useTables) {
        doc.write('<table border="1" cellpadding="5" cellspacing="2" class=text>');
        doc.write('<tr><td class=text><b>Name</b></td><td class=text><b>Score (out of 100)</b></td></tr>');
    } else {
        doc.write('This list shows the breed name followed by the score (out of 100):<br></span>');
        //doc.write('------------------');
    }

    var newurl= "";
    for (var dogIdx=dogData.numDogs-1; dogIdx >= dogData.numDogs-30; dogIdx--) {

        doc.write('<script language="javascript">');
        doc.write('var filename ="'+dogData["dog" + dogIdx].file+'";');
        doc.write('var values = filename.split(".");');
        doc.write('var strurl = window.opener.document.hidvalue.bsurl.value;');
        doc.write('out = "#"; ');
        doc.write('add = "";');
        doc.write('temp = "" + strurl;');
        doc.write('while (temp.indexOf(out)>-1) {');
        doc.write('pos= temp.indexOf(out);');
        doc.write('temp = "" + (temp.substring(0, pos) + add + temp.substring((pos + out.length), temp.length));');
        doc.write('}');
        doc.write('strurl = temp;');
        doc.write('var newurl="";');
        doc.write('if ( window.opener.document.hidvalue.urltype.value == "Short" ) { ');
        doc.write(' newurl = strurl +"&fn="+values[0]; }');
        doc.write('else { newurl = strurl +"&filename="+values[0]; }');
        doc.write('window.opener.document.hidvalue.hidnewurl.value=newurl;');
        doc.write('window.opener.document.hidvalue.bsurl.value=strurl;');
        doc.write('</script>');

        if (useTables) {
            doc.write('<tr><td class=text>');
        } else {
            doc.write('<br>');
        }

        doc.write('<A class=text TARGET="_blank" HREF="'+document.hidvalue.hidnewurl.value);
        doc.write('" >');
        doc.write(dogData["dog" + dogIdx].name);
        doc.write('</A>');

        if (useTables) {
            doc.write('</td><td class=text>');
        } else {
            doc.write(' - ');
        }
        doc.write(dogData["dog" + dogIdx].score);
        if (useTables) {
            doc.write('</td></tr>');
        }
    }

    if (useTables) {
        doc.write('</table>');
    } else {
        doc.write('<br>');
        if (browserName == "NN") {
            doc.write('</font>');
        }
    }

    if (browserName == "NN") {
       nwin.close();
    }

    doc.write('</body></html>');
}
// The below functions are used on back button on the Dog Breed Result page for navigating to the
//Dog Breed Selector Page.
function pageLoadI()
{
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS"
}
function pageLoadE()
{
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS"
}


// The below functions are used on back button on Dog Breed Help page for navigating to the
//Dog Breed Selector Page.
function pageLoadDI()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_size"	
}
function pageLoadDE()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_size"	
}
function pageLoadTI()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_training"	
}
function pageLoadTE()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_training"	
}
function pageLoadGI()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_grooming"	
}
function pageLoadGE()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_grooming"	
}
function pageLoadII()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_independence"	
}
function pageLoadIE()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_independence"	
}
function pageLoadDMI()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_dominance"	
}
function pageLoadDME()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_dominance"	
}
function pageLoadPI()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_people"	
}
function pageLoadPE()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_people"	
}
function pageLoadSI()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_talents"	
}
function pageLoadSE()
{	
	window.location.href="/iams/en_US/jsp/IAMS_Page.jsp?pageID=DBS#a_talents"	
}