File: /home/panama/public_html_old/js/simpleover.js
/**
* SimpleOver - simple image swapping script for over images
* c 2009 by Eric Falkner
* Validates under 1.0 strict
* Distributed under Creative Commons
*
* Implementation:
* include this script in your headers
*
* <body onload="SimpleOverSetup()">
*
* For image files, add the class "overimg" to images you want to swap:
* <img class="overimg" src="/images/ss_img.gif" />
*
* works for any file that is 3 letters (ie. .jpg, .png, .gif)
* Files must be img.jpg and img_over.jpg as the script will add "_over" to your filename to make the hover src
*/
function SimpleOver(el, isOver){
var fileOrig = el.src;
if(isOver == true) {
newSrc = SimpleOverFile(fileOrig, true);
} else {
newSrc = SimpleOverFile(fileOrig, false);
}
el.src = newSrc;
}
function SimpleOverFile(fileOrig, isOver) {
var fileExt = fileOrig.substr((fileOrig.length - 4), 4);
var fileNoEx = fileOrig.replace(fileExt, '');
fileNoEx = fileNoEx.replace('_over', '');
var newFile = '';
if(isOver == true) {
newFile = fileNoEx + '_over' + fileExt;
} else {
newFile = fileNoEx + fileExt;
}
return newFile;
}
function SimpleOverSetup() {
// Check if the browser supports getElementsByClassName otherwise create the support
if(document.getElementsByClassName == undefined) {
document.getElementsByClassName = function(className) {
var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
var allElements = document.getElementsByTagName("*");
var results = [];
var element;
for (var i = 0; (element = allElements[i]) != null; i++) {
var elementClass = element.className;
if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)) {
results.push(element);
}
}
return results;
}
}
// Create the over image and apply the hover action
var o = document.getElementsByClassName("overimg");
for (var i=0; i<o.length; i++) {
var imgOrig = o[i].getAttribute('src');
// preload images
o[i].overimg_img = new Image();
o[i].overimg_img.src = new Function("SimpleOverFile(imgOrig, true);");
// add the hover method to the images
o[i].onmouseover = new Function("SimpleOver(this, true);");
o[i].onmouseout = new Function("SimpleOver(this, false);");
}
}