function ShowAZ(number,selector) {
	var toShow = document.getElementById('az_' + number)	
	var ulList = document.getElementById('az_list').getElementsByTagName('ul')
	var navList = document.getElementById('az_nav').getElementsByTagName('li')
	for(var i=0; i<ulList.length; i++) ulList[i].style.display = "none"
	for(var i=0; i<navList.length; i++) navList[i].removeAttribute('class')
	selector.parentNode.className = "selected"
	toShow.style.display = ""
}
function gogoAjax() {
	var xmlHttp; try { xmlHttp=new XMLHttpRequest(); } catch (e) {
    		try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
      			try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
        			alert("Your browser does not support AJAX!"); return false;
}}} return xmlHttp; }

function getXmlValue(xml,xmlPath,xmlMultiAt,xmlIndex) { var xmlPathItems = xmlPath.split("/"); var thisNode; 
	for(var i=0; i<xmlPathItems.length; i++) { 
		thisNode = xml.getElementsByTagName(xmlPathItems[i]);
		if(xmlPathItems.length==i+1) { 
			return thisNode[0].firstChild.nodeValue; 
		} else { 
			if(xmlMultiAt==undefined) {
				xml = thisNode[0]; }
			else {
			
				if(xmlMultiAt==i) {
					xml = thisNode[xmlIndex];
				} else {
					xml = thisNode[0];
				}
			}
		}
	}
}
function getHtmlChildElement(parentElementId, tagName, className) { var sfElementItems = document.getElementById(parentElementId).getElementsByTagName(tagName); for(var i=0; i<sfElementItems.length; i++) { if(sfElementItems[i].className == className) { return sfElementItems[i]; } } }
function executeAjax(ajax, url) { if(url.indexOf("?") > 0) { url=url+"&"; } else { url=url+"?"; } url=url+"t="+((new Date()).valueOf()); ajax.open("GET", url, true); ajax.send(null); }

function timeoutItem(itemId) { var item = document.getElementById(itemId); if(item) opacity(itemId, 100, 0, 500, true); }
function opacity(id, opacStart, opacEnd, millisec, noDisplay) { var speed = Math.round(millisec / 100); var timer = 0; if(opacStart > opacEnd) { for(i = opacStart; i >= opacEnd; i--) { setTimeout("changeOpac(" + i + ",'" + id + "'," + noDisplay + ")",(timer * speed)); timer++; } } else if(opacStart < opacEnd) { for(i = opacStart; i <= opacEnd; i++) { setTimeout("changeOpac(" + i + ",'" + id + "'," + noDisplay + ")",(timer * speed)); timer++; } } }
function changeOpac(opacity, id, noDisplay) { var object = document.getElementById(id).style; object.opacity = (opacity / 100); object.MozOpacity = (opacity / 100); object.KhtmlOpacity = (opacity / 100); object.filter = "alpha(opacity=" + opacity + ")"; if(opacity==0 && noDisplay==true) { object.display = "none"; } }

function getSiteflexPage() {
	var currentPage = window.location.toString().substring(7);
	currentPage = currentPage.substring(currentPage.indexOf('/')+1);
	currentPage = currentPage.substr(0,currentPage.indexOf('/'))
	return currentPage;
}
function siteflexSearch() {
	var searchTerm = document.getElementById("q").value;
	var searchParams = document.getElementById("q-params");
	if(searchParams!=undefined) if(searchParams.value.length>0) searchTerm = searchParams.value + " " + searchTerm;
	searchTerm = searchTerm.replace(/ /,"_");
	searchTerm = searchTerm.replace(/%/,"");
	document.search1.action = "/q/" + searchTerm;
}
function gogoTweet(tweet,statusUrl) {
	var newTweet=tweet; 
	var urlStart=newTweet.indexOf("http://");
	var url, begh, endh; begh=""; endh="";
	if(urlStart>-1){
		urlEnd=newTweet.indexOf(" ",urlStart+1);
		if(urlEnd==-1){urlEnd=newTweet.length;}else{endh="<a href='"+statusUrl+"'>";}
		if(urlStart!=0){begh="</a>";} url=newTweet.substring(urlStart,urlEnd);
		newTweet=newTweet.replace(url,begh+"<a href='"+url+"'>"+url+"</a>"+endh);
	}
	//urlStart=newTweet.indexOf("@");
	//if(urlStart>-1){
	//	begh=""; endh="";
	//	urlEnd=newTweet.indexOf(" ",urlStart+1); 
	//	if(urlEnd==-1){urlEnd=newTweet.length;}else{endh="<a href='"+statusUrl+"'>";}
	//	if(urlStart!=0){begh="</a>";} url=newTweet.substring(urlStart,urlEnd);
	//	newTweet=newTweet.replace(url,begh+"<a href='http://twitter.com/"+url.replace("@","").replace(" ","")+"'>"+url+"</a>"+endh);
	//}
	//urlStart=newTweet.indexOf("#");
	//if(urlStart>-1){
	//	begh=""; endh="";
	//	urlEnd=newTweet.indexOf(" ",urlStart+1); 
	//	if(urlEnd==-1){urlEnd=newTweet.length;}else{endh="<a href='"+statusUrl+"'>";}
	//	if(urlStart!=0){begh="</a>";} url=newTweet.substring(urlStart,urlEnd);
	//	newTweet=newTweet.replace(url,begh+"<a href='http://twitter.com/search?q="+url.replace("#","%23").replace(" ","")+"'>"+url+"</a>"+endh);
	//}
	if(begh!=""||urlStart==-1) newTweet="<a href='"+statusUrl+"'>"+newTweet; if(endh!=""||urlStart==-1) newTweet+="</a>"; return newTweet;
}

function urlencode(str) {	
	str = str.replace(/&/g, '%26');
	return str;
}

//form Category Selection  Mandatory
function makeCategoryMandatoryExt(id,opt) { 
	var error=''; 
	var selected;		
	var ids = id.split(',');
	var min = opt.split(',');	
	var obj = document.getElementsByTagName('input'); 
	for (var count=0;count<ids.length;count++) {
		selected = 0;	
		for (i=0;i<obj.length;i++) {		
			if ((obj[i].type=='checkbox') && (obj[i].id=='cat_'+ids[count])) 
				if (obj[i].checked) 
					selected++;
		}
		if (selected==0) {
			//error = error + '- ' + (document.getElementById('hiddenCatQuestion'+ids[count]).value).replace(/'/g,"\'") + ' requires an answer\n';
			formError('cat_'+ids[count],(document.getElementById('hiddenCatQuestion'+ids[count]).value).replace(/'/g,"\'") + ' requires an answer');
		} 
		else if (selected<min[count]) {
			//error = error + '- ' + (document.getElementById('hiddenCatQuestion'+ids[count]).value).replace(/'/g,"\'") + ' requires at least '+ min[count] + ' answers\n';
			formError('cat_'+ids[count],(document.getElementById('hiddenCatQuestion'+ids[count]).value).replace(/'/g,"\'") + ' requires at least '+ min[count] + ' answers');
		}
	}
	return error;
}
//form categories show * when required
function setCatRequiredExt(idList) { 	
	var ids = idList.split(',');
	for (var count=0;count<ids.length;count++) {		
		document.getElementById('spanCatQuestion'+ids[count]).style.display="";
	}
}

function clearDefaultText(elem,defaultText){if(elem.value==defaultText)elem.value = "";else if(elem.value=="")elem.value = defaultText;}
function shArea(areaId,showMe){if(areaId){var area = document.getElementById(areaId);if(showMe==true) area.style.display = "";else area.style.display="none";}}
function showArea(areaId){shArea(areaId,true);}
function hideArea(areaId){shArea(areaId,false);} 
function focusMe(elementId){if(elementId) {var element=document.getElementById(elementId);element.focus();}}

function relative_time(time_value) { var values = time_value.split(" "), parsed_date = Date.parse(values[1] + " " + values[2] + ", " + values[5] + " " + values[3]), date = new Date(parsed_date), relative_to = (arguments.length > 1) ? arguments[1] : new Date(), delta = parseInt((relative_to.getTime() - parsed_date) / 1000), r = '';
        function formatTime(date) { var hour = date.getHours(), min = date.getMinutes() + "", ampm = 'AM'; if (hour == 0) { hour = 12; } else if (hour > 12) { hour -= 12; ampm = 'PM'; } if (min.length == 1) { min = '0' + min; } return hour + ':' + min + ' ' + ampm; }
        function formatDate(date) { var ds = date.toDateString().split(/ /), mon = ds[1], day = ds[2], dayi = parseInt(day), year = date.getFullYear(), thisyear = (new Date()).getFullYear(), th = 'th'; if ((dayi % 10) == 1 && day.substr(0, 1) != '1') { th = 'st'; } else if ((dayi % 10) == 2 && day.substr(0, 1) != '1') { th = 'nd'; } else if ((dayi % 10) == 3 && day.substr(0, 1) != '1') { th = 'rd'; } if (day.substr(0, 1) == '0') { day = day.substr(1); } return mon + ' ' + day + th + (thisyear != year ? ', ' + year : ''); }
        delta = delta + (relative_to.getTimezoneOffset() * 60); if (delta < 5) { r = 'less than 5 seconds ago'; } else if (delta < 30) { r = 'half a minute ago'; } else if (delta < 60) { r = 'less than a minute ago'; } else if (delta < 120) { r = '1 minute ago'; } else if (delta < (45*60)) { r = (parseInt(delta / 60)).toString() + ' minutes ago'; } else if (delta < (2*90*60)) { r = 'about 1 hour ago'; } else if (delta < (24*60*60)) { r = 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago'; } else { if (delta < (48*60*60)) { r = formatTime(date) + ' yesterday'; } else { r = formatTime(date) + ' ' + formatDate(date); }}
        return r;
}

function querySt(qsVar) { currUrl = window.location.search.substring(1); qsBit = currUrl.split("&"); for (i=0;i<qsBit.length;i++) { qsBitVal = qsBit[i].split("="); if (qsBitVal[0] == qsVar) { return qsBitVal[1]; } } }

function addLoadEvent(func) { 
	var oldonload = window.onload;
	if(typeof window.onload!='function') {
		window.onload = func;
	} 
	else {		
		window.onload = function() { if (oldonload) oldonload(); func(); }
	}
}

function stateCountyChange(element,val) { 		
	if (typeof(element)=="string") element = document.getElementById(element);
	var other = document.getElementById(element.id+'-other-div');	
	if (other) {
		if (val.toLowerCase()=='other') other.style.display = ''; else other.style.display = 'none';
	}
}

function validateField(element,form_id,type) {
	var regex = '';	
	var matched = null;
	if (typeof(element)=='string') {
		if (form_id!=null) element = eval("document.formflex"+form_id+"."+element);
		else	element = document.getElementById(element);
	}
	if (element.value=='') return true;
	switch(type) {
		case 'url':
			regex = /(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?/;			
		  	break;
		case 'email':
			regex = /^[\w-\.']+@([\da-zA-Z\-]+\.)+[\da-zA-Z\-]{2,}$/;
			break;
		case 'phone':
			regex = /[0-9\+ ()]{3,15}$/
			//regex = /^((\+\d{1,3}(-| )?\(\d{1,2}\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/
			break;
		case 'postcode':
			regex = /(?=^.{4,10}$)(?=.*\d).*(\d|[a-zA-Z ])$/
			break;
		case 'name':
			regex = /^[a-zA-Z '\-]*$/
			break;
		case 'password':
			regex = /(?=^.{6,15}$)(?=.*\d)(?=.*[a-zA-Z]).*(\d|[a-zA-Z]|[\w\!\.\-\?@#$%])$/
			break;
	}
	if (regex!='') 		
		matched = (element.value).match(regex);
	if (matched!=null) return true;
	else return false;
}

