/* Java script file */

var popupCalendar;

function showCalendar(id, format, showsTime, showsOtherMonths) {
	var el = document.getElementById(id);
	if (popupCalendar != null) {
		popupCalendar.hide();
	} else {
		var cal = new Calendar(1, null, calSelected, calCloseHandler);
		cal.showsTime = false;
		cal.time24 = false;
		popupCalendar = cal;
		cal.setRange(1970, 2020);
		cal.create();
	}
	popupCalendar.setDateFormat(format);
	popupCalendar.parseDate(el.value);
	popupCalendar.sel = el;
	popupCalendar.showAtElement(el, "br");
	return false;
}

function calSelected(cal, date) {
	cal.sel.value = date;
	if (cal.dateClicked)	cal.callCloseHandler();
}

function calCloseHandler(cal) {
	cal.hide();
	popupCalendar = null;
}


 function initForm(formId)
{
	var elements = $(formId).getElements();
	elements.map(
	    function(el){
	      var val = el.value.strip();
	      if(el.title != undefined && val == '')
	        {
	            el.value = el.title;
	        }
	    }
	);
}

function processForm(form_id, additionalCheck)
{
  var elements = $(form_id).getElements();
  var required = [];
  var invalids = [];
  var message = []; 
  elements.map(
    function(el){
      var val = el.value.strip();
      if(el.readAttribute('require')=='true')
      {
        if(el.title == val || val == '')
        {
          required.push(el.title.replace(' *',''));
          return;
        }
      }
      if(el.readAttribute('validation') != null)
      {
        var method = el.readAttribute('validation');
        var bool = false;
        eval('bool = '+ method +'("'+ val +'");');
        if(!bool)
        {
          invalids.push(el.readAttribute('error_message'));
        }
      }
    }
  );
  if(required.length > 0)
  {
    message.push('The field(s) ' + required.join(', ') + ' must be populated!')
  }
  if(invalids.length > 0)
  {
    message.push(invalids.join('\n'));
  }
  if(message.length > 0)
  {
    alert(message.join('\n'));
    return false;
  }
  elements.map(
    function(el){
      if(el.title == el.value)
			{
				el.value = '';
			}
    }
  );
  if(typeof additionalCheck == 'function')
  {
		if(!additionalCheck.apply(this))
		{
			return false;
		}
	}
	$(form_id).submit();
}

function changeValue(el, ev)
{
	if(ev.type == 'blur' && el.title != el.value && el.value == '')
	{
		el.value = el.title;
	}
	if(ev.type == 'focus' && el.title == el.value)
	{
		el.value = '';
	}
}

function isMail(str)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(str);
}
function addSeparatorsNF(nStr, inD, outD, sep)
{
	nStr += '';
	var dpos = nStr.indexOf(inD);
	var nStrEnd = '';
	if (dpos != -1) {
		nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
		nStr = nStr.substring(0, dpos);
	}
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(nStr)) {
		nStr = nStr.replace(rgx, '$1' + sep + '$2');
	}
	return nStr + nStrEnd;
}
function showpage(page, holder)
{
	$A($(holder).childNodes).map(
    function(el){
      if(el.id)
      {
        el[(el.id == 'paging' + page)?'show':'hide']();
      }
    }
	);
}


