

//////////////////////////////////////////////////////////////////////////////////////

// FORMS

/////////////

var fnav = window.Event ? true : false;

    if (fnav) {
    
    //window.captureEvents(Event.KEYDOWN);
    //window.onkeydown = NetscapeEventHandler_KeyDown;
    
    } else {
    
    document.onkeydown = MicrosoftEventHandler_KeyDown;
    
    }

function NetscapeEventHandler_KeyDown(e) {

  if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') { return false };
  
  return true;

}

function MicrosoftEventHandler_KeyDown() {

  if (event.keyCode == 13 && event.srcElement.type != 'textarea' && event.srcElement.type != 'submit')

return false;
return true;

}

// -------------------------------------------------------------------------------------

function form_input_maxlength(obj) {

var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""

    if (obj.getAttribute && obj.value.length>mlength) {
    
     obj.value=obj.value.substring(0,mlength);
     
        if (obj.createTextRange) {
        
        var range = obj.createTextRange();
        range.collapse(false);
        range.select();
        
        } else if (obj.setSelectionRange) {
        
        obj.focus();
        var length = obj.value.length;
        obj.setSelectionRange(length, length);
        
        }
     
    }
    
}

// -------------------------------------------------------------------------------------

var chars_after_space = 0;

function form_input_wrapforce( limit , obj ) {

    if (obj.value.lastIndexOf(' ') == (obj.value.length - 1)) {
    
    chars_after_space = 0;
    
    } else {
    
    chars_after_space++;
    
    }

    if ( chars_after_space > limit ) {
    
    obj.value = obj.value + " ";
    chars_after_space = 0;
    
    }
    
}


// -------------------------------------------------------------------------------------

function form_elem_string_insert(myForm, myField, myValue) {

myField = document.forms[myForm].elements[myField];

    //IE support
    if (document.selection) {
    
    myField.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
    
    //MOZILLA/NETSCAPE support
    } else if (myField.selectionStart || myField.selectionStart == '0') {
    
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    myField.value = myField.value.substring(0, startPos)
    + myValue
    + myField.value.substring(endPos, myField.value.length);
    
    } else {
    
    myField.value += myValue;
    
    }

}

// -------------------------------------------------------------------------------------

function form_elem_text_tabbing(event,obj) {
	var tabKeyCode = 9;
	if (event.which) // mozilla
		var keycode = event.which;
	else // ie
		var keycode = event.keyCode;
	if (keycode == tabKeyCode) {
		if (event.type == "keydown") {
			if (obj.setSelectionRange) {
				// mozilla
				var s = obj.selectionStart;
				var e = obj.selectionEnd;
				obj.value = obj.value.substring(0, s) + 
					"\t" + obj.value.substr(e);
				obj.setSelectionRange(s + 1, s + 1);
				//obj.focus();
			} else if (obj.createTextRange) {
				// ie
				document.selection.createRange().text="\t"
				obj.onblur = function() { this.focus(); this.onblur = null; };
			} else {
				// unsupported browsers
			}
		}
		if (event.returnValue) // ie ?
			event.returnValue = false;
		if (event.preventDefault) // dom
			event.preventDefault();
		return false; // should work in all browsers
	}
	return true;
}

// -------------------------------------------------------------------------------------

function form_elem_reorder ( elem_name ) {

// reset order fields
var elem_num = document.getElementsByName( elem_name );
var elem_tot = elem_num.length;

    for ( i=0 ; i<elem_tot ; i++ ) {

    elem_num[i].value = i + 1;

    }
    
}

// -------------------------------------------------------------------------------------

function form_empty_option_to_text(oldObject, oType) {

    if (oldObject.value == '') {
    
    var newObject = document.createElement('input');
    newObject.type = oType;
        
        if(oldObject.size) newObject.size = oldObject.size;
        //if(oldObject.value) newObject.value = oldObject.value;
        if(oldObject.name) newObject.name = oldObject.name;
        if(oldObject.id) newObject.id = oldObject.id;
        if(oldObject.className) newObject.className = oldObject.className;

    oldObject.parentNode.replaceChild(newObject,oldObject);
    newObject.focus();
    return newObject;
         
    }
  
}

// -------------------------------------------------------------------------------------

function form_textarea_count_lines (strtocount, cols) {

var hard_lines = 1;
var last = 0;

    while ( true ) {

    last = strtocount.indexOf("\n", last+1);
    hard_lines ++;
    
        if ( last == -1 ) break;

    }

var soft_lines = Math.round(strtocount.length / (cols-1));
var hard = eval("hard_lines  " + unescape("%3e") + "soft_lines;");

    if ( hard ) soft_lines = hard_lines;

    return soft_lines;

    }

function form_textarea_auto_resize() {

var the_form = document.forms[0];

    for ( var x in the_form ) {
    
        if ( ! the_form[x] ) continue;
        if( typeof the_form[x].rows != "number" ) continue;
        
    the_form[x].rows = form_textarea_count_lines(the_form[x].value,the_form[x].cols) +1;
    
    }

setTimeout("form_textarea_auto_resize();", 300);

}

// -------------------------------------------------------------------------------------

function elem_chkbox_multi ( method , this_name , checked_status , field_name , value_checked , value_unchecked ) {

// method :  div or form
// this_name : div name or form name depending on method
// checked_status : true or false

    if ( method == 'div' ) {
    
    var this_div = document.getElementById( this_name );
    var elem_num = this_div.getElementsByTagName( 'input' );
    var elem_tot = elem_num.length;
    
    }
    
    if ( method == 'form' ) {
    
    var elem_num = document.forms[this_name].elements;
    var elem_tot = elem_num.length;

    }

var first_chkbox = -1;
var field_value = '';

    for ( i=0 ; i<elem_tot ; i++ ) {
    
        if ( elem_num[i].getAttribute( 'type' ) == 'checkbox' ) {

            if ( first_chkbox < 0 ) first_chkbox = i;
        
            if ( checked_status == null ) {
            
            checked_status = elem_num[first_chkbox].checked;
            
            }
        
        elem_num[i].checked = checked_status;
        
        }

        if (field_name != null) {
        
            if (elem_num[i].getAttribute( 'name' ) == field_name) {
            
                if (checked_status == true) field_value = value_checked;
                if (checked_status == false) field_value = value_unchecked;
    
            elem_num[i].value = field_value;

            }
        
        }

    }

}

// -------------------------------------------------------------------------------------

function elem_chkbox_to_field ( chkbox , value_checked , value_unchecked , field_id ) {

var field_value = '';

    if (chkbox.checked == true) field_value = value_checked;
    if (chkbox.checked == false) field_value = value_unchecked;

document.getElementById( field_id ).value = field_value;

}

// -------------------------------------------------------------------------------------

function elem_chkbox_uncheck_others ( elem , elem_class ) {
    
var elem_array = document.getElementsByClassName( elem_class );  
var elem_total = elem_array.length;

    for ( i=0 ; i<elem_total ; i++ ) {
    
    elem_array[i].checked = false;
    
    }

elem.checked = true;

}

// -------------------------------------------------------------------------------------

function hd_forms_check_child ( elem_ID , class_off , class_on ) {

var el_parent = document.getElementById( elem_ID );
var el = el_parent.getElementsByTagName( 'input' );
    
    for ( i=0 ; i<el.length ; i++ ) {
    
        if ( el[i].getAttribute( 'type' ) == 'checkbox' || el[i].getAttribute( 'type' ) == 'radio' ) {
        
            if ( el[i].checked == false ) {
            
            el[i].checked = true;
            
                //if ( class_on != null ) el_parent.className = class_on;
            
            } else {
            
            el[i].checked = false;
            
                //if ( class_off != null ) el_parent.className = class_off;
            
            }

        }
        
    }

}

