// the global ready() block is at the end

(function($){
  $.imageCache = {} ;
  $.imageCache.cache = {} ;

  $.imageCache.load = function(oFileSet, options){
    var opts = jQuery.extend({}, jQuery.imageCache.load.defaults, options) ;

    for (var propname in oFileSet){
      $.imageCache.cache[propname] = {} ;
      $.imageCache.cache[propname].options = opts ;
      $.imageCache.cache[propname].type = opts.type ;
      $.imageCache.cache[propname].imgs = new Array() ;

      for (var i = 0; i < oFileSet[propname].length; i++) {
						//alert('boo') ;
								if (opts.type == 'targeted') {
          $.imageCache.cache[propname].imgs[i] = {'oImg': new Image() , 'target': oFileSet[propname][i][0]} ;
          $.imageCache.cache[propname].imgs[i].oImg.src = oFileSet[propname][i][1] ;
								} else {
          $.imageCache.cache[propname].imgs[i] = new Image() ;
          $.imageCache.cache[propname].imgs[i].src = oFileSet[propname][i] ;
								}
      }

				  $(document).ready(function(){
						  $.imageCache.insert($.imageCache.cache[propname]) ;
						});
    }
  };

  $.imageCache.load.defaults = {
    type       : 'stacked' ,
    target     : 'div.slides' ,
    autocycle  : true ,
    wrapclass  : 'image',
				stackclass : 'stack'
  };
		
		$.imageCache.insert = function(cache,options){
    var opts = jQuery.extend({}, cache.options, options) ;
    var imgs = cache.imgs ;
    var item = {} ;

    switch (opts.type) {
    		case 'stacked':
        for (var i = 0; i < imgs.length; i++) {
          item = $(document.createElement('div')).append(document.createElement('img')) ;
          $('img',item).attr('src',imgs[i].src) ;
          if (i > 0) $(item).addClass(opts.stackclass) ;
          $(opts.target).append( item ) ;
        }
								$(opts.target).cycle({pause:1}) ;
								$(opts.target).cycle('pause') ;
        $(opts.target + ' div').removeClass(opts.stackclass) ;
    				if (opts.autocycle) $(opts.target).cycle('resume') ;
    				break;

    		case 'grouped':
        for (var i = 0; i < imgs.length; i++) {
          item = $(document.createElement('div')).append(document.createElement('img')) ;
          $('img',item).attr('src',imgs[i].src) ;
          $(opts.target).append( $(item).addClass(opts.wrapclass) ) ;
        }
								if ( $(opts.target).children(':last').css('float') != 'none' ) $(opts.target).append('<br class="clr" />') ;
								
    				break;

     	case 'targeted':
        for (var i = 0; i < imgs.length; i++) {
          item = document.createElement('img') ;
										//alert(imgs[i].oImg.src) ;
          $(item).attr('src',imgs[i].oImg.src) ;
          $('#' + imgs[i].target).append( item ) ;
        }
    				break;
    }
		};
})(jQuery);


jQuery.fn.setRentalLink = function(){
    return this.each(
      function(){
        $(this).click(function(event){
          var href = $('p.rr a.quiet',this).attr('href') ;
	     location = href ;
	     event.stopPropagation() ;
        });
      }
    );
};


jQuery.setGeoServices = function(oGeo,mapdiv) {

  var mapopts = {
    fulladdress: oGeo.fulladdress ,
    // TEMP!!
    //coords: oGeo.coords ,
    marktitle: oGeo.shortaddress 
  } ;

  var wsopts = {
    address: oGeo.fulladdress,
    lat: oGeo.coords.lat,
    lon: oGeo.coords.lon  
  } ;
  
  $('#' + mapdiv).attachMap(mapopts) ;
  
  $.getWalkScore(wsopts) ;
};

jQuery.getWalkScore = function(oQuery){
  var url = 'http://www.erirentals.com/walkwalk.php' ;
  //var url = 'http://www.eri.dev/getwalkwalk.php' ;
  $.getJSON(url,oQuery,function(data,textstatus){ $.insertWalkscore(data,textstatus) });
};


jQuery.debugWalkscore = function(score,textstatus){
//alert(textstatus + "\n" + score) ;
  $target = $('div.mainleft div.content') ;
  var output = '<div>' ;
  for (var name in score) {
    output += '<p>' + name + ': ' + score[name] + '</p>' ;
  }
  output += '</div>' ;
  $target.append(output) ;
};

jQuery.insertWalkscore = function(score){
  if ( $.isEmptyObject(score) ) {
    score = {
      walkscore: 0,
      description:'not found',
      more_info_link:'#',
      more_info_icon:'',
      ws_link:'#'      
    }
  }
  var $target = $('div.mainright') ;
  var wsbadge = document.createElement('div') ; 
  var innerbadge = '<p class="p1">This Rental&#8217;s Walk Score<span class="rmark">&reg;</span>:</p>' +
                   '<p class="p2"><span class="numscore"></span> out of 100 &mdash; <span class="txtscore"></span></p>' +
                   '<p class="p3">What&#8217;s Your Walk Score<span class="rmark">&reg;</span>?</p>' +
                   '<div class="img"></div>' ;
  var sliderloc = 46 + (parseInt(score.walkscore)*1.86) ;
  if (!score.walkscore) score.walkscore = '?' ;
  var $badge = $(wsbadge) ;
  $badge.addClass('wsbadge') ;
  $badge.append(innerbadge) ;
  $badge.append('<a class="info"><img></a>');
  $('a.info',$badge).attr('href',score.more_info_link) ;
  $('a.info img',$badge).attr('src',score.more_info_icon) ;
  $('span.numscore',$badge).text(score.walkscore).wrapInner($(document.createElement('a')).attr('href',score.ws_link)) ;
  $('span.txtscore',$badge).text(score.description).wrapInner($(document.createElement('a')).attr('href',score.ws_link)) ;
  $('div.img',$badge).css('left',sliderloc).wrapInner($(document.createElement('a')).attr('href',score.ws_link)) ;
  $('p.p3',$badge).wrapInner('<a href="http://www.walkscore.com"></a>') ;
  //$target.prepend(wsbadge) ;
  //$('div.mainleft div.content').append($(wsbadge).clone()) ;
  //$('#walkscore').append($(wsbadge).clone()) ;
  //$('#walkscore').append(wsbadge) ;
  $('div.wsbadge').replaceWith(wsbadge) ;
};


//in every page
$(document).ready(function(){
  $('div.tabs').initTabs() ;
  $('div.rental').setRentalLink() ;

/*  this will be the 'secret' link to admin
  $('#door').click(function(){
    $(this).append('<a target="_blank" href="admin/admin.php"></a>') ;
    $('a',this).click() ;
    $(this).empty() ;
  });
*/

});

