/* Agency.com 2005 */

// Together with the dom.js, does this script take care of the mouse-over effect of images. 
// The image name must end on a 0 (zero) for the normal images and with the 1 (one) for the 
// mouse-over image.

// The script changes that 0 to a 1 (image0.gif -> image1.gif) by the following HTML-code:

// <a href="dmy" onmouseover="toggle(this, 2)" onmouseout="toggle(this, 2)"><img src="[image_name]0.gif" alt="" width="xx" height="xx" border="0"></a>



function toggle(lnk, num_children) {
	if (typeof lnk != 'string') {
		if (typeof lnk == 'undefined') return false;
		var imgs = _lnk2imgs(lnk, num_children);
		for (var i = 0; i < imgs.length; i++) {
			var url = imgs[i].src;
			var lead = url.substr(0, url.lastIndexOf('.') - 1);
			var state = url.substr(url.lastIndexOf('.') - 1, 1);
			var ext = url.substr(url.lastIndexOf('.'));
			state = Math.abs(parseInt(state) - 1);
			if (/\d+/.test(state)) {
				imgs[i].src = lead + state + ext;
			}
		}
	}
	// Direct access API handler:
	else {
		var handle = lnk;
		if (!dom.finished || typeof dom.handles[handle] == 'undefined') return false;
		var url = dom.handles[handle].src;
		var lead = url.substr(0, url.lastIndexOf('.') - 1);
		var state = url.substr(url.lastIndexOf('.') - 1, 1);
		var ext = url.substr(url.lastIndexOf('.'));
		state = Math.abs(parseInt(state) - 1);
		dom.handles[handle].src = lead + state + ext;
	}
	return true;
}

function init_mo() {
	if (!dom.finished) return false;
	dom.preloaded = [];
	for (h in dom.handles) {
		var handle = dom.handles[h];
		if (typeof handle.src != 'undefined' && handle.src != null) {
			var url = handle.src;
			var lead = url.substr(0, url.lastIndexOf('.') - 1);
			var state = url.substr(url.lastIndexOf('.') - 1, 1);
			if ((state == 0) || (state == 1) ) {
				var ext = url.substr(url.lastIndexOf('.'));
			    state = Math.abs(parseInt(state) - 1);
    			url = lead + state + ext;
	    		dom.preloaded[dom.preloaded.length] = new Image();
	    		dom.preloaded[dom.preloaded.length - 1].src = url;
		    }
		}
	}
	return true;
}

function _lnk2imgs(lnk, num_children) {
	if (typeof lnk == 'undefined') return [];
	if (typeof num_children == 'undefined') {
		num_children = 1;
	}
	var doc = document;
	if (typeof lnk.document != 'undefined') {
		doc = lnk.document;
	}
	var imgs = [];
	// DOM method:
	var children = [];
	if (typeof lnk.children != 'undefined') children = lnk.children;
	if (typeof lnk.childNodes != 'undefined') children = lnk.childNodes;
	for (var i = 0; i < children.length; i++) {
		if (children[i].tagName == "IMG") imgs[imgs.length] = children[i];
	}
	// Fallback method for Netscape 4:
	// Requires combined images to form a solid rectangle, images with
	// differences in height (including vspace) don't map correctly to the
	// coordinates of the surrounding link.
	if (imgs.length == 0) {
		for (var i = 0; i < doc.images.length; i++) {
			var image = doc.images[i];
			if (typeof image.x != 'undefined'
				&& (image.x - image.hspace) == lnk.x
				&& (image.y - image.vspace) == lnk.y
			) {
				// Get children up to the number specified by num_children:
				for (var b = 0; b < num_children; b++) {
					if (b > i) last;
					imgs.push(doc.images[i - b]);
				}
			}
		}
	}
	return imgs;
}
