var currentErrs = new Array(); 
var currentIndex = 0;
function validateField(url,inputElement){
	var pars = inputElement.name + "=" + encodeURIComponent(inputElement.value);
	new Ajax.Request(url,
						{	method: 'post',
							parameters: pars,  
							evalJSON:true,
							onSuccess: function(request){
								var jsonResponse = "(" + request.responseText + ")";
								jsonResponse = eval(jsonResponse);
								if (jsonResponse.fieldList != ''){
									displayError(jsonResponse.fieldList,inputElement.name);
									currentErrs[currentIndex] = jsonResponse.fieldList;
									currentIndex = currentIndex + 1;
								} else {
									hideAllErrors(inputElement.name);
								}
							}
						}
					);

	return false;
}  
function displayError(item,label){
	//$(item).style.clear="both";
	$(item).className = "error_msg";
	
	showIt(item);
	//$(label).style.clear="both";
	//$(label).className="error_msg";
}
function hideAllErrors(elementName){
	if (currentErrs.length == 0){
		//the errors came from submitting the form (not via ajax validation)
		var errsOnSubmit = $$('p.error_msg');
		errsOnSubmit.each (function(err) {
			//put the ids of each element into currentErrs so it can be deleted
			//assume currentIndex = 0
			currentErrs[currentIndex] = err.id;
			currentIndex = currentIndex + 1
		});
	}
	currentErrs.each(function(err){
		var dotIndex = err.indexOf('.');
		var field = err.substring(0,dotIndex); 
		if (field == elementName){
			hideIt(err);
			currentErrs.without(err);
		}
	});
	
}
function showIt(id){
	$(id).style.display="block";
	//new Effect.Appear(id);
	return false;
}
function hideIt(id){
 	$(id).hide();
}
function fadeIt(id){
 	new Effect.Fade(id);
}


/* sets the copyright date in the footer */
function copyright()
{
	var year = new Date();
	document.write(year.getFullYear());
}

/* replace _blank target for new window. Use: "rel="external" to activate; */
function externalLinks()
{
	if(!document.getElementById) return;
	
	var anchors = document.getElementsByTagName("a"); 
	for (var i=0; i<anchors.length; i++)
	{ 
		var anchor = anchors[i]; 
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
		{
			anchor.target = "_blank";
		}
	}
}

function greetings (){
 /* page greeting */
  var greeting = $('greeting');
  var time = new Date();
  var hour = time.getHours();
		if (hour == 0 || hour <= 4)
		{
			greeting.innerHTML = "Good Evening";
		}
		if (hour >= 5 && hour <= 11)
		{
			greeting.innerHTML = "Good Morning";
		}
		if (hour >= 12 && hour <= 16)
		{
			greeting.innerHTML ="Good Afternoon";
		}
		if (hour >= 17 && hour <= 21)
		{
			greeting.innerHTML ="Good Evening";
		}
		if (hour >= 22 && hour <= 24)
		{
			greeting.innerHTML ="Good Evening";
		}

	  /* setting the date */
	  var dateDisplay = $('date');
	  var now = new Date();	
	  
	  var day = new Array(7);
		day[0] = "Sunday";
		day[1] = "Monday";
		day[2] = "Tuesday";
		day[3] = "Wednesday";
		day[4] = "Thursday";
		day[5] = "Friday";
		day[6] = "Saturday";
		
	  var month = new Array(12);
		month[0] = "January";
		month[1] = "February";
		month[2] = "March";
		month[3] = "April";
		month[4] = "May";
		month[5] = "June";
		month[6] = "July";
		month[7] = "August";
		month[8] = "September";
		month[9] = "October";
		month[10] = "November";
		month[11] = "December";
		
	  var today = day[now.getDay()] + " " + month[now.getMonth()] + " " + now.getDate() + ", " + now.getFullYear();
	  dateDisplay.innerHTML = today;
}

function sfHover(){
	var theNav = $$('#nav li'); 
	theNav.each(function(nav){
		Event.observe(nav,'mouseover',function(){
					nav.addClassName("over");
				}); 
		Event.observe(nav,'mouseout',function(){
					nav.removeClassName("over");
				}); 
	});
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function setcolor1(trow,name) {
	trow.className='altcolor1';
	//window.status='Currently Viewing App: ' + name;
}
function setcolor2(trow,name) {
	trow.className='altcolor2';
	window.status='';
}
 
function selected(cal, date) {
  cal.sel.value = date; // just update the date in the input field.
  if (cal.dateClicked){
    cal.callCloseHandler();
    }
}

function closeHandler(cal) {
  cal.hide();                        // hide the calendar
//  cal.destroy();
  calendar = null;
}

function showCalendar(id, format) {
  var el = document.getElementById(id);
  if (calendar != null) {
    // we already have some calendar created
    calendar.hide();                 // so we hide it first.
  } else {
    // first-time call, create the calendar.
    var cal = new Calendar(1, null, selected, closeHandler);
    // uncomment the following line to hide the week numbers
    // cal.weekNumbers = false;
      cal.showsTime = false;
    //  cal.time24 = (showsTime == "24");
    cal.showsOtherMonths = true;
    calendar = cal;                  // remember it in the global var
    cal.setRange(1900, 2070);        // min/max year allowed.
    cal.create();
  }

  calendar.setDateFormat(format);    // set the specified date format
  calendar.parseDate(el.value);      // try to parse the text in field
  calendar.sel = el;                 // inform it what input field we use

  // the reference element that we pass to showAtElement is the button that
  // triggers the calendar.  In this example we align the calendar bottom-right
  // to the button.
  calendar.showAtElement(el, "cr");        // show the calendar
  return false;
}

