/*
//==============================================================================
//
// Project:   %%PROJECT_NAME%% (v%%PROJECT_VERSION%%)
//
// Module:    Interface Section (JS Functions), Version 1.0
//
// Copyright: %%COPYRIGHT%%
//
// AuthorID:  %%AUTHOR_ID%%
//
//==============================================================================
*/

/* == for 'delete' == */

function checkAll(formName) 
{
    var els = document.forms[formName].elements;

    for (i = 0; i < els.length; i++) {
        if (els[i].type == "checkbox") {
            els[i].checked = true;
        }
    }
}

function unCheckAll(formName) 
{
    var els = document.forms[formName].elements;

    for (i = 0; i < els.length; i++) {
        if (els[i].type == "checkbox") {
            els[i].checked = false;
        }
    }
}

function deleteChecked(formName) 
{
    var els   = document.forms[formName].elements;
    var count = 0;

    for (i = 0; i < els.length; i++) {
        if (els[i].type == "checkbox" && els[i].checked) {
            count++;
        }
    }

    if (count == 0) {
        alert(glbl_list_please_select_a_record);
    } else {

        if (deleteConfirm(count)) {
            document.forms[formName].submit();
        }
    }

    return false;
}

function actChecked(formName, act) 
{
    var els   = document.forms[formName].elements;
    var count = 0;

    for (i = 0; i < els.length; i++) {
        if (els[i].type == "checkbox" && els[i].checked) {
            count++;
        }
    }

    if (count == 0) {
        alert(glbl_list_please_select_a_record);
    } else {

        document.forms[formName].act.value = act;
        document.forms[formName].submit();
    }

    return false;
}

function deleteConfirm(count, title) 
{
	if (title)
	{
	    return confirm(glbl_list_do_you_really_want_to_delete_the_record2 + " '" + title + "'?");
	} 
	else 
	{
	    return confirm(glbl_list_do_you_really_want_to_delete_the_record);
	}
}

/* == for 'save' == */

function saveForm(formName, add) 
{
    if(add) 
    {
        //document.forms[formName].return_to.value = "@new";
        document.forms[formName].action += "&return_to=@new"
    }

    if(formSubmit(formName)) 
    {
        document.forms[formName].submit();
    }

    return false;
}

/* == check empty fields == */

function empty(s) 
{
    var r = /^\s*$/;
    return r.test(s);
}

function formSubmit(formName) 
{
	var a = eval(formName + '_fields');
    var d = document.forms[formName];
    for (var i = 0; i < a.length - 1; i++) 
    {
        // Check Field Value
        var name    = a[i][0];
        var control = a[i][1];
        var rexp    = a[i][2];
        var msg     = a[i][3];
        var title   = a[i][4];

 //       alert(d[name].type);
        
        switch (control) {
        case "text":
        case "textarea":
            s = d[name].value;

            if (rexp != "") {
                var r = new RegExp(rexp);
                if (!r.test(s)) {
                    formMessage(msg, title);
                    d[name].focus();
                    return false;
                }
            } else {
                if (empty(s)) {
                    formMessage(msg, title);
                    d[name].focus();
                    return false;
                }
            } 
            break;

        case "select":

            s = d[name].selectedIndex;
            if (s == 0) {
                formMessage(msg, title);
                d[name].focus();
                return false;
            }
            break;

        case "money":

			s = d[name].value;
            s = s.replace(/,/g, "");
            if(!/\d*?(\.\d{1,2})?/.test(s)) 
            {
                formMessage(msg, title);
                d[name].focus();
                return false;
            }
            break;
        case "callback":

			var r = eval(rexp+"()");	
            if(!r) 
            {
                formMessage(msg, title);
                return false;
            }
            break;
        }
    }

    return true;
}

function formMessage(msg, title) 
{
    if(!msg) 
    {
        msg = glbl_list_please_enter_valid_value.replace("$title", title);
    }
    alert(msg);
}

function check() {

	for(var i = 0; i < arguments.length; i++) {
		o = document.getElementById('cb_'+arguments[i]);
		o.checked = true;
	}
}

//---------------------------------------------
// Search value in array
//---------------------------------------------
function array_search(arr, value)
{
  for(var element in arr) if(arr[element] == value) return element;
  return;
}

