// var counter = new Array;

function moreFields( ident, limit ) {
	var p = ident + 'root';
	var c = ident + 'node';
	var d = '';
	counter[ident]++;
	counted[ident]++;
	if( limit >= counter[ident] ){
		var newFields = document.getElementById( p ).cloneNode( true );
		newFields.id = ident + 'new' + counted[ident];
		newFields.style.display = 'block';
		var newField = newFields.childNodes;
		for( var i = 0; i < newField.length; i++ ) {
			var theName = newField[i].name;
			if( theName ){
				newField[i].name = ( is_array( theName ) ) ? theName : theName;
			}
		}
		var insertHere =  document.getElementById( c );
		insertHere.parentNode.insertBefore( newFields, insertHere );
		if( counter[ident] > 0 ){
			processFields( document.getElementById( ident + 'new' + counted[ident] ), ident );
		}
	}
	document.getElementById( ident + 'button' ).style.display = ( limit > counter[ident] ) ? 'block' : 'none'
}

function processFields( nlist, ident ){
	var x = len = 0;
	var inputs = nlist.getElementsByTagName( 'input' );
	var textarea = nlist.getElementsByTagName( 'textarea' );
	var select = nlist.getElementsByTagName( 'select' );
	if( inputs.length > 0 ){
		for( len = inputs.length; x < len; x++ ){
			// inputs[x].value = ( inputs[x].type == 'text' ) ? '' : 1;
			// bug fixed .. empty inputs with text type
			if( inputs[x].type == 'text' ){
				inputs[x].value = '';
			}
			if(
				ident == 'req'
				&& inputs[x].type == 'checkbox'
			){
				inputs[x].name = inputs[x].name.substr( 0, inputs[x].name.lastIndexOf( '[' ) ) + "[" + counted[ident] + "][" + inputs[x].value + "]";
			} else{
				inputs[x].name = inputs[x].name + "[" + counted[ident] + "]";
			}
		}
	}

	if( textarea.length > 0 ){
		for( x = 0, len = textarea.length; x < len; x++ ){
			textarea[x].value = '';
			textarea[x].name = textarea[x].name + "[" + counted[ident] + "]";
		}
	}

	if( select.length > 0 ){
		for( x = 0, len = select.length; x < len; x++ ){
			select[x].selectedIndex = 0;
			if( select[x].name.toLowerCase().lastIndexOf( 'date' ) > 0 ){
				var buff = select[x].name.substring( select[x].name.toLowerCase().lastIndexOf( '[' ) );
				var newname = select[x].name.substring( 0, select[x].name.length - buff.length );
				select[x].name = newname + "[" + counted[ident] + "]" + buff;
			} else{
				select[x].name = select[x].name + "[" + counted[ident] + "]";
			}
			if( ident == 'req' ){
				if( select[x].id == 'requirement-browser' ){
					select[x].id = 'requirement-browser-' + counted[ident];
				
				}
				if( select[x].id == 'country-form' ){
					select[x].onchange = function(){
						displayCity( counted[ident], this );
					};
				}
			}
		}
	}

	if( ident == 'emp' ){
		var vnodes = document.getElementById( 'empnew' + counted[ident] ).childNodes;
		for( x = 0, len = vnodes.length; x < len; x++ ){
			if( vnodes[x].id == 'currently-check' ){
				vnodes[x].id = 'currently-' + counted[ident];
				vnodes[x].value = 1;
				vnodes[x].onchange = function(){
					currentlyChecked( this );
				}
			} else if( vnodes[x].id == 'with-dates' ){
				vnodes[x].id = 'with-dates-' + counted[ident];
			} else if( vnodes[x].id == 'with-dates-no' ){
				vnodes[x].id = 'with-dates-no-' + counted[ident];
			}
		}
	}

	if( ident == 'req' ){
		var cnodes = document.getElementById( 'reqnew' + counted[ident] ).childNodes;

		for( x = 0, len = cnodes.length; x < len; x++ ){
			if( cnodes[x].id == 'checklist' ){
				cnodes[x].id = 'checklist-' + counted[ident];
			}
			if( cnodes[x].id == 'message-checklist' ){
				cnodes[x].id = 'message-checklist-' + counted[ident];
			}
			if( cnodes[x].id == 'city-form' ){
				cnodes[x].id = 'city-form-' + counted[ident];
			}
		}
	}
}

function remove( d, ident, limit ){
	if( counter[ident] > 1 ){
		if( d.parentNode.id != 'reqroot' ){
			d.parentNode.parentNode.removeChild( d.parentNode );
			counter[ident]--;
		}
	}
	document.getElementById( ident + 'button' ).style.display = ( limit > counter[ident] ) ? 'block' : 'none';
}

function _init( idents, limits ){
	var x = len = 0;
	for( len = idents.length; x < len; x++ ){
		counter[idents[x]] = 0;
		counted[idents[x]] = 0;
		moreFields( idents[x], limits[x] );
	}
}

function checkSkill( skill, rating ){
	s = document.getElementById( skill );
	if( rating.value > 0 ){
		s.checked = true;
	}else{
		s.checked = false;
	}
}

function displayCity( num, d ){
	document.getElementById( 'city-form-' + num ).style.display = ( d.selectedIndex == 0 ) ? 'none' : 'inline';
}

