/////////////// INIT STARTUP REQUEST ////////////
startMeUp = ''; // called after onload
loadMeUp = ''; // called when HTML loaded
devMode = false;

// express shipping option
allowExpressShipping = false;



////////////// GENERAL FUNCTIONS ///////////////

function clearDefault(thefield){
	if (thefield.defaultValue==thefield.value)
	thefield.value = ""
}

function checkSignupForm(signupFormId) {
	if (!signupFormId) signupFormId='';
	f = document.getElementById('signupForm'+signupFormId);
	el = f.signupEmail;
	if (eCheck(el.value)) {
		f.action = '/e-updates.php';
		f.submit();
	} else {
		alert('Please enter a valid email address.');
		el.select();
		el.focus();
	}
}


function checkDigit(el,defaultValue) {
	if (!defaultValue) defaultValue = 0;
	v = el.value;
	v.replace(' ','');
	v.replace('-','');
	v = Math.ceil(v*1);
	if (!v*1) v = defaultValue;
	if (v!=el.value) el.value = v;
}


function writeAddress(a,b,s) {
	e1=a+'@'+b;
	e2='<b>'+a+'</b>'+'@'+b;
	s = (s) ? 'style='+s : '';
	document.write('<a '+s+' href=mailto:'+e1+'>'+e2+'</a>');
}

function getCookie(name) { // use: getCookie("name");
	var re = new RegExp(name + "=([^;]+)");
	var value = re.exec(document.cookie);
	return (value != null) ? unescape(value[1]) : null;
}

today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000); // plus 1 year

function setCookie(name, value, sessionCookie) { // use: setCookie("name", value);
	if (sessionCookie) {
		expires = '';
	} else {
		expires = "expires=" + expiry.toGMTString();
	}
	document.cookie=name + "=" + escape(value) + "; path=/; " + expires;
}
// standard form validation
function checkForm(f, holdSubmit) {
	pass = true;
	for(i=0;i<f.length;i++) {
		el = f[i];
		if (note = el.getAttribute("validationNotice")) {
			if (isVisible(el)) {
				if (el.type=='text' || el.type=='textarea') {
					el.value = trim(el.value);
					if (!el.value) pass = false;
					if (pass && (el.name=='email' || el.name=='yourEmail')) {
						if (!eCheck(el.value)) {
							note = "Please provide a valid email address.";
							pass = false;
						}
					}
				} else if (el.options) {
					if (!el.options[el.selectedIndex].value && (!el.options[el.selectedIndex].text || el.options[el.selectedIndex].text=='--Select--' || el.options[el.selectedIndex].text=='None')) {
						pass = false;
					}
				} else if (el.type=='checkbox') {
					if (!el.checked) {
						pass = false;
					}
				} else if (el.type=='radio') {
					radioPass = false;
					radioEls = f[el.name];
					for(r=0;r<radioEls.length;r++) {
						rEl = radioEls[r];
						if (rEl.checked) {
							radioPass = true;
							break;
						}
					}
					if (!radioPass) pass = false;
				}
				if (!pass) {
					alert(note);
					el.focus();
					break;
				}
			}
		}
		// check for indicators
		if (el.getAttribute('indicatorStatus') && isVisible(el)) {
			if (el.getAttribute('indicatorStatus')!='okay') {
				alert(el.getAttribute('indicatorNotice'));
				el.focus();
				pass = false;
				break;
			}
		}
		// check for special fields
		if (el.name=='subject' && el.value.indexOf('@') != -1 && el.value.indexOf('.') != -1) {
			pass = false;
			alert("Please enter a text subject in the subject field, not an e-mail address.");
			el.focus();
			break;
		}
	}
	if (!pass) {
		// do not post the form
		return false;
	} else if (!holdSubmit && f.action.indexOf('javascript')==-1) {
		// ensure fields are not disabled
		for(i=0;i<f.length;i++) {
			el = f[i];
			el.disabled = false;
		}
		// attempt to disable the submit button
		if (sb = document.getElementById('submitButton')) {
			sb.disabled = true;
		}
		if (db = document.getElementById('donationButtons')) {
			setOpacity('',30,db);
		}
		// post the form
	} else return true;
}


function isVisible(el) {
	// check if an element is visible using inline css "display" check
	elCheck = el;
	while(elCheck != document) {
		if (elCheck.style.display=='none') return false;
		elCheck = elCheck.parentNode;
	}
	return true;
}

function eCheck(e) {
	eOk = true;
	if (!detectChar('@', e)) eOk = false;
	if (!detectChar('.', e)) eOk = false;
	name = e.substr(0, e.indexOf('@'));
	domain = e.substr(e.indexOf('@')+1, e.length);
	if (!name.length) eOk = false;
	d1 = domain.substr(0, domain.indexOf('.'));
	d2 = domain.substr(domain.indexOf('.')+1, domain.length);
	if (!d1.length) eOk = false;
	if (!d2.length) eOk = false;
	if (d2.substr(d2.length-1, 1) == '.') eOk = false;
	domainType = 1;
	dList = new Array('hotmail.com', 'yahoo.com', 'mindspring.net', 'excite.com');
	for (i2=0; i2<dList.length; i2++) {
		if (domain.toLowerCase() == dList[i2]) {
			domainType = 0;
			break;
		}
	}
	return (eOk);
}
	
function detectChar(chr, str1) {
	str2 = str1.replace(chr, "");
	if (str1.length > str2.length) return true;
	return false;
}

function showHelp(helpName) {
	helpWin=window.open('/resources/'+helpName+'.php','helpWin','width=400,height=480,status=yes,resizable=yes,scrollbars=yes');
	helpWin.focus();
	return false;
}




// limit length of textareas				
function checkLength(el) {
	ml = el.getAttribute('maxChars')*1;
	if (el.value.length > ml) {
		el.value = el.value.substr(0,ml);
		alert("Sorry! You've reached the maximum message length. Please keep your message under "+ml+" characters.");
	}
	if (indicatorId = el.getAttribute('lengthIndicatorId')) {
		indEl = document.getElementById(indicatorId);
		indEl.innerHTML = (ml*1) - el.value.length;
	}
}


// limit number of addresses
function checkAddressLimit(el) {
	ml = el.getAttribute('addressLimit')*1;
	str = el.value;
	breach = false;
	for(i=0;i<ml;i++) {
		if (str.indexOf('@') > 0) {
			str = str.replace('@','[AT]');
		} else break;
	}
	if (str.indexOf('@') > 0) {
		// breached limit
		str = str.substr(0,str.indexOf('@'));
		breach = true;
	}
	for(i=0;i<ml;i++) {
		str = str.replace('[AT]','@');
	}
	if (breach) {
		el.value = str;
		alert("Sorry! You can only enter up to "+ml+" addresses at a time.");
	}
}


function check_key(key_event, the_key, action) {
	if (!void13) {
		if (!key_event) key_event = event.keyCode;
		if (key_event == the_key) // execute action
		eval(action);
	}
}


execAfterAjaxCall = '';
function ajaxCall(requestURL,elId,inputType,params) {
	ajaxCallInProgress = true;
	var xmlHttp;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("Sorry, this feature requires a browser that supports AJAX. To continue, please download the latest version of Google Chrome from www.google.com/chrome");
				return false;
			}
		}
	}
	if (params) { // POST REQUEST
		xmlHttp.open("POST", requestURL, true);
		//Send the proper header information along with the request
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.onreadystatechange = function() {
			if(xmlHttp.readyState == 4) {
				ajaxResult = xmlHttp.responseText;
				if (inputType) el = document.getElementById(elId);
				if (inputType=='wysiwyg') {
					fooDoc = (document.all) ? el.document : el.contentWindow.document;
					fooDoc.body.innerHTML = ajaxResult;
				} else if (inputType) el.value = ajaxResult;
				else {
					el = document.getElementById(elId);
					el.innerHTML = ajaxResult;
					externalLinkChecker();
				}
				if (execAfterAjaxCall) {
					eval(execAfterAjaxCall);
					execAfterAjaxCall = '';
				}
			}
		}
		xmlHttp.send(params);
	} else { // GET REQUEST
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				ajaxResult = xmlHttp.responseText;
				if (inputType) el = document.getElementById(elId);
				if (inputType=='wysiwyg') {
					fooDoc = (document.all) ? el.document : el.contentWindow.document;
					fooDoc.body.innerHTML = ajaxResult;
				} else if (inputType) el.value = ajaxResult;
				else {
					el = document.getElementById(elId);
					el.innerHTML = ajaxResult;
					externalLinkChecker();
				}
				if (execAfterAjaxCall) {
					eval(execAfterAjaxCall);
					execAfterAjaxCall = '';
				}
			}
		}
		xmlHttp.open("GET",requestURL,true);
		xmlHttp.send(null);
	}
}





///////////// PRELOAD IMAGES ////////////////

preloadArray = new Array();
function addPreload(imgSrc) { preloadArray[preloadArray.length] = imgSrc; }
var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		for (i=0; i<preloadArray.length; i++) eval("preloadImage"+i+" = newImage('"+preloadArray[i]+"');");
		preloadFlag = true;
	}
}
function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}
if (window.location.href.indexOf('animalsaustralia')!=-1 && window.location.href.indexOf('fundraise.animalsaustralia')==-1) {
	addPreload('/images/font-up2.gif');
	addPreload('/images/font-down2.gif');
	addPreload('/images/font-up_orange2.gif');
	addPreload('/images/font-down_orange2.gif');
	addPreload('/images/font-up_red2.gif');
	addPreload('/images/font-down_red2.gif');
	addPreload('/images/icon-offsite.gif');
}






/////////////// COSMETIC ////////////////

function setNavMenuMouseoverEffect() {
	navItems = 7;
	for(i=1;i<=navItems;i++) {
		el = document.getElementById('nav'+i);
		if (el) {
			el.onmouseover = function() {
				this.src = this.src.replace('1.gif','2.gif');	
			}
			el.onmouseout = function() {
				this.src = this.src.replace('2.gif','1.gif');	
			}
			addPreload(el.src.replace('1.gif','2.gif'));
		}
	}
}
function setHoverButtonMouseoverEffect() {
	// check for img and input elements
	els1 = document.getElementsByTagName('IMG');
	els2 = document.getElementsByTagName('INPUT');
	els3 = document.getElementsByTagName('A');
	for(i=0;i<(els1.length+els2.length+els3.length);i++) {
		el = els1[i];
		if (!el) {
			el = els2[i-(els1.length)];
			if (!el) el = els3[i-((els1.length)+(els2.length))];
		}
		if (el.className=='hoverButton') {
			el.mout = el.onmouseout;
			el.md = el.onmousedown;
			el.mu = el.onmouseup;
			el.mo = el.onmouseover;
			el.onmouseover = function() {
				setOpacity('',80,this);
				eval(this.mo);
			}
			el.onmouseout = function() {
				setOpacity('',100,this);
				this.style.marginBottom = '2px';
				this.style.marginTop = '0px';
				eval(this.mout);
			}
			el.onmouseup = function() {
				setOpacity('',100,this);
				this.style.marginBottom = '2px';
				this.style.marginTop = '0px';
				eval(this.mu);
			}
			el.onmousedown = function() {
				this.style.marginBottom = '0px';
				this.style.marginTop = '2px';
				eval(this.md);
			}
		}
	}
}

function matchColumns() {
	 var divs,contDivs,maxHeight,divHeight,d; 	
	 divs=document.getElementsByTagName('div'); 
	 contDivs=[]; 
	 maxHeight=0; 
	 for(var i=0;i<divs.length;i++){ 
				if(/\bmatchColumn\b/.test(divs[i].className)){ 
							d=divs[i];
			d.style.height='auto'; // reset height first
				} 
	 } 
	 for(var i=0;i<divs.length;i++){ 
			if(/\bmatchColumn\b/.test(divs[i].className)){ 
					d=divs[i];
					contDivs[contDivs.length]=d; 
					if(d.offsetHeight){ 
							 divHeight=d.offsetHeight; 					
					} 
					else if(d.style.pixelHeight){ 
							 divHeight=d.style.pixelHeight;					 
					} 
					maxHeight=Math.max(maxHeight,divHeight);
			} 
	 } 
	 for(var i=0;i<contDivs.length;i++){ 
				contDivs[i].style.height=maxHeight + "px"; 
	 }
	 // realign anchor
	 if (location.href.indexOf('#') != -1 && !pageLoaded) {
		window.location.hash = location.href.substr(location.href.indexOf('#')+1);
	 }
}
function setTitleTags() {
	imgs = document.getElementsByTagName('img');
	for(i=0;i<imgs.length;i++) {
		el = imgs[i];
		// if (el.className=='floatright' || el.classname=='floatleft' || el.classname=='cnavImg') {
		if (el.alt && !el.title) {			
			el.setAttribute('title',el.getAttribute('alt'));
		}
	}
}
function highlightContextualNav() {
	el = document.getElementById('contextualnav');
	if (el) {
		thisURL = location.href;
		if (thisURL.substr(thisURL.length-1,1)=='/') thisURL += 'index.php';
		for(j=0;j<el.childNodes.length;j++) {
			child = el.childNodes[j];
			if (child.innerHTML) child.title = child.innerHTML;
			if (childURL = child.href) {
				if (childURL.substr(childURL.length-1,1)=='/') childURL += 'index.php';
				if (thisURL.substr(0,childURL.length).toLowerCase() == childURL.toLowerCase()) {
					child.className = 'navSelected';
				}
			}
		}
	}
}

// automate the correct target properties for links:
function externalLinkChecker() {
	links = document.getElementsByTagName('A');
	for(k=0;k<links.length;k++) {
		link = links[k];
		extLink = false;
		if (link.href) {
			// break out of frames:
			if (!link.target) link.target = '_parent';
			if (link.href.toLowerCase().substr(0,7)=='http://' || link.href.toLowerCase().substr(0,8)=='https://') {
				if (link.href.toLowerCase().indexOf('animalsaustralia.org')==-1 && link.href.toLowerCase().indexOf('localhost')==-1 && link.href.toLowerCase().indexOf('quadrahosting')==-1 && link.href.toLowerCase().indexOf('animalsaustralia.qnetau.com')==-1) {
					if (link.target.toLowerCase()!='_blank') extLink = true;
					link.target = '_blank';
				}
			}
			// check extension
			ext = link.href.toLowerCase().split('.')[link.href.toLowerCase().split('.').length-1];
			if (ext=='pdf'||ext=='doc') {
				link.target = '_blank';
				// extLink = true;
			}
		}
		if (extLink) {
			link.title = ((link.title)?link.title+' -- ':'')+'This link will open in a new window.';
			lastNode = '';
			for(n=1;n<=link.childNodes.length;n++) {
				lastNode = trim(link.childNodes[link.childNodes.length-n].data);
				if (lastNode) break;
			}
			if (trim(lastNode)) {
				extSpan = document.createElement('span');
				extSpan.className = 'extlink';
				extSpan.innerHTML = '&nbsp;';
				extSpan.title = 'This link will open in a new window.';
				link.appendChild(extSpan);
			}
		}
	}
}
function initPopMoreLinks() {
	popMoreId = 0;
	spans = document.getElementsByTagName('SPAN');
	for(i=0;i<spans.length;i++) {
		spanEl = spans[i];
		if (spanEl.className == 'popMoreLink') {
			spanEl.setAttribute('id','popMoreLink'+popMoreId);
			spanEl.onclick = function() {
				divEl = document.getElementById('popMoreContent'+this.getAttribute('id').substr(11));
				divEl.style.display = 'block';
				this.style.display = 'none';
				matchColumns();
			}
			popMoreId++;
		}
	}
	popMoreId = 0;
	divs = document.getElementsByTagName('DIV');
	for(i=0;i<divs.length;i++) {
		divEl = divs[i];
		if (divEl.className=='popMoreContent') {
			divEl.setAttribute('id','popMoreContent'+popMoreId);
			divEl.style.display = 'none';
			lessPopLinkSpan = document.createElement('span');
			lessPopLinkSpan.className = 'popMoreLink';
			lessPopLinkSpan.innerHTML = '&laquo; Less';
			lessPopLinkSpan.id = 'popLessLink'+popMoreId;
			lessPopLinkSpan.style.marginLeft = '7px';
			lessPopLinkSpan.onclick = function() {
				divEl = document.getElementById('popMoreContent'+this.getAttribute('id').substr(11));
				divEl.style.display = 'none';
				morePopLinkSpanEl = document.getElementById('popMoreLink'+this.getAttribute('id').substr(11));
				morePopLinkSpanEl.style.display = 'inline';
				matchColumns();
			}
			// does the div have paragraphs?
			paras = divEl.getElementsByTagName("P");
			if (paras.length) {
				paras[paras.length-1].appendChild(lessPopLinkSpan);
			} else {
				divEl.appendChild(lessPopLinkSpan);
			}
			popMoreId++;
		}
	}
}

function trim(str) {
	if (!str) return str;
	while(str.charAt(0)==' '|| str.charAt(0)=="\n" || str.charAt(0)=="\t") str = str.substr(1);
	while(str.charAt(str.length-1) ==' '|| str.charAt(str.length-1)=="\n" || str.charAt(str.length-1)=="\t") str = str.substr(0,str.length-1);
	return str;
}

// detect blurred warning images	
function checkForWarningImages() {
	imgs = document.getElementsByTagName('IMG');
	for(i=0;i<imgs.length;i++) {
		imgEl = imgs[i];
		if (imgEl.getAttribute('warning')) {
			// found one
			// what is the clear image?
			srcBits = imgEl.src.split('/');
			imgFileName = srcBits[srcBits.length-1];
			clearImgSrc = imgEl.src.replace(imgFileName,imgEl.getAttribute('warning'));
			addPreload(clearImgSrc);
			imgEl.style.cursor = 'pointer';
			imgEl.setAttribute('clearImgSrc',clearImgSrc);
			imgEl.setAttribute('blurryImgSrc',imgEl.src);
			imgEl.onclick = function() {
				this.src = (this.src==this.getAttribute('blurryImgSrc')) ? this.getAttribute('clearImgSrc') : this.getAttribute('blurryImgSrc');
			}
		}
	}
}	
loadMeUp += "checkForWarningImages();";
	
	

///////////////// TOGGLE CONTENTS /////////////////

function toggleContents(refEl) {
	tIcon = tIcons[this.tId];
	tHeading = tHeadings[this.tId];
	tContent = tContents[this.tId];
	tContent.style.display = (tContent.style.display=='none') ? 'block' : 'none';
	tIcon.innerHTML = (tContent.style.display=='none') ? showSymbol : hideSymbol;
	matchColumns();
}

defaultToggleDisplay = '';
showFirst = false;
tDataId = 'toggleData';
tId = -1;
function initToggleContents() {
	tData = document.getElementById(tDataId);
	if (tData) {
		showSymbol = '+';
		hideSymbol = '&ndash;';
		tHeadings = new Array();
		tContents = new Array();
		tIcons = new Array();
		for (i=0;i<tData.childNodes.length;i++) {
			child = tData.childNodes[i];
			if (child.className=='toggleHeading' || child.className=='toggleIcon') {
				if (child.className=='toggleIcon') {
					tId++;
					child.tId = tId;
					tIcons[tId] = child;
					child.innerHTML = (showFirst && !tId) ? hideSymbol : showSymbol;
				} else tHeadings[tId] = child;
				child.tId = tId;
				child.style.cursor = 'pointer';
				child.title = 'Click to show/hide';
				child.onclick = toggleContents;
			} else if (child.className=='toggleContents') {
				child.style.display = (showFirst && !tId) ? '' : 'none';		
				child.tId = tId;
				tContents[tId] = child;
			}
		}
		// CHECK FOR REQUESTED ITEM VISIBILITY
		qs = location.href.split('?')[1];
		if (qs) {
			qsParts = qs.split('&');
			for(i=0;i<qsParts.length;i++) {
				part = qsParts[i].split('=');
				if (part[0]=='toggle') {
					if (t = parseInt(part[1])) {
						tId3 = 0;
						for (i=0;i<tData.childNodes.length;i++) {
							child = tData.childNodes[i];
							if (child.className=='toggleHeading') {
								tId3++;
								if (tId3==t) child.onclick();
							}
						}
					}
				}
			}
		}
		if (defaultToggleDisplay) {
			t = defaultToggleDisplay;
			tId2 = 0;
			for (i=0;i<tData.childNodes.length;i++) {
				child = tData.childNodes[i];
				if (child.className=='toggleHeading') {
					tId2++;
					if (tId2==t) child.onclick();
				}
			}	
		}
		matchColumns();
	}
	if (tDataId == 'toggleData' && document.getElementById('toggleData2')) {
		tDataId = 'toggleData2';
		initToggleContents();
	}
}




function toggleEl(elId) {
	el = document.getElementById(elId);
	el.style.display = (el.style.display=='block') ? 'none' : 'block';
	matchColumns();
}



//////////////// POLL ///////////////////////
function postPoll(pollId,viewResultsOnly,viewQuestionsOnly) {
	
	pollHome = (location.href.indexOf('/polls.php')==-1) ? '' : '1';
	
	if (!viewResultsOnly && !viewQuestionsOnly) {
		f = document.pollForm;
		// what's the value?
		userResponse = '';
		for(i=0;i<f.response.length;i++) {
			if (f.response[i].checked) {
				userResponse = f.response[i].value;
				break;
			}
		}
		r = 'respond';
	} else {
		userResponse = 'void';
		r = (viewResultsOnly) ? 'results' : 'questions';
	}
	if (viewResultsOnly && !pollHome) {
		window.location = "/polls.php?viewResults=1";
	} else {
		if (userResponse) {
			ajaxCall('/pollresponse.php?pollId='+pollId+'&response='+userResponse+'&pollHome='+pollHome+'&r='+r+'&rand='+Math.random(),'poll');
		} else {
			alert('Please select a response.');
		}
	}
}




///////////////////// EVENT BOX ////////////////////////

eventBoxList = '';
function initEventBoxRotation() {
	if (eventBoxList) {
		if (eventBoxList.length > 1) eventBoxInt = setInterval("changeEventBoxItem();",9000);
	}
}
startMeUp += "initEventBoxRotation();";

eventBoxItemNum = 0;
function changeEventBoxItem() {
	eventBoxItemNum++;
	if (eventBoxItemNum > (eventBoxList.length-1)) eventBoxItemNum = 0;
	elId = "eventBoxContent";
	fadeOut(elId, "showNextEvent();");
	// matchColumns();
}
function showNextEvent() {
	elId = "eventBoxContent";
	el = document.getElementById(elId);
	el.innerHTML = eventBoxList[eventBoxItemNum];
	fadeIn(elId);
}



////////////////// FADE IN & OUT ////////////////////

fadeStep = fadeStepInt = fadeInStepInt = 10;
randFadeId = Math.ceil(Math.random()*1000);
fadeJam = false;
function fadeOut(elId,execAfter,el) {
	fadeJam  = false;
	if (el) {
		if (!el.id) el.setAttribute('id','fadeEl'+randFadeId++);
		elId = el.id;
	} else {
		el = document.getElementById(elId);
	}
	fadeEl = el;
	fadeEl.elId = elId;
	if (execAfter) fadeOutExecAfter = execAfter;
	fadeEl.alpha = 100;
	setOpacity(fadeEl.id,fadeEl.alpha);
	setTimeout(fadeOutStep,fadeStepInt);
}

fadeOutExecAfter = fadeInExecAfter = '';
function fadeOutStep() {
	if (!fadeJam) {
		fadeEl.alpha -= fadeStep;
		setOpacity(fadeEl.id,fadeEl.alpha);
		if (fadeEl.alpha <= 0) {
			if (fadeOutExecAfter) {
				eval(fadeOutExecAfter);
				fadeOutExecAfter = '';
			}
		} else setTimeout(fadeOutStep,fadeStepInt);
	}
}

function fadeIn(elId,execAfter,el) {
	fadeJam  = false;
	if (elId) {
		el = document.getElementById(elId);
	} else {
		if (!el.id) el.id = 'fadeEl'+randFadeId++;
		elId = el.id;
	}
	fadeEl = el;
	fadeEl.elId = elId;
	if (execAfter) fadeInExecAfter = execAfter;
	fadeEl.alpha = 0;
	setOpacity(fadeEl.id,fadeEl.alpha);
	setTimeout(fadeInStep,fadeInStepInt);
}

function fadeInStep() {
	if (!fadeJam) {
		fadeEl.alpha += Math.ceil(fadeStep/2);
		setOpacity(fadeEl.id,fadeEl.alpha);
		if (fadeEl.alpha >= 100) {
			if (fadeInExecAfter) {
				eval(fadeInExecAfter);
				fadeInExecAfter = '';
			}
		} else setTimeout(fadeInStep,fadeInStepInt);
	}
}

function setOpacity(elId,alpha,el) {
	if (alpha > 100) alpha = 100;
	if (alpha < 0) alpha = 0;
	if (!el) el = document.getElementById(elId);
	if (document.all) el.style.filter = 'alpha(opacity=' + alpha + ')';	
	else el.style.opacity = (alpha)/100;
}



///////////////// SHARE THIS ///////////////////////
function shareThisInfo() {
	window.open('/share_this_info.php','AA_shareInfo','height=465,width=300,status=yes,resizable=yes,scrollbars=yes');	
}




/////////////////// SEARCH ////////////////

function showSearch() {
	toggleEl('searchPanel');
	el = document.getElementById('searchPanel');
	if (el.style.display!='none') document.searchForm.q.focus();
	// show or hide AAAN signin
	if (el2 = document.getElementById('AAAN_signin')) {
		if (!getCookie('AAAN_hide')) {
			el2.style.display = (el.style.display=='none') ? 'block' : 'none';
		}
	}
}




/////////////////// AAAN //////////////////

function hideAAAN() {
	el = document.getElementById('AAAN_signin');
	el.style.display = 'none';
	setCookie('AAAN_hide',1,1);
}
function check_AAAN_signin_form(f) {
	if (!f.email.value) {
		alert('Please enter your email address.');
		f.email.focus();
		return false;
	} else if (!eCheck(f.email.value)) {
		alert('Please enter a valid email address.');
		f.email.focus();
		return false;
	} else if (!f.password.value) {
		alert('Please enter your password');
		AAAN_switchPwdFields();
		return false;
	}
}
function AAAN_switchPwdFields() {
	p1 = document.getElementById('AAAN_pwd_decoy');
	p1.value='';
	p1.blur();
	p1.style.display = 'none';
	p2 = document.getElementById('AAAN_pwd');
	p2.style.display = 'block';
	p2.focus();
}




///////////////// RECOMMEND ////////////////////////

function setRecommendationLinks() {
	anchors = document.getElementsByTagName('A');
	for(a=0;a<anchors.length;a++) {
		el = anchors[a];
		if (el.href.toLowerCase().indexOf('/recommend.php')!=-1) {
			el.onclick = rememberPageTitle;
		}
	}
	// if (getCookie('pageTitle')) setCookie('pageTitle','');
}
function rememberPageTitle() {
	pageTitle = document.title.replace(" // Animals Australia",'');
	setCookie('pageTitle',pageTitle);
}
function rememberPageURL() {
	setCookie('pageURL',location.href);
}







///////////////// SELECT DEPENDENCIES /////////////////

dependencies = new Array();
dependencyFields = new Array();
dependencyValues = new Array();
function updateDependency(formName,fieldName) {
	fieldEl = document[formName][fieldName];
	if (!fieldEl.getAttribute('depId')) {
		ops = new Array();
		opF = new Array();
		opV = new Array();
		for (i=0; i<fieldEl.options.length;i++) {
			op = fieldEl.options[i];
			ops[ops.length] = op;
			opF[opF.length] = op.getAttribute('dependentField');
			opV[opV.length] = op.getAttribute('dependentValue');
		}
		fieldEl.setAttribute('depId',dependencies.length);
		dependencies[dependencies.length] = ops;
		dependencyFields[dependencyFields.length] = opF;
		dependencyValues[dependencyValues.length] = opV;
	}
	// remove all options
	while (fieldEl.options.length) fieldEl.options[fieldEl.length - 1] = null;
	ops = dependencies[fieldEl.getAttribute('depId')];
	opF = dependencyFields[fieldEl.getAttribute('depId')];
	opV = dependencyValues[fieldEl.getAttribute('depId')];
	// add only relevant options
	for (i=0; i<ops.length;i++) {
		op = ops[i];
		oF = opF[i];
		oV = opV[i];
		if (!oV || oV == document[formName][oF].options[document[formName][oF].selectedIndex].value) fieldEl.options[fieldEl.length] = op;
	}
	// select first item
	fieldEl.selectedIndex = 0;
}



//////////////// PAGE BREAKS /////////////////

pageBreakCount = 0;
function initPageBreaks() {
	divs = document.getElementsByTagName('DIV');
	for(i=0;i<divs.length;i++) {
		el = divs[i];
		if (el.className=='pageBreak') {
			pageBreakCount++;
			el.setAttribute('id','pageBreak'+pageBreakCount);
		}
	}
	showPageBreak(1);
}

function showAllPageBreaks() {
	showPageBreak('all')
}

function showPageBreak(pageId) {
	for(i=1;i<=pageBreakCount;i++) {
		contentEl = document.getElementById('pageBreak'+i);
		linkEl = document.getElementById('pageBreakLink'+i);
		if (pageId=='all') {
				contentEl.style.display = 'block';
				linkEl.className = '';
		} else {
			if (i==pageId) {
				contentEl.style.display = 'block';
				linkEl.className = 'selected';
			} else {
				contentEl.style.display = 'none';
				linkEl.className = '';
			}
		}
	}
	matchColumns();
}






/////////////// INIT ONLOAD ///////////////

// called when HTML loaded
pageLoaded = false;
function executeOnHTMLLoad() {
	if (document.getElementById('colA') || document.getElementById('contentCol') || document.getElementById('basket_header')) {
		loadPreferredStyleSheet();
		highlightContextualNav();
		initToggleContents();
		setNavMenuMouseoverEffect();
		setHoverButtonMouseoverEffect();
		externalLinkChecker();
		initPopMoreLinks();
		matchColumns();
		setRecommendationLinks();
	}
	eval(loadMeUp);
}

// called when page loaded
function init() {
	preloadImages();
	setTitleTags();
	eval(startMeUp);
	matchColumns();
	setTimeout("pageLoaded=true;",100);
}

onload = init;




