/*
 * --------------------------------------------------------------------
 * jQuery-Plugin "Rolla"
 * (c) Thomas Petrovic 2008
 *
 * http://www.FreaKzero.com
 * http://www.bonsai.co.at
 *
 * Demo & Doc: http://dev.freakzero.com/jquery/rolla
 * Copyright (c) 2008 Thomas Petrovic
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
 *
 * Version: 1.2.1 // Last edited 17.01.10 22:30:00 by Nik Davy @ run2 (http://www.run2online.com) 
 *	Version includes crop on long link names, specific img filename prefix in settings, and fixed for selected page
 * --------------------------------------------------------------------
 */

$.rollaHover = function(settings){
	//overrideable defaults
	settings = jQuery.extend({
		 imgDir: '/assets',
		 onFade: 'fast',
		 outFade: 'slow',
		 mainOpacity: "1",
		 css: 'rolla',
		 cssSelected: 'current',
		 prefix: 'nav_'
	}, settings);
	
// Recognise msie6
   $.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);

// Define short vars
   var cssClass = settings.css;
   var imgClass = "img."+cssClass;
   var cssClassSelected = settings.cssSelected;

// Set image path and new array for text to image recogcnise
   var arr_a = [];
   var imagepath = settings.imgDir+"/"+settings.prefix;

// Get all 'a' elements and set backgrounds
   var arr_a = jQuery.makeArray(document.getElementsByTagName("a"));

// Set first image as background in list element (no flickering) and set a to block element
   $(arr_a).each(function(k){
	// Next two lines crop long link names to just the first word
	var name_full = (arr_a[k].innerHTML);
	var name_arr = (arr_a[k].innerHTML).split(" ");
	var name = name_arr[0];
	$("."+cssClass+":contains("+name+")").css("background-image","url("+imagepath+name+".jpg)");
    $("."+cssClass+":contains("+name+")").css("background-repeat","no-repeat");
    $("."+cssClass+":contains("+name+")").css("display","block");


// get items from image folder from link text
      $("a."+cssClass+":contains("+name+")").html("<img src="+imagepath+name+".jpg title="+name+" alt="+name+" class="+cssClass+">");

//set 'selected' image
	$("."+cssClassSelected+":contains("+name+")").css("background-image","url("+imagepath+name+"-on.jpg)");
    $("."+cssClassSelected+":contains("+name+")").css("background-repeat","no-repeat");
    $("."+cssClassSelected+":contains("+name+")").css("display","block");
    $("a."+cssClassSelected+":contains("+name+")").html("<img src="+imagepath+name+"-on.jpg title="+name+" alt="+name+" class="+cssClassSelected+">");

	});
	
// Jquery IE6 hide bug -> flickering -> no animation block
  if ($.browser.msie6) {
        $(imgClass).hover(
          function(){
          if($(this).attr("src").indexOf("-on#hover") == -1) {
            var newSrc = $(this).attr("src").replace(".jpg","-on.jpg#hover");
            $(this).attr("src",newSrc);
          }
	       }, function(){
            if($(this).attr("src").indexOf("-on.jpg#hover") != -1 ) {
              var oldSrc = $(this).attr("src").replace("-on.jpg#hover",".jpg");
                $(this).attr("src",oldSrc);
            }
        });
  } else {
// All other browsers -> with animation
    $(imgClass).bind("mouseenter",function(){
    var newSrc = $(this).attr("title")+"-on.jpg";
    $(this).attr("src",imagepath+newSrc).css("opacity","0").animate({opacity: settings.mainOpacity},settings.onFade);

    }).bind("mouseleave",function(){
       var oldSrc = $(this).attr("title")+".jpg";
       $(this).animate({opacity: 0},settings.outFade,function(){
       $(this).attr("src",imagepath+oldSrc);
       
// Dequeue for flickering debug (when mouse too fast)
     $(imgClass).dequeue();
       });
    });
  }
}