function numeralsOnly(evt) {
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
        ((evt.which) ? evt.which : 0));
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        //alert("Enter numerals only in this field.");
        return false;
    }
    return true;
}

function textCounter(textDesc, limit)
{
	if (textDesc.value.length > limit)
		textDesc.value = textDesc.value.substring(0, limit);
}

function isSpace(str)
{
	for (var i = 0; i < str.length; i ++)
	{
		if (str.charAt(i) != " ")
			return false;
	}
	
	return true;
}

function validateInput(formName, inputName, outputName)
{
	var i, flag=0, obj;
	var strArray = inputName.split(",");
	var obj2 = getObject(null, outputName);
	
	for (i=0; i<strArray.length; i++)
	{
		obj = getObject(formName, strArray[i]);
		
		if(isSpace(obj.value))
		{
			obj2.style.display="";
			flag = 1;
			return false;
		}
		else
		{
			if(flag == 0)
			{
				obj2.style.display="none";
			}
		}
	}
	
	return true;
}

function isValidStartEndDate(startDateField, endDateField, output)
{
	var startObj = document.getElementById(startDateField);
	var endObj = document.getElementById(endDateField);
	
	var outputObj = getObject(null, output);

	
	if(startObj.value != "" && endObj.value != "")
	{
		if (parseInt(startObj.value) > parseInt(endObj.value))
		{
			outputObj.style.display = "";
			return false;
		}
		else
		{
			outputObj.style.display = "none";
			return true;
		}
	}
	else if(startObj.value == "" && endObj.value != "")
	{
		outputObj.style.display = "";
		return false;
	}
	else
	{
		outputObj.style.display = "none";
		return true;
	}
}

function getObject(form, fieldname)
{
	var retObj;

	if(form != null)
		retObj = form[fieldname];
	else
		retObj = document.getElementById(fieldname);

	return retObj;
}

function isEmpty(obj)
{
	if(trim(obj.value) == "")
		return true;
	else
		return false;
}

function isExceedLimit(obj, limitsize)
{
	if(obj.value.length <= limitsize)
		return false;
	else
		return true;
}

function displayErrMsg(obj, msg)
{
	obj.style.display = "none";
	obj.innerHTML = trim(msg);
	obj.style.display = "";
}

function trim(s)
{
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
		s = s.substring(1,s.length);

	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
		s = s.substring(0,s.length-1);

	return s;
}

function doubleConfirmation(firstmsg, secondmsg)
{
	var answer = confirm(firstmsg);
	if(answer)
		return confirm(secondmsg);
	else
		return false;
}

function confirmjs()
{
		return confirm("Are you sure you want to delete?");
}

function confirmjss(name)
{
		return confirm("Are you sure you want to delete " +name+ " and all its contents?");
}

function confirmjsss()
{
		return confirm("Are you sure you want to reset?");
}

function confirmhpic()
{
		return confirm("Are you sure want to delete hospital picture?");
}

function confirmjsvo()
{
		var answer = confirm("The information will be permanently deleted. Are you sure to proceed?");
		if(answer)
		{
			return confirm("Are you sure you want to delete?");
		}
		else
			return false;
}
function confirmschedule1()
{
		return confirm("Are you sure you want to schedule for the selected year?");
}
function confirmschedule2()
{
		var answer = confirm("Are you sure you want to schedule for the selected year?");
		if(answer)
		{
			return confirm("All the current schedule will be lost and reschedule. Are you sure you want to proceed?");
		}
		else
			return false;
}
function textCounter(field,cntfield,maxlimit) 
{
	if (field.value.length > maxlimit) 
		field.value = field.value.substring(0, maxlimit);
	else
		cntfield.value = maxlimit - field.value.length;
}

/** check text field maxlength **/
function LimitText(fieldObj,maxChars)
{
	var result = true;
	if (fieldObj.value.length >= maxChars)
		result = false;
	if (window.event)
		window.event.returnValue = result;
	return result;
}
/*This is to trim off any characters over the limit*/
function TrackCount(fieldObj,maxChars)
{
	var diff = maxChars - fieldObj.value.length;
	// Need to check & enforce limit here also in case user pastes data
	if (diff < 0)
		fieldObj.value = fieldObj.value.substring(0,maxChars);
}
/** End of check text field maxlength **/

/** numeric regex**/
function isNumeric(str)
{
	return /^[\d\.]+$/.test(str);

}

/**  onkeypress Return numeric value only  **/
/** param e: window event **/
function numericOnly(e)
{
	var evt = window.event ? window.event : e;
	
	if (evt)
	{
		//charCode for firefox, keyCode for IE
		var key = evt.charCode ? evt.charCode : evt.keyCode;
		if (key)
		{
			if ((key >= 48 && key <= 57)
					|| key == 8
					|| (key >= 37 && key <= 40))
				return true;
			else
			{
				//do something here
				return false;
			}
		}
	}
}

/** onfocus default field style **/
function defaultTextField(objTxt)
{
	objTxt.style.backgroundColor = "white";
	objTxt.style.color = "black";
}

/** currency regex **/
function isCurrency(str)
{
	return /^[\d\,]+(\.\d{1,2})?$/.test(str);
}

/**  onblur validate currency **/
function validateCurrency(objTxt, compulsory)
{
	objTxt.value = trim( objTxt.value );

	if ( objTxt.value == "" && !compulsory ) {
		return;
	}

    if ( isCurrency( objTxt.value ) ){

        var temp = objTxt.value;

        temp = temp.replace( /\,/g, "" );

        var decimal = "00";
		var digit = temp;

        if ( temp.indexOf( '.' ) > -1 ) {

            decimal = temp.replace( /\d+\.(\d{1,2})/, "$1" );
            digit = temp.replace( /(\d+)\.\d{1,2}/, "$1" );
        }

		if ( decimal.length == 1 )
			decimal += "0";

		temp = "";
        var trimmed = "";
        var started = false;

        //added this for loop to remove 0's at the start of the number
        for ( var i = 0; i < digit.length; i++ ) {

            var x = digit.charAt( i );
            if( x != 0 || started ) {

                trimmed += x;
                started = true;
            }
        }

        if( trimmed.length == 0 )
            trimmed = "0";

        for ( var i = 0; i < trimmed.length; i++ ) {

            if ( ( trimmed.length - i ) % 3 == 0 && i != 0 )
				temp += ",";
            temp += trimmed.charAt( i );
		}

        objTxt.value = temp + "." + decimal;
	}
	else {
        
        objTxt.style.backgroundColor = "#DD7575";
		objTxt.style.color = "white";
	}
}

/**  onblur validate numeric **/
function validateNumeric(objTxt, compulsory)
{
	objTxt.value = trim( objTxt.value );

	if ( objTxt.value == "" && !compulsory ) {
		return;
	}

    if ( isNumeric( objTxt.value.replace( /\,/g, "" ) ) ){

        var temp = objTxt.value;

        temp = temp.replace( /\,/g, "" );

		var digit = temp;
		
		temp = "";
		
        var trimmed = "";
        var started = false;
        var dotstarted = false;
        var pos ;
        
       

        //added this for loop to remove 0's at the start of the number
        for ( var i = 0; i < digit.length; i++ ) {

            var x = digit.charAt( i );
            if( x != 0 || started ) {

                trimmed += x;
                started = true;
            }
        }

        if( trimmed.length == 0 )
            trimmed = "0";
            
        if(  trimmed.indexOf('.') >-1)
      		pos = trimmed.indexOf('.') ;
      	else 
      		pos = trimmed.length;

        for ( var i = 0; i < trimmed.length; i++ ) {

			if(  trimmed.charAt( i+1 )== '.' )
				dotstarted = true;
            if ( ( pos - i ) % 3 == 0 && i != 0 && !dotstarted)
				temp += ",";
			
            temp += trimmed.charAt( i );
		}
		
		if( temp.indexOf('.') > -1  )
		{
			if( temp.indexOf('.') != temp.lastIndexOf('.'))
			{
			  	temp = temp.substring(0, temp.length-1 );
			}
			 
		}

        objTxt.value = temp;
	}
	else {
        
     }
}