/* Accessible Popups 
	http://www.alistapart.com/articles/popuplinks/ */

var _POPUP_FEATURES = 'location=0,statusbar=1,menubar=0,width=890,height=535,resizable,scrollbars=yes';

function raw_popup(url, target, features) {
    // pops up a window containing url optionally named target, optionally having features
    if (isUndefined(features)) features = _POPUP_FEATURES;
    if (isUndefined(target  )) target   = '_blank';
    var theWindow = window.open(url, target, features);
    theWindow.focus();
    return theWindow;
}

function link_popup(src, features) {
    // to be used in an html event handler as in: <a href="..." onclick="link_popup(this,...)" ...
    // pops up a window grabbing the url from the event source's href
    return raw_popup(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}

function event_popup(e) {
    // to be passed as an event listener
    // pops up a window grabbing the url from the event source's href
    link_popup(e.currentTarget);
    e.preventDefault();
}

function event_popup_features(features) {
    // generates an event listener similar to event_popup, but allowing window features
    return function(e) { link_popup(e.currentTarget, features); e.preventDefault() }
}

/*
	Standards Compliant Rollover Script
	Author : Daniel Nolan
	http://www.bleedingego.co.uk/webdev.php
*/

// EDITED slightly to allow for inputs images, too
function initRollovers() {	
	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = getElementsByClass('imgover');

	for (var i = 0; i < aImages.length; i++) {	
		if (aImages[i].className == 'imgover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_o'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_o'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}


// NEW! To add in show/hide functionality
// for blog archives
// From Christian Heilmann, Unobtrusive JS
// http://onlinetools.org/articles/unobtrusivejavascript/demo_cssseparation.html
function collapse() {
	try {
		var blogLinks = getElementsByClass('reveal');
		for (var i = 0; i < blogLinks.length; i++) {
			var tohide = blogLinks[i].nextSibling;
			while (tohide.nodeType != 1) {
				tohide = tohide.nextSibling;
			}
			cssjs('add',tohide,'hidden');
			cssjs('add',blogLinks[i],'trigger');
			blogLinks[i].tohide = tohide;
			blogLinks[i].onmouseover = function() {
				cssjs('add',this,'hover');
			}
			blogLinks[i].onmouseout = function() {
				cssjs('remove',this,'hover');
			}
			blogLinks[i].onclick = function() {
				if(cssjs('check',this.tohide,'hidden')) {
					cssjs('swap',this,'trigger','open');
					cssjs('swap',this.tohide,'hidden','shown');
				} else {
					cssjs('swap',this,'open','trigger');
					cssjs('swap',this.tohide,'shown','hidden');
				}
			}
		}
		
		function cssjs(a,o,c1,c2) {
			switch (a) {
				case 'swap':
					o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
				break;
				case 'add':
					if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
				break;
				case 'remove':
					var rep=o.className.match(' '+c1)?' '+c1:c1;
					o.className=o.className.replace(rep,'');
				break;
				case 'check':
					return new RegExp('\\b'+c1+'\\b').test(o.className)
				break;
			}
			return null;
		}
	}
	catch(e) {}
}


function initOtherAmtBox(sel_box, oth_box) {
	sel_box = document.getElementById(sel_box);
	oth_box = document.getElementById(oth_box);
	if(sel_box.value == -1){
		oth_box.style.display = "inline";
	} else {	
		oth_box.style.display = "none";
		oth_box.value = '';	
	}
	
	sel_box.onchange = function() {
		oth_box = this.id.replace('sel_', 'oth_');
		oth_box = document.getElementById(oth_box);
		if(this.value == -1){
			oth_box.style.display = "inline";
		} else {	
			oth_box.style.display = "none";
			oth_box.value = '';	
		}
	}
	
}

function showOtherAmtBox(){

	var oabox 	= $('other_amount');
	if($('donation_amount').value == ''){
		oabox.style.display = "inline";
	} else {
		oabox.style.display = "none";
		oabox.value = '';
	}
}

function init()
{
	try {
		if(document.getElementById) {
				if(document.getElementById('sel_amount') && document.getElementById('oth_amount')) {
					initOtherAmtBox('sel_amount', 'oth_amount');
				}
				initRollovers();
				collapse();
				
				// make all links inside a "slideshow_index" element open in popup windows
				if(document.getElementById('slideshow_index'))
				{
						mlisten(
						'click',
						document.getElementById('slideshow_index').getElementsByTagName('a'),
						event_popup
					);
				}
				// make all links with class "popup" open in popup windows
				mlisten(
					'click',
					getElementsByClass('popup','a'),
					event_popup
				);
		}
	}
	catch(e) {} 
	
}

window.onload = init;
