/***********************************************
* PropertyADD Website Javacsript
* © Addactive Limited 2007, All Rights Reserved
* Visit www.propertyadd.com for further information
***********************************************/

//var rootUrl='http://www.inspire-homes.co.uk/pa';
var rootUrl='/pa';

      var tReq;
      var fpReq;
      var wpReq;
      var psrReq;
      var imgs;
      var imageindex=0;

      function removeChildNodes(entity) {
          while (entity.childNodes[0]) { entity.removeChild(entity.childNodes[0]);}
      }

      function FireAJAX() {
          FeaturedProperty();
          WantedProperty();
          setInterval('FeaturedProperty()',15000);
          setInterval('WantedProperty()',10000);
      }

      function FeaturedProperty() {
          fpReq=GetAJAXRequest(rootUrl + "/property-ajaxfeatured.aspx?class=smallboldpurpletext&h=90&w=120", ReceiveFeaturedProperty)
      }

      function ReceiveFeaturedProperty() {
      
          if (fpReq) {
              if (fpReq.readyState == 4) {
                  if (fpReq.status == 200) {
                      document.getElementById('FeaturedProperty').innerHTML=fpReq.responseText;
                  } else {
                      document.getElementById('FeaturedProperty').innerHTML='No featured properties are available';
                  }
              }
          }
      }


      function WantedProperty() {
          wpReq=GetAJAXRequest(rootUrl + "/contact-ajaxwanted.aspx", ReceiveWantedProperty)
      }

      function ReceiveWantedProperty() {

          if (wpReq) {
              if (wpReq.readyState == 4 && wpReq.status == 200) {
                  document.getElementById('WantedProperty').innerHTML=wpReq.responseText + '<br><br>Can you help?';
              } else {
                  document.getElementById('WantedProperty').innerHTML='No wanted properties are available';
              }
          }
      }

      function Testimonial() {
          tReq=GetAJAXRequest(rootUrl + "/contact-ajaxtestimonials.aspx", ReceiveTestimonial)
      }

      function ReceiveTestimonial() {

          if (tReq) {
              if (tReq.readyState == 4 && tReq.status == 200) {
                  document.getElementById('Testimonial').innerHTML=tReq.responseText;
              } else {
                  document.getElementById('Testimonial').innerHTML='failed';
              }
          }
      }

      function PropertySearch() {

          document.getElementById('PropertySearchResults').innerHTML='Searching...';

          var url;
          url=rootUrl + "/property-ajaxsearch.aspx?from=";
          if (document.getElementById('from') != null) {
              url=url + document.getElementById('from').value;
          } else if (document.getElementById('searchfrom') != null) {
              url=url + document.getElementById('searchfrom').value;
          }
          url=url + "&to=";
          if (document.getElementById('to') != null) {
              url=url + document.getElementById('to').value;
          } else if (document.getElementById('searchto') != null) {
              url=url + document.getElementById('searchto').value;
          }
          if (document.getElementById('propertyid') != null) {
              url=url + "&propertyid=" + document.getElementById('propertyid').value;
          }
          psrReq=GetAJAXRequest(url, ReceivePropertySearchResults);
      }

      function PropertyLettingsSearch() {

          document.getElementById('PropertySearchResults').innerHTML='Searching...';

          var url;
          url=rootUrl + "/property-ajaxsearch.aspx?mode=lettings&from=";
          if (document.getElementById('from') != null) {
              url=url + document.getElementById('from').value;
          } else if (document.getElementById('searchfrom') != null) {
              url=url + document.getElementById('searchfrom').value;
          }
          url=url + "&to=";
          if (document.getElementById('to') != null) {
              url=url + document.getElementById('to').value;
          } else if (document.getElementById('searchto') != null) {
              url=url + document.getElementById('searchto').value;
          }
          if (document.getElementById('propertyid') != null) {
              url=url + "&propertyid=" + document.getElementById('propertyid').value;
          }
          psrReq=GetAJAXRequest(url, ReceivePropertyLettingsSearchResults);
      }


      function PropertyMapSearch() {

          document.getElementById('PropertyMapSearchResults').innerHTML='Searching...';

          var url;
          url=rootUrl + "/property-ajaxmapsearch.aspx?width=540&from=";
          if (document.getElementById('from') != null) {
              url=url + document.getElementById('from').value;
          } else if (document.getElementById('searchfrom') != null) {
              url=url + document.getElementById('searchfrom').value;
          }
          url=url + "&to=";
          if (document.getElementById('to') != null) {
              url=url + document.getElementById('to').value;
          } else if (document.getElementById('searchto') != null) {
              url=url + document.getElementById('searchto').value;
          }
          psrReq=GetAJAXRequest(url, ReceivePropertyMapSearchResults);
      }


      function PropertyLettingsMapSearch() {

          document.getElementById('PropertyMapSearchResults').innerHTML='Searching...';

          var url;
          url=rootUrl + "/property-ajaxmapsearch.aspx?mode=lettings&width=540&from=";
          if (document.getElementById('from') != null) {
              url=url + document.getElementById('from').value;
          } else if (document.getElementById('searchfrom') != null) {
              url=url + document.getElementById('searchfrom').value;
          }
          url=url + "&to=";
          if (document.getElementById('to') != null) {
              url=url + document.getElementById('to').value;
          } else if (document.getElementById('searchto') != null) {
              url=url + document.getElementById('searchto').value;
          }
          psrReq=GetAJAXRequest(url, ReceivePropertyLettingsMapSearchResults);
      }


      function PropertyDetails() {

          var url;
          url=rootUrl + "/property-ajaxsearch.aspx"
          if (document.getElementById('propertyid') != null) {
              url=url + "?propertyid=" + document.getElementById('propertyid').value;
          }
          psrReq=GetAJAXRequest(url, ReceivePropertyDetailsResults);
      }


      function LettingsPropertyDetails() {

          var url;
          url=rootUrl + "/property-ajaxsearch.aspx?mode=lettings"
          if (document.getElementById('propertyid') != null) {
              url=url + "&propertyid=" + document.getElementById('propertyid').value;
          }
          psrReq=GetAJAXRequest(url, ReceivePropertyDetailsResults);
      }


      function CarouselPropertyDetails() {

          var url;
          url=rootUrl + "/property-ajaxsearch.aspx?mode=fulldetails&propertyid=random"
          psrReq=GetAJAXRequest(url, ReceiveCarouselPropertyDetailsResults);
      }


      function ReceivePropertySearchResults() {

          if (psrReq) {
              if (psrReq.readyState == 4) {
                  if (psrReq.status == 200) {

                      var properties = XMLParse.xml2ObjArray(psrReq.responseXML, 'Property'); 

                        var ni = document.getElementById('PropertySearchResults');
                        removeChildNodes(ni)

                        var newdiv;
                        var titlediv;
                        var keydiv;
                        var shorttextdiv;
                        var t;
                        var tbody;
                        var tr;
                        var tdimg;
                        var tdtext;
                        var cdiv;

                      if (properties.length==0) {
                          document.getElementById('PropertySearchResults').innerHTML='No properties were found';
                      }

                      for (var i=0; i<properties.length; i++) {

                        newdiv = document.createElement('div');
                        newdiv.setAttribute('id','Property' + properties[i].Property_ID);
                        ni.appendChild(newdiv);

                        titlediv = document.createElement('div');
                        titlediv.className='smallboldpurplebars';
                        newdiv.appendChild(titlediv);

                        t = document.createElement('table');
                        t.style.tableLayout='fixed';
                        newdiv.appendChild(t);
                        tbody = document.createElement('tbody');
                        t.appendChild(tbody);
                        tr= document.createElement('tr');
                        tbody.appendChild(tr);
                        tdimg = document.createElement('td');
                        tdimg.setAttribute('width', '120');
                        tdimg.style.padding=0;
                        tdtext = document.createElement('td');
                        tdtext.setAttribute('width', '100%');
                        tr.appendChild(tdimg);
                        tr.appendChild(tdtext);

                        if (properties[i].Property_KeyNote != undefined) { 
                          keydiv = document.createElement('div');
                          keydiv.className='smallboldpurpletexti';
                          keydiv.innerHTML=properties[i].Property_KeyNote;
                          tdtext.appendChild(keydiv);
                        }

                        shorttextdiv = document.createElement('div');
                        shorttextdiv.className='smalltext';
                        shorttextdiv.innerHTML=properties[i].Property_ShortMarketingText;
                        shorttextdiv.innerHTML=shorttextdiv.innerHTML + "<br><br><a class=linktext href='?key=propertydetails&propertyid=" + properties[i].Property_ID + "'>Click here for further details, REF: " + properties[i].Property_ID + "</a>"

                        tdtext.appendChild(shorttextdiv);

                        titlediv.innerHTML="<a href='?key=propertydetails&propertyid=" + properties[i].Property_ID + "' class=smallboldpurpletext>" + properties[i].Property_Desc + "</a>";

                        cdiv = document.createElement('div');
                        cdiv.innerHTML=properties[i].PropertyStatus_Desc 
                        if (properties[i].PropertyStatus_Desc == 'For Sale') {
                          cdiv.className='smallgreenheader';
                        } else {
                          cdiv.className='smallredheader';
                        }
                        tdimg.appendChild(cdiv);

                        if (properties[i].Property_Thumbnail == undefined) { 
                         tdimg.innerHTML=tdimg.innerHTML + "<img src='resource/spacer.gif' width=120 height=1>";
                        } else {
                           tdimg.innerHTML=tdimg.innerHTML + "<img src='" + properties[i].Property_Thumbnail + "'>";
                        } 

                        if (properties[i].Property_HasMap=='True') { 
                          cdiv = document.createElement('div');
                          cdiv.innerHTML="Map Available"
                          cdiv.className='smallblackheader';
                          tdimg.appendChild(cdiv);
                        }
                      }
                  } else {
                      document.getElementById('PropertySearchResults').innerHTML='No properties were found';
                  }
              }
          }
      }


      function ReceivePropertyLettingsSearchResults() {

          if (psrReq) {
              if (psrReq.readyState == 4) {
                  if (psrReq.status == 200) {

                      var properties = XMLParse.xml2ObjArray(psrReq.responseXML, 'Property'); 

                        var ni = document.getElementById('PropertySearchResults');
                        removeChildNodes(ni)

                        var newdiv;
                        var titlediv;
                        var keydiv;
                        var shorttextdiv;
                        var t;
                        var tbody;
                        var tr;
                        var tdimg;
                        var tdtext;
                        var cdiv;

                      if (properties.length==0) {
                          document.getElementById('PropertySearchResults').innerHTML='No properties were found';
                      }

                      for (var i=0; i<properties.length; i++) {

                        newdiv = document.createElement('div');
                        newdiv.setAttribute('id','Property' + properties[i].Property_ID);
                        ni.appendChild(newdiv);

                        titlediv = document.createElement('div');
                        titlediv.className='smallboldpurplebars';
                        newdiv.appendChild(titlediv);

                        t = document.createElement('table');
                        t.style.tableLayout='fixed';
                        newdiv.appendChild(t);
                        tbody = document.createElement('tbody');
                        t.appendChild(tbody);
                        tr= document.createElement('tr');
                        tbody.appendChild(tr);
                        tdimg = document.createElement('td');
                        tdimg.setAttribute('width', '120');
                        tdimg.style.padding=0;
                        tdtext = document.createElement('td');
                        tdtext.setAttribute('width', '100%');
                        tr.appendChild(tdimg);
                        tr.appendChild(tdtext);

                        if (properties[i].Property_KeyNote != undefined) { 
                          keydiv = document.createElement('div');
                          keydiv.className='smallboldpurpletexti';
                          keydiv.innerHTML=properties[i].Property_KeyNote;
                          tdtext.appendChild(keydiv);
                        }

                        shorttextdiv = document.createElement('div');
                        shorttextdiv.className='smalltext';
                        shorttextdiv.innerHTML=properties[i].Property_ShortMarketingText;
                        shorttextdiv.innerHTML=shorttextdiv.innerHTML + "<br><br><a class=linktext href='?key=propertylettingsdetails&propertyid=" + properties[i].Property_ID + "'>Click here for further details, REF: " + properties[i].Property_ID + "</a>"

                        tdtext.appendChild(shorttextdiv);

                        titlediv.innerHTML="<a href='?key=propertylettingsdetails&propertyid=" + properties[i].Property_ID + "' class=smallboldpurpletext>" + properties[i].Property_Desc + "</a>";

                        cdiv = document.createElement('div');
                        cdiv.innerHTML=properties[i].PropertyStatus_Desc 
                        if (properties[i].PropertyStatus_Desc == 'To Let') {
                          cdiv.className='smallgreenheader';
                        } else {
                          cdiv.className='smallredheader';
                        }
                        tdimg.appendChild(cdiv);

                        if (properties[i].Property_Thumbnail == undefined) { 
                         tdimg.innerHTML=tdimg.innerHTML + "<img src='resource/spacer.gif' width=120 height=1>";
                        } else {
                           tdimg.innerHTML=tdimg.innerHTML + "<img src='" + properties[i].Property_Thumbnail + "'>";
                        } 

                        if (properties[i].Property_HasMap=='True') { 
                          cdiv = document.createElement('div');
                          cdiv.innerHTML="Map Available"
                          cdiv.className='smallblackheader';
                          tdimg.appendChild(cdiv);
                        }
                      }
                  } else {
                      document.getElementById('PropertySearchResults').innerHTML='No properties were found';
                  }
              }
          }
      }


      function ReceivePropertyMapSearchResults() {

          if (psrReq) {
              if (psrReq.readyState == 4) {
                  if (psrReq.status == 200) {

                      var ms = XMLParse.xml2ObjArray(psrReq.responseXML, 'MapSearch'); 

                      var hot = XMLParse.xml2ObjArray(psrReq.responseXML, 'HotArea'); 
                      var ar;

                        var ni = document.getElementById('PropertyMapSearchResults');
                        removeChildNodes(ni)

                        newdiv = document.createElement('div');
                        ni.appendChild(newdiv);
                        m = document.createElement('map');
                        m.setAttribute('name','hotareas');
                        m.setAttribute('id','hotareas');
                        newdiv.appendChild(m);

                        for (var i=0; i<hot.length; i++) {

                          ar = document.createElement('area');
                          ar.setAttribute('href','?key=propertydetails&propertyid=' + hot[i].Property_ID);
                          ar.setAttribute('shape','rect');
                          ar.setAttribute('coords',hot[i].Left + ',' + hot[i].Top + ',' + hot[i].Right + ',' + hot[i].Bottom);
                          m.appendChild(ar);
                        }

                        newdiv.innerHTML=newdiv.innerHTML + '<img src=' + ms[0].Map_Url + ' usemap=#hotareas width=540 height=400 border=0 style="border-style:solid;border-width:1;border-color:#666666;">';

                  } else {
                      document.getElementById('PropertyMapSearchResults').innerHTML='No properties were found';
                  }
              }
          }
      }


      function ReceivePropertyLettingsMapSearchResults() {

          if (psrReq) {
              if (psrReq.readyState == 4) {
                  if (psrReq.status == 200) {

                      var ms = XMLParse.xml2ObjArray(psrReq.responseXML, 'MapSearch'); 

                      var hot = XMLParse.xml2ObjArray(psrReq.responseXML, 'HotArea'); 
                      var ar;

                        var ni = document.getElementById('PropertyMapSearchResults');
                        removeChildNodes(ni)

                        newdiv = document.createElement('div');
                        ni.appendChild(newdiv);
                        m = document.createElement('map');
                        m.setAttribute('name','hotareas');
                        m.setAttribute('id','hotareas');
                        newdiv.appendChild(m);

                        for (var i=0; i<hot.length; i++) {

                          ar = document.createElement('area');
                          ar.setAttribute('href','?key=propertylettingsdetails&propertyid=' + hot[i].Property_ID);
                          ar.setAttribute('shape','rect');
                          ar.setAttribute('coords',hot[i].Left + ',' + hot[i].Top + ',' + hot[i].Right + ',' + hot[i].Bottom);
                          m.appendChild(ar);
                        }

                        newdiv.innerHTML=newdiv.innerHTML + '<img src=' + ms[0].Map_Url + ' usemap=#hotareas width=540 height=400 border=0 style="border-style:solid;border-width:1;border-color:#666666;">';

                  } else {
                      document.getElementById('PropertyMapSearchResults').innerHTML='No properties were found';
                  }
              }
          }
      }


      function ReceivePropertyDetailsResults() {

          if (psrReq) {
              if (psrReq.readyState == 4) {
                  if (psrReq.status == 200) {

                      var properties = XMLParse.xml2ObjArray(psrReq.responseXML, 'Property'); 

                      var details = document.getElementById('propertydetails');
                      var map = document.getElementById('map');
                      var mapurl = document.getElementById('mapurl');
                      var podcast = document.getElementById('podcast');
                      var floorplans = document.getElementById('floorplans');
                      var resources = document.getElementById('resources');

                      var img;
                      var x;
                      var im;
                      var floors;
                      var docs;

                      var obj;
                      var par;
                      var emb;

                      var temp;

                      if (properties.length==0) {
                          document.getElementById('propertydetails').innerHTML='The property details were not found';
                          return false;
                      }

                      document.getElementById('pagetitle').innerHTML=properties[0].Property_Desc;

                      details.innerHTML='<b>' + properties[0].Property_ShortMarketingText + '</b><br><br>';
                      details.innerHTML=details.innerHTML + '<i>Reference: ' + properties[0].Property_ID + '</i><br><br>'

                      x=document.createElement('div');
                      x.setAttribute('align', 'center');
                      details.appendChild(x);
                      x.innerHTML=x.innerHTML + '<img src="' + properties[0].Property_Image.replace('|x|', '360').replace('|y|', '270') + '" id=mainimage>';
                      imgs=XMLParse.xml2ObjArray(psrReq.responseXML, 'Image'); 

                      if (imgs.length>0) {
                        x.innerHTML=x.innerHTML + '<br><br>';
                        x.innerHTML=x.innerHTML + '<span id=imagedescription style="font-weight:bold;">' + imgs[0].Image_Description + '</span>';
                        x.innerHTML=x.innerHTML + '<br><br><a href="javascript:PreviousImage();"><< Previous</a> <span id=imageposition>1 of ' + imgs.length + '</span> <a href="javascript:NextImage();">Next >></a><br><br>';
                      }

                      for (var i=0; i<imgs.length; i++) {
                        im=document.createElement('img');
                        im.setAttribute('src', imgs[i].Image_Url.replace('|x|', '100').replace('|y|', '75'));
                        im.setAttribute('class', 'thumb');
                        im.setAttribute("onClick", "SwapImage(" + i + ");");
                        im.setAttribute("title", imgs[i].Image_Description);
                        x.appendChild(im);
                        x.innerHTML=x.innerHTML + '&nbsp; ';
                      }

                      temp=properties[0].Property_LongMarketingText.replace(/&lt;/g, "<");
                      temp=temp.replace(/&gt;/g, ">");
                      details.innerHTML=details.innerHTML + '<br>' + temp;

                      if (properties[0].Property_EER != undefined && properties[0].Property_EIR != undefined) {
                          details.innerHTML=details.innerHTML + '<br><br><img src="' + properties[0].Property_EER + '&height=175&width=196">';
                          details.innerHTML=details.innerHTML + '&nbsp;&nbsp;&nbsp;<img src="' + properties[0].Property_EIR + '&height=175&width=196">';
                      }

                      if (properties[0].Property_HasMap != 'False') {
                        mapurl.value=properties[0].Property_Map;
                      } else {
                        map.innerHTML="No map was available for this property";
                        document.getElementById('maptab').disabled=true;
                        document.getElementById('maptab').className='disabledtab';
                      }

                      if (properties[0].Property_Podcast != undefined) {

                        podcast.innerHTML=QT_GenerateOBJECTText(properties[0].Property_Podcast , '320', '240', '', 'AUTOPLAY', 'False', 'SCALE', 'Aspect');

                      } else {
                        podcast.innerHTML = 'No podcast was available for this property';
                        document.getElementById('podcasttab').disabled=true;
                        document.getElementById('podcasttab').className='disabledtab';
                      } 

                      floors=XMLParse.xml2ObjArray(psrReq.responseXML, 'FloorPlan'); 
                      if (floors.length==0) {
                        floorplans.innerHTML = 'No floor plans were available for this property';
                        document.getElementById('floorplanstab').disabled=true;
                        document.getElementById('floorplanstab').className='disabledtab';
                      }
                      for (var i=0; i<floors.length; i++) {
                        im=document.createElement('img');
                        im.setAttribute('src', floors[i].FloorPlan_Url);
                        im.setAttribute("title", floors[i].FloorPlan_Description);
                        floorplans.appendChild(im);
                      }


                      docs=XMLParse.xml2ObjArray(psrReq.responseXML, 'Document'); 
                      if (docs.length==0) {
                        resources.innerHTML = 'No other resources were available for this property';
                        document.getElementById('resourcestab').disabled=true;
                        document.getElementById('resourcestab').className='disabledtab';
                      } else {
                        resources.innerHTML="Listed below are other files and resources relevant to this property<br>";
                      }
                      for (var i=0; i<docs.length; i++) {
                        resources.innerHTML=resources.innerHTML + "<br>&bull; <a href='" + docs[i].Document_Url + "' target=_blank>" + docs[i].Document_Description + "</a> <span style='color:#666666;font-style:italic;'>(" + docs[i].Document_Type + ")</span>";
                      }

                  } else {
                      document.getElementById('propertydetails').innerHTML='The property details were not found';
                  }
              }
          }
          return true;
      }


      function ReceiveCarouselPropertyDetailsResults() {

          if (psrReq) {
              if (psrReq.readyState == 4) {
                  if (psrReq.status == 200) {

                      var properties = XMLParse.xml2ObjArray(psrReq.responseXML, 'Property'); 
                      var img;

                      if (properties.length==0) {
                          document.getElementById('propertydetails').innerHTML='The property details were not found';
                          return false;
                      }

                      document.getElementById('propertyimage').src=properties[0].Property_Image.replace('|x|', '576').replace('|y|', '432');
                      document.getElementById('propertydesc').innerHTML=properties[0].Property_ShortDesc;
                      document.getElementById('propertykeynote').innerHTML=properties[0].Property_KeyNote;
                      document.getElementById('propertytext').innerHTML=properties[0].Property_ShortMarketingText;
                      document.getElementById('propertyref').innerHTML='Reference: ' + properties[0].Property_ID;
                      document.getElementById('propertyprice').innerHTML=properties[0].Property_Price;
                      document.getElementById('propertyneg').innerHTML='&nbsp;' + properties[0].Property_Negotiator + '&nbsp;';

                 } else {
                      document.getElementById('propertydetails').innerHTML='The property details were not found';
                  }
              }
          }
      }


      function PreviousImage() {
        imageindex--;
        if (imageindex <0) imageindex=imgs.length-1;
        SwapImage(imageindex);
      }

      function NextImage() {
        imageindex++;
        if (imageindex == imgs.length) imageindex=0;
        SwapImage(imageindex);
      }

      function SwapImage(i) {
        imageindex=i;
        document.getElementById('mainimage').src=imgs[i].Image_Url.replace('|x|', '360').replace('|y|', '270');
        document.getElementById('imageposition').innerHTML=i+1 + ' of ' + imgs.length
        document.getElementById('imagedescription').innerHTML=imgs[i].Image_Description;
      }


      function GetAJAXRequest(url, handler) {

          req = false;

          // branch for native XMLHttpRequest object
          if(window.XMLHttpRequest && !(window.ActiveXObject)) {
              try {
                  req = new XMLHttpRequest();
              } catch(e) {
                  req = false;
              }
          // branch for IE/Windows ActiveX version
          } else if(window.ActiveXObject) {
             	try {
                    req = new ActiveXObject("Msxml2.XMLHTTP");
            	} catch(e) {
                try {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
              	} catch(e) {
                    req = false;
              	}
      		}
          }
      	if(req) {
                    req.onreadystatechange = handler;
                    req.open("GET", url, true);
                    req.send("");
      	}

      return req;

      }

