
function toggleRowViaCheckbox(element, row_ids) 
{
    var row_ids_array = row_ids.split(',');
    var iii = 0;
    
    for (iii = 0 ; iii < row_ids_array.length ; iii++) {
        if (element.checked) {
            document.getElementById('li_' + row_ids_array[iii]).style.display = '';
        } else {
            document.getElementById('li_' + row_ids_array[iii]).style.display = 'none';
        }
    }
}

// .................................................................................................

function toggleRowViaSelect(element, true_value, row_ids) 
{
    var row_ids_array = row_ids.split(',');
    var iii = 0;
    
    //alert(element.name);
    
    for (iii = 0 ; iii < row_ids_array.length ; iii++) {
        if (element.value == true_value) {
            document.getElementById('li_' + row_ids_array[iii]).style.display = '';
        } else {
            document.getElementById('li_' + row_ids_array[iii]).style.display = 'none';
        }
    }
}

// .................................................................................................

function toggleTechnicalQuaViaSelect(element, liIdStart) 
{
    liIdStart = 'li_' + liIdStart;
    var liElementsArray = document.getElementsByTagName("li");
    var liValue = '';
    var liControl = '';
    //alert(row_id_start);
    //alert(row_id_start.length);
    
    for (var iii = 0 ; iii < liElementsArray.length ; iii++) {
        if (liElementsArray[iii].id.length > liIdStart.length) {
            if (liElementsArray[iii].id.substring(0,liIdStart.length) == liIdStart) {
                //alert(liElementsArray[iii].id.substring(liIdWorking.length,liIdWorking.length + element.value.length));
                liValue = liElementsArray[iii].id.substring(liIdStart.length,liIdStart.length + element.value.length);
                liControl = liElementsArray[iii].id.substring(liIdStart.length + element.value.length + 2,liIdStart.length + element.value.length + 12);
                if (liValue == element.value) {
                    //liElementsArray[iii].style.backgroundColor = '#ffffff';
                    if (liControl == 'sub_qua_id') {
                        showdiv(liElementsArray[iii].id);
                    }
                } else if (liValue != '1' && liValue != '2' && liValue != '3') {
                    //hidediv(liElementsArray[iii].id);
                    //liElementsArray[iii].style.backgroundColor = '#ff908a';
                } else {
                    hidediv(liElementsArray[iii].id);
                }
            }
        }
    }
}

// .................................................................................................

function changeParentBgViaCheckbox(element, type) 
{
    if (element.checked) {
        if (type == 'warning') {
            element.parentNode.style.backgroundColor = '#ff908a';
        }
    } else {
        element.parentNode.style.backgroundColor = '#DDDDDD';
    }            
}

// .................................................................................................

function resetAllGroups()
{
    var groupsWrapperElement = document.getElementById('form_groups');
    
    var innerDivElementsArray = groupsWrapperElement.getElementsByTagName("div");
    
    for (var iii = 0 ; iii < innerDivElementsArray.length ; iii++) {
        if (innerDivElementsArray[iii].id.substring(0,5) == 'group') {
            hidediv(innerDivElementsArray[iii].id);
            setclass('tab_' + innerDivElementsArray[iii].id, '');
        }
    }
    
    var innerUlElementsArray = document.getElementsByTagName("ul");
    
    for (var iii = 0 ; iii < innerUlElementsArray.length ; iii++) {
        if (innerUlElementsArray[iii].id.substring(0,11) == 'form_tabs_2') {
            hidediv(innerUlElementsArray[iii].id);
        }
    }    
}

// .................................................................................................

function hidediv(id)
{
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		}
		else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}

function showdivs(ids)
{
    var ids_array = ids.split(',');

    for (var iii in ids_array) {
        showdiv(ids_array[iii]);
    }
}

function showdiv(id)
{
	//safe function to show an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = '';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = '';
		}
		else { // IE 4
			document.all.id.style.display = '';
		}
	}
}

function setclasses(ids, class_value)
{
    var ids_array = ids.split(',');

    for (var iii in ids_array) {
        setclass(ids_array[iii], class_value);
    }
}

function setclass(id, class_value)
{
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).setAttribute('class',class_value);
	}
	else {
        document.all.id.setAttribute('class',class_value);
	}
}

function checkIt(field)
{
    if (field) {
        field.checked = true;
    }
}

function uncheckIt(field)
{
    if (field) {
	    field.checked = false;
    }
}

function SetAllCheckBoxes(FormName, CheckValue)
{
    var dml = document.forms[FormName];
    var len = dml.elements.length;

    var i = 0;

    for( i=0 ; i<len ; i++) {
        dml.elements[i].checked = CheckValue;
    }
}

function SetSomeCheckBoxes(FormName, CheckValue, PartOfId)
{
    var inputs = document.forms[FormName].getElementsByTagName("input");
    var id = ''

    for (var i = 0; i < inputs.length; i++) {
      if (inputs[i].type == "checkbox") {
        id = inputs[i].id;
        if (id.indexOf(PartOfId) != -1) {
            inputs[i].checked = CheckValue;
        }
      }
    }

}

function changeStateClickedNew(formName, staId, nothingCheckedMsg, undoneMsg, confirmMsg)
{   
    var dml = document.forms[formName];
    var len = dml.elements.length;
    
    var canContinue = false;
    
    var classes_array;
    
    var i = 0;

    for (i = 0 ; i < len ; i++) {
        if (dml.elements[i].checked && dml.elements[i].type == 'checkbox') {
            if (!undoneMsg) {
            } else {
                if (dml.elements[i].className.indexOf(staId) < 0) {
                    alert(undoneMsg);
                    return false;
                }       
            }     
            canContinue = true;    
        }
    }    

    if (canContinue === false) {
        alert(nothingCheckedMsg);
        return false;
    }
    
    if (!confirmMsg) {
    } else {
        return confirm(confirmMsg);        
    }
    
    return true;
}

function changeStateClicked(formName, nothingCheckedMsg, undoneMsg, confirmMsg)
{   
    var dml = document.forms[formName];
    var len = dml.elements.length;
    
    var canContinue = false;
    
    var i = 0;

    for (i = 0 ; i < len ; i++) {
        if (dml.elements[i].checked && dml.elements[i].type == 'checkbox') {
            if (!undoneMsg) {
            } else {
                if (dml.elements[i].className != 'done') {
                    alert(undoneMsg);
                    return false;
                }       
            }     
            canContinue = true;    
        }
    }    

    if (canContinue === false) {
        alert(nothingCheckedMsg);
        return false;
    }
    
    if (!confirmMsg) {
    } else {
        return confirm(confirmMsg);        
    }
    
    return true;
}

function CanChangeState(FormName, AlertString, ConfirmString)
{   
    var dml = document.forms[FormName];
    var len = dml.elements.length;
    
    var canContinue = false;
    
    var i = 0;

    for (i = 0 ; i < len ; i++) {
        if (dml.elements[i].checked && dml.elements[i].type == 'checkbox') {
            canContinue = true;    
        }
    }    
    
    if (canContinue === false) {
        alert(AlertString);
        return false;
    }

    if (!ConfirmString) {
    } else {
        return confirm(ConfirmString);        
    }
    
    return true;
}

function focusIt(id)
{
    if (id != '') {
        document.getElementById(id).focus();
    }
}




function strstr(haystack, needle, bool) {
    // Finds first occurrence of a string within another  
    // 
    // version: 1102.614
    // discuss at: http://phpjs.org/functions/strstr
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: strstr('Kevin van Zonneveld', 'van');
    // *     returns 1: 'van Zonneveld'
    // *     example 2: strstr('Kevin van Zonneveld', 'van', true);
    // *     returns 2: 'Kevin '
    // *     example 3: strstr('name@example.com', '@');
    // *     returns 3: '@example.com'
    // *     example 4: strstr('name@example.com', '@', true);
    // *     returns 4: 'name'
    var pos = 0;
 
    haystack += '';
    pos = haystack.indexOf(needle);
    if (pos == -1) {
        return false;
    } else {
        if (bool) {
            return haystack.substr(0, pos);
        } else {
            return haystack.slice(pos);
        }
    }
}
