jQuery(document).ready(function(){

  //Init vars
  var slide_id = '#hWedgeView';
  var slide_class = 'hWedge';

  //Prep container
	var slide_box = '.'+slide_class;
  $(slide_id).addClass(slide_class);
  $(slide_box+'>ul').hide(); //Hide normal list
	$(slide_box).prepend('<div class="lbot1 layerbot"></div>'); //Set 1 (inward viewport)
	$(slide_box).prepend('<div class="lbot2 layerbot"></div>'); //Set 2 (outward viewport)
  //Enable controller
  $(slide_id).parent().prepend('<div id="slide"><button type="button" class="back"></button><button type="button" class="forward"></button></div>');
  //Switch titles to something else. Titles are used for strict (compliance)
  $(slide_box+' ul').children().each(function(){
    $(this).attr('rel', $(this).attr('title'));
    $(this).attr('title', '');
  });

  //Vars
	var slide_speed_bot = 500;
	var slide_total = $(slide_box+' ul').children().size();
	var slide_current = 1;
	var slide_width = $(slide_id).width();

  //Preload images...
  $('body').append('<div id="hcache"></div>'); //Wedge
  $('#hcache').css({'width':'0px','height':'0px', 'overflow':'hidden'});
  for (var i=1; i<=slide_total; i++) {
		var e = $(slide_box+' ul').children(':nth-child('+i+')');
		if ((typeof(e.attr('rel')) != "undefined")) {
        $('#hcache').append(jQuery("<img>").attr("src", e.attr('rel')));
		}
  }

  function hwedge_preload_clean() {
    $(slide_box).css("backgroundImage", "none");
  }

  //Animate
  function hwedge(direction) {
    //Set 2 - copy from Set 1 and animate
    if (direction > 0) {
      var wd0 = 0;
      var wd1 = slide_width;
    } else {
      var wd0 = 0;
      var wd1 = slide_width * -1;
    }
		$(slide_box+' .lbot2').css({"left": wd0+"px", "backgroundImage": $(slide_box+' .lbot1').css("backgroundImage")});
		$(slide_box+' .lbot2').css("left", wd0+"px").stop().animate({left:wd1+"px"}, slide_speed_bot, 'swing', function() {hwedge_preload_clean();});

    //Calc and set next view 
		var e = $(slide_box+' ul').children(':nth-child('+slide_current+')');
		var d = e.attr('rel');
    //Set 1 - set, move and animate
    if (direction > 0) {
      var wd0 = slide_width * -1;
      var wd1 = 0;
    } else {
      var wd0 = slide_width;
      var wd1 = 0;
    }
		$(slide_box+' .lbot1').css({"left": wd0+"px", "backgroundImage": "url('"+d+"')"});
		$(slide_box+' .lbot1').css("left", wd0+"px").stop().animate({left:wd1+"px"}, slide_speed_bot, 'swing', function() {});
    //Link to relevant target
    var l = e.find('a').attr('href');
    $(slide_box+' .lbot1').click(function(){
      location.href = l;
    });

  }

  //Calc next move
	$('#slide .forward').click(function() {
		if (slide_current >= slide_total) {
			slide_current = 1;
		} else {
			slide_current++;
		}
		hwedge(1);
	});

	$('#slide .back').click(function() {
		if (slide_current <= 1) {
			slide_current = slide_total;
		} else {
			slide_current--;
		}
		hwedge(-1);
	});

  //A nice into anim
  $('#slide .forward').click();
  $('#slide .back').click();

});
