﻿// ----- 12/09/09 --- Written by jerbmann ------- //
$(document).ready(function(){

    //Load random image into dog breed nutrition pod
    var randomnumber = Math.floor(Math.random()*5);
    randomnumber = randomnumber+1;
    //$(".nutritionPod").attr("src","images/img_DogBreedCatalog_BottomPodNutrition-"+randomnumber+".jpg");
    if(randomnumber == 1){$(".dogBreedNutrition").attr("src","/images/img_DogBreedCatalog_BottomPodNutrition-1.jpg");}
    else if(randomnumber == 2){$(".dogBreedNutrition").attr("src","/images/img_DogBreedCatalog_BottomPodNutrition-2.jpg");}
    else if(randomnumber == 3){$(".dogBreedNutrition").attr("src","/images/img_DogBreedCatalog_BottomPodNutrition-3.jpg");}
    else if(randomnumber == 4){$(".dogBreedNutrition").attr("src","/images/img_DogBreedCatalog_BottomPodNutrition-4.jpg");}
    else if(randomnumber == 5){$(".dogBreedNutrition").attr("src","/images/img_DogBreedCatalog_BottomPodNutrition-5.jpg");}


    //Show all breeds menu at bottom of page
    $(".allBreedsMenu").click(function(){
        $(catBreedCatalog_menuList).slideToggle('normal');
        $(this).text($(this).text() == 'View all breeds' ? 'Hide all breeds' : 'View all breeds');    
    }); 

    //Get current url                       
    var current = (document.location.href); 
    //set variable for what character the last slash of the url is
    lastSlash = current.lastIndexOf("/");
    //Determine the first letter of the current page to open the correct xml document
    currentLetter = current.charAt(lastSlash+1);
    currentLetter = currentLetter.toLowerCase();    
    //Set 'on' state for current letter in alphabet menu
    $("."+currentLetter).css('backgroundPosition', 'top');    
    //Determine current breed selected and selects it on dropdown in function below where the menu is written
    var currentBreed = new String();    
    //Builds name of breed based on current url. -5 removes '.html' from end, and dash is replaced with space
    for (i=(current.lastIndexOf("/")+1);i<((current.length)-5);i++)
        {
            currentBreed = currentBreed + (current.charAt(i));
        }
    currentBreed = currentBreed.replace('-',' '); 
    currentBreed = currentBreed.replace('-',' '); 
    currentBreed = currentBreed.replace('-',' '); 
    currentBreed = currentBreed.replace('-',' '); 
    currentBreed = currentBreed.replace('-',' '); 

    //The following code replaces the dash for the breeds that do contain it in the name

    if (currentBreed == "Curly Coated Retriever"){
        currentBreed = "Curly-Coated Retriever";
    }

    if (currentBreed == "Flat Coated Retriever"){
        currentBreed = "Flat-Coated Retriever";
    }

    if (currentBreed == "Soft Coated Wheaten Terrier"){
        currentBreed = "Soft-Coated Wheaten Terrier";
    }

    //alert(currentBreed);   
    //Load xml and populate drop down menu    
    
    $.ajax({
        type: "GET",
        //Loads xml of letter that you are currently in
        //url: "xml/catBreedCatalog-"+currentLetter+".xml",
        url: "/cat-breeds/Cat-Breed-XML.xml",
        dataType: "xml",
        success: function(xml) {
            var select = $('#mySelect'); 
            mySelect.options.length = 0;
            $('#catBreedCatalog_menuList').hide();                   
            //Builds drop down menu based on xml document    
            $(xml).find(currentLetter).each(function(){            
                //var address = $(this).find('address').text();
                //select.append("<option/><option class='ddheader'>"+title+"</option>");
                $(this).find('value').each(function(){
                    var value = $(this).text();
                    //Replaces spaces with dashes and appends .html to end of breed name 
                    var value2 = value.replace(/(\s|&nbsp;|&\#160;)+/gi, "-");
                    //If breed in menu is the current breed page then make that the selected item in the drop down menu
                    if(value == currentBreed){
                    select.append("<option value='"+ value2 +".html' selected>"+value+"</option>");
                    }
                    //If breed in menu is not current breed page, just add to menu
                    else{
                    select.append("<option value='"+ value2 +".html'>"+value+"</option>");
                    }
                });
            });
            
        }
    });
});


//==== START: Tell a Friend Functionality ========//


function omnitureTafOnclick(name, status) 
    {
        //alert('name=' + name + ' status=' + status);        
        var s_zxw=s_gi(s_account);  
        s_zxw.linkTrackVars="prop25,eVar25,events"; 
        s_zxw.linkTrackEvents="event8";
        s_zxw.eVar25="Cat breed: tell a friend " + status;
        s_zxw.events=s_zxw.linkTrackEvents;
        s_zxw.tl(this,'o',name);
    }



function TellAFriend() { 
    openTAF();
}
function openTAF() {

        var s_zxw=s_gi(s_account);
        
        //s_zxw.tl(this,'o',name);
        var s_zxw=s_gi(s_account);  
        s_zxw.linkTrackVars="prop25,eVar25,events"; 
        s_zxw.linkTrackEvents="event8";
        s_zxw.eVar25="Cat breed: tell a friend start";
        s_zxw.events=s_zxw.linkTrackEvents;
        s_zxw.tl(this,'o','Tell a Friend Start - Cat Breed Catalog');

    var targObj = document.getElementById("tafWrapper");
    var isOpen = targObj.className;
    targObj.style.display = "block";
    document.getElementById("taf_formContent").className="show";    
    if (isOpen != "objOpen") { // Check to see if the TAF form is currenlty displayed
        //new Effect.Opacity('tafWrapper', { from: 0, to: 1, duration: 1.5 });
        targObj.className = "objOpen";
        //omnitureTafOnclick('Tell A Friend Start - Cat Breed Catalog','start');
    }
}
function closeTAF() {
    var targObj = document.getElementById('tafWrapper');
    var isOpen = targObj.className;
    document.getElementById('tafWrapper').style.display = 'none';
    if (isOpen == "objOpen") { // Check to see if the TAF form is currenlty displayed
        cleanTAF();
        //new Effect.Opacity('tafWrapper', { from: 1, to: 0, duration: 1.5 });
        targObj.className = "objClose";
        setTimeout("document.getElementById('tafWrapper').style.display = 'none';", 2000);
    }
}
/*------ Start: Email Validation ------*/
function validateForm(thisform, thisformID, formhandler) { 
    hasError = false;
    var errMess = document.getElementById("errMess");
    var senderEmail = thisform.senderEmail.value;
    var senderName = thisform.senderName.value;
    var friendEmailValue = thisform.friendEmail.value;
    var message = thisform.message.value;
    var silverpopListId = thisform.listID.value;
    var ListId = "silverpopListId";
    //alert("listId");
    var RECIPIENTS = "friendEmail";
    //alert ("RECIPIENTS");
 
    //Check to see if any required fields are missing or invalid
    if (senderEmail == null || senderEmail == '') { // Check that sender's email is not empty
        errMess.innerHTML = '<p>! Please enter your email address.</p>';
        thisform.senderEmail.focus();
        thisform.senderEmail.style.background = '#FFD06C';
        hasError = true;
        return false;
    }
    else { thisform.senderEmail.style.background = '#FFFFFF'; }
    if (!validateEmail(senderEmail)) { // Check that sender's email is a valid email address format
        errMess.innerHTML = '<p>! Please enter a valid email address.</p>';
        thisform.senderEmail.focus();
        thisform.senderEmail.style.background = '#FFD06C';
        hasError = true;
        return false;
    }
    else { thisform.senderEmail.style.background = '#FFFFFF'; }
    if (friendEmailValue == null || friendEmailValue == '') { // Check that friend's email is not empty
        errMess.innerHTML = '<p>! Please enter an email address for your friend.</p>';
        thisform.friendEmail.focus();
        thisform.friendEmail.style.background = '#FFD06C';
        hasError = true;
        return false;
    }
    else { thisform.friendEmail.style.background = '#FFFFFF'; }
    if (!validateEmail(friendEmailValue)) { // Check that friend's email is a valid email address format
        errMess.innerHTML = '<p>! Please enter a valid email address.</p>';
        thisform.friendEmail.focus();
        thisform.friendEmail.style.background = '#FFD06C';
        hasError = true;
        return false;
    }
    else { thisform.friendEmail.style.background = '#FFFFFF'; }
    if (!validateMultipleEmail(friendEmailValue)){ // Check that all friend's email addresses are seperated by a comma
        errMess.innerHTML = '<p>! Please separate email addresses with a comma.</p>';
        thisform.friendEmail.focus();
        thisform.friendEmail.style.background = '#FFD06C';
        hasError = true;
        return false;
    }
    else { thisform.friendEmail.style.background = '#FFFFFF'; }
    
    if (!hasError) { // form data is valid... proceed with AJAX calls
        errMess.innerHTML = '&nbsp;';
        submitTAF(thisform, thisformID, formhandler, senderEmail, senderName, friendEmailValue, message, silverpopListId);
    }
    return false;
}
function validateEmail(strng) { // Email validation function
    var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
    var regex = new RegExp(emailReg);
    return regex.test(strng);
}
function validateMultipleEmail(string) { // Multiple email validation function
    var expression=/^(([a-zA-Z0-9\-\._]+)@(([a-zA-Z0-9\-_]+\.)+)([a-z]{2,3})(,(?!$))?)+$/;
    var regex = new RegExp(expression);    
    return regex.test(string);
}
/*------ End: Email Validation ------*/
/*----- Start: AJAX Calls -----*/

// COMMENTED OUT AND REBUILDING FOR DEBUGGING 
/*

function submitTAF(thisform, thisformID, formhandler, senderEmail, senderName, friendEmailValue, message, silverpopListId) {
    var url = formhandler;
    var formdata = "listId=silverpopListId&RECIPIENTS=friendEmail&senderEmail=" + senderEmail + "&senderName=" + senderName + "&friendEmail=" + friendEmailValue + "&message=" + message + "&silverpopListId=" + silverpopListId;
    var xmlHttp;
    
    //alert(formdata); 
    //return false;
    
    // Setup HttpRequest
    try { xmlHttp=new XMLHttpRequest(); } // Firefox, Opera 8.0+, Safari  
    catch (e) { // Internet Explorer  
        try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } // Internet Explorer 6.0+
      catch (e) {
            try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } // Internet Explorer 5.5+
        catch (e) {
                alert("Your browser does not support AJAX!"); // user has a very outdated browser
                return false;     
            }   
        }  
    } 
    
    // Process the TellAFriend Form
    if (thisformID=="form_tellAfriend") {
        xmlHttp.onreadystatechange=function() {
            if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4) { // 4 = Loaded (show processing wheel until loaded)
                document.getElementById("taf_formContent").className="hide";
                document.getElementById("submitProcessingCopy").className="show";
            }
            if(xmlHttp.readyState==4) { // 4 = Loaded
                if (xmlHttp.status==200) { // 200 = OK
                    // ...code to execute
                    document.getElementById("submitProcessingCopy").className="hide";
                    document.getElementById("submitSuccessCopy").className="show";
                    pageTracker._trackPageview('/cat-breeds/virtual/tell-a-friend');
                    //alert(xmlHttp.responseXML); 
            }
                else { 
                    document.getElementById("submitProcessingCopy").className="hide";
                    document.getElementById("submitErrorCopy").className="show";
                    //alert(xmlHttp.responseText); 
                }
            }
        }
        
        xmlHttp.open("POST", url, true);
        var testStatus = xmlHttp.status;
        //alert("url=" + url);
        //alert(xmlHttp.status);
        //alert(testStatus);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", formdata.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(formdata);
        //staps the form from submitting normally
        return false;
    }
    
    // Handle Exception
    else {
        alert('There was an unexpected error processing the request.');
        return false;
    }
}
//==== END: Tell a Friend Functionality ========//
function cleanTAF() {
    document.getElementById("submitProcessingCopy").className="hide";
    document.getElementById("submitErrorCopy").className="hide";
    document.getElementById("submitSuccessCopy").className="hide";
    
    document.getElementById("friendEmail").value = "";
    document.getElementById("senderName").value = "";
    document.getElementById("senderEmail").value = "";
    document.getElementById("message").value = "";
}
 
*/

//NEW CODE FOR DEBUGGING

/*----- Start: AJAX Calls -----*/
function submitTAF(thisform, thisformID, formhandler, senderEmail, senderName, friendEmailValue, message, silverpopListId) {
    var url = formhandler;
    var formdata = "listId=silverpopListId&RECIPIENTS=friendEmail&senderEmail=" + senderEmail + "&senderName=" + senderName + "&friendEmail=" + friendEmailValue + "&message=" + message + "&silverpopListId=" + silverpopListId;
    var xmlHttp;
    
    //alert(formdata); return false;
    
    // Setup HttpRequest
    try { xmlHttp=new XMLHttpRequest(); } // Firefox, Opera 8.0+, Safari  
    catch (e) { // Internet Explorer  
        try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } // Internet Explorer 6.0+
      catch (e) {
            try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } // Internet Explorer 5.5+
        catch (e) {
                alert("Your browser does not support AJAX!"); // user has a very outdated browser
                return false;     
            }   
        }  
    } 
    
    // Process the TellAFriend Form
    if (thisformID=="form_tellAfriend") {
        xmlHttp.onreadystatechange=function() {
            if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4) { // 4 = Loaded (show processing wheel until loaded)
                document.getElementById("taf_formContent").className="hide";
                document.getElementById("submitProcessingCopy").className="show";
            }
            if(xmlHttp.readyState==4) { // 4 = Loaded
                if (xmlHttp.status==200) { // 200 = OK
                    // ...code to execute
                    document.getElementById("submitProcessingCopy").className="hide";
                    document.getElementById("submitSuccessCopy").className="show";
                    
        var s_zxw=s_gi(s_account);
        
        //s_zxw.tl(this,'o',name);
        //var s_zxw=s_gi(s_account);  
        //s_zxw.linkTrackVars="prop25,eVar25,events"; 
        //s_zxw.linkTrackEvents="event8";
        //s_zxw.eVar25="Cat breed: tell a friend complete";
        //s_zxw.events=s_zxw.linkTrackEvents;
        //s_zxw.tl(this,'o','Tell a Friend Complete - Cat Breed Catalog');

                    omnitureTafOnclick('Tell A Friend Complete - Cat Breed Catalog','complete');
                    //alert(xmlHttp.responseXML); 
            }
                else { 
                    document.getElementById("submitProcessingCopy").className="hide";
                    document.getElementById("submitErrorCopy").className="show";
                    //alert(xmlHttp.responseText); 
                }
                //var s=s_gi(s_account);
                //s.pageName="hillspet:USARG:US:en:ENGAGER:Products:Science Diet:Hill's Simple Essentails Treats Tell a Friend Thank You";
                //s.events="event26";
                //s.t();
            }
        }
        
        xmlHttp.open("POST", url, true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", formdata.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(formdata);
        //staps the form from submitting normally
        return false;
    }
    
    // Handle Exception
    else {
        alert('There was an unexpected error processing the request.');
        return false;
    }
}
//==== END: Tell a Friend Functionality ========//
function cleanTAF() {
    document.getElementById("submitProcessingCopy").className="hide";
    document.getElementById("submitErrorCopy").className="hide";
    document.getElementById("submitSuccessCopy").className="hide";
    
    document.getElementById("friendEmail").value = "";
    document.getElementById("senderName").value = "";
    document.getElementById("senderEmail").value = "";
    document.getElementById("message").value = "";
}
