// JScript source code
function loadXMLDoc(strXmlFileName) 
{
    try //Internet Explorer
    { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); }
    catch(e)
    {
        try //Firefox, Mozilla, Opera, etc.
        { xmlDoc=document.implementation.createDocument("","",null); }
        catch(e) 
        {
            alert("The error below had occurred. Please try back later.\n\n" + e.message) 
            return(null);
            document.location.href="index.htm";
        }
    }
    try 
    {
        xmlDoc.async=false;
        xmlDoc.load(strXmlFileName);
        return(xmlDoc);
    }
    catch(e)
    {
        alert("The error below had occurred. Please try back later.\n\n" + e.message) 
        return(null);
        document.location.href="index.htm";
    }
} 

function validateGalleryID(strID)
{
    var validID;

    switch(strID)
    {
        case "landscape":
            validID=strID;
            break;
        case "hardscape":
            validID=strID;
            break;        
        case "fencing":
            validID=strID;
            break;
        case "pavers":
            validID=strID;
            break;
        case "samples":
            validID=strID;
            break;
        case "walls":
            validID=strID;
            break;
       case "putting":
            validID=strID;
            break;
        case "water":
            validID=strID;
            break;
       default:
             validID="gallery";      
    }
  
    return validID;
}

function getID()
{
    var strUrl;
    var numIndex;
    var numLength;
    var strID;
    
    try
    {
        strUrl=location.href;
        numIndex=strUrl.indexOf("=");
        numLength=strUrl.length;
        strID=strUrl.substr(numIndex+1,numLength);        
    }catch(e)
    {
       strID="gallery";
       //return e.message();
    }
    return strID;
}

function getGallery()
{
    var sectionID;
    var strXmlSectionID;
    var xmlDoc;
    var sectionNodes;
    var thumbNodes;
    var intNodesLength;
    var intI;
    var intJ;
    var intIndex;
    var intNewLine;
    var txtHeader;
    var txtIntro;
    var strGallery;

    intIndex=0;
    strGallery="";
    intNewLine=1;   
    sectionID=getID();
    sectionID=validateGalleryID(sectionID);
    xmlDoc=loadXMLDoc("photoGallery.xml");
    if (xmlDoc!=null)
    {
        sectionNodes=xmlDoc.getElementsByTagName("section");
      /*  gets the id
        x=xmlDoc.getElementsByTagName("section")[0].firstChild.nodeName;
        gets the value of the id
        x=xmlDoc.getElementsByTagName("section")[0].attributes[0].nodeValue;*/
        
        for (intI=0; intI < sectionNodes.length; intI++)
        {//compare the section ID to galleryID 
            strXmlSectionID=sectionNodes[intI].attributes[0].nodeValue;
            
            if(sectionID=="gallery")
            {   
                try
                {//get the data from xml
                    thumbNodes=sectionNodes[intI].getElementsByTagName("thumbnail");

                    //get images and put into HTML
                    for (intJ=0; intJ < thumbNodes.length; intJ++)
                    {
                        //link
                        strGallery+= '<a href="details.htm?pid=' + thumbNodes[intJ].attributes[0].nodeValue + '">';
                        //image
                        strGallery+= '<img title="' + thumbNodes[intJ].getElementsByTagName("title")[0].childNodes[0].nodeValue + '" ';
                        strGallery+= 'alt="' + thumbNodes[intJ].getElementsByTagName("alternative_text")[0].childNodes[0].nodeValue + '" ';
                        strGallery+= 'src="' + thumbNodes[intJ].getElementsByTagName("image_source")[0].childNodes[0].nodeValue + '" /></a>';

                        if(intNewLine < 4)
                        {
                            intNewLine+=1;
                        }else{
                            strGallery+= '<br />';
                            intNewLine=1;
                        }
                    }
                }catch(e)
                {
                    alert("The error below had occurred. Please try back later.\n\n" + e.message) 
                    document.location.href="index.htm";
                }           
            }
            else if(strXmlSectionID==sectionID)
            {
                intIndex=intI;
                intI=sectionNodes.length;
            }
        } 
       
        if(sectionID=="gallery")
        {
            txtHeader="Services Photo Gallery";
            txtIntro="Please click on an image below to view an enlarged version.";
        }else
        { 
            try
            {//get the data from xml
                txtHeader=sectionNodes[intIndex].getElementsByTagName("section_title")[0].childNodes[0].nodeValue;
                txtIntro=sectionNodes[intIndex].getElementsByTagName("description")[0].childNodes[0].nodeValue;
                thumbNodes=sectionNodes[intIndex].getElementsByTagName("thumbnail");

                //put into HTML
                for (intJ=0; intJ < thumbNodes.length; intJ++)
                {
                    //link
                    strGallery+= '<a href="details.htm?pid=' + thumbNodes[intJ].attributes[0].nodeValue + '">';
                    //image
                    strGallery+= '<img title="' + thumbNodes[intJ].getElementsByTagName("title")[0].childNodes[0].nodeValue + '" ';
                    strGallery+= 'alt="' + thumbNodes[intJ].getElementsByTagName("alternative_text")[0].childNodes[0].nodeValue + '" ';
                    strGallery+= 'src="' + thumbNodes[intJ].getElementsByTagName("image_source")[0].childNodes[0].nodeValue + '" /></a>';

                    if(intNewLine < 4)
                    {
                        intNewLine+=1;
                    }else{
                        strGallery+= '<br />';
                        intNewLine=1;
                    }
                }
            }catch(e)
            { 
                alert("The error below had occurred. Please try back later.\n\n" + e.message) 
                document.location.href="index.htm";
            }
        }
        
        //set HTML
        document.getElementById("gallery").id=sectionID;
        document.getElementById("titleHeader").innerHTML=txtHeader;
        document.getElementById("galleryIntro").innerHTML=txtIntro;
        document.getElementById("galleryImages").innerHTML=strGallery;
        document.getElementById(sectionID).style.visibility="visible";
    }
}

function validatePhotoID(thisPhotoID)
{
    var thisSectionID;
    var intLastUnderscore;
    var intStrLength;
    var intPhotoIndex;
    var boolValid;

    intLastUnderscore=thisPhotoID.lastIndexOf("_");
    intStrLength=thisPhotoID.length;

    if (intLastUnderscore < 1)
    { boolValid=false; }
    else
    {
       thisSectionID=thisPhotoID.substring(0,intLastUnderscore);
       thisSectionID=validateGalleryID(thisSectionID);
       intPhotoIndex=thisPhotoID.substring((intLastUnderscore+1), intStrLength); 

      if ((thisSectionID=="gallery") || (isNaN(intPhotoIndex)))
       { boolValid=false; }
       else
       { boolValid=true; }
    }
    return boolValid;
}

function getPhotoDetails()
{
    var xmlDoc;
    var boolIsValid;
    var photoID;
    var sectionID;
    var intI;
    var intIndex;
    var strXmlNodeID;   
    var photoNodes;
    var strHeader;
    var strSource;
    var strTitle;
    var strAlternate;
    var intHeight;
    var intWidth;
    
    photoID=getID();
    boolIsValid=validatePhotoID(photoID);
    xmlDoc=loadXMLDoc("photoDetails.xml");
    
    if ((xmlDoc==null) || (!boolIsValid))
    { 
        alert("An error has occurred.  Please try back later."); 
        document.location.href="index.htm";
    }
    else
    {
        try
        {
            photoNodes=xmlDoc.getElementsByTagName("photo");
            
            for(intI = 0; intI < photoNodes.length; intI++)
            {
                strXmlNodeID=photoNodes[intI].attributes[0].nodeValue;
                
                if(strXmlNodeID==photoID)
                {
                    intIndex=intI;
                    intI=photoNodes.length;
                }
            }
            
            //get data
            sectionID=photoNodes[intIndex].getElementsByTagName("section_id")[0].childNodes[0].nodeValue;
            strHeader=photoNodes[intIndex].getElementsByTagName("section_title")[0].childNodes[0].nodeValue;
            strSource=photoNodes[intIndex].getElementsByTagName("image_source")[0].childNodes[0].nodeValue;
            strTitle=photoNodes[intIndex].getElementsByTagName("title")[0].childNodes[0].nodeValue;
            strAlternate=photoNodes[intIndex].getElementsByTagName("alternative_text")[0].childNodes[0].nodeValue;
            intHeight=photoNodes[intIndex].getElementsByTagName("height")[0].childNodes[0].nodeValue;
            intWidth=photoNodes[intIndex].getElementsByTagName("width")[0].childNodes[0].nodeValue;
           
           
           //build html
           if(sectionID=='water')
           {
               strHeader='<a href="gallery_waterFeatures.htm">' + strHeader + '</a>';
           }else if(sectionID=='pavers')
           {
               strHeader='<a href="gallery_brickPavers.htm">' + strHeader + '</a>';
           }else
           {
               strHeader='<a href="gallery.htm?pid=' + sectionID + '">' + strHeader + '</a>';
           }
           
           
           //set html
           document.getElementById("details").id=sectionID;
           document.getElementById("titleHeader").innerHTML=strHeader;
           document.getElementById("detailImage").src=strSource;
           document.getElementById("detailImage").title=strTitle;
           document.getElementById("detailImage").alt=strAlternate;
           document.getElementById("detailImage").height=intHeight;
           document.getElementById("detailImage").width=intWidth;
           
           document.getElementById(sectionID).style.visibility="visible";

        }catch(e)
        { 
                alert("The error below had occurred. Please try back later.\n\n" + e.message) 
                document.location.href="index.htm";
        }
    }
}

