/**
 * --------------------------------------------------------------------
 * jQuery-Plugin "canvasSwap"
 * 
 * Version: 1.0 Beta, 05.22.2009
 * by Trevor Sheridan, trevorsheridan@mac.com
 *                      http://www.trevorsheridan.com/
 *
 * Copyright (c) 2009 Trevor Sheridan
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
 *
 * --------------------------------------------------------------------*/
 
/**
 * --------------------------------------------------------------------
 * jQuery-Plugin "jqRollover"
 *
 * Modified by Joaquin Rivero
 * me@joaquinrivero.com
 * http://www.joaquinrivero.com/
 *
 * "canvasSwap" function renamed to "jqRollover"
 *
 * Copyright (c) 2010 Joaquín Rivero
 *
 * --------------------------------------------------------------------*/

// 05-Jan-2010
// Modified by Ricardo Tun <ricardo@interactivecozumel.net>
// twitter.com/kelevrium
// 
// Changes:
// "jqRollover" function renamed to "onstate"
// Old "image preloader" removed, it just worked when the mouse overs the element.
// $.preloadimages function added.
// preload option: works for every element.





(function ($) {
		   
	var cache = [];
	
	$.preloadimages = function() {
		var args_len = arguments.length;
		for (var i = args_len; i--;) {
		var cacheImage = document.createElement('img');
		cacheImage.src = arguments[i];
		cache.push(cacheImage);
		}
	} // end $.preloadimages function
	
    $.fn.extend({
        onstate: function (options) {
            var defaults = {
                suffix: '_on',
                activePage: true,
               	preload: true,
                rollover: true
            };
            var options = $.extend(defaults, options);

            function getName(url) {
                var splited = url.split('?'); // Limpia el URL de valores que esten despues del "FILENAME" ej. "home.cfm"
                url = splited[0];
                return url.substring(url.lastIndexOf("/") + 1); // URL FILE NAME "home.cfm"
            }
  
            return this.each(function () {
                var getSrc = $(this).attr('src');
                var filename = getSrc.substring(0, getSrc.lastIndexOf('.'));
                var extension = getSrc.substring(getSrc.lastIndexOf('.'));
                var getSrcLink = $(this).parent().attr("href");
				
				if (options.preload == true) {
					$.preloadimages(filename + options.suffix + extension);
				}

                if (options.activePage == true) {
                    if ($(this).parent().attr("href") == getName(document.location.href)) { // iguala los nombres del URL
                        $(this).attr('src', filename + options.suffix + extension);
                        $(this).appendTo($(this).parent().parent());
                        $(this).parent().find("a").remove(); //remove "a of parent image"
						$(this).removeClass();
                    }
                }
                if (options.rollover == true) {
                    if (getSrcLink != getName(document.location.href)) {
                        $(this).hover(

                        function () {
                            $(this).attr('src', filename + options.suffix + extension); // mouse over Image
                        }, function () {
                            $(this).attr('src', filename + extension); // mouse out image
                        }); //end hover		 
                    } // End if not equal getSrcLink
                } // if options.rollover == true
            }); // eachfunction
        } // jqRollover
    }); // fn extend
})(jQuery);
