// confirm email
function confirmEmail(email1,email2) {
	var email1 = document.getElementById(email1).value;
	var email2 = document.getElementById(email2).value;
	email1 = email1.toLowerCase(); email2 = email2.toLowerCase();
	email1 = email1.replace(' ',''); email2 = email2.replace(' ','');
	if(email1==email2) { 
		return true;
	} else {
		alert('Email addresses do not match');
		return false;
	}
}
// confirm delete
function confirmDelete(url,message) 
{ 
	var message = (!message) ? "Are you sure you want to delete?" : message;
	if(!confirm(message)) {
		return false;
	}
	else if (url) {
		location.href=url;
	}
}

// clear default text in a field
function clearText(thefield)
{
	if (thefield.defaultValue==thefield.value)
	thefield.value = ""
}

//show or hide divs based on an index of div name
function showHideDivs(div,idx) 
{ 
	document.getElementById(div).style.display='block';
	var divs = document.getElementsByTagName("div");
	var length = divs.length;
	for (var i=0; i<=length-1; i++) {
		if (divs[i].id.indexOf(idx)==0) {
			if (divs[i].id != div) { 
				document.getElementById(divs[i].id).style.display='none';
			}
		}
	}
}

//show or hide divs based on name (comma separated list)
function showHideDivs(showdivs,hidedivs)
{
	var browser=navigator.appName;
	var arrShow = new Array();
	var arrHide = new Array();

	if (showdivs) { arrShow = showdivs.split(','); }
	if (hidedivs) { arrHide = hidedivs.split(','); }

	for (var i=0; i<=arrHide.length-1; i++) {
		if (document.getElementById(arrHide[i])) { 
			document.getElementById(arrHide[i]).style.display = 'none';
			document.getElementById(arrHide[i]).style.visibility = 'hidden';
		}
	}

	for (var i=0; i<=arrShow.length-1; i++) {
		if (document.getElementById(arrShow[i])) { 
			if (browser=="Microsoft Internet Explorer" && arrShow[i]=="divModal") { 
				break;
			} else {
				document.getElementById(arrShow[i]).style.display = 'block';
				document.getElementById(arrShow[i]).style.visibility = 'visible';
			}
		}
	}

}

//form validation, fields to be validated should have an id or class of 'req'
//email1 and email2 are used to validate a confirm email address field
function validate(form,msg,email1,email2) 
{
	var elements = form.length;
	var errors = 0; var emailerr = false;

	if (!msg) { msg = "Please complete all required fields"; }

	for (var i=0; i<=elements-1;i++) {
		var element = form.elements[i];
		if (form.elements[i].id=='req' || form.elements[i].id.indexOf('req')>=0 || form.elements[i].className=='req' || form.elements[i].className.indexOf('req')!=-1) {
			//alert(form.elements[i].name + ":" + errors);
			if (element.type=='select-one' && element.options[element.selectedIndex].value==0) {
				errors++; 
			}
			if (element.type=='select-multiple') {
				var hasSelections = false;
				for(var j = 0; j < element.options.length; j++)
				{
				  if(element.options[j].selected)
				  {
					hasSelections = true;
					break;
				  }
				}
				if(!hasSelections)
				{
				  errors++; 
				}
				
			}
			if (element.type=='text' && element.value=='') {
				errors++; 
			}
			if (element.type=='textarea' && element.value=='') {
				errors++; 
			}
			if (element.type=='file' && element.value=='') {
				errors++; 
			}
			if (element.type=='checkbox' && !element.checked) {
				errors++; 
			}
		} 
	}

	if(email1 && email2) {
		if(!confirmEmail(email1,email2)) emailerr = true;
	}

	if (errors>0 || emailerr) {
		if(!emailerr) alert(msg);
		return false;
	} else {
		return true;
	}

}

//ajax post form
function ajaxPost(form,div,action,call_validate,showdivs,hidedivs,insertion_location)
{
	var pass=true;
	if (call_validate) { 
		pass = validate(document.getElementById(form));
	}
	if (pass) { 
		var params = Form.serialize($(form));
		if (insertion_location) { 
			var insert = "Insertion." + insertion_location;
			new Ajax.Updater(div, action, {asynchronous:true, parameters:params, evalScripts:true, insertion:Insertion.Bottom});
		} else {
			new Ajax.Updater(div, action, {asynchronous:true, parameters:params, evalScripts:true});
		}
		if (showdivs || hidedivs) { 
			showHideDivs(showdivs,hidedivs);
		}
	}
}

//ajax link
function ajaxLink(div,url,scrolltotop)
{
	if(!scrolltotop && scrolltotop!=false) { scrolltotop = div; }
	new Ajax.Updater(div, url, {
		asynchronous:true, 
		evalScripts:true
	});
	if(scrolltotop) { document.getElementById(scrolltotop).scrollIntoView(true); }
}

function mooLink(div,url,scrolltotop)
{
	if(!scrolltotop && scrolltotop!=false) { scrolltotop = div; }
	var req = new Request.HTML({ 
		method: 'get',
		//data: { "cat" : id, "bus_id" : "|bus_id|" },
		url: url,
		update: $(div)
	}).send(); 
	if(scrolltotop) { document.getElementById(scrolltotop).scrollIntoView(true); }
}

function mooPost(form,div,action,call_validate,showdivs,hidedivs,insertion_location)
{
	var pass=true;
	if (call_validate) { 
		pass = validate(document.getElementById(form));
	}
	if (pass) { 
		var req = new Request.HTML({ 
			method: 'post',
			data: $(form),
			url: action,
			update: $(div)
		}).send(); 
	}
	if (showdivs || hidedivs) { 
		showHideDivs(showdivs,hidedivs);
	}
}

function searchOn(element)
{
	var i = 1;
	$$('#search_list p').each(function(el) {
		var cls = (i % 2) ? 'odd' : 'even';
		el.className = cls;
		i++;
	});
	element.className = 'on';
}

