  var sBaseOpacityChange = 20;
  var bIsHomepage = false;

  var sUserAgent = navigator.userAgent
  if (sUserAgent.indexOf('IE 6')>-1){
    // fade faster on IE6
    sBaseOpacityChange = 20;
  }

  var sMaskOpacity    = 100;
  var sOpacityChange  = sBaseOpacityChange * -1;
  var sLongPause      = 3000;
  var sShortPause     = 10;
  var sCurrentFeature = 1;
  var iPropertyTimeOut = 0;

  function jumptofade(iFadeNumber){

    sCurrentFeature = iFadeNumber;
    initialise_featured_properties();    

    sMaskOpacity = 0;
    sOpacityChange = sBaseOpacityChange;
    set_opacity('property_mask', sMaskOpacity);
    document.getElementById('property_mask_numbers').style.display = 'none';

    clearTimeout(iPropertyTimeOut);

    iPropertyTimeOut=setTimeout("fade_featured_properties();",sLongPause) ;
  }

  function resize_body(){

  }

  function initialise_featured_properties(){
    document.getElementById('property_bg_div').innerHTML = document.getElementById('featured_bg_' + sCurrentFeature).innerHTML;
    document.getElementById('property_div').innerHTML = document.getElementById('featured_' + sCurrentFeature).innerHTML;
  }

  var iTotalFeatures = 6
  
  function fade_featured_properties(){

    sMaskOpacity += sOpacityChange
    set_opacity('property_mask', sMaskOpacity)

    if (sMaskOpacity >= 100 ) {
      document.getElementById('property_mask_numbers').style.display = '';

      sMaskOpacity = 100;
      sOpacityChange *= -1;

      if (sCurrentFeature<iTotalFeatures){
        sCurrentFeature += 1;
      } else {
        sCurrentFeature = 1;
      }
      initialise_featured_properties()

      sPauseTillNext = sShortPause
    } else {
      if (sMaskOpacity<=0){
        document.getElementById('property_mask_numbers').style.display = 'none';

        sMaskOpacity = 0;
        sOpacityChange *= -1;
        sPauseTillNext = sLongPause
      } else {
        document.getElementById('property_mask_numbers').style.display = '';

        sPauseTillNext = sShortPause
      }
    }

    iPropertyTimeOut=setTimeout("fade_featured_properties();",sPauseTillNext) ;
  }

 
  var iScrollSpeed = 1;
  var iScrollTimeout = 0;
  
  function scroll_banner(){
    
    if ( document.getElementById('scrolling_banner') ) {
    
      var iTempScrollLeft = document.getElementById('scrolling_banner').scrollLeft;

      document.getElementById('scrolling_banner').scrollLeft+=iScrollSpeed

      if(iTempScrollLeft==document.getElementById('scrolling_banner').scrollLeft){
        if(iScrollSpeed>0){
          document.getElementById('scrolling_banner').scrollLeft = 0;
        }
      }

      iScrollTimeout = setTimeout('scroll_banner()', 15);    
    
    }
    
  }

  function position_mortgage_text(){
    objMortgageText = document.getElementById('mortgage_text');
    objMortgageText.style.left = findPosX(document.getElementById('mortgage_image')) - 27;
    objMortgageText.style.top  = 438;
    objMortgageText.style.display = '';
  }
  
  function change_search_type(sType){
    switch(sType){
      case 'buy':
        document.getElementById('table_buy_type_area'  ).style.display='';
        document.getElementById('table_rent_type_area' ).style.display='none';
        document.getElementById('table_lease_type_area').style.display='none';
        change_property_type( document.getElementById('buy_property_type').value )
        break;
      case 'rentals':
        document.getElementById('table_buy_type_area'  ).style.display='none';
        document.getElementById('table_rent_type_area' ).style.display='';
        document.getElementById('table_lease_type_area').style.display='none';
        change_property_type('rentals')
        break;
      case 'lease':
        document.getElementById('table_buy_type_area'  ).style.display='none';
        document.getElementById('table_rent_type_area' ).style.display='none';
        document.getElementById('table_lease_type_area').style.display='';
        change_property_type('lease')
        break;
    }
  }

  function change_property_type(sType){

    document.getElementById('table_prices_buy'          ).style.display='none';
    document.getElementById('table_prices_rent_or_lease').style.display='none';
    document.getElementById('buy_pricelow').disabled=false;
    document.getElementById('buy_pricehigh').disabled=false;
    
    switch(sType){
      case 'residential':
        document.getElementById('table_prices_buy').style.display='';
        document.getElementById('buy_town').disabled=false;
        break;
      case 'rural':
        document.getElementById('table_prices_buy'          ).style.display='';
        document.getElementById('buy_town').value = 'NP';
        document.getElementById('buy_town').disabled=true;
        break;
      case 'lifestyle':
        document.getElementById('table_prices_buy'          ).style.display='';
        document.getElementById('buy_town').value = 'NP';
        document.getElementById('buy_town').disabled=true;
        break;
      case 'sections':
        document.getElementById('table_prices_buy'          ).style.display='';
        document.getElementById('buy_town').disabled=false;
        break;
      case 'business':
        document.getElementById('table_prices_buy'          ).style.display='';
        document.getElementById('buy_town').disabled=true;
        document.getElementById('buy_pricelow').disabled=true;
        document.getElementById('buy_pricehigh').disabled=true;
        break;
      case 'commercial':
        document.getElementById('table_prices_buy'          ).style.display='';
        document.getElementById('buy_town').disabled=true;
        document.getElementById('buy_pricelow').disabled=true;
        document.getElementById('buy_pricehigh').disabled=true;
        break;
      case 'lease':
        document.getElementById('table_prices_rent_or_lease').style.display='';
        break;
      case 'rentals':
        document.getElementById('table_prices_rent_or_lease').style.display='';
        break;
    }
  }

  function newImage(arg) {
    if (document.images) {
      rslt = new Image();
      rslt.src = arg;
      return rslt;
    }
  }
  
  
  if (document.images && bIsHomepage) {
    pre_1  = newImage(arrFeatureImages[1]);
    pre_2  = newImage(arrFeatureImages[2]);
    pre_3  = newImage(arrFeatureImages[3]);
    pre_4  = newImage(arrFeatureImages[4]);
    pre_5  = newImage(arrFeatureImages[5]);
    pre_6  = newImage(arrFeatureImages[6]);
  }
  
  function show_video(){
    stretch_to_page( document.getElementById('video_shadow') ); 
    document.getElementById('video_iframe').src = 'video/harcourts_foundation.html';

    document.getElementById('video_shadow').style.display = '';
    document.getElementById('video_div'   ).style.display = '';
    
    clearTimeout(iScrollTimeout);
    clearTimeout(iPropertyTimeOut);
  }
  function hide_video(){
    document.getElementById('video_div'   ).style.display = 'none';
    document.getElementById('video_shadow').style.display = 'none';

    document.getElementById('video_iframe').src = 'img/clr.gif';
    
    scroll_banner();
    fade_featured_properties();
  }
  
  function stretch_to_page(objDivToStrech){
    var arrayPageSize = getPageSize();
    objDivToStrech.style.width  = arrayPageSize[0];
    objDivToStrech.style.height = arrayPageSize[1];
  }

  function getPageSize(){
    var xScroll, yScroll;

    if (window.innerHeight && window.scrollMaxY) {  
      xScroll = window.innerWidth + window.scrollMaxX;
      yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
      xScroll = document.body.scrollWidth;
      yScroll = document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
      xScroll = document.body.offsetWidth;
      yScroll = document.body.offsetHeight;
    }

    var windowWidth, windowHeight;

    if (self.innerHeight) { // all except Explorer
      if(document.documentElement.clientWidth){
        windowWidth = document.documentElement.clientWidth; 
      } else {
        windowWidth = self.innerWidth;
      }
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowWidth = document.documentElement.clientWidth;
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowWidth = document.body.clientWidth;
      windowHeight = document.body.clientHeight;
    } 

    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
      pageHeight = windowHeight;
    } else { 
      pageHeight = yScroll;
    }

    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){  
      pageWidth = xScroll;    
    } else {
      pageWidth = windowWidth;
    }

    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
    return arrayPageSize;
  }
  
    function break_out_of_frames(){
      // break out of a frame if this site has been framed in...
      if (top.location!=window.location){
        top.location = window.location;
      }
    }    
    
    function set_opacity(sDivID, sOpacityValue){
      document.getElementById(sDivID).style.filter = "alpha(opacity="+Math.round(sOpacityValue)+")"; // IE/
      document.getElementById(sDivID).style.KHTMLOpacity = sOpacityValue/100;                        // safari<1.2, Konqueror
      document.getElementById(sDivID).style.MozOpacity = sOpacityValue/100;                          // Older Mozilla and Firefox
      document.getElementById(sDivID).style.opacity = sOpacityValue/100;                             // Safari 1.2, newer Firefox and Mozilla, CSS3   

      if (sOpacityValue==0){
        document.getElementById(sDivID).style.display='none';
      } else {
        document.getElementById(sDivID).style.display='';
      }
            
    }    
    

      
      var sCurrentThumbnail;
      
      function show_main_image(sImage, sImageRatio, sImageNumber){
        if (document.getElementById('td_image').style.display=='none'){
          show_map('', '', '', '')
        }
        
        if (document.getElementById('thumbnail_1')){
          document.getElementById('thumbnail_1').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_2')){
          document.getElementById('thumbnail_2').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_3')){
          document.getElementById('thumbnail_3').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_4')){
          document.getElementById('thumbnail_4').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_5')){
          document.getElementById('thumbnail_5').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_6')){
          document.getElementById('thumbnail_6').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_7')){
          document.getElementById('thumbnail_7').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_8')){
          document.getElementById('thumbnail_8').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_9')){
          document.getElementById('thumbnail_9').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_10')){
          document.getElementById('thumbnail_10').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_11')){
          document.getElementById('thumbnail_11').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_12')){
          document.getElementById('thumbnail_12').className = 'pvthmframe01'
        }
        
        document.getElementById('thumbnail_' + sImageNumber).className = 'pvthmframe02'
        
        document.getElementById('main_image').src = sImage
        
        iImageWidth  = 510;
        iImageHeight = iImageWidth / sImageRatio;
        
        if (iImageHeight > 400) {
        	iImageHeight = 400;
        	iImageWidth = iImageHeight * sImageRatio;
        }
        
        document.getElementById('main_image').width  = iImageWidth;
        document.getElementById('main_image').height = iImageHeight;
        
        sCurrentThumbnail = sImageNumber
    }
    
    function show_map(sAddress, sImage, sLatitude, sLongitude){
      if (document.getElementById('td_image').style.display==''){
        
        if (document.getElementById('thumbnail_1')){
          document.getElementById('thumbnail_1').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_2')){
          document.getElementById('thumbnail_2').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_3')){
          document.getElementById('thumbnail_3').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_4')){
          document.getElementById('thumbnail_4').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_5')){
          document.getElementById('thumbnail_5').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_6')){
          document.getElementById('thumbnail_6').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_7')){
          document.getElementById('thumbnail_7').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_8')){
          document.getElementById('thumbnail_8').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_9')){
          document.getElementById('thumbnail_9').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_10')){
          document.getElementById('thumbnail_10').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_11')){
          document.getElementById('thumbnail_11').className = 'pvthmframe01'
        }
        if (document.getElementById('thumbnail_12')){
          document.getElementById('thumbnail_12').className = 'pvthmframe01'
        }        
        
        document.getElementById('loading_div').style.left  = findPosX(document.getElementById('main_image'))
        document.getElementById('loading_div').style.top   = findPosX(document.getElementById('main_image')) + 60

        //document.getElementById('loading_div').style.display=''

        document.getElementById('td_image').style.display = 'none';
        document.getElementById('td_map'  ).style.display = '';
        
        document.getElementById('show_map_button').src = sBaseURL + 'img/propdet/locmap-buton.gif'

        document.getElementById('iframe_map').src = sBaseURL + 'show-listing-map.asp?address=' + sAddress + '&image=' + sImage + '&latitude=' + sLatitude + '&longitude=' + sLongitude;
      } else {
        document.getElementById('loading_div').style.display='none'

        document.getElementById('td_image').style.display = '';
        document.getElementById('td_map'  ).style.display = 'none';

        document.getElementById('show_map_button').src = sBaseURL + 'img/propdet/locmap-butoff.gif'
        
        document.getElementById('iframe_map').src = ''
                
        document.getElementById('thumbnail_' + sCurrentThumbnail).className = 'pvthmframe02'
      }
    }    
    
    function findPosX(obj) {
      // returns the x position of an object

      var curleft = 0;
      if(obj.offsetParent)
        while(1)
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
          break;
          obj = obj.offsetParent;
        }
      else if(obj.x)
        curleft += obj.x;
      return curleft;
    }

    function findPosY(obj) {
      // returns the y position of an object

      var curtop = 0;
      if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
          break;
          obj = obj.offsetParent;
        }
      else if(obj.y)
        curtop += obj.y;
      return curtop;
    }
    