/*
*	default.js
*	- this defines all the page specific functions
*/
var _NewWindow = null;


//---- misc functions


function isValidDate(pDateStr)
{
	var _sepRegExp = /\/|\-/g;
	var _dateArray = pDateStr.split(_sepRegExp);
	if (_dateArray.length != 3)
	{
		return false;
	}

	var _year  = _dateArray[0];
	var _date  = _dateArray[1];
	var _month = _dateArray[2];


	if( (isDigit(_month) == true) && (isDigit(_date)==true)  && (isDigit(_year) == true))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function isValidDecimal(_chars)
			{

	var period = 0;
	for(var i=0; i<_chars.length;i++)
	{
		if(_chars.charAt(i) == ".")
		{
			period++;
			continue;
		}
		if (! ((_chars.charCodeAt(i) >= 48) && (_chars.charCodeAt(i) <= 57)))
			return false;

	}
	if(_chars.length == 0) return false;


	if(period > 1)
		return false;

	return true;

}

function roundDecimal( amount, count ) {

	var val = parseFloat(amount);
	var keyRem = Math.pow(10,count);
	var val2 = val*keyRem
	var val3 = Math.round(val2)/keyRem;
	var strOut = new String(val3);

	if ( strOut.indexOf(".") > 0 ) {
				
		strOutRem = strOut.substring( strOut.indexOf(".") + 1 ); 				
				
		if ( strOutRem.length == 1 ) {
			return strOut + "0";
		} else {
			return strOut;
		}
					
	} else {
	
		return strOut + ".00";

	}

}

function showNewWin(_location,_width,_height)
{

        var _num = Math.round(Math.random() * 100000);
        var _name = "window" + _num;
        if (! (_width) )
              _width  = 320;
        if (! (_height) )
              _height = 320;

        if (_NewWindow && !_NewWindow.closed)
        {
                _NewWindow.location.href=_location;
                _NewWindow.focus();
        }
        else
        {
                if (screen)
                {
                        leftpos = parseInt((screen.width - _width) / 2);
                        toppos = parseInt((screen.height - _height) / 2);
                }
                else
                {
                        leftpos = 200;
                        toppos = 100;
                }
                _NewWindow = window.open(_location,_name,"left="+leftpos+",top="+toppos+",height="+_height+",width="+_width+",menubar=no,resizable=no,scrollbars=yes,status=yes,toolbar=no");

        }
}

function isAlphabetic(pInputVal)
{
	var _inputStr = pInputVal.toString();
	var _char;
	for(var i = 0; i < _inputStr.length; i++) {
		_char = _inputStr.charAt(i);
		if(!((_char >= 'A' && _char <= 'Z') || (_char >= 'a' && _char <= 'z'))) {
			return false;
		}
	}
	return true;
}


function isAlphanumeric(pInputVal)
{
	var _inputStr = pInputVal.toString();
	var _char;
	for(var i = 0; i < _inputStr.length; i++) {
		_char = _inputStr.charAt(i);
		if(!((_char >= 'A' && _char <= 'Z') ||
		     (_char >= 'a' && _char <= 'z') ||
		     (_char >= '0' && _char <= '9'))) {
			return false;
		}
	}
	return true;
}

function isInteger(pInputVal)
{

	var _inputStr = pInputVal.toString();
	var _char;
	for(var i = 0; i < _inputStr.length; i++) {
		_char = _inputStr.charAt(i);
		if(i == 0 && _char == "-") {
			continue;
		}
		if (_char < "0" || _char > "9") {
			return false;
		}
	}
	return true;
}


function isNegativeInteger(pInputVal) {
	if (isNaN(pInputVal)) {
		return false;
	}
	if (Number(pInputVal) >= 0) {
		return false;
	}
	return isInteger(pInputVal);
}


function isNonnegativeInteger(pInputVal)
{
	var _inputStr = pInputVal.toString();
	var _char;
	for (var i = 0; i < _inputStr.length; i++) {
		_char = _inputStr.charAt(i);
		if (_char < "0" || _char > "9") {
			return false;
		}
	}
	return true;
}
function isDigit(_chars)
{

	var period = 0;
	for(var i=0; i<_chars.length;i++)
	{
		if(_chars.charAt(i) == ".")
		{
			period++;
			continue;
		}
		if (! ((_chars.charCodeAt(i) >= 48) && (_chars.charCodeAt(i) <= 57)))
			return false;

	}
	if(_chars.length == 0) return false;


	if(period > 1)
		return false;

	return true;
}




function checkAlphaNumeric(_value)
{

	if(_value.length == 0) return false;
	for(var i=0;i<_value.length;i++)
	{
		if (!( (_value.charCodeAt(i) >=48 &&
		       _value.charCodeAt(i) <=57 ) ||
		      (_value.charCodeAt(i) >= 97 &&
		       _value.charCodeAt(i) <= 122) ||
		      (_value.charCodeAt(i) >= 65 &&
		       _value.charCodeAt(i) <= 90) ||
		      (_value.charCodeAt(i) == 44) ||
		      (_value.charCodeAt(i) == 45) ||
		      (_value.charCodeAt(i) == 46) ||
		      (_value.charCodeAt(i) == 32)
		      ))
		{
			return false;
			break;
		}
	}
	return true;
}




function isEmpty(pInputVal)
{
	return (pInputVal == null || pInputVal == '');
}




function isBlank(_arg)
{
	if(_arg == null || _arg == "undefined" || _arg.length == 0)
	{
		return true;
	}
	else
	{
		var cnt = 0;
		var _str = "";
		for(var i=0;i<_arg.length;i++)
		{
			if( ! (_arg.charCodeAt(i) == 13 || _arg.charCodeAt(i) == 32))
			{
				_str += _arg.charAt(i);
			}

		}
		return (_str.length ==  0 || _str == "") ? (true) : (false);

	}
}

function checkIfDirty(_form)
{
  var _isDirty = false;

  for (var i=0;  i < _form.elements.length; i ++)
  {
    var _element = _form.elements[i];
    var _type = _element.type;

    if ( _type == "checkbox" )
    {
    	_isDirty = (_element.defaultChecked != _element.checked);
    }
    else if ( _type.toLowerCase() == "text" )
    {
      _isDirty = (_element.defaultValue != _element.value);
    }
    else if ( _type.toLowerCase() == "password" )
    {
          _isDirty = (_element.defaultValue != _element.value);
    }
    else if ( _type == "textarea" )
    {
          _isDirty = (_element.defaultValue != _element.value);
    }
    else if ( _type == "select-one" )
    {
          var _options = _element.options;

          for (var x = 0; x < _options.length; x ++) {
            _isDirty = (_options[x].defaultSelected != _options[x].selected);
            if (_isDirty)
            {
	       	break;
    	    }
          }
    }
    if (_isDirty){
    	break;
    }
  }
  return _isDirty;
}


//extracts date from a mysql datetime value with format yyyy-mm-dd hh:mm:ss
function extractDate( val ) {

	var arrDateTime = val.split(" ");

	if ( arrDateTime.length > 1 ) {

		var dt = arrDateTime[0];
		var tm = arrDateTime[1];

		if ( dt.length > 2 ) {

			var dt_elems = dt.split("-");
			return new Date( dt_elems[0], parseInt(dt_elems[1])-1, dt_elems[2] );

		}

	}

	return NULL;

}

function selectDate( itemName, dt ) {

	var win_opener = window.opener;
	var frm = win_opener.document._FRM;

	var dtVal = extractDate( dt );
	
	if ( dtVal == null ) return;
	
	var nYr = dtVal.getFullYear();
	var nDay = dtVal.getDate();
	var nMonth = dtVal.getMonth() + 1;

	var yrItem = frm[itemName+"_year"];
	var dyItem = frm[itemName+"_days"];
	var moItem = frm[itemName+"_month"];

	
	for ( var i = 0; i < dyItem.options.length; i++ ){

		if ( parseInt(dyItem.options(i).text) == nDay ) {
			dyItem.selectedIndex = i;			
			break;
		}

	}	
	
	for ( var i = 0; i < yrItem.options.length; i++ ) {

		if ( parseInt(yrItem.options(i).text) == nYr ) {			
			yrItem.selectedIndex = i;			
			break;

		}

	}		
	
	for ( var i = 0; i < moItem.options.length; i++ ) {

		if ( parseInt(moItem.item(i).value) == nMonth ) {
			moItem.selectedIndex = i;	
			break;
		}

	}	

}




