  function MainHandler()
  {
    this.cacheContainer = new Array();
  }

  function getURLParameter( name )
  {
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )
      return "";
    else
      return results[1];
  }

  function scrollTo(destinationAnchor)
  {
    var destination = $(destinationAnchor).offset().top;
	  $('html,body').animate({ scrollTop: destination}, 1000);
  }

  function onEnter(e)
  {
    var key;
    if(window.event)
      key = window.event.keyCode;     //IE
    else
      key = e.which;     //firefox
    if(key == 13)
      return true;
    return false;
  }

  function setCookieNoExp(name, value) 
  {
    var cookieExp = new Date();     //set new date object
    cookieExp.setTime(cookieExp.getTime() + (1000 * 60 * 60 * 24 * 365 * 5));  //5 years
    document.cookie = name + "=" + escape(value) + "; path=/; expires=" + cookieExp.toGMTString();
  }

  //example:   padding_right('1234', '0', 9);     =  123400000
  function padding_right(s, c, n) {
      if (! s || ! c || s.length >= n) {
          return s;
      }

      var max = (n - s.length)/c.length;
      for (var i = 0; i < max; i++) {
          s += c;
      }

      return s;
  }

  
  function replaceHtmlEntities()
  {
    var translate_re = /&(nbsp|amp|quot|lt|gt);/g;
    var translate = {
      "nbsp": " ",
      "amp" : "&",
      "quot": "\"",
      "lt"  : "<",
      "gt"  : ">"
    };
    return function(s) {
      return ( s.replace(translate_re, function(match, entity) {
        return translate[entity];
      }) );
    }
  };


function setState(state,fullState)
  {
    //http://www.mastertradie.com.au/autocomplete_locations.php?q=8&ajax=true
    //highlight the text area...
    $(".StateSelected").removeClass("StateSelected");
    $("#State_" + state).addClass("StateSelected");
    $("#regionalLocations1").html("");
    $("#regionalLocations2").html("");
    $("#regionalLocations3").html("");
    $.getJSON("/autocomplete_locations.php",{q: state, ajax: 'true'}, function(j)
    {
      var output = '';
      var currentOutput = "regionalLocations1";
      var maxInEach = Math.round((j.length/3));
      for (var i = 0; i < j.length; i++) {
        output += '<a href="javascript:setRegion(' + j[i].LocationID + ',\''+j[i].Name+'\');">' + j[i].Name + '</a><br/>';
        if (i == maxInEach)
        {
          $("#" + currentOutput).html(output);
          output = '';
          currentOutput = "regionalLocations2";
        }
        if (i == ((maxInEach*2)+1))
        {
          $("#" + currentOutput).html(output);
          output = '';
          currentOutput = "regionalLocations3";
        }
        if (i == j.length-1)
        {
          //The last one?
          $("#" + currentOutput).html(output);
        }
      }
    })

    //If this hasn't been done before, 
    /*if (state == null || fullState == null)
    {
      $("#locationSearch").html('');
      //$("#find").animate({height: "300px"}, "slow");
      $("#locationSearch").animate({height: "50px"}, "slow");
    }
    else
    {
      //$("#locationSearch").slideDown("slow");
      $("#locationSearch").html('<h3>Select a region from '+fullState+':</h3><br/>or return to the <a href="javascript:setState(null,null);">basic search</a><br/><div id="regions_'+state+'" style="height: 80px; padding-top: 5px;"></div>');
      $('#regions_'+state).load('/index_getRegions.php', { 's': state});
      $("#locationSearch").animate({height: "330px"}, "slow")
      //$("#find").animate({height: "385px"}, "slow");;
    }*/
  };

  function setRegion(regionID,description)
  {
    $('#txtLocation').val(description);
    $('#txtLocation').removeClass('blur');
    $("#txtLocation").colorBlend([{param:"background-color",fromColor:"#ffffff",toColor:"#316e8d",duration:1000,cycles:1}]);
    $('#txtTrade').focus();
  }
  var mainPageHandler = new MainHandler();

  $(document).ready(function() 
  {
    if ($('#txtLocation').val() == 'Enter a location')
      $('#txtLocation').val('');
    if ($('#txtTrade').val() == 'Enter a trade' || $('#txtTrade').val() == 'Enter a trade name')
      $('#txtTrade').val('');
    $('input:text').hint();

    if ($('#txtAdvertiserID').val() == 'Advertiser ID')
    {
      $('#txtAdvertiserID').val('');
    }
    if ($('#txtPassword').val() == 'Password')
    {
      $('#txtPassword').val('');
    }
    if ($('input:text').hint)
    {
      $('input:text').hint();
    }
    if ($.preloadImages)
    {
      $.preloadImages("/images/rating/starDisabledGrey.png");
      $.preloadImages("/images/rating/starGrey.png");
      $.preloadImages("/images/rating/starRateGrey.png");
      $.preloadImages("/images/buttons/expand.png");
      $.preloadImages("/images/buttons/shrink.png");
    }
  });
