function cmnSwitch_class( eOn, sClass_name, sInstead ){
	if( cmnMatch_class( eOn, sClass_name ) ){
		cmnSet_class( eOn, sInstead, sClass_name );
	}else{
		cmnSet_class( eOn, sClass_name, sInstead );
	}
}

function cmnRemove_class( eOn, sClass_name ){
	cmnSet_class( eOn, "", sClass_name );
}

function cmnSet_class( eOn, sClass_name, sInstead ){
	if( eOn ){
		sClass_name = ( sClass_name.length ) ? sClass_name.replace( /(^\s+|\s+$)/, "" ) : "";
		if( eOn.className.length ){
			var sOld = sClass_name;
			if( sInstead && sInstead.length ){
				sInstead = sInstead.replace( /\s+(\S)/g, "|$1" );
				if( sOld ){
					sOld += "|";
				}
				sOld += sInstead;
			}
			eOn.className = eOn.className.replace( new RegExp("(^|\\s+)(" + sOld +")($|\\s+)", "g"), "$1" );
		}
		eOn.className += ( eOn.className.length && sClass_name ? " " : "" ) + sClass_name;
	}
}

function cmnMatch_class( eOn, sClass_name ){
	return ( sClass_name && eOn.className && eOn.className.length && eOn.className.match( new RegExp("(^|\\s+)(" + sClass_name +")($|\\s+)") ) );
}




function UnHide_following( e ){
	if( this.aeFollowing.length ){
		cmnSwitch_class( this, 'opened', '' );
		for( var i = 0 ; i < this.aeFollowing.length ; i++ ){
			cmnSwitch_class( this.aeFollowing[i], 'hidden', '' );
		}
	}
}

function Init_FAQ( eFrom ){
	var eQuestion = false;
	for( var i = 0 ; i < eFrom.childNodes.length ; i++ ){
		if( cmnMatch_class( eFrom.childNodes[i], 'container' ) ){
			eQuestion = eFrom.childNodes[i];
			eQuestion.aeFollowing = new Array();
			eFrom.childNodes[i].onclick = UnHide_following;
		}else if( eQuestion && cmnMatch_class( eFrom.childNodes[i], 'content' ) ){
			eQuestion.aeFollowing[eQuestion.aeFollowing.length] = eFrom.childNodes[i];
			cmnSet_class( eFrom.childNodes[i], 'hidden' );
		}
	}
}
