function gID(el){ if (document.getElementById(el)) { return document.getElementById(el) } }
function hide(id){ if (gID(id)) { gID(id).style.display='none'; }}
function show(id){ if (gID(id)) { gID(id).style.display=''; }}

function attach_expander(tg, a, h, dur, fnb, fna){
	var anim = new YAHOO.util.Anim(tg, { height: {to: h} });
	anim.duration = dur;
	anim.onComplete.subscribe(fna); //function fna execute after anim
	YAHOO.util.Event.on(gID(a), 'click', fnb);
	YAHOO.util.Event.on(gID(a), 'click',  anim.animate, anim, true);
//	YAHOO.util.Event.on(gID(a), 'click', fna);
}

/* cookie functions from http://www.quirksmode.org/js/cookies.html */
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

var urlencode = function(str) {
	str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	
	return str;
}

var urldecode = function(str) {
	str = str.replace('+', ' ');
	str = unescape(str);
	return str;
}

var replace_for_qs = function(str) {
	//make sure the accepting page (asp post?) switches this all back
	var s = str;
	
	s = (s).replace(/ /g, '%20');
	
	//fix URLs
	s = (s).replace(/:/g, '__CLN__');
	s = (s).replace(/\/\//g, '__SLSL__');
	s = (s).replace(/\//g, '__SL__');
	s = (s).replace(/&/g, '__AMP__');
	s = (s).replace(/=/g, '__EQL__');
	s = (s).replace(/\./g, '__PRD__');
	s = (s).replace(/</g, '__LT__');
	s = (s).replace(/>/g, '__GT__');
	s = (s).replace(/"/g, '__QUOT__');
	s = (s).replace(/'/g, '__APOS__');
	s = (s).replace(/\r/g, '__BR__');
	s = (s).replace(/\n/g, '__BR__');
	s = (s).replace(/\+/g, '__PLUS__');
			
	return s;
}

			
var validate_email = function(str) {
	var b_valid = true;
	
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1){ 
		b_valid = false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   b_valid = false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		b_valid = false;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		b_valid = false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		b_valid = false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		b_valid = false;
	 }
	
	 if (str.indexOf(" ")!=-1){
		b_valid = false;
	 }

	 return b_valid;
}