﻿function IsNumberRange(object_value, min_value, max_value)
{
    // check minimum
    if (min_value != null)
	{
        if (object_value < min_value)
			return false;
	}
    // check maximum
    if (max_value != null)
	{
		if (object_value > max_value)
			return false;
	}
    //All tests passed, so...
    return true;
}

function RequireDate(checkYear, checkMonth, checkDay)
{
    if (checkYear == 0 || checkMonth == 0 || checkDay == 0)
    {
        return false;            
    }
    return true;  
}

function CheckDay(checkYear, checkMonth, checkDay)
{
	maxDay = 31;
	if (checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
		maxDay = 30;
	else
	if (checkMonth == 2)
	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else
		if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}
	return IsNumberRange(checkDay, 1, maxDay); //check day
}

//Only allow to enter number
function OnlyAllowNumber(e)
{
    e = e || window.event;
    ch = e.which || e.keyCode;
    if( ch != null) {
        if( (ch >= 48 && ch <= 57)
        || (ch >= 96  && ch <= 105)
        || ch == 0 || ch == 8
        || ch == 13 || ch == 9   || ch == 46
        || ch == 109 || ch == 190 || ch == 32 )  {return true;}
    }
    return false;//        ||  (ch >= 37 && ch <= 40) 
}
function MaxLength(selObject,maxlength)
{
	if(selObject.value.length>=maxlength)
	{
		selObject.value=selObject.value.slice(0,maxlength);
		return false;
	}
}

//set the state of all item checkboxes is 'checked'
function ChangeCheckAll(objSource){
	var form = document.forms[0];
	try
	{
	    for(i=0;i<form.length;i++)	
	    {   
		    if(form[i].id.indexOf("chkItem")!=-1 && form[i].disabled==false) {
			    form[i].checked=objSource.checked;
			    setSelect("row"+form[i].value,objSource.checked)
			}
	    }
    }
    catch(er){alert(er.message)}	
}
//update the state of ALL checkbox by ITEM checkbox
function CheckItemClick(chkAllItemName, chkItemName)
{
    var form = document.forms[0];
    var chkAllItem = document.getElementById(chkAllItemName);
    if (chkAllItem == null)return;
    var isCheckAll = true;
    for(i=0;i<form.length;i++)	
    {   
	    if(form[i].id.indexOf(chkItemName)!=-1 && form[i].disabled==false && form[i].checked==false)
	        isCheckAll = false;
    }
    chkAllItem.checked = isCheckAll;
}

//return true if there is at least a checkbox has been checked
function HasChecked()
    {
        var form = document.forms[0];
        var hasChecked = false;
        for(i=0;i<form.length;i++)
        {
            if(form[i].id.indexOf("chkItem")!=-1 && form[i].checked==true){
                hasChecked = true;
                break;
            }
        }
        return hasChecked;
    }
 //helper function for gridview checkbox, before doing an action, if not any checkbox checked then appear alert message
function CheckCheckBoxBeforeDoingAction(msgNoSelect){
    var hasChecked=false;
    for(var i=0;i<CheckBoxIDs.length;i++){
        var cb=document.getElementById(CheckBoxIDs[i]);
        if (cb.checked){
            hasChecked=true;
            break;
        }
    }
    
    if (!hasChecked){
        alert(msgNoSelect);
        return false;
    }
    return true;
}
//
function AssignListOptionValuesToHidden(hiddenControlId, selectControlId)
{
    var selectControl = document.getElementById(selectControlId);
    var hiddenControl = document.getElementById(hiddenControlId);
	hiddenControl.value = "";

	if (selectControl.length > 0)
	{
    	var optionValues = new Array();    	
	    for(var i=0; i < selectControl.length; i++)
	    {
		    optionValues[optionValues.length] =selectControl.options[i].value;	
        }
        hiddenControl.value = optionValues.join("|");
    }

}

//
function AssignListOptionTextsToHidden(hiddenControlId, selectControlId)
{
    var selectControl = document.getElementById(selectControlId);
    var hiddenControl = document.getElementById(hiddenControlId);
	hiddenControl.value = "";

	if (selectControl.length > 0)
	{
    	var optionValues = new Array();    	
	    for(var i=0; i < selectControl.length; i++)
	    {
		    optionValues[optionValues.length] =selectControl.options[i].text;	
        }
        hiddenControl.value = optionValues.join("|");
    }

}

//--Checkbox helper in gridview
function ChangeHeaderAsNeeded(idrow,isChecked)
{
    setSelect(idrow,isChecked);
    // Whenever a checkbox in the GridView is toggled, we need to
    // check the Header checkbox if ALL of the GridView checkboxes are
    // checked, and uncheck it otherwise
    if (CheckBoxIDs != null)
    {
        // check to see if all other checkboxes are checked
        for (var i = 1; i < CheckBoxIDs.length; i++)
        {
            var cb = document.getElementById(CheckBoxIDs[i]);
            if (!cb.checked)
            {
                // Whoops, there is an unchecked checkbox, make sure
                // that the header checkbox is unchecked
                ChangeCheckBoxState(CheckBoxIDs[0], false);
                return;
            }
        }
        
        // If we reach here, ALL GridView checkboxes are checked
        ChangeCheckBoxState(CheckBoxIDs[0], true);
    }
    
}
function CheckBeforeDeleting(){
    if (CheckBoxIDs!=null){
        var checked=false;
        for (var i=1;i<CheckBoxIDs.length;i++){
            var cb=document.getElementById(CheckBoxIDs[i]);
            if (cb.checked){
                checked=true;
                break;
            }
        }
        if (checked){
            return confirm('Are you sure you want to delete the selected job(s) from your applied jobs list');
        }else{
            alert('Please select a job to delete');
            return false;
        }
        
    }
}
function CheckCheckBoxBeforeDeleting(confirmMsg,alertMsg){
    if (CheckBoxIDs!=null){
        var checked=false;
        for (var i=1;i<CheckBoxIDs.length;i++){
            var cb=document.getElementById(CheckBoxIDs[i]);
            if (cb.checked){
                checked=true;
                break;
            }
        }
        if (checked){
            return confirm(confirmMsg);
        }else{
            alert(alertMsg);
            return false;
        }
        
    }
}

 function ChangeCheckBoxState(id, checkState)
   {
      var cb = document.getElementById(id);
      if (cb != null)
         cb.checked = checkState;
   }

function ChangeAllCheckBoxStates(tableid,checkState)
{
  // Toggles through all of the checkboxes defined in the CheckBoxIDs array
  // and updates their value to the checkState input parameter
  if (CheckBoxIDs != null)
  {
     for (var i = 0; i < CheckBoxIDs.length; i++)
        ChangeCheckBoxState(CheckBoxIDs[i], checkState);
     for (var k=0; k<RowIDs.length;k++){
        setSelect(RowIDs[k],checkState);
     }
  }
}